API/Partner Outreach (Quick Send) API

Partner Outreach (Quick Send) API

Manage the emails partners send prospects from Quick send, and the workflows they can start.

Quick send lets a partner type a prospect's email right after a call and send them an email your organization prepared, with the partner's promo code and tracked link filled in. The partner can also start the prospect on a workflow. These endpoints manage what partners get to send. The sending itself happens in the app, as the signed-in partner, because it depends on who they are: their code, their reply-to address and their daily limit.

The growth-cli outreach command wraps every endpoint below.

Read the setup

GET /api/v1/email/outreach

Returns the organization's partner_outreach templates and its workflows, each with its quickSend switch.

{
  "templates": [
    {
      "id": "k57...",
      "name": "Free kit",
      "description": null,
      "subject": "Your free kit",
      "previewText": null,
      "contentBlocks": [{ "type": "text", "props": { "markdown": "Your code: **@{promoCode}**" } }],
      "updatedAt": 1790000000000
    }
  ],
  "workflows": [{ "id": "j97...", "name": "Kit follow-up", "status": "active", "quickSend": true }]
}

Create a template

POST /api/v1/email/outreach/templates
FieldTypeRequiredDescription
namestringYesName partners pick in the form.
subjectstringYesSubject line; variables are allowed.
contentBlocksobject[]YesBlocks in the same { type, props } shape as workflow emails.
previewTextstringNoInbox preview line.
descriptionstringNoInternal note.
curl -X POST https://your-growth-app.convex.site/api/v1/email/outreach/templates \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name":"Free kit","subject":"Your free kit","contentBlocks":[{"type":"text","props":{"markdown":"Hello @{firstName|there}, your code is **@{promoCode}**."}},{"type":"button","props":{"label":"Get the kit","url":"@{referralLink}"}}]}'

Edit a template

PATCH /api/v1/email/outreach/templates/<id>

Takes the same fields, all optional. Only the keys present are written; an empty previewText or description clears it.

Open a workflow to partners

PATCH /api/v1/email/outreach/workflows/<workflowId>
{ "quickSend": true }

Partners can then start prospects on that workflow from Quick send. A partner's own workflows are always available to them and have no switch. Teammates can start any active workflow.

Recent sends

GET /api/v1/email/outreach/sends?limit=30

Returns the latest sends (up to 100) with the prospect's email, the partner, the template and the workflow involved, the Quick send status (pending, sent, skipped or failed) and, once sent, delivery.status: where the email got to (delivered, opened, clicked, bounced, complained).

Variables

These resolve from the sending partner's record:

VariableValue
@{promoCode}The code the sender picks, else the partner's newest active one.
@{referralCode}The partner's referral code.
@{referralLink}The partner's tracked link.
@{partnerName}The partner's full name.
@{partnerFirstName}The partner's first name.
@{partnerEmail}The partner's email.
@{organizationName}Your organization's name.
@{firstName}The prospect's first name, when typed.
@{message}The sender's optional personal note.

When a partner sends, the prospect's contact is tagged partner-outreach and attributed to that partner if nobody else was first. The partner fields are copied onto the contact, so emails in the workflow they start can use the same variables. @{message} is the exception: it belongs to the first email only.

Affiliate Revenue APIGetting Started