Open appvitae.ai

Campaign Management

A Campaign is a coordinated outreach effort targeting a set of contacts. Campaigns support email steps, LinkedIn messages, and LinkedIn connection invites for multi-channel outreach.

Create a campaign

POST /v1/campaigns
Authorization: Bearer <token>
Content-Type: application/json
 
{
  "name": "Q2 Backend Engineer Outreach",
  "jobId": "job_01abc..."
}

Add email steps

POST /v1/campaigns/:campaignId/emails
Authorization: Bearer <token>
Content-Type: application/json
 
{
  "subject": "Exciting opportunity at {{company}}",
  "body": "Hi {{firstName}}, I came across your profile...",
  "delayDays": 0
}

Update or delete email steps:

PATCH  /v1/campaigns/:campaignId/emails/:emailId
DELETE /v1/campaigns/:campaignId/emails/:emailId

Add LinkedIn messages

POST /v1/campaigns/:campaignId/linkedin-messages
Authorization: Bearer <token>
Content-Type: application/json
 
{
  "message": "Hi {{firstName}}, I saw your background in distributed systems...",
  "delayDays": 2
}

Update or delete LinkedIn messages:

PUT    /v1/campaigns/:campaignId/linkedin-message/:messageId
DELETE /v1/campaigns/:campaignId/linkedin-message/:messageId

Add LinkedIn connection invite

POST /v1/campaigns/linkedin/:campaignId/invite
Authorization: Bearer <token>
Content-Type: application/json
 
{
  "note": "Hi, I'd love to connect about an opportunity..."
}

Manage campaign contacts

PATCH /v1/campaigns/:campaignId/contacts
Authorization: Bearer <token>
Content-Type: application/json
 
{
  "add": ["contact_01abc...", "contact_02abc..."]
}

Link candidate or prospect lists to a campaign:

PATCH /v1/campaigns/:campaignId/lists
Authorization: Bearer <token>
Content-Type: application/json
 
{
  "listIds": ["list_01abc..."]
}

Update campaign settings

PATCH /v1/campaigns/:campaignId/settings
Authorization: Bearer <token>
Content-Type: application/json
 
{
  "sendingWindow": { "startHour": 9, "endHour": 17 },
  "timezone": "America/New_York"
}

Launch, pause, and resume

POST /v1/campaigns/:campaignId/send
Authorization: Bearer <token>
POST /v1/campaigns/:campaignId/pause
Authorization: Bearer <token>
POST /v1/campaigns/:campaignId/resume
Authorization: Bearer <token>

Campaign lifecycle

StatusDescription
draftNot yet active
activeOutreach in progress
pausedPaused, no new messages sent
completedAll contacts have been fully sequenced
archivedClosed

View scheduled activity

See scheduled emails and LinkedIn messages grouped by contact:

GET /v1/scheduled-emails/campaign/:campaignId/grouped
GET /v1/scheduled-linkedin/campaign/:campaignId/grouped
GET /v1/scheduled-linkedin/campaign/:campaignId/analytics