Skip to main content
PATCH
Reschedule call attempt
PATCH /interviews/{id}/call-attempts/{attemptId} is a permanent alias of this endpoint and keeps working unchanged, with the same scopes and the same response. See Resource names.
Updates the scheduled time for an existing call attempt that hasn’t started yet.
ONLINE conversations: managing individual call attempts is forbidden on an ONLINE conversation.

Overview

Use this endpoint to move a scheduled call attempt to a different time — most often because the contact asked for a particular slot.

Restrictions

  • Status Restriction: You can only reschedule call attempts that are in SCHEDULED status. Attempts that are in any other state (e.g., IN_PROGRESS, COMPLETED, FAILED, CANCELLED) cannot be rescheduled.
  • In-Progress Protection: If the attempt is currently being processed (status IN_PROGRESS), the request will be blocked with a 400 Bad Request error to prevent race conditions.
  • Future Time: The scheduledAt time must be in the future.
  • Calling window: the time you send is used exactly as given, including when it falls outside the agent’s calling window. Rescheduling is you naming a time, which is usually a slot the contact asked for, so it overrides the agent’s hours rather than being moved into them.

Effect on the conversation

Moving an attempt also moves the conversation it belongs to: status becomes SCHEDULED, because an attempt is queued and waiting again. If the conversation had already settled on a terminal status, rescheduling reopens it — the status returns to SCHEDULED and finishedDate is cleared, under the same id. See Reopening a terminal conversation.

Webhooks

A successful reschedule emits conversation.rescheduled with reason: "API_REQUEST", once the change is committed. A webhook still on the LEGACY vocabulary receives the same payload as interview.rescheduled. Because this endpoint moves an existing attempt rather than ending one and creating another, the same callAttemptId appears in both previousAttempt and nextAttempt, and previousAttempt.status is SCHEDULED — no call took place. This is the only case where the two IDs match; for every other reason they differ.
A reason of ADMIN on this event means InstaView staff moved the attempt from the internal admin panel rather than you moving it through the API — worth surfacing differently in your system.

Example

Queue Sync: The system automatically synchronizes with the internal processing queue when an attempt is rescheduled, ensuring it runs at the new specified time.

Authorizations

Authorization
string
header
required

API key for authentication using Bearer scheme

Path Parameters

id
string<uuid>
required
attemptId
string<uuid>
required

Query Parameters

companyId
string

Required for ATS API keys to specify which company to access. Ignored for standard company API keys.

Body

application/json
scheduledAt
string<date-time>
required

New scheduled time for the call attempt (ISO string). Must be in the future. Used exactly as sent, including when it falls outside the agent's calling window.

Example:

"2026-05-01T12:00:00Z"

Response

204

Call attempt rescheduled successfully