MailReceivedTriggerMailReceivedTrigger
MailReceivedTriggerCertified

yaml
type: "io.kestra.plugin.googleworkspace.mail.MailReceivedTrigger"
yaml
id: gmail_new_messages
namespace: company.team

tasks:
  - id: process_email
    type: io.kestra.plugin.core.log.Log
    message: "New email from {{ trigger.from }}: {{ trigger.subject }}"

triggers:
  - id: watch_inbox
    type: io.kestra.plugin.googleworkspace.mail.MailReceivedTrigger
    clientId: "{{ secret('GMAIL_CLIENT_ID') }}"
    clientSecret: "{{ secret('GMAIL_CLIENT_SECRET') }}"
    refreshToken: "{{ secret('GMAIL_REFRESH_TOKEN') }}"
    interval: PT5M

yaml
id: gmail_urgent_messages
namespace: company.team

tasks:
  - id: notify_urgent
    type: io.kestra.plugin.notifications.slack.SlackIncomingWebhook
    url: "{{ secret('SLACK_WEBHOOK') }}"
    payload: |
      {
        "text": "Urgent email: {{ trigger.subject }} from {{ trigger.from }}"
      }

triggers:
  - id: watch_urgent
    type: io.kestra.plugin.googleworkspace.mail.MailReceivedTrigger
    clientId: "{{ secret('GMAIL_CLIENT_ID') }}"
    clientSecret: "{{ secret('GMAIL_CLIENT_SECRET') }}"
    refreshToken: "{{ secret('GMAIL_REFRESH_TOKEN') }}"
    query: "is:unread label:urgent"
    labelIds:
      - INBOX
      - URGENT
    interval: PT2M
Properties
Defaultfalse
Definitions
type*Requiredobject
afterstring
Formatdate-time
beforestring
Formatdate-time
datestring
Default{{ trigger.date }}
dayOfWeek*Requiredstring
Possible Values
MONDAYTUESDAYWEDNESDAYTHURSDAYFRIDAYSATURDAYSUNDAY
type*Requiredobject
datestring
Default{{ trigger.date }}
dayInMonth*Requiredstring
Possible Values
FIRSTLASTSECONDTHIRDFOURTH
dayOfWeek*Requiredstring
Possible Values
MONDAYTUESDAYWEDNESDAYTHURSDAYFRIDAYSATURDAYSUNDAY
type*Requiredobject
datestring
Default{{ trigger.date }}
flowId*Requiredstring
namespace*Requiredstring
type*Requiredobject