# Mailshake

Mailshake is a sales engagement platform designed to streamline and automate cold outreach efforts.

See the [Schema](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Mailshake.htm#Schema) section for a list of objects available for replication.

## Preparing for authentication

To access your data, you need to authenticate the connection with your account credentials.

Information noteMake sure that the account you use has read access to the tables you want to fetch.

To generate the API key:

1. Log into your Mailshake account.

2. Go to Extensions &gt; API.

3. Click Create API Key to create an API key. Your API key is displayed on the page.

   If your account already has an API key, it is displayed in the Your Access section of the page.

4. Fill in your API key in the Connection settings page.

## Creating the connection

For more information, see [Connecting to SaaS applications](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Landing/connecting-web-applications.htm).

1. Fill in the required connection properties.

2. Provide a name for the connection in Connection name.

3. Select Open connection metadata to define metadata for the connection when it has been created.

4. Click Create.

Connection settings

| Setting | Description |
| --- | --- |
| Data gateway | Select a Data Movement gateway if required by your use case.<br><br>Information note<br><br>This field is not available with the Qlik Talend Cloud Starter subscription, as it does not support Data Movement gateway. If you have another subscription tier and do not want to use Data Movement gateway, select None.<br><br>For information on the benefits of Data Movement gateway and use cases that require it, see [Qlik Data Gateway - Data Movement](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Gateways/replication-gateway.htm). |
| Start Date | Enter the date, in the format `MM/DD/YYYY`, from which the data must be replicated from your source to your target. |
| API Key | API key. |

## Schema

Information note

Schemas and naming conventions can change from version to version. It is recommended to verify your version before continuing.

Depending on your destination, table and column names may not appear as they are outlined below.

### campaigns

The `campaigns` table contains info about your team’s campaigns.

| **Replication Method** | CDC |
| --- | --- |
| **Primary Key** | id |
| **Replication Key** | created |
| **Useful links** | [Mailshake API method](https://api-docs.mailshake.com/?shell#List "Opens in new tab: Mailshake API method") |

campaigns table foreign keys

| Join campaigns with | on |
| --- | --- |
| [clicks](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Mailshake.htm#clicks) | ```<br>campaigns.id = clicks.campaign.id<br>```<br><br>```<br>campaigns.messages.id = clicks.campaign.id<br>```<br><br>```<br>campaigns.messages.id = clicks.parent.message.id<br>``` |
| [leads](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Mailshake.htm#leads) | ```<br>campaigns.id = leads.campaign.id<br>```<br><br>```<br>campaigns.messages.id = leads.campaign.id<br>``` |
| [opens](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Mailshake.htm#opens) | ```<br>campaigns.id = opens.campaign.id<br>```<br><br>```<br>campaigns.messages.id = opens.campaign.id<br>```<br><br>```<br>campaigns.messages.id = opens.parent.message.id<br>``` |
| [recipients](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Mailshake.htm#recipients) | ```<br>campaigns.id = recipients.campaignId<br>```<br><br>```<br>campaigns.messages.id = recipients.campaignId<br>``` |
| [replies](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Mailshake.htm#replies) | ```<br>campaigns.id = replies.campaign.id<br>```<br><br>```<br>campaigns.messages.id = replies.campaign.id<br>```<br><br>```<br>campaigns.messages.id = replies.parent.message.id<br>``` |
| [sent_messages](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Mailshake.htm#sent-messages) | ```<br>campaigns.id = sent_messages.campaign.id<br>```<br><br>```<br>campaigns.messages.id = sent_messages.campaign.id<br>```<br><br>```<br>campaigns.messages.id = sent_messages.message.id<br>``` |
| [senders](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Mailshake.htm#senders) | ```<br>campaigns.sender.id = senders.id<br>``` |

campaigns table schema

| **actionDate**<br><br><br>DATE-TIME |
| --- |
| **archived**<br><br><br>BOOLEAN |
| **created**<br><br><br>DATE-TIME |
| **endedAt**<br><br><br>DATE-TIME |
| **id**<br><br><br>INTEGER |
| **isPaused**<br><br><br>BOOLEAN |
| **messages**<br><br><br>ARRAY<br><br>This is a nested data structure:<br><br><ul><li>campaignId: INTEGER</li><li>id: INTEGER</li><li>isPaused: BOOLEAN</li><li>object: STRING</li><li>replyToID: INTEGER</li><li>subject: STRING</li><li>type: STRING</li></ul> |
| **object**<br><br><br>STRING |
| **sender**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>created: DATE-TIME</li><li>emailAddress: STRING</li><li>fromName: STRING</li><li>id: STRING</li><li>object: STRING</li></ul> |
| **title**<br><br><br>STRING |
| **url**<br><br><br>STRING |

### clicks

The `clicks` table contains info about recent click activity.

| **Replication Method** | CDC |
| --- | --- |
| **Primary Key** | id |
| **Replication Key** | actionDate |
| **Useful links** | [Mailshake API method](https://api-docs.mailshake.com/?shell#Clicks "Opens in new tab: Mailshake API method") |

clicks table foreign keys

| Join clicks with | on |
| --- | --- |
| [campaigns](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Mailshake.htm#campaigns) | ```<br>clicks.campaign.id = campaigns.id<br>```<br><br>```<br>clicks.campaign.id = campaigns.messages.id<br>```<br><br>```<br>clicks.parent.message.id = campaigns.messages.id<br>``` |
| [leads](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Mailshake.htm#leads) | ```<br>clicks.campaign.id = leads.campaign.id<br>```<br><br>```<br>clicks.recipient.id = leads.recipient.id<br>``` |
| [opens](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Mailshake.htm#opens) | ```<br>clicks.campaign.id = opens.campaign.id<br>```<br><br>```<br>clicks.parent.message.id = opens.parent.message.id<br>```<br><br>```<br>clicks.recipient.id = opens.recipient.id<br>``` |
| [recipients](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Mailshake.htm#recipients) | ```<br>clicks.campaign.id = recipients.campaignId<br>```<br><br>```<br>clicks.recipient.id = recipients.id<br>``` |
| [replies](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Mailshake.htm#replies) | ```<br>clicks.campaign.id = replies.campaign.id<br>```<br><br>```<br>clicks.parent.message.id = replies.parent.message.id<br>```<br><br>```<br>clicks.recipient.id = replies.parent.message.id<br>``` |
| [sent_messages](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Mailshake.htm#sent-messages) | ```<br>clicks.campaign.id = sent_messages.campaign.id<br>```<br><br>```<br>clicks.parent.message.id = sent_messages.message.id<br>```<br><br>```<br>clicks.recipient.id = sent_messages.recipient.id<br>``` |

clicks table schema

| **actionDate**<br><br><br>DATE-TIME |
| --- |
| **campaign**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>created: DATE-TIME</li><li>id: INTEGER</li><li>object: STRING</li><li>title: STRING</li></ul> |
| **id**<br><br><br>INTEGER |
| **isDuplicate**<br><br><br>BOOLEAN |
| **link**<br><br><br>STRING |
| **object**<br><br><br>STRING |
| **parent**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>id: INTEGER</li><li>message: OBJECT, which is also a nested data structure.											<ul><li>id: INTEGER</li><li>object: STRING</li><li>subject: STRING</li><li>type: STRING</li></ul></li><li>object: STRING</li><li>type: STRING</li></ul> |
| **recipient**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>action: STRING</li><li>created: DATE-TIME</li><li>emailAddress: STRING</li><li>fields: OBJECT, which is also a nested data structure.</li><li>first: STRING</li><li>fullName: STRING</li><li>id: INTEGER</li><li>isPaused: BOOLEAN</li><li>last: STRING</li><li>object: STRING</li></ul> |

### leads

The `leads` table contains info about the leads in your Mailshake account.

| **Replication Method** | CDC |
| --- | --- |
| **Primary Key** | id |
| **Replication Key** | created |
| **Useful links** | [Mailshake API method](https://api-docs.mailshake.com/?shell#List59 "Opens in new tab: Mailshake API method") |

leads table foreign keys

| Join leads with | on |
| --- | --- |
| [campaigns](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Mailshake.htm#campaigns) | ```<br>leads.campaign.id = campaigns.id<br>```<br><br>```<br>leads.campaign.id = campaigns.messages.id<br>``` |
| [clicks](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Mailshake.htm#clicks) | ```<br>leads.campaign.id = clicks.campaign.id<br>```<br><br>```<br>leads.recipient.id = clicks.recipient.id<br>``` |
| [opens](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Mailshake.htm#opens) | ```<br>leads.campaign.id = opens.campaign.id<br>```<br><br>```<br>leads.recipient.id = opens.recipient.id<br>``` |
| [recipients](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Mailshake.htm#recipients) | ```<br>leads.campaign.id = recipients.campaignId<br>```<br><br>```<br>leads.recipient.id = recipients.id<br>``` |
| [replies](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Mailshake.htm#replies) | ```<br>leads.campaign.id = replies.campaign.id<br>```<br><br>```<br>leads.recipient.id = replies.parent.message.id<br>``` |
| [sent_messages](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Mailshake.htm#sent-messages) | ```<br>leads.campaign.id = sent_messages.campaign.id<br>```<br><br>```<br>leads.recipient.id = sent_messages.recipient.id<br>``` |
| [team_members](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Mailshake.htm#team-members) | ```<br>leads.assignedTo.id = team_members.id<br>``` |

leads table schema

| **assignedTo**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>emailAddress: STRING</li><li>first: STRING</li><li>fullName: STRING</li><li>id: INTEGER</li><li>last: STRING</li><li>object: STRING</li></ul> |
| --- |
| **campaign**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>created: DATE-TIME</li><li>id: INTEGER</li><li>object: STRING</li><li>title: STRING</li></ul> |
| **created**<br><br><br>DATE-TIME |
| **id**<br><br><br>INTEGER |
| **lastStatusChangeDate**<br><br><br>DATE-TIME |
| **object**<br><br><br>STRING |
| **openedDate**<br><br><br>DATE-TIME |
| **recipient**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>created: DATE-TIME</li><li>emailAddress: STRING</li><li>fields: OBJECT, which is also a nested data structure.</li><li>first: STRING</li><li>fullName: STRING</li><li>id: INTEGER</li><li>last: STRING</li><li>object: STRING</li></ul> |
| **status**<br><br><br>STRING |

### opens

The `opens` table contains info about recently opened emails.

| **Replication Method** | CDC |
| --- | --- |
| **Primary Key** | id |
| **Replication Key** | actionDate |
| **Useful links** | [Mailshake API method](https://api-docs.mailshake.com/?shell#Opens "Opens in new tab: Mailshake API method") |

opens table foreign keys

| Join opens with | on |
| --- | --- |
| [campaigns](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Mailshake.htm#campaigns) | ```<br>opens.campaign.id = campaigns.id<br>```<br><br>```<br>opens.campaign.id = campaigns.messages.id<br>```<br><br>```<br>opens.parent.message.id = campaigns.messages.id<br>``` |
| [clicks](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Mailshake.htm#clicks) | ```<br>opens.campaign.id = clicks.campaign.id<br>```<br><br>```<br>opens.parent.message.id = clicks.parent.message.id<br>```<br><br>```<br>opens.recipient.id = clicks.recipient.id<br>``` |
| [leads](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Mailshake.htm#leads) | ```<br>opens.campaign.id = leads.campaign.id<br>```<br><br>```<br>opens.recipient.id = leads.recipient.id<br>``` |
| [recipients](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Mailshake.htm#recipients) | ```<br>opens.campaign.id = recipients.campaignId<br>```<br><br>```<br>opens.recipient.id = recipients.id<br>``` |
| [replies](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Mailshake.htm#replies) | ```<br>opens.campaign.id = replies.campaign.id<br>```<br><br>```<br>opens.parent.message.id = replies.parent.message.id<br>```<br><br>```<br>opens.recipient.id = replies.parent.message.id<br>``` |
| [sent_messages](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Mailshake.htm#sent-messages) | ```<br>opens.campaign.id = sent_messages.campaign.id<br>```<br><br>```<br>opens.parent.message.id = sent_messages.message.id<br>```<br><br>```<br>opens.recipient.id = sent_messages.recipient.id<br>``` |

opens table schema

| **actionDate**<br><br><br>DATE-TIME |
| --- |
| **campaign**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>created: DATE-TIME</li><li>id: INTEGER</li><li>object: STRING</li><li>title: STRING</li></ul> |
| **id**<br><br><br>INTEGER |
| **isDuplicate**<br><br><br>BOOLEAN |
| **object**<br><br><br>STRING |
| **parent**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>id: INTEGER</li><li>message: OBJECT, which is also a nested data structure.																						<ul><li>id: INTEGER</li><li>object: STRING</li><li>subject: STRING</li><li>type: STRING</li></ul></li><li>object: STRING</li><li>type: STRING</li></ul> |
| **recipient**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>action: STRING</li><li>created: DATE-TIME</li><li>emailAddress: STRING</li><li>fields: OBJECT, which is also a nested data structure.</li><li>first: STRING</li><li>fullName: STRING</li><li>id: INTEGER</li><li>isPaused: BOOLEAN</li><li>last: STRING</li><li>object: STRING</li></ul> |

### recipients

The `recipients` table contains info about the recipients in a campaign.

| **Replication Method** | CDC |
| --- | --- |
| **Primary Key** | id |
| **Replication Key** | created |
| **Useful links** | [Mailshake API method](https://api-docs.mailshake.com/?shell#List33 "Opens in new tab: Mailshake API method") |

recipients table foreign keys

| Join recipients with | on |
| --- | --- |
| [campaigns](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Mailshake.htm#campaigns) | ```<br>recipients.campaignId = campaigns.id<br>```<br><br>```<br>recipients.campaignId = campaigns.messages.id<br>``` |
| [clicks](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Mailshake.htm#clicks) | ```<br>recipients.campaignId = clicks.campaign.id<br>```<br><br>```<br>recipients.id = clicks.recipient.id<br>``` |
| [leads](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Mailshake.htm#leads) | ```<br>recipients.campaignId = leads.campaign.id<br>```<br><br>```<br>recipients.id = leads.recipient.id<br>``` |
| [opens](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Mailshake.htm#opens) | ```<br>recipients.campaignId = opens.campaign.id<br>```<br><br>```<br>recipients.id = opens.recipient.id<br>``` |
| [replies](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Mailshake.htm#replies) | ```<br>recipients.campaignId = replies.campaign.id<br>```<br><br>```<br>recipients.id = replies.parent.message.id<br>``` |
| [sent_messages](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Mailshake.htm#sent-messages) | ```<br>recipients.campaignId = sent_messages.campaign.id<br>```<br><br>```<br>recipients.id = sent_messages.recipient.id<br>``` |

recipients table schema

| **action**<br><br><br>STRING |
| --- |
| **campaignId**<br><br><br>INTEGER |
| **created**<br><br><br>DATE-TIME |
| **emailAddress**<br><br><br>STRING |
| **fields**<br><br><br>OBJECT<br><br>This is a nested data structure. |
| **first**<br><br><br>STRING |
| **fullName**<br><br><br>STRING |
| **id**<br><br><br>INTEGER |
| **last**<br><br><br>STRING |
| **object**<br><br><br>STRING |

### replies

The `replies` table contains info about recent replies to your emails.

| **Replication Method** | CDC |
| --- | --- |
| **Primary Key** | id |
| **Replication Key** | actionDate |
| **Useful links** | [Mailshake API method](https://api-docs.mailshake.com/?shell#Replies "Opens in new tab: Mailshake API method") |

replies table foreign keys

| Join replies with | on |
| --- | --- |
| [campaigns](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Mailshake.htm#campaigns) | ```<br>replies.campaign.id = campaigns.id<br>```<br><br>```<br>replies.campaign.id = campaigns.messages.id<br>```<br><br>```<br>replies.parent.message.id = campaigns.messages.id<br>``` |
| [clicks](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Mailshake.htm#clicks) | ```<br>replies.campaign.id = clicks.campaign.id<br>```<br><br>```<br>replies.parent.message.id = clicks.parent.message.id<br>```<br><br>```<br>replies.parent.message.id = clicks.recipient.id<br>``` |
| [leads](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Mailshake.htm#leads) | ```<br>replies.campaign.id = leads.campaign.id<br>```<br><br>```<br>replies.parent.message.id = leads.recipient.id<br>``` |
| [opens](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Mailshake.htm#opens) | ```<br>replies.campaign.id = opens.campaign.id<br>```<br><br>```<br>replies.parent.message.id = opens.parent.message.id<br>```<br><br>```<br>replies.parent.message.id = opens.recipient.id<br>``` |
| [recipients](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Mailshake.htm#recipients) | ```<br>replies.campaign.id = recipients.campaignId<br>```<br><br>```<br>replies.parent.message.id = recipients.id<br>``` |
| [sent_messages](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Mailshake.htm#sent-messages) | ```<br>replies.campaign.id = sent_messages.campaign.id<br>```<br><br>```<br>replies.parent.message.id = sent_messages.message.id<br>```<br><br>```<br>replies.parent.message.id = sent_messages.recipient.id<br>``` |

replies table schema

| **actionDate**<br><br><br>DATE-TIME |
| --- |
| **body**<br><br><br>STRING |
| **campaign**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>created: DATE-TIME</li><li>id: INTEGER</li><li>object: STRING</li><li>title: STRING</li></ul> |
| **externalConversationID**<br><br><br>STRING |
| **externalID**<br><br><br>STRING |
| **externalRawMessageID**<br><br><br>STRING |
| **id**<br><br><br>INTEGER |
| **object**<br><br><br>STRING |
| **parent**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>id: INTEGER</li><li>message: OBJECT, which is also a nested data structure.																						<ul><li>id: INTEGER</li><li>object: STRING</li><li>subject: STRING</li><li>type: STRING</li></ul></li><li>object: STRING</li><li>type: STRING</li></ul> |
| **plainTextBody**<br><br><br>STRING |
| **rawBody**<br><br><br>STRING |
| **recipient**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>action: STRING</li><li>created: DATE-TIME</li><li>emailAddress: STRING</li><li>fields: OBJECT, which is also a nested data structure.</li><li>first: STRING</li><li>fullName: STRING</li><li>id: INTEGER</li><li>isPaused: BOOLEAN</li><li>last: STRING</li><li>object: STRING</li></ul> |
| **subject**<br><br><br>STRING |
| **type**<br><br><br>STRING |

### senders

The `senders` table contains info about your team’s senders.

| **Replication Method** | CDC |
| --- | --- |
| **Primary Key** | id |
| **Replication Key** | created |
| **Useful links** | [Mailshake API method](https://api-docs.mailshake.com/?shell#List75 "Opens in new tab: Mailshake API method") |

senders table foreign keys

| Join senders with | on |
| --- | --- |
| [campaigns](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Mailshake.htm#campaigns) | ```<br>senders.id = campaigns.sender.id<br>``` |

senders table schema

| **created**<br><br><br>DATE-TIME |
| --- |
| **emailAddress**<br><br><br>STRING |
| **fromName**<br><br><br>STRING |
| **id**<br><br><br>STRING |
| **object**<br><br><br>STRING |
| **offerType**<br><br><br>STRING |

### sent\_messages

The `sent_messages` table contains info about recently sent emails.

| **Replication Method** | CDC |
| --- | --- |
| **Primary Key** | id |
| **Replication Key** | actionDate |
| **Useful links** | [Mailshake API method](https://api-docs.mailshake.com/?shell#Sent "Opens in new tab: Mailshake API method") |

sent\_messages table foreign keys

| Join sent\_messages with | on |
| --- | --- |
| [campaigns](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Mailshake.htm#campaigns) | ```<br>sent_messages.campaign.id = campaigns.id<br>```<br><br>```<br>sent_messages.campaign.id = campaigns.messages.id<br>```<br><br>```<br>sent_messages.message.id = campaigns.messages.id<br>``` |
| [clicks](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Mailshake.htm#clicks) | ```<br>sent_messages.campaign.id = clicks.campaign.id<br>```<br><br>```<br>sent_messages.message.id = clicks.parent.message.id<br>```<br><br>```<br>sent_messages.recipient.id = clicks.recipient.id<br>``` |
| [leads](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Mailshake.htm#leads) | ```<br>sent_messages.campaign.id = leads.campaign.id<br>```<br><br>```<br>sent_messages.recipient.id = leads.recipient.id<br>``` |
| [opens](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Mailshake.htm#opens) | ```<br>sent_messages.campaign.id = opens.campaign.id<br>```<br><br>```<br>sent_messages.message.id = opens.parent.message.id<br>```<br><br>```<br>sent_messages.recipient.id = opens.recipient.id<br>``` |
| [recipients](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Mailshake.htm#recipients) | ```<br>sent_messages.campaign.id = recipients.campaignId<br>```<br><br>```<br>sent_messages.recipient.id = recipients.id<br>``` |
| [replies](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Mailshake.htm#replies) | ```<br>sent_messages.campaign.id = replies.campaign.id<br>```<br><br>```<br>sent_messages.message.id = replies.parent.message.id<br>```<br><br>```<br>sent_messages.recipient.id = replies.parent.message.id<br>``` |

sent\_messages table schema

| **actionDate**<br><br><br>DATE-TIME |
| --- |
| **body**<br><br><br>STRING |
| **campaign**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>created: DATE-TIME</li><li>id: INTEGER</li><li>object: STRING</li><li>title: STRING</li></ul> |
| **externalConversationID**<br><br><br>STRING |
| **externalID**<br><br><br>STRING |
| **externalRawMessageID**<br><br><br>STRING |
| **from**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>address: STRING</li><li>first: STRING</li><li>fullName: STRING</li><li>last: STRING</li><li>object: STRING</li></ul> |
| **id**<br><br><br>INTEGER |
| **message**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>id: INTEGER</li><li>object: STRING</li><li>subject: STRING</li><li>type: STRING</li></ul> |
| **object**<br><br><br>STRING |
| **plainTextBody**<br><br><br>STRING |
| **rawBody**<br><br><br>STRING |
| **recipient**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>action: STRING</li><li>created: DATE-TIME</li><li>emailAddress: STRING</li><li>fields: OBJECT, which is also a nested data structure.</li><li>first: STRING</li><li>fullName: STRING</li><li>id: INTEGER</li><li>isPaused: BOOLEAN</li><li>last: STRING</li><li>object: STRING</li></ul> |
| **subject**<br><br><br>STRING |
| **to**<br><br><br>ARRAY<br><br>This is a nested data structure:<br><br><ul><li>address: STRING</li><li>first: STRING</li><li>fullName: STRING</li><li>last: STRING</li><li>object: STRING</li></ul> |
| **type**<br><br><br>STRING |

### team\_members

The `team_members` table contains info about the individual members of your team.

| **Replication Method** | CDC |
| --- | --- |
| **Primary Key** | id |
| **Replication Key** | teamID |
| **Useful links** | [Mailshake API method](https://api-docs.mailshake.com/?shell#List-Members "Opens in new tab: Mailshake API method") |

team\_members table foreign keys

| Join team\_members with | on |
| --- | --- |
| [leads](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Mailshake.htm#leads) | ```<br>team_members.id = leads.assignedTo.id<br>``` |

team\_members table schema

| **emailAddress**<br><br><br>STRING |
| --- |
| **first**<br><br><br>STRING |
| **fullName**<br><br><br>STRING |
| **id**<br><br><br>INTEGER |
| **isDisabled**<br><br><br>BOOLEAN |
| **isTeamAdmin**<br><br><br>BOOLEAN |
| **last**<br><br><br>STRING |
| **object**<br><br><br>STRING |
| **teamBlockedDate**<br><br><br>DATE-TIME |
| **teamID**<br><br><br>INTEGER |
| **teamName**<br><br><br>BOOLEAN |