Attentive Tag

Attentive is a mobile messaging platform that helps consumers and companies to communicate with each other through personalized text messages. It also provides Attentive Tag which can be added to your website to utilize Attentive features like capturing behavioral data, triggering events, tracking revenue, etc.

RudderStack supports Attentive Tag as a destination to which you can seamlessly send your event data.

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

Getting started

Before configuring Attentive Tag as a destination in RudderStack, verify if the source platform is supported by Attentive Tag by referring to the table below:

Connection ModeWebMobileServer
Device mode---
Cloud modeSupportedSupportedSupported
To know more about the difference between cloud mode and device mode in RudderStack, refer to the RudderStack Connection Modes guide.

Once you have confirmed that the source platform supports sending events to Attentive Tag, follow these steps:

  1. From your RudderStack dashboard, add a source. Then, from the list of destinations, select Attentive Tag.
  2. Assign a name to the destination and click on Next.

Connection settings

To successfully configure Attentive Tag as a destination, you will need to configure the following settings:

Attentive Tag Connection Settings
  • API Key: Enter the API key present in the app you have created in the Attentive dashboard.
  • Sign Up Source Id: Enter the signup method's ID present in the Sign-up Units option in the Attentive dashboard.

For more information on getting the API Key and Sign Up Source ID, refer to the FAQ section below.

Identify

You can choose to subscribe or unsubscribe a user from an Attentive Tag list using the identify call.

The default behavior of identify call is to subscribe a user. To unsubscribe, you can pass identifyOperation as unsubscribe in the integrations object.

Subscribing users

RudderStack maps the following traits to the Attentive Tag properties while subscribing a user:

RudderStack TraitAttentive Tag PropertyPresence
traits.email/context.traits.email/properties.emailemailRequired if phone is not provided
traits.phone/context.traits.phone/properties.phonephoneRequired if email is not provided
externalIdexternalIdentifiersOptional
integrations.attentive_tag.signUpsourceIdsignUpSourceIdRequired if not passed in the RudderStack dashboard
context.traits.customIdentifiers/traits.customIdentifierscustomIdentifiersOptional

The externalIdentifiers property can be an array of objects containing identifiers like clientUserId, shopifyId, klaviyoId.

The signUpSourceId property in the integrations object is given a higher priority than in the destination definition.

A sample identify call to subscribe a user is shown below:

rudderanalytics.identify("jbu3471", {
"email": "alex@example.com",
"phone": "+1-202-555-0146",
"customIdentifiers": [{
"name": "string",
"value": "string"
}]
}, {
"externalId": [{
"type": "clientUserId",
"id": "144"
},
{
"type": "shopifyId",
"id": "224"
},
{
"type": "klaviyoId",
"id": "132"
}
],
"integrations": {
"signUpSourceId": "347393"
}
});
The externalId's are case sensitive and are expected to be in the above format for correct mapping.

Unsubscribing users

You can set identifyOperation to unsubscribe in the integrations object to unsubscribe a user, as shown below:

rudderanalytics.identify("jbu3471", {
"email": "alex@example.com",
"phone": "+1-202-555-0146",
}, {
"integrations": {
"attentive_tag": {
"identifyOperation": "unsubscribe",
},
"subscriptions": [{
"type": "MARKETING",
"channel": "TEXT"
}],
"notification": {
"language": "en-US"
}
}
});

RudderStack maps the following traits to the Attentive Tag properties while unsubscribing a user:

RudderStack TraitAttentive Tag PropertyPresence
traits.email/context.traits.email/properties.emailemailRequired if phone is not provided
traits.phone/context.traits.phone/properties.phonephoneRequired if email is not provided
integrations.attentive_tag.subscriptionssubscriptionsOptional
integrations.attentive_tag.notificationnotificationOptional

A user can unsubscribe from any specific channel by passing it inside the subscriptions in the integrations object. The supported values for subscriptions are:

"subscriptions": [{
"type": "MARKETING" || "TRANSACTIONAL" || "CHECKOUT_ABANDONED"
"channel": "TEXT" || "EMAIL"
}

You can also provide the language in the notification inside the integrations object to change the notification language.

Currently, RudderStack supports only en-US and fr-CA as the notification languages and these are case sensitive.

Passing an email attribute does not locate or unsubscribe a user from SMS subscription. Similarly, passing the phone attribute does not locate or unsubscribe a user from email subscription.

Track

The track call allows you to capture user actions along with the properties associated with these actions.

Note that an event is not triggered if the timestamp is older than 12 hours.

Property mapping

RudderStack maps the following track call properties to the Attentive Tag properties:

RudderStack PropertyAttentive Tag PropertyPresence
eventtypeRequired
traits.email/context.traits.email/properties.emailemailRequired if phone is not provided
traits.phone/context.traits.phone/properties.phonephoneRequired if email is not provided
externalIdexternalIdentifiersOptional
propertiespropertiesOptional
originalTimestamp/timestampoccuredAtOptional
properties.eventIdexternalEventIdOptional
context.traits.customIdentifiers/traits.customIdentifierscustomIdentifiersOptional

Make sure you pass the timestamp in the ISO 8601 format.

The event type is case sensitive. For example, Order shipped and Order Shipped would be considered as different event types. Also, the keys of properties object should not contain characters, such as [', ", {, }, [, ], \ , ,]

E-Commerce events

RudderStack converts the following e-commerce events to the corresponding Attentive Tag events:

RudderStack eventAttentive Tag event
Product List Viewed
Product Viewed
product-view
Product Addedadd-to-cart
Order Completedpurchase

Product List Viewed

The Product List Viewed event properties are mapped to the following Attentive Tag properties:

RudderStack PropertyAttentive Tag PropertyPresence
traits.email/context.traits.email/properties.emailemailRequired if phone is not provided
traits.phone/context.traits.phone/properties.phonephoneRequired if email is not provided
externalIdexternalIdentifiersOptional
properties.products.$.product_idproductIdRequired
properties.products.$.pricevalueRequired
properties.products.$.variantproductVariantIdRequired
properties.products.$.currencycurrencyOptional
properties.products.$.namenameOptional
properties.products.$.urlproductUrlOptional
properties.products.$.image_urlproductImageOptional
context.traits.customIdentifiers/traits.customIdentifierscustomIdentifiersOptional

Product Viewed/Product Added

The Product Viewed and Product Added event properties are mapped to the following Attentive Tag properties:

RudderStack PropertyAttentive Tag PropertyPresence
traits.email/context.traits.email/properties.emailemailRequired if phone is not provided
traits.phone/context.traits.phone/properties.phonephoneRequired if email is not provided
externalIdexternalIdentifiersOptional
context.traits.customIdentifiers/traits.customIdentifierscustomIdentifiersOptional

Order Completed

The Order Completed event properties are mapped to the following Attentive Tag properties:

RudderStack PropertyAttentive Tag PropertyPresence
traits.email/context.traits.email/properties.emailemailRequired if phone is not provided
traits.phone/context.traits.phone/properties.phonephoneRequired if email is not provided
externalIdexternalIdentifiersOptional
properties.products.$.variantproductVariantIdRequired
properties.products.$.product_idproductIdRequired
properties.products.$.pricevalueRequired
properties.products.$.currencycurrencyOptional
properties.products.$.namenameOptional
properties.products.$.urlproductUrlOptional
properties.products.$.image_urlproductImageOptional

A sample track call for the above e-commerce event parameters is shown below:

rudderanalytics.track("Order Completed", {
"products": [{
"product_id": "507f1f77bcf86cd799439011",
"name": "MOBILE",
"variant": "green",
"price": "19",
"image_url": "image.com",
"url": "url.com",
"quantity": "2",
"currency": "USD"
}]
}, {
"traits": {
"email": "alex@example.com",
"phone": "+1-202-555-0146"
},
"externalId": [{
"type": "clientUserId",
"id": "144"
},
{
"type": "shopifyId",
"id": "224"
},
{
"type": "klaviyoId",
"id": "132"
}
]
});

FAQ

Where can I find the Attentive Tag API Key?

To obtain the Attentive Tag API Key, follow these steps:

  1. In your Attentive dashboard, go to Marketplace.
  2. Create an app by clicking on Create App.
  3. Then, click on Create and you will be able to see the API Key, as shown:
Attentive Tag Connection Settings

Where can I find the Attentive Tag Sign Up Source Id?

Go to the Sign-up Units option in the Attentive dashboard where you will be able to locate the ID across Sign-up method, as shown:

Attentive Tag Connection Settings

Contact us

For queries on any of the sections covered in this guide, you can contact us or start a conversation in our Slack community.

Contents