Drip
Drip is an ecommerce email and SMS marketing platform. Datafly Signal records your events against Drip subscribers by email (POST /v2/{account_id}/events) to drive workflows, lead scoring and campaigns. Recording an event for a new email creates the subscriber.
Why route Drip through Datafly Signal
- Events come from your server, not the browser. They reach Drip even when a tracker blocker or a failed page unload would have dropped a client-side call.
- Delivery is queued and retried. Signal buffers to Kafka and retries on 429 or a transient failure rather than dropping the event; a permanent rejection goes to the dead-letter queue with the vendor’s reason.
- One consent decision governs every destination. Drip is gated by the same consent state as the rest of your stack, so a withdrawal applies everywhere at once.
Get your Drip credentials
Find your account ID
It is in the Drip dashboard URL (app.getdrip.com/<account_id>/...) and under Settings > General Info.
Copy your API token
Under Settings > User Settings > API Token.
Configuration
| Field | Required | Description |
|---|---|---|
account_id | Yes | Your Drip account ID. Found in Settings > General Info, and in the dashboard URL (app.getdrip.com/<account_id>/...). |
api_token | Yes | Your Drip API token. Found under Settings > User Settings > API Token. Used as the HTTP Basic auth username (password is empty). |
Management UI setup
- Go to Integrations in the sidebar and open the Integration Library tab.
- Find Drip under Marketing Automation and click Install.
- Choose a preset, enter the fields above and click Install Integration.
Management API setup
curl -X POST http://localhost:8084/v1/admin/integration-catalog/drip/install \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "Drip",
"variant": "default",
"config": {
"account_id": "your_account_id",
"api_token": "your_api_token"
},
"delivery_mode": "server_side"
}'What Signal sends
An example request, rendered from the ecommerce preset for purchase:
POST https://api.getdrip.com/v2/9999999/events
events=%7B%27action%27%3A+%27Order+Completed%27%2C+%27email%27%3A+%27neill%40example.com%27%2C+%27occurred_at%27%3A+%272025-09-22T00%3A13%3A20Z%27%2C+%27properties%27%3A+%7B%27coupon%27%3A+%27AUTUMN10%27%2C+%27currency%27%3A+%27GBP%27%2C+%27item_count%27%3A+2%2C+%27order_id%27%3A+%27ORD-1001%27%2C+%27shipping%27%3A+499%2C+%27tax%27%3A+4666%2C+%27value%27%3A+27998%7D%7D| Field | Source |
|---|---|
events[0].email | The subscriber email from identify() traits, trimmed and lower-cased. Required. |
events[0].action | The event name shown under Presets (Order Completed, Product Viewed …). |
events[0].occurred_at | Event time, ISO 8601. |
events[0].properties | The event’s properties. value, tax and shipping are in cents as Drip requires (ISO 4217 minor units, so JPY is not multiplied); currency upper-cased; product fields from the first items[] element, plus item_count. |
Drip keys the subscriber on the email and accepts no hashed identifier, so it is sent in plain text. An event without an email is not sent.
Presets
| Preset | Signal event → vendor event |
|---|---|
| Retail | view_item → Product Viewed, add_to_cart → Product Added, remove_from_cart → Product Removed, add_to_wishlist → Product Added to Wishlist, begin_checkout → Checkout Started, purchase → Order Completed, refund → Order Refunded, sign_up → Signed Up, login → Logged In |
| B2B / SaaS | sign_up → Signed Up, login → Logged In, trial_started → Trial Started, trial_converted → Trial Converted, subscription_started → Subscription Started, subscription_cancelled → Subscription Cancelled, demo_requested → Demo Requested |
| Default | sign_up → Signed Up, login → Logged In, view_item → Product Viewed, add_to_cart → Product Added, begin_checkout → Checkout Started, purchase → Order Completed, generate_lead → Lead Submitted |
Events not listed are not sent. Each preset is a starting point: add, rename or remove mappings on the installed integration.
Notes and limits
- Drip allows 3,600 single-event calls an hour; Signal paces delivery at one a second. Page views are not sent (Drip’s own script tracks visits).
- Drip’s Shopper Activity API is its preferred ecommerce feed; it is not used yet (#1494).
Consent
Marketing-automation integrations have no consent category by default. Assign the marketing category when you install Drip, so an event is delivered only when the visitor has granted it. Cookie-banner consent is not email or SMS opt-in: keep messaging opt-in in Drip.
Verify it’s working
- Open the integration in the Signal Management UI and watch Live Events while you trigger a mapped event.
- Confirm a 2xx response from Drip.
- Find the contact in Drip and check the event or record arrived.
Troubleshooting
| Symptom | Resolution |
|---|---|
401 | The API token is wrong. |
404 | The account ID is wrong. |
422 | The email address is invalid. |