Skip to content
Talk to an Engineer Dashboard

Gmail

Gmail is Google's cloud based email service that allows you to access your messages from any computer or device with just a web browser.

Gmail is Google’s cloud based email service that allows you to access your messages from any computer or device with just a web browser.

Gmail logo

Supports authentication: OAuth 2.0

Register your Scalekit environment with the Gmail connector so Scalekit handles the authentication flow and token lifecycle for you. The connection name you create will be used to identify and invoke the connection programmatically. Then complete the configuration in your application as follows:

  1. Set up auth redirects

    • In Scalekit dashboard, go to Agent Auth β†’ Create Connection. Find Gmail and click Create.

    • Click Use your own credentials and copy the redirect URI. It looks like https://<SCALEKIT_ENVIRONMENT_URL>/sso/v1/oauth/<CONNECTION_ID>/callback.

      Copy redirect URI from Scalekit dashboard

    • Navigate to Google Cloud Console β†’ APIs & Services β†’ Credentials. Click + Create Credentials, then OAuth client ID. Choose Web application as the application type.

      Select Web application in Google Cloud Console

    • Under Authorized redirect URIs, click + Add URI, paste the redirect URI, and click Create.

      Add authorized redirect URI in Google Cloud Console

  2. Enable Gmail API

    • In Google Cloud Console, go to APIs & Services β†’ Library. Search for β€œGmail API” and click Enable.

      Enable Gmail API in Google Cloud Console

  3. Get client credentials

    Google provides your Client ID and Client Secret after you create the OAuth client ID in step 1.

  4. Add credentials in Scalekit

    • In Scalekit dashboard, go to Agent Auth β†’ Connections and open the connection you created.

    • Enter your credentials:

      Add credentials for Gmail in Scalekit dashboard

    • Click Save.

Connect a user’s Gmail account and make API calls on their behalf β€” Scalekit handles OAuth and token management automatically.

You can interact with Gmail in two ways β€” via direct proxy API calls or via Scalekit optimized tool calls. Scroll down to see the list of available Scalekit tools.

Proxy API Calls

import { ScalekitClient } from '@scalekit-sdk/node';
import 'dotenv/config';
const connectionName = 'gmail'; // get your connection name from connection configurations
const identifier = 'user_123'; // your unique user identifier
// Get your credentials from app.scalekit.com β†’ Developers β†’ Settings β†’ API Credentials
const scalekit = new ScalekitClient(
process.env.SCALEKIT_ENV_URL,
process.env.SCALEKIT_CLIENT_ID,
process.env.SCALEKIT_CLIENT_SECRET
);
const actions = scalekit.actions;
// Authenticate the user
const { link } = await actions.getAuthorizationLink({
connectionName,
identifier,
});
console.log('πŸ”— Authorize Gmail:', link); // present this link to your user for authorization, or click it yourself for testing
process.stdout.write('Press Enter after authorizing...');
await new Promise(r => process.stdin.once('data', r));
// Make a request via Scalekit proxy
const result = await actions.request({
connectionName,
identifier,
path: '/gmail/v1/users/me/profile',
method: 'GET',
});
console.log(result);
gmail_fetch_mails Fetch emails from a connected Gmail account using search filters. Requires a valid Gmail OAuth2 connection. 8 params

Fetch emails from a connected Gmail account using search filters. Requires a valid Gmail OAuth2 connection.

Name Type Required Description
format string optional Format of the returned message.
include_spam_trash boolean optional Whether to fetch emails from spam and trash folders
label_ids array optional Gmail label IDs to filter messages
max_results integer optional Maximum number of emails to fetch
page_token string optional Page token for pagination
query string optional Search query string using Gmail's search syntax (e.g., 'is:unread from:user@example.com')
schema_version string optional Optional schema version to use for tool execution
tool_version string optional Optional tool version to use for execution
gmail_get_attachment_by_id Retrieve a specific attachment from a Gmail message using the message ID and attachment ID. 5 params

Retrieve a specific attachment from a Gmail message using the message ID and attachment ID.

Name Type Required Description
attachment_id string required Unique Gmail attachment ID
message_id string required Unique Gmail message ID that contains the attachment
file_name string optional Preferred filename to use when saving/returning the attachment
schema_version string optional Optional schema version to use for tool execution
tool_version string optional Optional tool version to use for execution
gmail_get_contacts Fetch a list of contacts from the connected Gmail account. Supports pagination and field filtering. 5 params

Fetch a list of contacts from the connected Gmail account. Supports pagination and field filtering.

Name Type Required Description
max_results integer optional Maximum number of contacts to fetch
page_token string optional Token to retrieve the next page of results
person_fields array optional Fields to include for each person
schema_version string optional Optional schema version to use for tool execution
tool_version string optional Optional tool version to use for execution
gmail_get_message_by_id Retrieve a specific Gmail message using its message ID. Optionally control the format of the returned data. 4 params

Retrieve a specific Gmail message using its message ID. Optionally control the format of the returned data.

Name Type Required Description
message_id string required Unique Gmail message ID
format string optional Format of the returned message.
schema_version string optional Optional schema version to use for tool execution
tool_version string optional Optional tool version to use for execution
gmail_get_thread_by_id Retrieve a specific Gmail thread by thread ID. Optionally control message format and metadata headers. Requires a valid Gmail OAuth2 connection with read access. 5 params

Retrieve a specific Gmail thread by thread ID. Optionally control message format and metadata headers. Requires a valid Gmail OAuth2 connection with read access.

Name Type Required Description
thread_id string required Unique Gmail thread ID
format string optional Format of messages in the returned thread.
metadata_headers array optional Specific email headers to include when format is metadata
schema_version string optional Optional schema version to use for tool execution
tool_version string optional Optional tool version to use for execution
gmail_list_drafts List draft emails from a connected Gmail account. Requires a valid Gmail OAuth2 connection. 4 params

List draft emails from a connected Gmail account. Requires a valid Gmail OAuth2 connection.

Name Type Required Description
max_results integer optional Maximum number of drafts to fetch
page_token string optional Page token for pagination
schema_version string optional Optional schema version to use for tool execution
tool_version string optional Optional tool version to use for execution
gmail_list_threads List threads in a connected Gmail account using optional search and label filters. Requires a valid Gmail OAuth2 connection with read access. 7 params

List threads in a connected Gmail account using optional search and label filters. Requires a valid Gmail OAuth2 connection with read access.

Name Type Required Description
include_spam_trash boolean optional Whether to include threads from Spam and Trash
label_ids array optional Gmail label IDs to filter threads (threads must match all labels)
max_results integer optional Maximum number of threads to return
page_token string optional Page token for pagination
query string optional Search query string using Gmail search syntax (for example, 'is:unread from:user@example.com')
schema_version string optional Optional schema version to use for tool execution
tool_version string optional Optional tool version to use for execution
gmail_search_people Search people or contacts in the connected Google account using a query. Requires a valid Google OAuth2 connection with People API scopes. 6 params

Search people or contacts in the connected Google account using a query. Requires a valid Google OAuth2 connection with People API scopes.

Name Type Required Description
query string required Text query to search people (e.g., name, email address).
other_contacts boolean optional Whether to include people not in the user's contacts (from 'Other Contacts').
page_size integer optional Maximum number of people to return.
person_fields array optional Fields to retrieve for each person.
schema_version string optional Optional schema version to use for tool execution
tool_version string optional Optional tool version to use for execution