Using Marketo Webhooks To Fetch Conversation Transcript
As you may already know, Drift's Marketo native integration has the capability to send custom activities to your Marketo instance. The "New Conversation Activity" includes the conversation transcript as part of its payload. For more information on this, you can visit the following link:
Marketo Integration - New Conversation Activity
In this guide, we will explain how you can sync the conversation transcript to a custom field in the Person object inside Marketo.
Limitations
Because of Marketo limitations, this process will not work correctly when the conversation transcript includes emojis.
Step 1: Save the conversation ID
In our first step, we will capture the conversation ID and save it as a contact attribute in Drift. To achieve this, we need to add the following script below the Drift Widget installation snippet:
<script>
window.drift.on("conversation:firstInteraction", function(data) {
drift.api.setUserAttributes({
recent_conversationId: data.conversationId
})
});
</script>
This code will wait until the site visitor interacts with the bot, and it will store the conversationId
as a custom attribute in Drift, recent_conversationId
.
Step 2: Create custom fields in Marketo
We will need two new custom fields in Marketo, one for the recent_conversationId
attribute and one that we will use to map the conversation transcript.
For the conversation ID the field needs to have the following settings:
For the conversation transcript, the field will have the following settings:
Step 3: Map the Conversation ID to Marketo
Now that we have saved the conversation ID as a Contact attribute and created a custom field in Marketo, we can proceed to the Marketo Integration page to map them together.
How to Map Attributes in Marketo
Overwrite
It is important to toggle the "On" option for the Overwrite feature so that we always end up with the most recent conversation ID in Marketo.
Step 4: Drift API Access Token
For the next step, you will need to obtain an API Access token. For detailed instructions, please refer to this guide.
App Scopes
This app requires
conversation_read
scope.
Step 5: Create Marketo Webhook
In Marketo, navigate to your Admin Settings, search for the Webhooks
option and then click on New Webhook
.
Use the following settings:
For the URL we are using Drift's conversation transcript endpoint:
https://driftapi.com/conversations/<conversationId>/transcript
We will replace <conversationId>
with a Marketo token. This token will be our conversation ID field we create earlier.
Next, you will edit the Webhook Headers and add the Access Token as a Bearer token, like this:
Finally, we need to map the webhook response to the Conversation Transcript field we created earlier:
Step 6: Trigger your Webhook
Set up a Trigger
This step will depend on your preferred method of triggering the Transcript Fetcher Webhook. The following is just an example, but feel free to customize it according to your needs.
Webhooks can be called as part of Campaign Flows, you can add it like this:
The idea is to include some triggers so that the webhook is called only in specific scenarios, such as:
- When a new Drift Conversation Activity is added
- When a new Person is created
- When a Person is updated
We recommend adding a filter to ensure that the webhook is only called when the Conversation ID field is not empty, in order to avoid any errors. In the end, your triggers may look similar to this:
Updated 13 days ago