Drip Cloud Mode Integration

Send events to Drip using RudderStack cloud mode.

info
For more information on sending events via cloud mode, refer to the RudderStack Connection Modes guide.

Find the open source transformer code for this destination in the GitHub repository.

Identify

The identify call lets you add a new user or update an existing user with the latest information like the user’s dripId,email,name, etc.

If you provide the Campaign ID in the dashboard while setting up the destination, RudderStack will subscribe every user to this campaign ID by default. Alternatively, you can also send the information via the identify call using externalId as shown in the code snippet below. Note that this takes a higher precedence than the campaign ID provided in the RudderStack dashboard.

info
Either the dripId or email is required for the identify call. If you are creating a user, then you must provide the email. In case of updating a user, you can provide either the assigned dripId or email.

A sample identify call is as shown below:

rudderanalytics.identify(
  "user123",
  {
    email: "sampleuser@testmail.com",
    firstName: "Demo",
    lastName: "Example",
    tags: ["tag1", "tag2"],
    customFields: {
      filter1: "filterval1",
    },
  },
  {
    externalId: [
      {
        type: "dripCampaignId",
        id: "<your campaign id>",
      },
      {
        type: "dripId",
        id: "<user's drip id>",
      },
    ],
  }
)

Identify Mapping

The following table includes all fields in identify call with their relative mapping to the Drip fields:

RudderStack FieldDrip Field
newEmailnew_email
phonephone
firstName/first_name/firstnamefirst_name
lastName/last_name/lastnamelast_name
tagstags
removeTagsremove_tags
statusstatus
initialStatusinitial_status
timeZonetime_zone
countrycountry
citycity
zipzip
euConsenteu_consent
euConsentMessageeu_consent_message
ipip_address
addressaddress1
address2address2
lifetimeValuelifetime_value
prospectprospect
baseLeadScorebase_lead_score
customFieldscustom_fields
info

Note that:

  • If customFields is not present, RudderStack extracts all fields apart from the ones mentioned in the table above and constructs a customFields object.
  • If customFields is present and there are other fields apart from the ones mentioned in the table, RudderStack ignores them.
  • The customFields object’s value must not exceed 1000 characters and must contain only letters, numbers, and underscores. Otherwise, RudderStack drops its value.
  • The address field should be an object.

When you provide the Campaign ID, you can also send some extra fields with the call.

The following table lists all supported fields for the campaign call:

RudderStack FieldDrip Field
doubleOptindouble_optin
startingEmailIndexstarting_email_index
reactivateIfRemovedreactivate_if_removed
info
For more information on using these fields, refer to the Drip documentation.

Track

The track call lets you record the user events and the information associated with them, like action, occurred_at, and customFields. Either id or email must be provided in this call.

The User Creation Mode option in the RudderStack dashboard lets you create a user with their email if they don’t already exist. If you don’t want new users to be created, disable this option.

warning
If the dripId is provided in the call, then new users will not be created even if the User Creation Mode option is enabled in the RudderStack dashboard.

A sample track call is as shown below:

rudderanalytics.track(
  "Event Name",
  {
    email: "sampleuser@testmail.com",
    affiliation: "custom_store",
    order_id: "123456",
    products: [
      {
        name: "product_name",
        price: 10.0,
      },
    ],
  },
  {
    externalId: [
      {
        type: "dripId",
        id: "<user's drip id>",
      },
    ],
  }
)

Special Events

warning
This destination does not strictly adhere to the RudderStack Ecommerce Event Spec.

You can create or update a user order if the event name belongs to either of the following special events:

  • order updated
  • order completed
  • order refunded
  • order cancelled
  • checkout started
  • fulfilled / order fulfilled

Track Fields

A track call can contain the following fields:

RudderStack FieldDrip Field
prospectprospect
customFieldsproperties
occurred_atoccurred_at
info

Note that:

  • If customFields is not present, RudderStack extracts all fields apart from the ones mentioned in the table above and constructs a customFields object.
  • If customFields is present and there are other fields apart from the ones mentioned in the table, RudderStack ignores them.
  • The customFields object’s value must not exceed 1000 characters and must contain only letters, numbers, and underscores. Otherwise, RudderStack drops its value.

For the special events mentioned above, the following fields are also supported:

RudderStack FieldDrip Field
affiliationprovider
initial_statusinitial_status
order_idorder_id
order_public_idorder_public_id
totalgrand_total
discountdiscounts
taxtotal_taxes
total_feestotal_fees
shippingtotal_shipping
refund_amountrefund_amount
currencycurrency
order_urlorder_url
billing_addressbilling_address
shipping_addressshipping_address
occurred_atoccurred_at
productsitems

Note that products is an array of objects. Every object in this array can contain the following fields:

RudderStack FieldDrip Field
product_idproduct_id
skusku
namename
product_variant_idproduct_variant_id
brandbrand
priceprice
quantityquantity
categoriescategories
discountsdiscounts
taxestaxes
feesfees
shippingshipping
totaltotal
urlproduct_url
image_urlimage_url
info

The products field is not mandatory. However, if provided, each object must contain the name and price field, otherwise it will be dropped.

Note that the track call will still not be aborted in such a scenario.


Questions? Contact us by email or on Slack