Drift

1. How to connect to Drift?

You can follow the following steps to build a connection with your Zendesk Support. If you need any helps to set up your integration, please contact us.

1. Go to the Resources page and click the Add Resource button.

2. In the "Select a data source" step, select Drift under Apps.

3. In the "Configure the data source" step, enter the following information:

  • Access Token: The value of the access token generated. See here to get an access token.

4. In the "Select the tables", choose tables that you want to connect. See here for more details on each table.

5. Click Finish Setup. You will see a icon next to your Drift resource. It may take a few minutes to several hours depending on the data size and the number of your tables. Once your APP's data is ready, you will receive a notification email.

2. How to generate an access token for Drift?

1. Go to Drift Developer Platform and create a new app by clicking the Build Your App button under Your Apps.

2. Navigate to SETTINGS > OAuth & Scopes. Then, head to the Drift Scopes section and add the following permissions:

  • conversation_read (to access the Conversions table)

  • user_read (to access the User table)

  • account_read (to access the Accounts table)

3. Navigate to ACTIVATE YOUR APP > Installing to Drift, and then click the Install App to Drift button.

4. Copy the OAuth Access token to Acho.

3. How to set up Data Sync?

Acho supports creating schedulers to retrieve the latest data from your Drift account at a certain time interval. To see more details, you can visit here.

4. Available Tables

Accounts

Accounts are used in Drift's paid plans and can be queried/modified using the endpoints described in this section. Accounts can be used for ABM (account-based marketing) in Drift, and can be tied to the display conditions of particular playbooks - enabling account-specific marketing strategies.

Column Name

Type

Description

ownerId

integer

The ID of the owner in Drift (should be a known user ID)

name

string

The name of the company

domain

string

The domain of the company

accountId

string

Identifier for the company (used for lookup)

customProperties

array

List of custom properties associated with the account.

deleted

boolean

Is the account deleted (deleted accounts won't be visible in drift, but are retrievable by id for auditing).

createDateTime

integer

The timestamp creation time of the account

updateDateTime

integer

The timestamp last updated time of the account

targeted

boolean

Is the account currently targeted

Custom Properties:

Field

Type

Description

label

string

The readable name of the property

name

string

The internal name of the property

value

Type (type)

The value of the propertty

type

string

Data type of the property. One of {STRING, EMAIL, NUMBER, TEAMMEMBER, ENUM, DATE, DATETIME, LATLON, LAT, LON, PHONE, URL, ENUMARRAY}

Conversations

Conversations are the core objects in Drift. They represent a series of messages exchanged between a single contact and a group of users. Users are the employees of the organization or a bot. Each conversation has a time-ordered set of messages representing chat messages, internal notes, and metadata events within that communication

Column Name

Type

Description

id

integer

Conversations are uniquely identified by an id, which can be used to check its current state and its messages.

participants

integer

Each conversation has a set of participants; Drift Users who are taking part in, or responsible for communication with the Contact. This field is a set of ids that uniquely identify each User.

status

integer

Conversations in Drift are organized by their status: open Conversations are active and should be responded to, pending ones are waiting on follow up, closed are handled and not actively being communicated with. and bulk_sent are playbook messages that have reached an end user but not been interacted with. Conversations may move in between any of these statuses as users change them or new events cause them (e.g. if a contact sends a new message in a closed conversation, its status will be changed to open).

contactId

integer

The id of the contact that's being communicated with in this conversation as a long value (int64).

createdAt

integer

A Unix timestamp representing the moment that the conversation was created.

updatedAt

integer

A Unix timestamp representing the moment that the conversation was updated. For example, updated due to a status change or new message post.

orgId

integer

The Drift organization this conversation belongs to.

inboxId

integer

The inbox this conversation belongs to, can reconstruct drift conversation links via: https://app.drift.com/inboxes/{inboxId}/conversations/{conversationId}

conversationTags

array

Any tags applied to the conversation, include their color appearance in the conversation view within drift.

relatedPlaybookId

integer

This is the ID of the playbook that initiated the conversation. Conversations started from the default welcome message will not include a relatedPlaybookId in the conversation payload. This will be included in the response of the GET conversation endpoint if present.

Users

The word "User" is used to describe internal agents to your organization or account - while site visitors or contacts are those that are interacting from your website.

Column Name

Type

Description

id

integer

The Drift identifier for the user. This is will always be numeric.

createdAt

integer

A unix timestamp for when the contact was first captured.

name

string

The name of the user

alias

string

The short hand name for the user (if present)

email

string

The email of the user

phone

string

The phone number associated with the user

locale

string

The locale for the user

availability

string

Description of user's current state: one of "AVAILABLE", "OFFLINE", "ON_CALL".

role

string

Role of Drift user: one of "member", "admin", "agent"

timeZone

string

Timezone for the user represented as a string (if known)

avatarUrl

string

The url for the user's avatar (profile) image

verified

boolean

Is the user account verified? i.e. belongs to an actual person / not manually created?

bot

boolean

Is the user a bot user?

createdAt

integer

Timestamp (milliseconds) representing when the user was created

updatedAt

integer

timestamp (milliseconds) representing when the user was last updated