Complete a task
Resolves an open task and advances its enrollment; for a manual_email task this sends a real email.
What happens depends on the task’s action:
call: the task is completed and, for a sequence task, the enrollment is advanced to its next step in the background. Passcall_logto record which call resolved it. A call dialed from the rep’s Sequencer dial list completes its task by itself when the call is dispositioned, and also applies the disposition’s outcome (for example finishing the enrollment, opting the prospect out and suppressing the number, or pausing it); completing through this endpoint advances the cadence without applying any call outcome.manual_email: this sends a real email to the contact.body(HTML) replaces the drafted body andsubjectthe subject line; omit them to send the draft as it stands. A one-offmanual_emailtask has no draft, so it needs abodyhere and a subject (here or on the task). The send is queued: the task stayspendingwithsending_claimed_atset until the send is confirmed, then completes. If the send fails, the claim is cleared,error_reasonsays why, and the task is back in the queue to retry.- Any other action: the task is completed. A sequence task advances its enrollment; a one-off task just closes.
Returns the task with contact and sequence expanded. Refused with 409 when the task is already resolved, is held, or its enrollment is no longer active, and while a manual_email send is already in flight. Acts as user_id. Send an Idempotency-Key so a retried request cannot act twice. Counts against the Sequencer writes rate limit.
manual_email task also sends a real email.
Completing a manual email
pending and sending_claimed_at set. The task completes once the send is confirmed. If the send fails, sending_claimed_at is cleared and error_reason says why, and the task can be completed again.
Good to know
- A call dialed from the rep’s Sequencer dial list completes its task when the call is dispositioned, and applies the call’s outcome. Call this endpoint only for calls made elsewhere; it advances the cadence but applies no call outcome.
- A one-off
manual_emailtask has no draft: sendbody, andsubjectif the task has none. heldtasks and tasks whose enrollment is no longer active are refused with 409. If the enrollment is paused, resume it first.
Authorizations
Team-scoped API key generated in the Salesfinity dashboard under Settings → Connections → API & Webhooks. A missing or invalid key returns HTTP 403.
Headers
Makes this write safe to retry. Send a unique value, such as a UUID, and send the same value again when you retry the same request. A retry with the same key and the same request (method, path including the query string, and JSON body) returns the original successful response without acting twice. The same key with a different body or path returns 409, and so does a retry while the first request is still running; that one is safe to repeat after a moment. A request that fails frees its key, so a retry runs the write again: after a 5xx on a create, confirm with a GET before retrying. Keys are kept for 24 hours and are scoped to your team.
Path Parameters
24-character task id.
Body
The team member this call acts as. Must be an active member of the team the API key belongs to.
"507f1f77bcf86cd799439011"
For a call task: the 24-character id of the call log that resolved it. Must be a call log on your team (Call log not found otherwise). Stored on the task as call_log.
Replaces the task's note and is recorded on the timeline.
2000For a manual_email task: the subject line to send. Defaults to the step template's subject, or the one-off task's subject.
998For a manual_email task: the HTML body to send. Defaults to the drafted body; a one-off task has none, so send one. Completing such a task sends a real email, and the task stays pending until the send is confirmed.
20000Response
The task. A manual_email task is still pending, with sending_claimed_at set, until its send is confirmed.
A task in a rep's queue. contact, sequence, sequence_step and user are documented as ids, but responses expand some of them into objects, as each property says.
24-character hexadecimal id.
"507f1f77bcf86cd799439011"
Team id.
Assignee, as a team member id. GET /v2/sequencer/tasks with the default sort=due expands it to an object with _id, first_name, last_name, email and image.
The contact the task is about. Every task response expands it to an object: _id plus whichever of these are set: first_name, last_name, email, linkedin_username, account (company), account_key, title, phone_numbers, timezone, website, email_domain, last_touched_at, last_touch, channel_stats, crm_facts.
The sequence that created the task. Absent on a one-off task. Every task response expands it to _id and name.
The enrollment the task belongs to. Absent on a one-off task.
The step that created the task. Absent on a one-off task. GET /v2/sequencer/tasks expands it to _id, order, step_type and display_name, and GET /v2/sequencer/tasks/{id} adds task_note; other responses return the id.
sequence: created by a sequence step or a reaction. one_off: created by a rep.
sequence, one_off Who created a one-off task. Absent on sequence tasks.
True for tasks outside the cadence: every one-off task, and to-dos a reaction created. Completing or skipping one never moves an enrollment.
What the task asks for. Sequence steps create call, manual_email and generic; the LinkedIn actions, meeting and sms occur only on one-off tasks.
call, manual_email, generic, linkedin_connect, linkedin_message, linkedin_view, linkedin_interact, meeting, sms pending: open. held: waiting while the enrollment is paused; it cannot be completed or skipped until it returns to pending. completed and skipped: resolved by a person. expired: skipped automatically at autoskip_at. cancelled: withdrawn, because the enrollment ended underneath it or a one-off task was cancelled.
pending, held, completed, skipped, expired, cancelled Priority band, copied from the step or set on a one-off task.
high, medium, low Short title: the step's display name on a sequence task, or what the creator entered on a one-off task.
Instructions for the rep: the step's task note, or the one-off task's note. A note sent on completion replaces it.
The drafted email of a manual_email task, rendered when the step came due, or the body sent on completion.
When the task is due.
When an untouched task is skipped automatically, moving to expired. Set from the step's auto-skip delay; absent when the step has none.
When the task was completed or skipped.
When the task went held with its paused enrollment; null otherwise.
The call that resolved a call task: from a disposition in the dialer, or from call_log on complete.
When the outcome of the call that resolved this task was applied to the enrollment.
The Sequencer dial list a pending call task is placed on; null or absent when it is not on one.
The task's row in that dial list.
Set while the email of a manual_email task is being sent. The task stays pending until the send is confirmed; a failed send clears this.
Why the last send of a manual_email task failed. Cleared when a new send starts.