Drip
App · 20 actions
Manage your Drip email marketing audience: create, update, tag and unsubscribe subscribers, record custom events, start people on workflows, take them off campaigns, and draft broadcasts.
Actions
| Action | What it does |
|---|---|
| Apply tag | Add a tag to a subscriber by email. |
| Create broadcast | Create a draft single-email broadcast to everyone in the account. |
| Create or update subscriber | Create a subscriber, or update the one with this email or id: name, address, phone, SMS number and consent, time zone, lifetime value, custom fields, tags to add or remove, lead scoring, GDPR consent and status. |
| Delete broadcast | Delete a broadcast. |
| Delete subscriber | Permanently delete a subscriber and their history from the account. |
| Get subscriber | Read one subscriber by email address or Drip id, with their status, custom fields, tags, lead score and lifetime value. |
| List accounts | List every Drip account the API token's user can reach, with each one's id, name, website, default sender and postal address. |
| List broadcasts | List single-email broadcasts by status, with their subject, sender, send time and content. |
| List Email Series Campaigns | List the account's Email Series Campaigns with their status, sender, number of emails and subscriber counts. |
| List event names | List the custom event names recorded in the account so far. |
| List subscribers | List subscribers, filtered by status, tags or when they subscribed. |
| List tags | List every tag used in the account. |
| List workflows | List the account's workflows with their status. |
| Record event | Record a custom event, such as 'Logged in' or 'Upgraded plan', against a subscriber, with optional properties and time. |
| Remove subscriber from campaigns | Take someone off one Email Series Campaign, or off all of them. |
| Remove subscriber from workflow | Take someone off a workflow. |
| Remove tag | Take a tag off a subscriber by email. |
| Start subscriber on workflow | Start someone on a workflow, creating or updating them as a subscriber with the details given. |
| Unsubscribe from all mailings | Unsubscribe someone from every mailing in the account: broadcasts, campaigns and workflow emails. |
| Update broadcast | Change a draft broadcast's name, subject, content, preheader or postal address. |
Apply tag
Add a tag to a subscriber by email. A new tag name creates the tag. Automations triggered by the tag run as usual.
Inputs
- Email
emailtextRequired - The subscriber's email address.
- Tag
tagtextRequired - The tag. Type a new one to create it.
Outputs
appliedtrue/false- Always true once applied
emailtext- The subscriber's email
tagtext- The tag
Example output
{
"applied": true,
"email": "jo@example.com",
"tag": "Customer"
}Create broadcast
Create a draft single-email broadcast to everyone in the account. It is not scheduled or sent; review and send it from Drip.
Inputs
- Name
nametextRequired - The broadcast's internal name (up to 255 characters).
- Subject
subjecttextRequired - The email's subject line. Drip Liquid tags such as {{ subscriber.first_name }} work.
- HTML body
html_bodytextRequired - The email's HTML: a full document or just the body content, which is wrapped for you. No JavaScript.
- Plain-text body
text_bodytext - The plain-text version. Leave empty and Drip generates it from the HTML.
- Preheader
preheadertext - The preview text inboxes show after the subject.
- Postal address
postal_addresstext - The postal address shown in the footer. Defaults to the account's.
- Add the required footer
add_compliance_footertrue/false - Drip refuses an email without an unsubscribe link and your postal address. When on, whichever is missing is added at the bottom. Turn off only if your HTML already has {{ unsubscribe_url }} and {{ inline_postal_address }}.Default:
true.
Outputs
broadcastobject- The broadcast
Example output
{
"broadcast": {
"created_at": "2026-10-10T10:00:00Z",
"from_email": "hello@example.com",
"from_name": "Acme",
"href": "https://api.getdrip.com/v2/9999999/broadcasts/777888999",
"id": "777888999",
"name": "October newsletter",
"preview_url": "https://www.getdrip.com/preview/777888999",
"send_at": null,
"status": "draft",
"subject": "What's new in October"
}
}Create or update subscriber
Create a subscriber, or update the one with this email or id: name, address, phone, SMS number and consent, time zone, lifetime value, custom fields, tags to add or remove, lead scoring, GDPR consent and status. Fields left empty are not changed. Sends no email.
Inputs
- Email
emailtext - The subscriber's email address. Give this or the subscriber id.
- Subscriber ID
subscriber_idtext - The subscriber's Drip id, from 'List subscribers' or an earlier step. Give this or the email.
- New email
new_emailtext - Change the subscriber's email address to this one.
- First name
first_nametext - The subscriber's first name.
- Last name
last_nametext - The subscriber's last name.
- Address line 1
address1text - The first line of their address.
- Address line 2
address2text - The second line of their address.
- City
citytext - Their city.
- State or region
statetext - Their state, county or region.
- ZIP or postal code
zip_codetext - Their ZIP or postal code.
- Country
countrytext - Their country.
- Phone
phonetext - Their phone number.
- SMS number
sms_numbertext - A US mobile number in international format, like +15551234567.
- SMS consent
sms_consenttrue/false - Whether the person agreed to receive text messages.
- Lifetime value
lifetime_valuenumber - What the person has spent in total, in the account's currency (for example 49.99).At least 0.
- IP address
ip_addresstext - The person's IP address, if known.
- Your user ID
external_user_idtext - Your own system's id for this person (Drip's user_id).
- Time zone
time_zonetext - The subscriber's time zone name. Drip's default is Etc/UTC.
- Custom fields
custom_fieldsobject - Custom field values by field identifier, for example shirt_size: M. A new identifier creates the field.
- Add tags
tagslist - Tags to add to the subscriber. Type a new one to create it.
- Prospect
prospecttrue/false - Whether Drip should treat the person as a prospect and score them as a lead. Drip's default is yes.
- GDPR consent
eu_consenttext - Whether the person granted or denied consent to be emailed under GDPR.One of:
granted,denied. - GDPR consent wording
eu_consent_messagetext - The consent text the person agreed to, kept with their consent record.
- Remove tags
remove_tagslist - Tags to take off the subscriber.
- Starting lead score
base_lead_scorenumber - The lead score to start from. Drip's default is 30.At least 0.
- Status
statustext - Set the subscriber's status, for existing or new subscribers.One of:
active,unsubscribed. - Status if new
initial_statustext - The status to give the subscriber only if they are new. Defaults to active.One of:
active,unsubscribed.
Outputs
subscriberobject- The subscriber as Drip has them now
Example output
{
"subscriber": {
"base_lead_score": 30,
"created_at": "2026-10-01T10:00:00Z",
"custom_fields": {
"shirt_size": "M"
},
"deliverable": true,
"email": "jo@example.com",
"first_name": "Jo",
"href": "https://api.getdrip.com/v2/9999999/subscribers/z1togz2hcjrkpp5treip",
"id": "z1togz2hcjrkpp5treip",
"last_name": "Rivera",
"lead_score": 30,
"lifetime_value": 4999,
"prospect": true,
"status": "active",
"tags": [
"Customer"
],
"time_zone": "America/New_York",
"user_id": "user-123",
"utc_offset": -240
}
}Delete broadcast
Delete a broadcast. Drip keeps it with the status 'deleted'. One that is sending cannot be deleted.
Inputs
- Broadcast ID
broadcast_idtextRequired - The broadcast's id, from 'List broadcasts' or 'Create broadcast'. A Drip broadcast link works too.
Outputs
broadcastobject- The broadcast, now deleted
broadcast_idtext- The broadcast deleted
deletedtrue/false- Always true once deleted
Example output
{
"broadcast": {
"created_at": "2026-10-10T10:00:00Z",
"from_email": "hello@example.com",
"from_name": "Acme",
"href": "https://api.getdrip.com/v2/9999999/broadcasts/777888999",
"id": "777888999",
"name": "October newsletter",
"preview_url": "https://www.getdrip.com/preview/777888999",
"send_at": null,
"status": "deleted",
"subject": "What's new in October"
},
"broadcast_id": "777888999",
"deleted": true
}Delete subscriber
Permanently delete a subscriber and their history from the account. This cannot be undone; to stop emailing someone, unsubscribe them instead.
Inputs
- Subscriber
subscribertextRequired - The subscriber's email address or Drip subscriber id. A Drip subscriber link works too.
Outputs
deletedtrue/false- Always true once deleted
subscribertext- The email or id deleted
Example output
{
"deleted": true,
"subscriber": "jo@example.com"
}Get subscriber
Read one subscriber by email address or Drip id, with their status, custom fields, tags, lead score and lifetime value.
Inputs
- Subscriber
subscribertextRequired - The subscriber's email address or Drip subscriber id. A Drip subscriber link works too.
Outputs
subscriberobject- The subscriber as Drip has them now
Example output
{
"subscriber": {
"base_lead_score": 30,
"created_at": "2026-10-01T10:00:00Z",
"custom_fields": {
"shirt_size": "M"
},
"deliverable": true,
"email": "jo@example.com",
"first_name": "Jo",
"href": "https://api.getdrip.com/v2/9999999/subscribers/z1togz2hcjrkpp5treip",
"id": "z1togz2hcjrkpp5treip",
"last_name": "Rivera",
"lead_score": 30,
"lifetime_value": 4999,
"prospect": true,
"status": "active",
"tags": [
"Customer"
],
"time_zone": "America/New_York",
"user_id": "user-123",
"utc_offset": -240
}
}List accounts
List every Drip account the API token's user can reach, with each one's id, name, website, default sender and postal address. The result also names the account this connection works in.
Inputs
None.
Outputs
accountslist- The accounts
connected_account_idtext- The account this connection's steps use
countnumber- How many
Example output
{
"accounts": [
{
"created_at": "2026-01-01T10:00:00Z",
"default_from_email": "hello@example.com",
"default_from_name": "Acme",
"href": "https://api.getdrip.com/v2/accounts/9999999",
"id": "9999999",
"name": "Acme",
"primary_email": "owner@example.com",
"url": "www.example.com"
}
],
"connected_account_id": "9999999",
"count": 1
}List broadcasts
List single-email broadcasts by status, with their subject, sender, send time and content. Deleted ones are left out unless chosen.
Inputs
- Status
statustext - Only broadcasts with this status. Leave empty for all but deleted ones.One of:
draft,scheduled,sending,sent,canceled,deleted,all(All (including deleted)). - Sort by
sorttext - What to sort by.One of:
created_at(Created),updated_at(Updated),send_at(Send time),name. - Sort direction
directiontext - Ascending or descending.One of:
asc(Ascending),desc(Descending). - Page
pagenumber - Which page of results to return, starting at 1.At least 1. Default:
1. - Results per page
per_pagenumber - How many to return per page, 1-100. Defaults to 100.From 1 to 100. Default:
100.
Outputs
broadcastslist- The broadcasts
countnumber- How many are on this page
pagenumber- The page returned
total_countnumber- How many there are in all
total_pagesnumber- How many pages there are
Example output
{
"broadcasts": [
{
"created_at": "2026-10-10T10:00:00Z",
"from_email": "hello@example.com",
"from_name": "Acme",
"href": "https://api.getdrip.com/v2/9999999/broadcasts/777888999",
"id": "777888999",
"name": "October newsletter",
"preview_url": "https://www.getdrip.com/preview/777888999",
"send_at": null,
"status": "draft",
"subject": "What's new in October"
}
],
"count": 1,
"page": 1,
"total_count": 1,
"total_pages": 1
}List Email Series Campaigns
List the account's Email Series Campaigns with their status, sender, number of emails and subscriber counts.
Inputs
- Status
statustext - Only those with this status. Leave empty for all of them.One of:
draft,active,paused. - Sort by
sorttext - What to sort by. Defaults to when they were created.One of:
created_at(Created),name. - Sort direction
directiontext - Ascending or descending.One of:
asc(Ascending),desc(Descending). - Page
pagenumber - Which page of results to return, starting at 1.At least 1. Default:
1.
Outputs
campaignslist- The campaigns
countnumber- How many are on this page
pagenumber- The page returned
total_countnumber- How many there are in all
total_pagesnumber- How many pages there are
Example output
{
"campaigns": [
{
"active_subscriber_count": 120,
"created_at": "2026-08-01T10:00:00Z",
"email_count": 5,
"from_email": "hello@example.com",
"from_name": "Acme",
"href": "https://api.getdrip.com/v2/9999999/campaigns/123456",
"id": "123456",
"name": "Onboarding course",
"status": "active",
"unsubscribed_subscriber_count": 4
}
],
"count": 1,
"page": 1,
"total_count": 1,
"total_pages": 1
}List event names
List the custom event names recorded in the account so far.
Inputs
- Page
pagenumber - Which page of results to return, starting at 1.At least 1. Default:
1. - Results per page
per_pagenumber - How many to return per page, 1-1000. Defaults to 100.From 1 to 1000. Default:
100.
Outputs
countnumber- How many are on this page
event_actionslist- The event names
pagenumber- The page returned
total_countnumber- How many there are in all
total_pagesnumber- How many pages there are
Example output
{
"count": 2,
"event_actions": [
"Logged in",
"Upgraded plan"
],
"page": 1,
"total_count": 1,
"total_pages": 1
}List subscribers
List subscribers, filtered by status, tags or when they subscribed. Drip returns active subscribers unless another status is chosen.
Inputs
- Status
statustext - Which subscribers to include. Defaults to active.One of:
active(Active (default)),unsubscribed,active_or_unsubscribed(Active or unsubscribed),undeliverable,all. - Tags
tagslist - Only subscribers with any of these tags.
- Subscribed after
subscribed_afterdate and time - Only subscribers who subscribed after this time.
- Subscribed before
subscribed_beforedate and time - Only subscribers who subscribed before this time.
- Page
pagenumber - Which page of results to return, starting at 1.At least 1. Default:
1. - Results per page
per_pagenumber - How many to return per page, 1-1000. Defaults to 100.From 1 to 1000. Default:
100.
Outputs
countnumber- How many are on this page
pagenumber- The page returned
subscriberslist- The subscribers
total_countnumber- How many there are in all
total_pagesnumber- How many pages there are
Example output
{
"count": 1,
"page": 1,
"subscribers": [
{
"base_lead_score": 30,
"created_at": "2026-10-01T10:00:00Z",
"custom_fields": {
"shirt_size": "M"
},
"deliverable": true,
"email": "jo@example.com",
"first_name": "Jo",
"href": "https://api.getdrip.com/v2/9999999/subscribers/z1togz2hcjrkpp5treip",
"id": "z1togz2hcjrkpp5treip",
"last_name": "Rivera",
"lead_score": 30,
"lifetime_value": 4999,
"prospect": true,
"status": "active",
"tags": [
"Customer"
],
"time_zone": "America/New_York",
"user_id": "user-123",
"utc_offset": -240
}
],
"total_count": 1,
"total_pages": 1
}List tags
List every tag used in the account.
Inputs
None.
Outputs
countnumber- How many
tagslist- The tag names
Example output
{
"count": 2,
"tags": [
"Customer",
"SEO"
]
}List workflows
List the account's workflows with their status.
Inputs
- Status
statustext - Only those with this status. Leave empty for all of them.One of:
draft,active,paused. - Sort by
sorttext - What to sort by. Defaults to when they were created.One of:
created_at(Created),name. - Sort direction
directiontext - Ascending or descending.One of:
asc(Ascending),desc(Descending). - Page
pagenumber - Which page of results to return, starting at 1.At least 1. Default:
1.
Outputs
countnumber- How many are on this page
pagenumber- The page returned
total_countnumber- How many there are in all
total_pagesnumber- How many pages there are
workflowslist- The workflows
Example output
{
"count": 1,
"page": 1,
"total_count": 1,
"total_pages": 1,
"workflows": [
{
"created_at": "2026-09-01T10:00:00Z",
"href": "https://api.getdrip.com/v2/9999999/workflows/444555666",
"id": "444555666",
"name": "Welcome series",
"status": "active"
}
]
}Record event
Record a custom event, such as 'Logged in' or 'Upgraded plan', against a subscriber, with optional properties and time. Workflows can start or branch on it.
Inputs
- Event name
event_actiontextRequired - What happened, for example 'Logged in'. Use the same name each time; 'List event names' shows those already used.
- Email
emailtext - The subscriber's email address. Give this or the subscriber id.
- Subscriber ID
subscriber_idtext - The subscriber's Drip id, from 'List subscribers' or an earlier step. Give this or the email.
- Properties
propertiesobject - Details of the event, for example plan: Pro. For a conversion, give value in cents.
- When it happened
occurred_atdate and time - When the event happened. Defaults to now.
- Prospect
prospecttrue/false - Whether Drip should treat the person as a prospect and score them as a lead. Drip's default is yes.
Outputs
emailtext- The subscriber's email
event_actiontext- The event name
occurred_attext- The time you gave, else null (Drip returns no body)
recordedtrue/false- Always true once recorded
subscriber_idtext- The subscriber id you gave, else null (Drip returns no body)
Example output
{
"email": "jo@example.com",
"event_action": "Logged in",
"occurred_at": null,
"recorded": true,
"subscriber_id": null
}Remove subscriber from campaigns
Take someone off one Email Series Campaign, or off all of them. They stay subscribed to the account and still receive broadcasts.
Inputs
- Subscriber
subscribertextRequired - The subscriber's email address or Drip subscriber id. A Drip subscriber link works too.
- Email Series Campaign
campaign_idtext - Only remove them from this campaign. Leave empty to remove them from every Email Series Campaign.
Outputs
campaign_idtext- The campaign they left, or empty for all
subscriberobject- The subscriber
Example output
{
"campaign_id": null,
"subscriber": {
"base_lead_score": 30,
"created_at": "2026-10-01T10:00:00Z",
"custom_fields": {
"shirt_size": "M"
},
"deliverable": true,
"email": "jo@example.com",
"first_name": "Jo",
"href": "https://api.getdrip.com/v2/9999999/subscribers/z1togz2hcjrkpp5treip",
"id": "z1togz2hcjrkpp5treip",
"last_name": "Rivera",
"lead_score": 30,
"lifetime_value": 4999,
"prospect": true,
"status": "active",
"tags": [
"Customer"
],
"time_zone": "America/New_York",
"user_id": "user-123",
"utc_offset": -240
}
}Remove subscriber from workflow
Take someone off a workflow. Nothing happens if they were not on it.
Inputs
- Workflow
drip_workflow_idtextRequired - The workflow. A Drip workflow link works too.
- Subscriber
subscribertextRequired - The subscriber's email address or Drip subscriber id. A Drip subscriber link works too.
Outputs
removedtrue/false- Whether they were removed (false when the workflow is not active, which Drip does not allow)
subscribertext- The email or id removed
warningslist- Anything to know
workflow_idtext- The workflow
Example output
{
"removed": true,
"subscriber": "jo@example.com",
"warnings": [],
"workflow_id": "444555666"
}Remove tag
Take a tag off a subscriber by email.
Inputs
- Email
emailtextRequired - The subscriber's email address.
- Tag
tagtextRequired - The tag. Type a new one to create it.
Outputs
emailtext- The subscriber's email
removedtrue/false- Always true once removed
tagtext- The tag
Example output
{
"email": "jo@example.com",
"removed": true,
"tag": "Customer"
}Start subscriber on workflow
Start someone on a workflow, creating or updating them as a subscriber with the details given. Drip only starts people on an active workflow; for a draft or paused one the step says so in 'warnings' and 'added' is false.
Inputs
- Workflow
drip_workflow_idtextRequired - The workflow. A Drip workflow link works too.
- Email
emailtext - The subscriber's email address. Give this or the subscriber id.
- Subscriber ID
subscriber_idtext - The subscriber's Drip id, from 'List subscribers' or an earlier step. Give this or the email.
- First name
first_nametext - The subscriber's first name.
- Last name
last_nametext - The subscriber's last name.
- Address line 1
address1text - The first line of their address.
- Address line 2
address2text - The second line of their address.
- City
citytext - Their city.
- State or region
statetext - Their state, county or region.
- ZIP or postal code
zip_codetext - Their ZIP or postal code.
- Country
countrytext - Their country.
- Phone
phonetext - Their phone number.
- Your user ID
external_user_idtext - Your own system's id for this person (Drip's user_id).
- Time zone
time_zonetext - The subscriber's time zone name. Drip's default is Etc/UTC.
- Custom fields
custom_fieldsobject - Custom field values by field identifier, for example shirt_size: M. A new identifier creates the field.
- Add tags
tagslist - Tags to add to the subscriber. Type a new one to create it.
- Prospect
prospecttrue/false - Whether Drip should treat the person as a prospect and score them as a lead. Drip's default is yes.
- GDPR consent
eu_consenttext - Whether the person granted or denied consent to be emailed under GDPR.One of:
granted,denied. - GDPR consent wording
eu_consent_messagetext - The consent text the person agreed to, kept with their consent record.
Outputs
addedtrue/false- Whether they were started (the workflow is active)
subscriberobject- The subscriber
warningslist- Anything to know
workflow_idtext- The workflow
workflow_statustext- The workflow's status: draft, active or paused
Example output
{
"added": true,
"subscriber": {
"base_lead_score": 30,
"created_at": "2026-10-01T10:00:00Z",
"custom_fields": {
"shirt_size": "M"
},
"deliverable": true,
"email": "jo@example.com",
"first_name": "Jo",
"href": "https://api.getdrip.com/v2/9999999/subscribers/z1togz2hcjrkpp5treip",
"id": "z1togz2hcjrkpp5treip",
"last_name": "Rivera",
"lead_score": 30,
"lifetime_value": 4999,
"prospect": true,
"status": "active",
"tags": [
"Customer"
],
"time_zone": "America/New_York",
"user_id": "user-123",
"utc_offset": -240
},
"warnings": [],
"workflow_id": "444555666",
"workflow_status": "active"
}Unsubscribe from all mailings
Unsubscribe someone from every mailing in the account: broadcasts, campaigns and workflow emails. Their record is kept.
Inputs
- Subscriber
subscribertextRequired - The subscriber's email address or Drip subscriber id. A Drip subscriber link works too.
Outputs
subscriberobject- The subscriber as Drip has them now
Example output
{
"subscriber": {
"base_lead_score": 30,
"created_at": "2026-10-01T10:00:00Z",
"custom_fields": {
"shirt_size": "M"
},
"deliverable": true,
"email": "jo@example.com",
"first_name": "Jo",
"href": "https://api.getdrip.com/v2/9999999/subscribers/z1togz2hcjrkpp5treip",
"id": "z1togz2hcjrkpp5treip",
"last_name": "Rivera",
"lead_score": 30,
"lifetime_value": 4999,
"prospect": true,
"status": "unsubscribed",
"tags": [
"Customer"
],
"time_zone": "America/New_York",
"user_id": "user-123",
"utc_offset": -240
}
}Update broadcast
Change a draft broadcast's name, subject, content, preheader or postal address. Only the fields given change. Drip refuses to edit a broadcast that is scheduled or sent.
Inputs
- Broadcast ID
broadcast_idtextRequired - The broadcast's id, from 'List broadcasts' or 'Create broadcast'. A Drip broadcast link works too.
- Name
nametext - A new internal name (up to 255 characters).
- Subject
subjecttext - The email's subject line. Drip Liquid tags such as {{ subscriber.first_name }} work.
- HTML body
html_bodytext - The email's HTML: a full document or just the body content, which is wrapped for you. No JavaScript.
- Plain-text body
text_bodytext - The plain-text version. Leave empty and Drip generates it from the HTML.
- Preheader
preheadertext - The preview text inboxes show after the subject.
- Postal address
postal_addresstext - The postal address shown in the footer. Defaults to the account's.
- Add the required footer
add_compliance_footertrue/false - Drip refuses an email without an unsubscribe link and your postal address. When on, whichever is missing is added at the bottom. Turn off only if your HTML already has {{ unsubscribe_url }} and {{ inline_postal_address }}.Default:
true.
Outputs
broadcastobject- The broadcast
Example output
{
"broadcast": {
"created_at": "2026-10-10T10:00:00Z",
"from_email": "hello@example.com",
"from_name": "Acme",
"href": "https://api.getdrip.com/v2/9999999/broadcasts/777888999",
"id": "777888999",
"name": "October v2",
"preview_url": "https://www.getdrip.com/preview/777888999",
"send_at": null,
"status": "draft",
"subject": "What's new in October"
}
}