Gmail
Related pages:
Gmail Technical Notes
Description
The Gmail Component is designed to establish a connection with Google Gmail, utilizing both low-level REST API calls and high-level Google API client. The current release of the component supports API version v1.
Credentials
Before building any integration flow, you must configure the app from within the Google Developers Console.
- Navigate to the APIs & Services -> Enabled APIs & Services page and enable the Gmail API.
- Go to the Credentials section and create a new credential of type OAuth client ID:
- Set Application type to Web application.
- Add Authorized redirect URI as: https://{your-tenant-address}/callback/oauth2.
For new domains, you may encounter a message stating, “This app isn’t verified.” Please refer to this documentation to learn how to proceed.
Now you can create new credentials for the component:
- Type (dropdown, required) -
OAuth2
- Choose Auth Client (dropdown, required) - select one of the previously created clients or choose
Add New Auth Client
:- Name (string, required) - provide any name you prefer.
- Client ID (string, required) - use the
Client ID
from theWeb application
section in theGoogle Developers Console
. - Client Secret (string, required) - use the
Client Secret
from theWeb application
section in theGoogle Developers Console
. - Authorization Endpoint (string, required) - Google OAuth2 authorization endpoint
https://accounts.google.com/o/oauth2/v2/auth
. - Token Endpoint (string, required) - Google refresh token endpoint
https://oauth2.googleapis.com/token
.
- Name Your Credential (string, required) - provide any name you want.
- Scopes (Comma-separated list) (string, required) - Enter the scopes to gain access to your Gmail, e.g.,
https://www.googleapis.com/auth/gmail.readonly
. For more information, refer to Google’s documentation. - Additional parameters (Comma-separated list) (string, required) - Set it as
access_type:offline,prompt:consent
to ensure the proper functioning of the component. - Number of retries (number, optional, default is 5) - Set how many times the component should retry making a request.
- Delay between retries (number ms, optional, default is 10000) - Set how much time to wait before the next attempt.
Important Note: To verify credentials, you need to set any of the scopes that allow reading basic user data (profile). For example,
https://www.googleapis.com/auth/gmail.readonly
or broader scopes.
Triggers
This component does not have trigger functions, making it inaccessible as the first component during the integration flow design.
Actions
Make Raw Request
Executes a custom request. Refer to the official Gmail REST API documentation.
Configuration Fields
- Don’t throw error on 404 Response - (optional, boolean): Treat 404 HTTP responses not as an error; defaults to
false
.
Input Metadata
- URL - (string, required): Path of the resource relative to the base URL (
https://gmail.googleapis.com/gmail/v1/
). E.g.,/users/me/messages
. - Method - (string, required): HTTP verb to use in the request, one of
GET
,POST
,PUT
,PATCH
,DELETE
. - Request Body - (object, optional): Body of the request to send.
Output Metadata
- Status Code - (number, required): HTTP status code of the response.
- HTTP headers - (object, required): HTTP headers of the response.
- Response Body - (object, optional): HTTP response body.
Delete Email By ID
Delete the specified message by providing its ID. Depending on the configuration, a message will either be permanently deleted or moved to the trash.
Please note: Soft delete (move email to trash) requires one of the following OAuth scopes:
https://mail.google.com/
https://www.googleapis.com/auth/gmail.modify
Hard delete (immediate delete) requires:
https://mail.google.com/
Configuration Fields
- Immediately and permanently delete the specified message - (checkbox, optional): If selected, the message will be permanently deleted; by default, the message will be moved to trash.
- Emit strategy when no email found - (dropdown, optional): Specifies the output when no email is found by the provided ID. Options include:
- Emit nothing - Emit nothing; just skips an execution. Note: In a real flow execution, there will be no error, just an execution skip.
- Emit an empty object {} - Emit an empty object, e.g., {}.
- Throw an error (Default) - Throw an error with the text ‘No email found by provided ID’. This is the default option if nothing else is selected.
Input Metadata
- ID - (string, required): The ID of the email to delete. Example:
{
"id": "18a4a8ab45841745"
}
Output Metadata
- ID - (string, optional): The ID of the deleted email.
Get Email by ID
Search for mail by a provided ID.
Configuration Fields
- Omit attachments - (checkbox, optional): If selected,
attachments
will not be presented in the output metadata. - Allow criteria to be omitted - (checkbox, optional): In case the checkbox is unchecked, an error will be thrown when the object ID is missing in metadata; if checked, an empty object will be returned instead of throwing an error.
- Allow Zero Results - (checkbox, optional): In case the checkbox is unchecked, an error will be thrown when no objects were found. If checked, an empty object will be returned instead of throwing an error.
Input Metadata
- ID - (string, required/optional): ID of the mail to look up by, required if Allow criteria to be omitted is unchecked.
Output Metadata
- id - (string, required): Mail ID from Gmail.
- subject - (string, required): Subject of the mail.
- from - (object, required): Sender information, contains two fields:
- name - (string, optional): Sender name.
- address - (string, required): Sender email.
- to - (array of objects, required): Receivers information, each record is represented by an object with two fields:
- name - (string, optional): Receiver name.
- address - (string, required): Receiver email.
- cc - (array of objects, optional): Receivers in copy information, each record is represented by an object with two fields:
- name - (string, optional): Receiver name.
- address - (string, required): Receiver email.
- date - (string, required): When the message was received.
- text - (string, optional): Plaintext version of the message if it has at least one ‘text/plain’ node.
- html - (string, optional): HTML version of the message if it has at least one ‘text/html’ node or plaintext version of the message in HTML format.
- attachments - (array of objects, optional): Provided if the message has attachments and
Omit attachments
is unchecked. Each record contains the following fields:- name - (string, optional): Name of the file if present.
- contentType - (string, required): File content type.
- contentType - (string, required): File content type.
- size - (string, required): File size.
- url - (string, required): URL to internal platform storage for this file.
Known limitations
The component operates smoothly with attachments up to 15MB by default. However, if you intend to work with larger files, it is advisable to create or increase the environment variable EIO_REQUIRED_RAM_MB
, which serves as the memory usage limit for the component, initially set at 256MB.
Search emails
Retrieve emails based on specified criteria. There will be one API request to retrieve a page and one additional API request for each email. This trigger collects emails from all folders, including Sent
.
Configuration Fields
- Emit Behavior - (dropdown, optional, default
Emit individually
): Defines the way result objects will be emitted, one ofEmit page
,Emit individually
,Emit all
. - Expert Mode for Filter Expression - (checkbox): If checked, any filter expression can be entered in the metadata field
Filter Expression
for advanced users. - Number of search terms (string, optional) - Text field to specify a number of search terms (positive integer number [1-99] or 0). (If
Expert Mode for Filter Expression
checkbox is disabled) - Omit attachments - (checkbox, optional): If selected,
attachments
will not be presented in the output metadata.
Input Metadata
-
If the configuration field Expert Mode for Filter Expression is enabled:
- Filter Expression - (string, required): Any filter expression can be entered in the metadata field Filter Expression. For advanced users. Example: subject:(dinner movie) AND is:unread AND in:anywhere.
-
If the configuration field Expert Mode for Filter Expression is disabled:
- Depends on the configuration field
Number of search terms
. If =N
- N search term and N-1 logical operators will be generated, if = 0 - the component will collect all messages without filtering.
- Depends on the configuration field
Example for Number of search terms = 2
:
{
"sTerm_1": {
"fieldName": "is",
"fieldValue": "unread"
},
"link_1_2": "AND",
"sTerm_2": {
"fieldName": "in",
"fieldValue": "anywhere"
}
}
-
If selected
Emit Behavior
isEmit page
, an additional field will be added:- Page Size - (number, defaults to 100, max 500): Indicates the number of emails per page.
Output Metadata
Depends on Emit behavior
fields.
- If
Emit behavior
field is equal toEmit page
orEmit all
- object with propertyresults
that contains an array of emails with the same structure as in Get Email by ID. - If
Emit behavior
field is equal toEmit individually
, email information will fulfill the whole message with the same structure as in Get Email by ID.
Send Email
Simply send an email.
Please note: Be aware of Google usage limits to avoid exceeding the limits.
Input Metadata:
- Subject - (string, required): Subject of the email.
- To - (array of objects, required): Receivers’ information, each record is represented by an object with two fields:
- Name - (string, optional): Receiver name.
- Address - (string, required): Receiver email.
- Cc - (array of objects, optional): Receivers in copy information, each record is represented by an object with two fields:
- Name - (string, optional): Receiver name.
- Address - (string, optional): Receiver email.
- Bcc - (array of objects, optional): Receivers in hidden copy information, each record is represented by an object with two fields:
- Name - (string, optional): Receiver name.
- Address - (string, optional): Receiver email.
- Text - (string, optional. One of
Text
orHTML
is required): Plaintext version of the message. - HTML - (string, optional. One of
Text
orHTML
is required): HTML version of the message. - Attachments - (array of objects, optional): An array of attachments. Currently, only an external link to a file on the Internet is supported. Each record contains the following fields:
- File Name - (string, required): Name of the file if present.
- Attachment URL - (string, required): URL to the file location (either an external URL or Maester URL).
Incoming Message Sample:
{
"to": "mail@gmail.com,mail2@gmail.com,mail3@gmail.com",
"cc": "mail@gmail.com",
"replyTo": "mail@gmail.com",
"subject": "Hello Test 🚀",
"text": "This email is sent from the integration tests",
"html": "<p>🙋🏻♀️ — This is a <b>test email</b> from <a href='https://example.com'>Test HTML</a>.</p>",
"attachments": [
{
"filename": "sample.pdf",
"url": "https://filesamples.com/samples/document/pdf/sample2.pdf"
},
{
"filename": "order.json",
"url": "http://maester-service.platform.svc.cluster.local:3002/objects/1da027b7-8dfb-44f9-8ec8-486792ca023e?storage_type=maester"
}
]
}
Output Metadata
- id - (string, required): The immutable ID of the message.
- threadId - (string, required): The ID of the thread the message belongs to.
- labelIds - (array of strings, required): List of IDs of labels applied to this message.
Get New Emails
This operation allows you to retrieve emails within a specified time range. The process involves one API request to fetch a page and an additional API request for each individual email. The retrieval encompasses all folders, including the Sent folder.
Configuration Fields
- Emit Behavior - (Dropdown, Optional, Default:
Emit individually
): This setting determines how result objects will be emitted, with options for either emitting a page collectively or emitting each email individually. - Page Size - (Number, Optional, Default: 100, Max: 500): Specifies the size of pages to be fetched per request.
- Start Time - (String, Optional): The timestamp to commence polling from (inclusive) in ISO 8601 Date Time UTC format (YYYY-MM-DDThh:mm:ssZ). The default value is the beginning of time (January 1, 1970, at 00:00).
- End Time - (String, Optional): The timestamp to conclude polling (exclusive) in ISO 8601 Date Time UTC format (YYYY-MM-DDThh:mm:ssZ). The default value is the execution time of the flow.
- Omit Attachments - (Checkbox, Optional): If selected,
attachments
will not be included in the output metadata. - Include SPAM and TRASH - (Checkbox, Optional): If selected, messages from SPAM and TRASH will be included in the results.
Input Metadata
There is no input metadata in this action.
Output Metadata
The output metadata structure depends on the selected Emit behavior
field:
-
If
Emit behavior
is set toEmit page
, the output is an object with the property results, which contains an array of emails with the same structure as described in Get Email by ID. -
If
Emit behavior
is set toEmit individually
, the email information will fill the entire message with the same structure as described in Get Email by ID.