Open appvitae.ai

Talent Pool Sequences

Use /v1/sequences for candidate nurture tied to a talent pool. Use the Outreach guide  for the Outreach campaign builder. The old /v1/email-sequence controller does not provide these operations.

Create a sequence

Use a live talent pool in the caller’s organization. The authenticated caller is the default sender; enrollment validates the sender’s connected account.

POST /v1/sequences
Authorization: Bearer <token>
Content-Type: application/json
 
{
  "name": "Senior engineering pool follow-up",
  "talentPoolId": "<existing-pool-id>",
  "autoEnroll": false,
  "steps": [
    {
      "channel": "email",
      "subject": "An update on engineering roles",
      "body": "We have new roles to discuss. Would you like an update?",
      "delayDays": 0
    }
  ]
}

Provide 1 to 10 ordered steps. The supported channel values are email, linkedin_message, linkedin_connect and linkedin_engage; required message content differs by channel. Use the current API schema for those requirements. A template snapshots its content at authoring time.

A zero-day delay makes a step eligible; sending still depends on the sequence’s active state, sending window, timezone, minimum spacing and account limits. Review the returned sequence before enrolling people. autoEnroll: true can enroll new pool members while the sequence is active.

Enroll or remove candidates

POST /v1/sequences/<sequence-id>/enroll
Authorization: Bearer <token>
Content-Type: application/json
 
{ "candidateIds": ["<candidate-id>"] }

Omitting candidateIds enrolls the pool’s live members. An explicit list accepts 1 to 500 candidate IDs. There is no arbitrary variables object in this enrollment contract.

POST /v1/sequences/<sequence-id>/unenroll
Authorization: Bearer <token>
Content-Type: application/json
 
{ "candidateIds": ["<candidate-id>"] }

Unenrollment requires the candidate ID list. Review detected replies and the enrollment state; provider synchronization must remain healthy for reply handling.

Inspect and edit

  • GET /v1/sequences lists sequence summaries.
  • GET /v1/sequences/<sequence-id> returns authoring details, including steps and active enrollment count.
  • GET /v1/sequences/<sequence-id>/report returns delivery results.
  • GET /v1/sequences/<sequence-id>/enrollments returns enrollments.
  • PATCH /v1/sequences/<sequence-id> changes supported settings. For example, {"isActive": false} pauses the sequence.

Step replacement is rejected while active enrollments exist. A report is a delivery view, not the authoring payload for editing a sequence. These examples use placeholder IDs and must be adapted to an isolated workspace before execution.