Sendinblue Cloud Mode Integration
4 minute read
RudderStack lets you send your event data to Sendinblue via cloud mode.
Find the open source code for this destination in the GitHub repository.
Identify
You can use the identify call to add a contact in Sendinblue. If a contact already exists, RudderStack updates the contact details.
A sample identify call is shown below:
rudderanalytics.identify(
"alex@example.com", {
firstName: "Alex",
lastName: "Keener",
phone: "+12025550146",
payment: 2,
age: 21,
location: "USA",
}, {
externalId: [{
type: "sendinblueIncludeListIds",
id: [1,2],
},
],
}
);Supported mappings
This section explains the property mappings for identify call made to perform different operations on contacts such as their creation, deletion, updation, etc.
Create or update a contact
The following table details the property mappings between RudderStack and Sendinblue to create or update a contact:
| RudderStack property | Sendinblue property | Data type |
|---|---|---|
traits.emailcontext.traits.emailproperties.emailRequired, if phone number is not present. | email | String |
traits.phonecontext.traits.phoneproperties.phoneRequired, if email is not present. | attributes.SMS | String |
traits.newEmailcontext.traits.newEmail | attributes.EMAIL | String |
traits.firstNametraits.firstnametraits.first_namecontext.traits.firstNamecontext.traits.firstnamecontext.traits.first_name | attributes.FIRSTNAME | String |
traits.lastnametraits.last_namecontext.traits.lastNamecontext.traits.lastnamecontext.traits.last_nametraits.lastName | attributes.LASTNAME | String |
traitscontext.traits | attributes | Object |
integrations.sendinblue.emailBlacklisted | emailBlacklisted | Boolean |
integrations.sendinblue.smsBlacklisted | smsBlacklisted | Boolean |
context.externalId.id (when context.externalId.type = sendinblueIncludeListIds) | listIds | Int64 Array |
Create contact via DOI (Double-opt-in) flow
The following table details the property mappings between RudderStack and Sendinblue to create a contact via DOI flow:
| RudderStack property | Sendinblue property | Data type |
|---|---|---|
traits.emailcontext.traits.emailproperties.emailRequired | email | String |
context.externalId.id (when context.externalId.type = sendinblueIncludeListIds) Required | includeListIds | Int64 Array |
context.externalId.id (when context.externalId.type = templateId)OR templatedId (defined in RudderStack dashboard) Required | templateId | Int64 (DOI template’s ID) |
| Redirection URL (defined in RudderStack dashboard) Required | redirectionUrl | URL |
traits.phonecontext.traits.phoneproperties.phone | attributes.SMS | String |
traits.firstNametraits.firstnametraits.first_namecontext.traits.firstNamecontext.traits.firstnamecontext.traits.first_name | attributes.FIRSTNAME | String |
traits.lastNametraits.lastnametraits.last_namecontext.traits.lastNamecontext.traits.lastnamecontext.traits.last_name | attributes.LASTNAME | String |
traitscontext.traits | attributes | Object |
Update a DOI contact
The following table details the property mappings between RudderStack and Sendinblue to update a DOI contact:
| RudderStack property | Sendinblue property | Data type |
|---|---|---|
traits.emailcontext.traits.emailproperties.emailcontext.externalId.id (when context.externalId.type = sendinblueContactId)Required | identifier | String |
traits.phonecontext.traits.phoneproperties.phone | attributes.SMS | String |
traits.newEmailcontext.traits.newEmail | attributes.EMAIL | String |
traits.firstNametraits.firstnametraits.first_namecontext.traits.firstNamecontext.traits.firstnamecontext.traits.first_name | attributes.FIRSTNAME | String |
traits.lastNametraits.lastnametraits.last_namecontext.traits.lastNamecontext.traits.lastnamecontext.traits.last_name | attributes.LASTNAME | String |
traitscontext.traits | attributes | Object |
integrations.sendinblue.emailBlacklisted | emailBlacklisted | Boolean |
integrations.sendinblue.smsBlacklisted | smsBlacklisted | Boolean |
context.externalId.id (when context.externalId.type = sendinblueIncludeListIds) | listIds | Int64 array |
context.externalId.id (when context.externalId.type = sendinblueUnlinkListIds) | unlinkListIds | Int64 array |
Delete contact from list
RudderStack uses this API to delete a contact from a given list if the Create contact via Double-opt-in setting is disabled in the dashboard andsendinblueUnlinkListIdsis provided in the event’sexternalIdfield.
The following table details the property mappings between RudderStack and Sendinblue to delete a contact from list:
| RudderStack property | Sendinblue property | Data type |
|---|---|---|
traits.emailcontext.traits.emailproperties.emailtraits.phonecontext.traits.phoneproperties.phoneRequired, if contactID is not present. | emails | String |
context.externalId.id (when context.externalId.type = sendinblueContactId) | ids | String |
Track
You can use the track call to:
- Track event: Capture events on your website along with (optional) extra information about the event.
- Track Link: Capture clicks on your website along with (optional) extra information about the click.
A sample track call is shown below:
// track events
rudderanalytics.track("Card Created", {
id: "a4123c72-c6f7-4d8e-b8cd-4abb8a807891",
products: [{
product_id: 1234,
product_name: "Track Pants",
amount: 1,
price: 220,
},
{
product_id: 5768,
product_name: "T-Shirt",
amount: 5,
price: 1058,
},
],
});
//track link
rudderanalytics.track("trackLink", {
link: "https://mail.google.com/mail/u/0/#inbox",
subject: "Email confirmation",
});RudderStack sends the track call to the Track Link endpoint if the event name istrackLinkin the event payload. For any other event name, it sends the event to the Track event endpoint.
Supported mappings
This section explains the property mappings for track call to capture events and links on your website.
Track event
The following table details the property mappings between RudderStack and Sendinblue for Track event endpoint:
| RudderStack property | Sendinblue property | Data type |
|---|---|---|
traits.emailcontext.traits.emailproperties.emailtraits.phonecontext.traits.phoneproperties.phoneRequired | email | String |
eventRequired | event | String |
traitscontext.traits | properties | Object |
properties | eventdata.data | Object |
Value of integrations.sendinblue.propertiesIdKey in properties | eventdata.id | String |
Track Link
The following table details the property mappings between RudderStack and Sendinblue for Track Link endpoint:
| RudderStack property | Sendinblue property | Data type |
|---|---|---|
traits.emailcontext.traits.emailproperties.emailtraits.phonecontext.traits.phoneproperties.phoneRequired | email | String |
properties.linkRequired | link | String |
properties | properties | Object |
Page
You can use the page call to send any page-related information to Sendinblue.
A sample page call is shown below:
rudderanalytics.page("Home")Supported mappings
The following table details the property mappings between RudderStack and Sendinblue:
| RudderStack property | Sendinblue property | Data type |
|---|---|---|
traits.emailcontext.traits.emailproperties.emailtraits.phonecontext.traits.phoneproperties.phoneRequired | email | String |
properties.urlcontext.page.urlRequired | page | String |
properties.titlecontext.page.title | properties.ma_title | String |
properties.pathcontext.page.path | properties.ma_path | String |
properties.referrercontext.page.referrer | properties.ma_referrer | String |
properties.namePage Viewed | properties.sib_name | String |
properties | properties | Object |