Gmail TRIGGER
New Email Received
- Trigger
- Polling
- OAuth
- Webhook delivery
IMPLEMENTATION
Deploy this event source
Connect the user's Gmail account, configure the source, and choose the webhook where your backend receives events.
import { PipedreamClient } from "@pipedream/sdk"
const pd = new PipedreamClient({
projectId: process.env.PIPEDREAM_PROJECT_ID!,
clientId: process.env.PIPEDREAM_CLIENT_ID!,
clientSecret: process.env.PIPEDREAM_CLIENT_SECRET!,
projectEnvironment: "production",
})
const deployed = await pd.triggers.deploy({
id: "gmail-new-email-received",
externalUserId: "{external_user_id}", // any stable ID for this user in your system
configuredProps: {
gmail: { authProvisionId: "apn_xxxxxxx" },
triggerType: "Trigger Type",
timer: { "intervalSeconds": 900 },
},
webhookUrl: "https://example.com/webhooks/gmail",
})
console.log(deployed.id)curl -X POST https://api.pipedream.com/v1/connect/{project_id}/triggers/deploy \
-H "Content-Type: application/json" \
-H "X-PD-Environment: production" \
-H "Authorization: Bearer {access_token}" \
-d '{
"external_user_id": "{external_user_id}",
"id": "gmail-new-email-received",
"webhook_url": "https://example.com/webhooks/gmail",
"configured_props": {
"gmail": { "authProvisionId": "apn_xxxxxxx" },
"triggerType": "Trigger Type",
"timer": { "intervalSeconds": 900 }
}
}'MCP servers expose Gmail actions as on-demand tools.
New Email Received is an event source, so your application deploys it
with the Connect SDK or API and then either receives each event at a
webhook URL or retrieves events on demand with the trigger events API.MCP exposes on-demand actions. Event sources are deployed through the Connect SDK or API because they continue listening after the initial request.
SCHEMA
Configuration
These inputs define which events the source watches. Dynamic options are loaded from the connected account.
| Property | Type | Description |
|---|---|---|
triggerType Trigger Type | string | Configuring this source as a webhook (instant) trigger requires a custom OAuth client. Refer to the guide here to get started. Optional |
timer Polling Interval | $.interface.timer | How often to poll for new emails Required |
withTextPayload Return payload as plaintext | boolean | Convert the payload response into a single text field. This reduces the size of the payload and makes it easier for LLMs work with. Required |
serviceAccountKeyJson Service Account Key JSON | string | Optional |
topicType Pub/Sub Topic | string | Do you have an existing Pub/Sub topic, or would you like to create a new one? Optional |
topic Pub/Sub Topic Name | string | Select a Pub/Sub topic from your GCP account to watch Optional Dynamic |
labels Labels | string[] | Labels are used to categorize messages and threads within the user's mailbox Optional Dynamic |
excludeLabels Exclude Labels | string[] | Emails with the specified labels will be excluded from results Optional Dynamic |
LIFECYCLE
Event delivery
01
Connect
Your user authorizes Gmail through Pipedream managed auth.
02
Deploy
Your backend deploys this source with that user's own configuration.
03
Webhook delivery
Every event is sent to the HTTP endpoint you choose when you deploy the source — after each poll.
OR
On-demand retrieval
No webhook required. Your app or agent can fetch recent events from the trigger events API.
REFERENCE
Trigger details
- Registry key
- gmail-new-email-received
- Version
- 0.3.7
- App
- Gmail
- Authentication
- OAuth
- Delivery
- Polling source
- Output
- Events emitted by Gmail.
- Source
- View on GitHub ↗