Skip to main content

Send

The /send endpoint allows you to send SMSs and emails to your contacts.

Send a single SMS​

POST /send/sms

Send a single SMS to a contact.

  • 🔐 Permissions: ["sendLog.create"]

Request​

Body

FieldTypeRequiredDescription
contentstring✅The content of the SMS. Can include templates if you're only sending to contacts in your org
cellstring✅The cell number of the contact you want to send the SMS to
skipNonContactsboolean✅Whether to skip sending to contacts not in your org
countrystring✅The country code to send to.
deliveryMethod'reverse' | 'standard' | 'transactional'✅The delivery method to use.
campaign_idstring❌The id of the campaign to associate with this send. Allows hooks to trigger on reply.
sendOptionsSendOptions❌The options for the SMS

Example

{
"content": "Hello World",
"cell": "0111111111",
"skipNonContacts": true,
"country": "ZA",
"deliveryMethod": "reverse",
"campaign_id": "123",
"sendOptions": {
"testMode": true
}
}

Response​

Success

200
{
ok: true,
data: {
// A unique id identifying this particular send
// Useful for querying the delivery status of this send
customerId: string,
totalCost: number,
}
}

Error

400
{
ok: false;
error: string;
}

Send a single email​

POST /send/email

Send one of a campaign's email templates to a single contact, straight away. For example, a welcome email right after someone signs up.

  • 🔐 Permissions: ["sendLog.create"]

The email is linked to the campaign, the same as a campaign send: it counts in the campaign's reports, and {{CLICK_URL}} in the template tracks clicks against it.

The recipient must already be a contact in your org with this email address. Upload them first with PUT /contacts. To do both in one request, use the send option there instead.

The campaign must be active, and the from address must belong to a verified email identity.

Request​

Body

FieldTypeRequiredDescription
campaign_idstring✅The campaign to send from, and attribute the send to
emailstring✅The email address of the contact to send to
fromstring✅The email address to send from
from_namestring❌The name to send from
templateTemplateSelector❌Which of the campaign's email templates to send. { "kind": "manual", "data": { "template_id": "..." } }, { "kind": "random", "data": {} } (default), or { "kind": "best", "data": {} }
to_start_atstring❌Schedule to send for a future time. Default is to send immediately.

Example

{
"campaign_id": "689a0b0c0d0e0f0g0h0i0",
"email": "[email protected]",
"from": "[email protected]",
"from_name": "Your Brand",
"template": {
"kind": "manual",
"data": { "template_id": "680a0b0c0d0e0f0g0h0i1" }
}
}

Response​

Success

200
{
ok: true,
data: { message: "Email queued" }
}

Error

400
{
ok: false;
// e.g. "No contacts found (campaign_id:...)" when no contact has this email
error: string;
}

Send bulk email​

POST /send/email/bulk

Send a bulk email to multiple recipients.

  • 🔐 Permissions: ["sendLog.create"]

Request​

Body

FieldTypeRequiredDescription
fromstring✅The email address to send form
template_idstring✅The _id of the email template to send
destinationsstring[]✅The list of email addresses to send to
filter_non_contactsboolean❌Filter out email addresses that aren't in your Dripcel contacts. Required if the template you're sending contains custom fields to replace.
to_start_atstring❌Schedule to send for a future time. Default is to send immediately.

Example

{
"from": "[email protected]",
"template_id": "template123",
"destinations": ["[email protected]"],
"filter_non_contacts": true,
"to_start_at": "2023-10-01T12:00:00Z"
}

Response​

Success

200
{
ok: true,
data: { }
}

Error

400
{
ok: false;
error: string;
}