Skip to content
Components

Gmail Messages

The Gmail Messages data source connector allows you to fetch data from your Gmail account.

Create a new configuration of the Gmail Messages connector. Then click Authorize Account to authorize the configuration. Your inbox is accessed as read only.

Gmail - authorize account

Reading email messages is considered very sensitive by Google. This means that authorization may often be rejected and the app may show as blocked or not-verified. In such a case, we recommend that you use Custom OAuth Credentials. Generally using Custom OAuth credentials is the preferred authorization option, although it is more complicated.

  1. Visit the Google API Console.
  2. Select an existing project or create a new one. Click Enable APIs and Services.

Screenshot - Google API Console - Project

  1. Select the Gmail API and Enable it. You should then see it in the list of enabled APIs.

Screenshot - Google API Console - API list

  1. Select the Credentials section from the menu on the left, click the Create Credentials button, and select OAuth client ID.

Screenshot - Google API Console - Create Credentials

  1. Choose Web Application. Into Authorized redirect URIs insert:

    • https://oauth.keboola.com/authorize/keboola.ex-gmail/callback
    • or https://oauth.eu-central-1.keboola.com/authorize/keboola.ex-gmail/callback
    • or https://oauth.north-europe.azure.keboola.com/authorize/keboola.ex-gmail/callback

    Depending on which stack you are using or planning to use.

Screenshot - Google API Console - Fill Credentials

  1. Click Create and a pop-up window will display your new client ID and client secret credentials.
  2. You can now use these credentials in the Custom Authorization tab when authorizing the Google Analytics connector.

Screenshot - Custom Authorization

Fill in the form to fit your needs.

Gmail - configure queries

  • Query — Query to filter your messages. To speed up the extraction, be as specific as possible. For more detailed information about querying, follow Google’s Advanced Search help site.
  • Headers (optional) — Headers you want to download. If no headers are specified, all headers will be downloaded.

Don’t forget to Save the configuration.

Data are always imported incrementally. The data source connector produces several tables that can be joined together.

Queries and their messages; it is good to know which query a message came from.

querymessageId
from:some.address@example.com9876cbd54bd215a6
from:another.address@example.com1234abcd2ffdc1d6

A base table of messages:

idthreadId
9876cbd54bd215a61234abcd2ffdc1d6
1234abcd2ffdc1d61234abcd2ffdc1d6

Tip: You can group your messages to conversations with GROUP BY threadId.

All downloaded headers:

messageIdnamevalue
1234abcd2ffdc1d6FromNews <some.address@example.com>
1234abcd2ffdc1d6SubjectTrending News

All downloaded message parts:

messageIdpartIdmimeTypebodySizebodyData
1234abcd2ffdc1d60text/plain26Lorem ipsum dolor sit amet
1234abcd2ffdc1d61text/html33<p>Lorem ipsum dolor sit amet</p>

Note: Only parts with text/plain and text/html mime types are downloaded.

Ask Kai

Ask anything about Keboola — I'll search the docs and cite the pages I use.