---
title: Drip API Integration on Truto
slug: drip
category: Marketing Automation
canonical: "https://truto.one/integrations/detail/drip/"
---

# Drip API Integration on Truto



**Category:** Marketing Automation  
**Status:** Generally available

## MCP-ready AI tools

Truto exposes 60 tools for Drip that AI agents can call directly.

- **list_all_drip_campaign_subscriptions** — List all of a subscriber's Email Series Campaign subscriptions in Drip. Returns: id, campaign_id, status, is_complete, lap, last_sent_email_index, last_sent_email_at, links. Required: subscriber_id_or_email.
- **list_all_drip_accounts** — List all Drip accounts the authenticated user has access to. Returns the collection of account records, each including its id.
- **get_single_drip_account_by_id** — Get a specific Drip account by id. Returns the account object including its id. Required: id.
- **list_all_drip_broadcasts** — List all Single-Email Campaigns (broadcasts) in a Drip account. Returns each broadcast's id, name, subject, and status, ordered by created_at ascending by default. Optional filters: status (draft, active, or paused; defaults to all), sort (created_at or name), and direction (asc or desc).
- **create_a_drip_broadcast** — Create a Single-Email Campaign (broadcast) in Drip. Returns the created broadcast record including its id, name, subject, status, send_at, and created_at. Required: name, subject, content (with an html key at minimum). New broadcasts start in draft status; scheduling and sending are managed through the Drip UI.
- **get_single_drip_broadcast_by_id** — Fetch a single Single-Email Campaign (broadcast) in a Drip account by id. Returns: id, status, name, from_name, from_email, postal_address, localize_sending_time, send_at, bcc, created_at, href, preview_url, subject, html_body, text_body, links. Required: id.
- **update_a_drip_broadcast_by_id** — Update a draft Single-Email Campaign (broadcast) in Drip. Updates are partial: only the fields you include are changed. Returns the updated broadcast object including id, status, name, subject, and created_at. Only broadcasts in the draft status can be updated via the API; scheduling and recipient segmentation are managed in the Drip UI. Required: id.
- **delete_a_drip_broadcast_by_id** — Delete a Single-Email Campaign (broadcast) in Drip. This is a soft delete: the broadcast transitions to the deleted status and is hidden from default listings while historical data is preserved. Returns the deleted broadcast object including id, status, name, subject, and created_at. Broadcasts currently in the sending status cannot be deleted. Required: id.
- **drip_broadcasts_send_test** — Send a test email for a Single-Email Campaign (broadcast) in Drip to preview how it appears to recipients. Returns an empty 204 response on success; test emails carry a [TEST] prefix in the from name. Required: broadcast_id, to_emails.
- **list_all_drip_campaigns** — List all Email Series Campaigns in a Drip account. Returns campaign records including id, name, status, and created_at, filterable by status and sortable by name or created_at.
- **get_single_drip_campaign_by_id** — Fetch a single Email Series Campaign in Drip by id. Returns the campaign record including id, name, status, and created_at. Required: and id.
- **drip_campaigns_activate** — Activate an Email Series Campaign in Drip so it starts sending to subscribers. Returns an empty 204 response on success. Required: and campaign_id.
- **drip_campaigns_pause** — Pause an Email Series Campaign in Drip to stop it from sending to subscribers. Returns an empty 204 response on success. Required: and campaign_id.
- **list_all_drip_custom_field_identifiers** — List all custom field identifiers used in a Drip account. Returns an array of identifier strings such as first_name and last_name.
- **list_all_drip_goals** — List all conversion goals in a Drip account. Returns an array of goal objects with id, status, name, url, default_value, counting_method, and created_at.
- **get_single_drip_goal_by_id** — Fetch a single conversion (goal) by id in Drip. Returns the goal object with its id, name, status, url, default_value, counting_method, and created_at. Required: id.
- **drip_events_record** — Record an event in Drip for a subscriber, such as 'Logged in', optionally with custom properties and a back-dated timestamp. Returns an empty 204 response on success. Required: and events. Use the Batch API instead for collections of events.
- **list_all_drip_event_actions** — List all custom event actions used in a Drip account. Returns the account's event action names as plain strings (e.g. "Ate a sandwich", "Started a trial").
- **list_all_drip_forms** — List all forms in a Drip account. Returns form objects including id, headline, description, orientation, is_widget_enabled, and created_at.
- **get_single_drip_form_by_id** — Fetch a specific form in Drip by id. Returns the form object including id, headline, description, button_text, orientation, and created_at. Required: id and account_id.
- **drip_metrics_fetch_email** — Fetch email performance metrics for a Drip account. Returns: summary, emails, fields[email], fields[first_name], form_id, page_title, submit, time_zone, url, visitor_uuid. Date range capped at 366 days; not paginated.
- **drip_orders_create_or_update** — Create or update a legacy Drip order for a subscriber. Returns an empty JSON response on success (202 Accepted). Requires account_id. To update an existing order, include provider and upstream_id in the payload; a matching subscriber record must already exist, and creating an order increments the subscriber's lifetime_value by the order total.
- **drip_refunds_create_or_update** — Create or update a refund for a Drip order via the legacy orders API. Returns an empty JSON response on success (202 Accepted). Requires provider, order_upstream_id, and amount; include upstream_id to update an existing refund. Creating a refund automatically decrements the subscriber's lifetime_value by the refund amount.
- **drip_subscribers_create_or_update** — Create or update a Drip subscriber, matched by email, id, or visitor_uuid. Returns the subscriber record including id, email, status, custom_fields, and tags. Required: subscribers.
- **list_all_drip_subscribers** — List all subscribers in a Drip account, filterable by status, tags, and subscribed dates. Returns subscriber records including id, email, status, custom_fields, and tags.
- **get_single_drip_subscriber_by_id** — Fetch a single Drip subscriber by id (the upstream API also accepts an email address or visitor UUID in its place). Returns the subscriber record including id, email, status, custom_fields, and tags. Required: id.
- **drip_subscribers_remove_from_campaigns** — Remove a Drip subscriber from one or all Email Series Campaigns. Returns the updated subscriber record including id, email, status, custom_fields, and tags. Required: subscriber_id.
- **drip_subscribers_unsubscribe_all** — Unsubscribe a Drip subscriber from all mailings. Returns the updated subscriber record including id, email, status, custom_fields, and tags. Required: subscriber_id.
- **delete_a_drip_subscriber_by_id** — Delete a subscriber in Drip by their id (the subscriber's ID or email). Returns an empty 204 response on success. Required: id.
- **list_all_drip_tags** — List all tags used in a Drip account. Returns an array of tag name strings (e.g. Customer, SEO).
- **drip_tags_apply** — Apply a tag to a subscriber in Drip. Responds with a 201 Created and an empty JSON body on success. Required: and tags.
- **drip_tags_remove** — Remove a tag from a subscriber in Drip, identified by subscriber id or email. Returns an empty 204 response on success. Required: subscriber_id and tag.
- **list_all_drip_users** — Fetch the authenticated Drip user associated with the API credentials. Returns: email, name, time_zone. Takes no parameters.
- **list_all_drip_workflows** — List all workflows in a Drip account, optionally filtered by status. Returns each workflow's id, href, name, status, description, created_at, and node_count.
- **get_single_drip_workflow_by_id** — Fetch a single Drip workflow by id. Returns: id, href, name, description, status, created_at, updated_at, node_count, details, links. Required: id and account_id.
- **drip_workflows_get_details** — Fetch a Drip workflow's full node structure — its entry triggers, ordered steps, and everything nested beneath decisions, goals, forks, and split tests — read-only. Returns: id, href, name, description, status, created_at, updated_at, node_count, details, links. Required: workflow_id and account_id.
- **drip_workflows_activate** — Activate a Drip workflow so it starts sending to new subscribers. Returns an empty 204 response on success. Required: workflow_id and account_id.
- **drip_workflows_pause** — Pause an active Drip workflow so it stops sending to new subscribers. Returns an empty 204 response on success. Required: workflow_id and account_id.
- **create_a_drip_workflow_trigger** — Create a workflow trigger on a Drip workflow, such as a Leadpages landing-page submission trigger. Returns: id, trigger_type, provider, actions_required. Required: workflow_id.
- **list_all_drip_workflow_triggers** — List all workflow triggers on a Drip workflow. Returns trigger objects with id, type, trigger_type, provider, properties, and actions_required. Required: workflow_id.
- **update_a_drip_workflow_trigger_by_id** — Update a workflow trigger on a Drip workflow, e.g. change its provider, trigger_type, or properties. Returns: id, trigger_type, provider, actions_required. Required: workflow_id, id.
- **list_all_drip_webhooks** — List all webhooks in a Drip account. Returns webhook records including id, post_url, events, include_received_email, version, and created_at.
- **get_single_drip_webhook_by_id** — Fetch a single Drip webhook by id. Returns the webhook record including id, post_url, events, include_received_email, version, and created_at. Required: id.
- **create_a_drip_webhook** — Create a new webhook in a Drip account. Returns the created webhook including id, post_url, events, include_received_email, version, and created_at. Required: post_url; events defaults to all events except subscriber.received_email.
- **delete_a_drip_webhook_by_id** — Destroy a Drip webhook by id. Returns an empty 204 response on success. Required: id.
- **drip_subscriber_batches_batch_upsert** — Create or update a batch of 1–1,000 Drip subscribers in a single request, with tags, time zones, and custom fields. Processes asynchronously in the background, so data may not appear immediately. Returns an empty 201 response on success. Required: and a batches payload containing a subscribers array (1–1,000 objects, each with email).
- **drip_subscriber_batches_batch_unsubscribe** — Globally unsubscribe a batch of 1–1,000 Drip subscribers by email in a single request, processed in the background. Returns an empty 204 response on success. Required: and a batches payload containing a subscribers array (1–1,000 objects, each with email).
- **drip_event_batches_batch_record** — Record a batch of up to 1,000 events in Drip. Queues them for background processing and returns an array of unique request id strings for checking the request status later; data may take a moment to appear in the UI. Required: and batches (an events array of 1-1000 event objects, each with email and action).
- **drip_order_batches_batch_upsert** — Create or update a batch of orders in Drip via the legacy v2 batch endpoint. Returns the queued batch's request_ids (UUID strings) for later status checks. Required: orders (an array of 1-1000 objects containing order data). Batch requests are processed in the background, so data may take a moment to appear.
- **drip_order_batches_batch_upsert_shopper_activity** — Create or update a batch of orders in Drip via the v3 Shopper Activity API. Returns the queued batch's request_ids (UUID strings) for later status checks. Required: orders (an array of 1-1000 objects containing order activity, with an action such as placed or updated). Batch requests are processed in the background, so data may take a moment to appear.
- **drip_cart_batches_batch_upsert** — Create or update a batch of up to 1,000 carts in Drip. Processed asynchronously in the background, so data may not appear immediately. Returns: an array of request_id strings for later status checks. Required: carts (1–1000 cart objects with provider, action, cart_id, cart_url, and email or person_id; each item needs product_id, product_variant_id, name, and price).
- **drip_product_batches_batch_upsert** — Create or update a batch of up to 1,000 products in Drip via the Shopper Activity API. Returns request_ids that can be used to check the status of each request later. Required: products (an Array with between 1 and 1000 objects containing product activity). The batch is processed in the background, so there may be a delay before the data appears in the account.
- **drip_cart_activity_create_or_update** — Create or update a shopper's cart in Drip by recording a cart activity event with a `created` or `updated` action. Returns the id of the queued request (`request_id`). Required: provider, action, cart_id, cart_url, plus either email or person_id to identify the shopper.
- **drip_order_activity_create_or_update** — Create or update a single order in Drip's shopper activity: submits one order action (e.g. placed or updated) with the buyer's email or person_id, item lines, totals, and billing/shipping addresses, which Drip queues for processing. Returns the queued request's request_id. Required: provider, email.
- **drip_product_activity_create_or_update** — Create or update a product in Drip by recording a product activity event; Drip queues the request for processing and returns its request_id. Requires provider, action (created, updated, or deleted), product_id, product_variant_id, name, and price.
- **create_a_drip_campaign_subscriber** — Subscribe one or more people to an Email Series Campaign in Drip. Returns the subscribed subscriber record with email, status, custom_fields, tags, and created_at. Required: campaign_id, and a subscribers array of 1–1000 objects (each with email).
- **list_all_drip_campaign_subscribers** — List all subscribers subscribed to an Email Series Campaign in Drip. Returns subscriber records with email, status, custom_fields, tags, and created_at. Required: campaign_id.
- **create_a_drip_workflow_subscriber** — Start one or more subscribers on a Drip workflow. Returns the created subscriber records including id, status, email, custom_fields, and time_zone. Required: workflow_id and subscribers.email. The subscriber is only added if the workflow is active.
- **delete_a_drip_workflow_subscriber_by_id** — Remove a subscriber from a Drip workflow by id or email. Returns an empty 204 response on success. Required: workflow_id and id. If the subscriber is not already on the workflow, nothing happens.
- **list_all_drip_workflow_subscribers** — List all subscribers on a Drip workflow. Returns subscriber records including id, status, email, custom_fields, and created_at. Required: workflow_id.

## How it works

1. **Link your customer's Drip account.** Use Truto's frontend SDK; we handle every OAuth and API key flow so you don't need to create the OAuth app.
2. **Authentication is automatic.** Truto refreshes tokens, stores credentials securely, and injects them into every API request.
3. **Call Truto's API to reach Drip.** The Proxy API is a 1-to-1 mapping of the Drip API.
4. **Get a unified response format.** Every response uses a single shape, with cursor-based pagination and data in the `result` field.

## Use cases

- **Power quiz and lead-gen flows with instant automation** — Let your users push quiz respondents or form leads into Drip with mapped custom fields and tags, then drop them directly into a product recommendation workflow. Ideal for interactive quiz builders, landing page tools, and lead capture platforms serving DTC brands.
- **Sync support context to prevent tone-deaf marketing** — Helpdesk and customer support SaaS can tag subscribers with open ticket status and pull them out of promotional campaigns while issues are active. Reinstates them automatically once the ticket is resolved.
- **Trigger lifecycle emails from loyalty and engagement events** — Loyalty, reviews, and community platforms can record custom events like 'Unlocked VIP Tier' or 'Left a Review' and update point balances on subscriber records. Merchants use these as entry points for their Drip workflows without any custom glue code.
- **Feed shopper activity from headless checkout and subscription billing** — Alternative checkout engines, subscription billing tools, and headless commerce platforms can push cart, order, product, and refund activity into Drip so abandoned cart recovery and revenue attribution work accurately outside of standard Shopify data.
- **Programmatically route subscribers into campaigns and workflows** — Instead of requiring your users to configure Drip triggers manually, enroll subscribers directly into specific campaigns or workflows from inside your product. Removes a configuration step and keeps automation logic in your app.

## What you can build

- **Bidirectional subscriber sync with custom field mapping** — Upsert subscribers into Drip individually or via batch, mapping your product's data to Drip custom fields using the custom field identifier list to validate schema.
- **Event-driven workflow triggers** — Record custom events against subscribers in real time or via batch so merchants can use your product's actions as entry points for their Drip visual workflows.
- **Shopper activity pipeline for carts, orders, and products** — Stream cart, order, product, and refund activity into Drip's Shopper Activity API using single or batch endpoints to power abandoned cart flows and revenue dashboards.
- **Direct campaign and workflow enrollment** — Add or remove subscribers from specific campaigns and workflows from your UI, including bulk unsubscribe and remove-from-campaigns operations for compliance scenarios.
- **Tag-based audience orchestration** — Apply and remove tags on subscribers to pause promotional sends, mark segment membership, or signal state changes from your app to the merchant's Drip account.
- **Broadcast and campaign management surface** — Expose Drip broadcasts and campaigns inside your product with create, update, send test, activate, and pause operations so marketers can manage sends without leaving your UI.

## FAQs

### How does authentication work for connecting end-user Drip accounts?

Truto handles the full auth handshake for your end users and manages token storage and account identification. Your users connect their Drip account through a flow you embed, and Truto exposes the authorized connection to call any of the available Drip tools.

### Can we handle high-volume subscriber and event syncs?

Yes. Drip exposes dedicated batch endpoints for subscribers, events, orders, carts, and products. The batch tools (e.g. subscriber batch upsert, event batch record, order batch upsert) are processed asynchronously by Drip and are the recommended path for bulk operations.

### How do we map our product's data to Drip custom fields?

Use the list custom field identifiers tool to discover what custom fields exist on a given Drip account, then pass matching keys in the custom_fields object when upserting subscribers. New custom fields are created implicitly when you upsert a subscriber with a previously unseen key.

### Can we react to changes happening inside Drip in real time?

Yes. You can create and manage Drip webhooks programmatically to subscribe to subscriber, campaign, and event changes. Truto can route these inbound events into your product so you don't need to poll.

### Can we enroll subscribers directly into a workflow or campaign?

Yes. Use the create workflow subscriber or create campaign subscriber tools to programmatically add a subscriber to a specific automation, bypassing the need for your users to configure triggers in Drip's UI.

### Does the integration support e-commerce revenue tracking?

Yes. The cart, order, and product activity tools (both single and batch variants) push data into Drip's Shopper Activity model, which powers abandoned cart recovery, post-purchase flows, and revenue attribution reporting.
