Marketing Automation
Drip
API integration
Ship Marketing Automation features without building the integration. Full Drip API access via Proxy and 60+ MCP-ready tools for AI agents — extend models and mappings to fit your product.
Talk to usUse Cases
Why integrate with Drip
Common scenarios for SaaS companies building Drip integrations for their customers.
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
Ship these features with Truto + Drip
Concrete product features your team can ship faster by leveraging Truto’s Drip integration instead of building from scratch.
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.
SuperAI
Drip AI agent tools
Comprehensive AI agent toolset with fine-grained control. Integrates with MCP clients like Cursor and Claude, or frameworks like LangChain.
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.
Why Truto
Why use Truto’s MCP server for Drip
Other MCP servers give you a static tool list for one app. Truto gives you a managed, multi-tenant MCP infrastructure across 800+ integrations.
Auto-generated, always up to date
Tools are dynamically generated from curated documentation — not hand-coded. As integrations evolve, tools stay current without manual maintenance.
Fine-grained access control
Scope each MCP server to read-only, write-only, specific methods, or tagged tool groups. Expose only what your AI agent needs — nothing more.
Multi-tenant by design
Each MCP server is scoped to a single connected account with its own credentials. The URL itself is the auth token — no shared secrets, no credential leaking across tenants.
Works with every MCP client
Standard JSON-RPC 2.0 protocol. Paste the URL into Claude, ChatGPT, Cursor, or any MCP-compatible agent framework — tools are discovered automatically.
Built-in auth, rate limits, and error handling
Tool calls execute through Truto’s proxy layer with automatic OAuth refresh, rate-limit handling, and normalized error responses. No raw API plumbing in your agent.
Expiring and auditable servers
Create time-limited MCP servers for contractors or automated workflows. Optional dual-auth requires both the URL and a Truto API token for high-security environments.
How It Works
From zero to integrated
Go live with Drip in under an hour. No boilerplate, no maintenance burden.
Link your customer’s Drip account
Use Truto’s frontend SDK to connect your customer’s Drip account. We handle all OAuth and API key flows — you don’t need to create the OAuth app.
We handle authentication
Don’t spend time refreshing access tokens or figuring out secure storage. We handle it and inject credentials into every API request.
Call our API, we call Drip
Truto’s Proxy API is a 1-to-1 mapping of the Drip API. You call us, we call Drip, and pass the response back in the same cycle.
Unified response format
Every response follows a single format across all integrations. We translate Drip’s pagination into unified cursor-based pagination. Data is always in the result attribute.
FAQs
Common questions about Drip on Truto
Authentication, rate limits, data freshness, and everything else you need to know before you integrate.
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.
Drip
Get Drip integrated into your app
Our team understands what it takes to make a Drip integration successful. A short, crisp 30 minute call with folks who understand the problem.