Configure email-based process triggers to automatically start process instances when emails are received. Email Triggers connect to IMAP mail servers and monitor specific mailboxes to initiate workflows.
Email Trigger is a data source type that enables process instances to be automatically started when emails are received via IMAP, bringing event-driven automation to your email workflows.
For Microsoft Outlook mailboxes, you can also use the Microsoft Outlook data source which connects via the MS Graph API and supports both reading and sending emails in a single data source.
Email Trigger is a data source type in Integration Designer that allows FlowX.AI processes to be triggered automatically when emails arrive in a monitored mailbox. This enables use cases such as:
Customer support automation: Automatically create support tickets when emails arrive
Document processing: Trigger document workflows when emails with attachments are received
Request handling: Start approval processes based on incoming email requests
Notification workflows: Process automated alerts from monitoring systems
The Email Trigger system follows a straightforward flow:
1
Configure Email Connection
Set up an IMAP connection to your email server as a Data Source in Integration Designer.
2
Link to Message Start Event (Start Catch Message)
Connect the Email Trigger to a Message Start Event node in your process definition.
3
Activate the Trigger
Turn on monitoring from the Manage Triggers section in Runtime Settings.
4
Process Incoming Emails
When emails arrive, FlowX.AI automatically creates process instances with the email data.
An Email Trigger can also start an integration workflow: bind it on the workflow’s Start node instead of a Message Start Event. The email arrives in the workflow’s data model as emailMessage. For details, see External triggers.
Email Triggers process only new emailsAn Email Trigger only processes emails that arrive after the trigger is activated for the first time. Existing emails in the mailbox — whether read or unread — are never picked up retroactively.This applies to reactivation as well: if you deactivate and then reactivate a trigger, only emails that arrive after the reactivation are processed. Anything that landed in the mailbox during the inactive period is ignored.For IMAP triggers, the email must also still be unread in the monitored folder when the trigger picks it up.
Turn on secure connection using SSL/TLS encryption. Recommended: ON.With SSL/TLS on, the mail server’s certificate is verified: it must be signed by a trusted authority and match the server’s host name. Test Connection and the trigger fail against a server with a self-signed, private-CA, or mismatched certificate. On self-hosted deployments, add the server’s CA to the Email Gateway trust store or list the host in EMAILGATEWAY_IMAP_SSLTRUSTEDHOSTS. See IMAP configuration in the Email Gateway setup guide.
The SSL/TLS setting determines the default port value. Change this setting before adjusting the port.
Click the Test Connection button to verify your settings:
Result
Message
Action
✅ Success
”Established connection”
Proceed to save
❌ Error
”Failed to establish connection”
Check credentials and server settings
When you click Create, another authentication test is performed. If the test fails, you’ll be redirected to the Authorization tab with an error message, but the Email Trigger will still be created.
Start Process for — which incoming emails should create a process instance.
Save email attachments on process — which attachments are forwarded into the process data.
If a trigger condition fails, the email is rejected and appears in the Failed Triggers section. If an attachment is filtered out by the forwarding mode, it is dropped silently and no Failed Trigger is recorded.
Start the process if at least one attachment matches the selected file types. The Allowed File Types multiselect activates. Emails without a matching attachment are rejected with cause No matching file types.Earlier releases selected allowed types from the file type categories below.
Type
Extensions
PDF
.pdf
DOCUMENT
.doc, .docx, .txt
IMAGE
.png, .jpg, .jpeg, .tif, .tiff, .gif
EXCEL
.xls, .xlsx, .csv
ZIP
.zip
Individual file extensionsAllowed File Types and Forward File Types select individual file extensions instead of these categories. The categories no longer exist in the runtime, so the table above serves only as a reference for what each one used to cover.Selected extensions are stored as bare uppercase values without a leading dot (PDF, DOCX). Input is tolerant of case and of a leading dot, so pdf and .pdf resolve to the same extension. Existing triggers are migrated automatically, with each stored category expanded into the individual extensions it covered.
Save only attachments that match the selected file types. The Forward File Types multiselect activates. Non-matching attachments are dropped silently (no Failed Trigger entry).
Maximum number of attachments allowed per email. If exceeded, the email is rejected at the trigger level and appears in Failed Triggers with cause File count exceeded.Leave empty for no limit.
Maximum allowed size per attachment file, in megabytes. Applies across all forwarding strategies.Maximum allowed value: 25 MBLeave empty to apply no per-file size limit beyond the 25 MB hard cap.
Triggers migrated from an earlier deploymentWhen a deployment is upgraded, existing triggers are set to All incoming emails + All attachments. The Allowed File Types value is preserved on the trigger but no longer filters anything until you switch the trigger condition or forwarding mode to one of the file-type options. Reopen each trigger after the upgrade to confirm the new settings match your intent.
All fields in the Settings section accept configuration parameters, enabling environment-specific configurations.
The Email Trigger polls for new emails every 30 seconds by default. This interval can be configured at the environment level but is not user-configurable in the UI.
Uploaded to the Document Plugin as temporary files
Copied to permanent storage linked to the process instance
Referenced in the fileAttachments array with download paths
Attachment processing happens asynchronously. The file copy to permanent storage may complete after the process instance starts. If your process needs to access attachments immediately, consider adding a wait step. Upload retries on InterruptedException only — up to 3 attempts with exponential backoff totaling roughly 7 seconds. Other failures (network, document plugin errors) fail fast.
The inbound fileAttachments[] shape (filePath, downloadPath) differs from the outbound shape expected by the Send Notification action’s Attachments field (path, filename).To forward original attachments on a reply, transform emailMessage.fileAttachments into the Send Notification shape — typically in a Script node — and pass the result through a process variable:
For an Email Trigger to appear in Manage Triggers:
✅ Email Trigger must be created as a Data Source
✅ Email Trigger must be added to a Message Start Event node
✅ The process must be part of a build in the Active Policy
When the Active Policy changes, Email Triggers retain their previous state (Active or Deactivated). If an Email Trigger is deleted from the latest build, it will be automatically deactivated.
All Email Trigger configuration changes and runtime actions (activation, deactivation, trigger events) are recorded in the audit trail for compliance and debugging purposes.
Navigate to your process definition and click Start Process. If the process has a Message Start Event configured with an Email Trigger, the dialog displays a mock email form instead of the standard start parameters.
2
Fill in the mock email fields
Complete the form fields to simulate an incoming email:
Field
Description
Subject
The email subject line
Sender
The sender email address
Datetime
When the email was “received” (defaults to the current date and time)
Body
The email body content
Upload files
Attach files to simulate email attachments. Accepted types: PDF, DOCUMENT (.doc, .docx, .txt), IMAGE (.png, .jpg, .jpeg, .tif, .tiff, .gif), EXCEL (.xls, .xlsx, .csv), ZIP (.zip), up to 25 MB
Theme
Select the theme to use for the process instance
3
Start the process
Click Start Process to create a process instance using the mock email data, just as if a real email had been received.
Use mock testing to validate your process handles edge cases — emails without attachments, emails with multiple Reply-To addresses, or emails with large body content.
Message: “The file {filename} could not be uploaded because it is not on the list of permitted file types.”Resolution: Update the Allowed File Types in the Email Trigger settings, or ask the sender to use an accepted format.
Message: “{filename} is too large. Maximum allowed: 25 MB”Resolution: The attachment exceeds the maximum file size limit. Ask the sender to reduce the file size or split into multiple emails.
Message: “File limit exceeded. For this Email Trigger there is a limit of {limit} files per email.”Resolution: The email contains more attachments than the trigger-level Maximum File Count. Ask the sender to split attachments across multiple emails, or raise the limit on the trigger.
Message: “Email rejected: trigger requires emails with attachments, but none were found.”Resolution: The trigger is configured to Start Process for → Only emails with attachments, but the incoming email had none. Ask the sender to include an attachment, or switch the trigger condition to All incoming emails.
Message: “Email rejected: no attachments matching the allowed file types {types} were found.”Resolution: The trigger is configured to Start Process for → Only emails with these attachment file types, and none of the inbound attachments matched the Allowed File Types list. Ask the sender to use an accepted format or widen the allowed list.
Message: “We couldn’t connect to your email server. This might be due to:
Incorrect server settings
No internet connection
Firewall blocking the connection
Please check your connection and try again.”Resolution: Verify the IMAP server settings in the Email Trigger Authorization tab and test the connection.
Store server credentials and environment-specific settings in configuration parameters for easy management across environments.
Set appropriate validations
Configure file type, size, and count limits to prevent processing of unwanted or malicious content.
Monitor failed triggers
Regularly review the Failed Triggers section to identify issues with email processing.
Handle attachments asynchronously
Remember that attachment processing is asynchronous. Design your process to handle potential delays in file availability.
Security Note: Email attachments are uploaded without virus scanning in the current implementation. Consider implementing additional security measures for sensitive environments.
Incorrect credentials: Verify username and password
Wrong port: Use 993 for IMAP with SSL/TLS
Certificate not trusted: With SSL/TLS on, the server’s certificate must be signed by a trusted authority and match its host name. On self-hosted deployments, trust a self-signed or private-CA certificate as described in IMAP configuration
Firewall: Ensure outbound connections to the mail server are allowed
2FA enabled: Generate an app-specific password for the email account
Emails not triggering processes
Check:
Is the trigger Active in Manage Triggers?
Is the correct mailbox folder configured?
Do incoming emails pass validation rules?
Review Failed Triggers for error details
Attachments not available in process
Attachment processing is asynchronous. If you need immediate access:
Add a wait step or message catch event after the start node
See the Email Trigger in a full build: invoices arrive by email, AI extracts them, and exceptions go to a reviewer
Email Sender
Configure SMTP connections to send and reply to emails from processes
Microsoft Outlook
Connect to Outlook via MS Graph API for reading and sending emails
Send Notification Action
Send emails and reply to received emails directly from process nodes
Integration Designer
Learn about other data source types and workflow creation
Message Start Event
Configure message-based process triggers
Document Plugin
Manage files and attachments in FlowX.AI
Configuration Parameters
Use environment variables for flexible configurations
Last modified on October 30, 2026
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"FlowX.AI","description":"Comprehensive documentation for FlowX.AI, the AI-driven process automation platform.","colors":{"primary":"#fcb813","light":"#fcb813","dark":"#fcb813"},"logo":{"light":"https://mintcdn.com/flowxai/38fXEM0a7v86Lg2m/logo/light.png?fit=max\u0026auto=format\u0026n=38fXEM0a7v86Lg2m\u0026q=85\u0026s=d767c06cef433b0a02f40a1f4f785eab","dark":"https://mintcdn.com/flowxai/38fXEM0a7v86Lg2m/logo/dark.png?fit=max\u0026auto=format\u0026n=38fXEM0a7v86Lg2m\u0026q=85\u0026s=6b8b8c3e7abd17acf6be8bffce4e599d"},"favicon":"https://mintcdn.com/flowxai/VVxnbzjz7JuL1Ngt/favicon2.svg?fit=max\u0026auto=format\u0026n=VVxnbzjz7JuL1Ngt\u0026q=85\u0026s=ef6a780a1ed3894c7b276bcc7b3c6c69","appearance":{"default":"dark","strict":false},"background":{"decoration":"grid","color":{"light":"#f4f4f5","dark":"#0a0b0d"}},"navbar":{"links":[],"primary":{"type":"button","label":"Academy","href":"https://academy.flowx.ai/"}},"footer":{"socials":{"linkedin":"https://www.linkedin.com/company/flowxai","x":"https://x.com/FlowX_ai","youtube":"https://www.youtube.com/@FlowX_AI"},"links":[{"header":"Documentation","items":[{"label":"Introduction","href":"https://docs.flowx.ai/5.9/docs/introduction"},{"label":"Platform overview","href":"https://docs.flowx.ai/5.9/docs/platform-overview/flowx-architecture"},{"label":"Designer","href":"https://docs.flowx.ai/5.9/docs/flowx-designer/overview"},{"label":"AI Platform","href":"https://docs.flowx.ai/5.9/ai-platform/ai-in-flowx"},{"label":"Use the docs with AI","href":"https://docs.flowx.ai/5.9/docs/getting-started/using-flowx-docs-with-ai"},{"label":"Release notes","href":"https://docs.flowx.ai/release-notes/overview"}]},{"header":"Resources","items":[{"label":"FlowX.AI Academy","href":"https://academy.flowx.ai"},{"label":"Support","href":"https://flowxai.zendesk.com/"}]},{"header":"Company","items":[{"label":"About FlowX.AI","href":"https://www.flowx.ai/about"},{"label":"Contact us","href":"mailto:hello@flowx.ai"},{"label":"Careers","href":"https://apply.workable.com/flowxai"}]},{"header":"Legal","items":[{"label":"Privacy Policy","href":"https://www.flowx.ai/privacy-policy"},{"label":"Cookie Policy","href":"https://www.flowx.ai/cookie-policy"},{"label":"Terms and Conditions","href":"https://www.flowx.ai/terms-and-conditions"}]}]},"search":{"prompt":"Search the docs"},"seo":{"metatags":{"zd-site-verification":"94tteg5ir5of8gkb4twzh"}},"fonts":{"heading":{"family":"Sora"},"body":{"family":"Geist"}},"styling":{"eyebrows":"breadcrumbs","codeblocks":"dark","latex":true},"integrations":{"ga4":{"measurementId":"G-CGW0FVK9YM"}},"banner":{"content":"🚀 [See the latest FlowX.AI releases →](/release-notes/overview)","dismissible":true},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"header"},"metadata":{"timestamp":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"flowxai","hasAudioNarration":false,"actualSubdomain":"flowxai","customDomains":["docs.flowx.ai"],"gitSource":{"type":"github","owner":"flowx-ai","repo":"flowx-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae4c8fd7f8a500a1fd86923","collectionId":"f43bb162-8d91-4fce-8112-9a85f1f82724","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae4c8fd7f8a500a1fd86923"},"feedback":{"thumbs":true,"contextualFeedback":{"allowEmail":true},"agentFeedback":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"CONTEXTUAL_FEEDBACK":{"status":"ENABLED"},"CODE_SNIPPET_FEEDBACK":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6ae4c8fd7f8a500a1fd86923","clientVersion":"0.0.4039","searchFilterCounts":[{"language":"default","tag":"Documentation","count":787},{"language":"default","tag":"Building blocks","count":329},{"language":"default","tag":"Platform deep dive","count":257},{"language":"default","tag":"Setup guides","count":191},{"language":"default","tag":"UI Designer","count":140},{"language":"default","tag":"Release notes","count":137},{"language":"default","tag":"Release Notes","count":137},{"language":"default","tag":"Microservices","count":112},{"language":"default","tag":"Core extensions","count":107},{"language":"default","tag":"Nodes","count":88}],"searchSettings":{"isFiltersEnabled":true}},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":true,"enableAskAiSearchBar":true,"deflection":{"enabled":true,"type":"email","email":"learning.team@flowx.ai","showHelpButton":true}},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"privacy":{"consentBanner":{"enabled":true}},"googleFontsInlined":true},"customCss":[{"filePath":"custom.css","content":"/* cyrillic-ext */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrodmgPn.woff2) format('woff2');\n unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;\n}\n/* cyrillic */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrMdmgPn.woff2) format('woff2');\n unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;\n}\n/* symbols2 */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFg08vz7ehw.woff2) format('woff2');\n unicode-range: U+2000-2001, U+2004-2008, U+200A, U+23B8-23BD, U+2500-259F;\n}\n/* vietnamese */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrgdmgPn.woff2) format('woff2');\n unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;\n}\n/* latin-ext */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrkdmgPn.woff2) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrcdmg.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n/* cyrillic-ext */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrodmgPn.woff2) format('woff2');\n unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;\n}\n/* cyrillic */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrMdmgPn.woff2) format('woff2');\n unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;\n}\n/* symbols2 */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFg08vz7ehw.woff2) format('woff2');\n unicode-range: U+2000-2001, U+2004-2008, U+200A, U+23B8-23BD, U+2500-259F;\n}\n/* vietnamese */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrgdmgPn.woff2) format('woff2');\n unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;\n}\n/* latin-ext */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrkdmgPn.woff2) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrcdmg.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n/* cyrillic-ext */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 600;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrodmgPn.woff2) format('woff2');\n unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;\n}\n/* cyrillic */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 600;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrMdmgPn.woff2) format('woff2');\n unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;\n}\n/* symbols2 */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 600;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFg08vz7ehw.woff2) format('woff2');\n unicode-range: U+2000-2001, U+2004-2008, U+200A, U+23B8-23BD, U+2500-259F;\n}\n/* vietnamese */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 600;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrgdmgPn.woff2) format('woff2');\n unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;\n}\n/* latin-ext */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 600;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrkdmgPn.woff2) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 600;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrcdmg.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n@keyframes fxh-tick-pulse{0%,to{opacity:1}50%{opacity:.35}}@keyframes fxh-caret-blink{50%{opacity:0}}@keyframes fxh-ln-in{to{opacity:1;transform:none}}@keyframes fxh-rv-in{to{opacity:1;transform:none}}@keyframes fxl-stack-ride{0%{top:0;opacity:0}4%{opacity:1}52%{top:calc(100% - 7px);opacity:1}58%,to{top:calc(100% - 7px);opacity:0}}@keyframes fxl-stack-lit{0%,2%,30%,to{color:var(--fxl-faint)}18%,6%{color:var(--fxl-text)}}@keyframes fxl-stack-tick{0%,2%,30%,to{background:var(--fxl-line)}18%,6%{background:#fcb813}}code,kbd,pre,samp{font-family:\"Geist Mono\",ui-monospace,SFMono-Regular,Menlo,monospace}#topbar-cta-button{color:#131007!important}.label-version{display:inline-block;font-weight:700;color:#fff;background-color:#007bff;padding:.5px 15px;border-radius:12px;box-shadow:0 2px 4px rgba(0,0,0,.1);font-size:.9em;text-transform:uppercase;letter-spacing:.5px;margin-right:5px;transition:background-color .3s ease;text-decoration:none}.label-version:hover{background-color:#0056b3}#banner{background:linear-gradient(90deg,#0a0b0d 0,#0e1013 55%,#2a2310 100%)!important;border-bottom:1px solid rgba(252,184,19,.3);backdrop-filter:saturate(120%)}#banner a{color:#fcb813!important;text-decoration-color:rgba(252,184,19,.55)!important;transition:opacity .2s ease}#banner a:hover{opacity:.85}:root{--flowx-yellow-50:#fff8e7;--flowx-yellow-200:#ffdf92;--flowx-yellow-400:#ffc739;--flowx-yellow-500:#fcb813;--flowx-yellow-800:#8a5e00;--flowx-yellow-900:#6b4e08;--flowx-neutrals-50:#f7f8f9;--flowx-neutrals-100:#e3e8ed;--flowx-neutrals-200:#cbd1db;--flowx-neutrals-300:#a6b0be;--flowx-neutrals-400:#8390a2;--flowx-neutrals-500:#64748b;--flowx-neutrals-700:#475263;--flowx-neutrals-800:#2a313a;--flowx-neutrals-900:#1d232c;--flowx-blue-50:#e6f0fb;--flowx-blue-200:#8abbed;--flowx-blue-700:#004c99;--flowx-blue-900:#002d5b;--flowx-elevation-m:0 8px 16px #1634621a}.cb-wrap{margin-top:32px}.cb-filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:24px}.cb-filters input{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.cb-filters label{cursor:pointer;user-select:none;font-size:12px;line-height:16px;font-weight:600;padding:8px 16px;border-radius:120px;border:1px solid var(--flowx-neutrals-200);color:var(--flowx-neutrals-500);background:0 0;transition:border-color .15s ease,background .15s ease,color .15s ease}.cb-filters label span{margin-left:6px;opacity:.55;font-variant-numeric:tabular-nums}.cb-filters label:hover{border-color:var(--flowx-yellow-500);color:var(--flowx-neutrals-900)}.cb-filters input:checked+label,.dark .cb-filters input:checked+label{background:var(--flowx-yellow-500);border-color:var(--flowx-yellow-500);color:var(--flowx-neutrals-900)}.cb-filters input:focus-visible+label{outline:2px solid var(--flowx-yellow-500);outline-offset:2px}.dark .cb-filters label{border-color:var(--flowx-neutrals-700);color:var(--flowx-neutrals-400)}.dark .cb-filters label:hover{border-color:var(--flowx-yellow-400);color:var(--flowx-neutrals-50)}.cb-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}@media (max-width:1024px){.cb-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:640px){.cb-grid{grid-template-columns:1fr}}.cb-wrap:has(#cb-conv:checked) .cb-card:not([data-f~=conversational]),.cb-wrap:has(#cb-cookbook:checked) .cb-card:not([data-f~=cookbook]),.cb-wrap:has(#cb-docs:checked) .cb-card:not([data-f~=docs]),.cb-wrap:has(#cb-guide:checked) .cb-card:not([data-f~=guide]),.cb-wrap:has(#cb-integr:checked) .cb-card:not([data-f~=integrations]),.cb-wrap:has(#cb-pattern:checked) .cb-card:not([data-f~=pattern]),.cb-wrap:has(#cb-tutorial:checked) .cb-card:not([data-f~=tutorial]),.cb-wrap:has(#cb-ui:checked) .cb-card:not([data-f~=ui]){display:none}.cb-card{position:relative;display:flex;flex-direction:column;gap:12px;padding:24px;border:1px solid var(--flowx-neutrals-100);border-radius:16px;background:0 0;text-decoration:none!important;transition:border-color .2s ease,transform .2s ease,box-shadow .2s ease}.cb-card::after{content:\"\\2192\";position:absolute;top:20px;right:24px;font-size:14px;line-height:22px;color:var(--flowx-neutrals-300);transition:color .2s ease,transform .2s ease}.cb-card:hover{transform:translateY(-2px);border-color:var(--flowx-yellow-500);box-shadow:var(--flowx-elevation-m)}.cb-card:hover::after{color:var(--flowx-neutrals-900);transform:translateX(4px)}.dark .cb-card{border-color:var(--flowx-neutrals-800)}.dark .cb-card:hover{border-color:var(--flowx-yellow-400);box-shadow:0 8px 16px rgba(0,0,0,.4)}.dark .cb-card:hover::after,.dark .cb-foot a:hover{color:var(--flowx-yellow-400)}@media (prefers-reduced-motion:reduce){.cb-card,.cb-card::after{transition:none}.cb-card:hover,.cb-card:hover::after{transform:none}}.cb-tags{display:flex;flex-wrap:wrap;gap:6px;padding-right:24px}.cb-tag{font-size:10px;line-height:12px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;padding:4px 8px;border-radius:4px;background:var(--flowx-neutrals-50);color:var(--flowx-neutrals-500)}.cb-tag-tut{background:var(--flowx-yellow-50);color:var(--flowx-yellow-800)}.cb-tag-pat{background:var(--flowx-neutrals-900);color:#fff}.cb-tag-cook{background:var(--flowx-yellow-500);color:var(--flowx-neutrals-900)}.cb-tag-gui{background:var(--flowx-blue-50);color:var(--flowx-blue-700)}.dark .cb-tag{background:var(--flowx-neutrals-800);color:var(--flowx-neutrals-400)}.dark .cb-tag-tut{background:var(--flowx-yellow-900);color:var(--flowx-yellow-200)}.dark .cb-tag-pat{background:var(--flowx-neutrals-50);color:var(--flowx-neutrals-900)}.dark .cb-tag-cook{background:var(--flowx-yellow-500);color:var(--flowx-neutrals-900)}.dark .cb-tag-gui{background:var(--flowx-blue-900);color:var(--flowx-blue-200)}.cb-foot a,.cb-title{font-weight:600;color:var(--flowx-neutrals-900)}.cb-title{display:block;font-size:14px;line-height:22px;letter-spacing:-.01em}.dark .cb-foot a,.dark .cb-title{color:var(--flowx-neutrals-50)}.cb-desc{display:block;font-size:12px;line-height:18px;font-weight:400;color:var(--flowx-neutrals-500)}.cb-foot span,.dark .cb-desc{color:var(--flowx-neutrals-400)}.cb-foot{display:flex;flex-wrap:wrap;align-items:baseline;gap:16px;margin-top:40px;padding-top:24px;border-top:1px solid var(--flowx-neutrals-100);font-size:12px;line-height:16px}.dark .cb-foot{border-top-color:var(--flowx-neutrals-800)}.dark .cb-foot span{color:var(--flowx-neutrals-500)}.cb-foot a{text-decoration:none;border-bottom:1px solid var(--flowx-yellow-500);padding-bottom:1px}.cb-foot a:hover{color:var(--flowx-yellow-800)}#content-area:has(.fxh-hero) #header{display:none}main#content-container:has(.fxh-hero){max-width:none}#content-area:has(.fxh-hero){width:100%!important}#content-area:has(.fxh-hero) #content{max-width:none;margin-top:0}#content-area:has(.fxh-hero) #content div[class*=\"--page-padding\"]{--page-padding:0px}#content-area:has(.fxh-hero) #content>:not(.fxh-hero){max-width:1360px;margin-left:auto;margin-right:auto}.fxh-hero{position:relative;text-align:center}@media (min-width:1024px){.fxh-hero{margin-top:-2.5rem}}.fxh-hero__bg{position:sticky;top:0;z-index:0;height:100dvh;overflow:clip;border-radius:18px;background:#0a0b0d;border:1px solid rgba(255,255,255,.08)}.fxh-hero__bg::after,.fxh-hero__bg::before{content:\"\";position:absolute;pointer-events:none}.fxh-hero__bg::before{inset:0;background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);background-size:56px 56px;-webkit-mask-image:radial-gradient(ellipse at 50% 0,#000 25%,transparent 75%);mask-image:radial-gradient(ellipse at 50% 0,#000 25%,transparent 75%)}.fxh-hero__bg::after{top:-45%;left:25%;width:50%;height:90%;background:radial-gradient(closest-side,rgba(252,184,19,.1),transparent 70%)}.fxh-hero__steps{position:relative;z-index:1;margin-top:-100dvh}.fxh-hero__step{position:relative;min-height:calc(100dvh - 9.5rem);display:grid;grid-template-columns:minmax(0,1fr);align-content:center;padding:48px clamp(24px,5vw,56px) 96px}.fxh-hero__step:not(:first-child){min-height:72dvh;padding-top:48px;padding-bottom:48px}.fxh-hero--single .fxh-hero__bg{position:absolute;inset:0;height:auto;z-index:0}.fxh-hero--single .fxh-hero__steps{margin-top:0}.fxh-hero--single .fxh-hero__step{min-height:calc(100dvh - 9.5rem)}.fxh-hero--slim .fxh-hero__step{min-height:min(46dvh,480px);padding-top:clamp(40px,6vh,64px);padding-bottom:clamp(40px,6vh,64px)}.fxh-step-title{display:block;font-family:\"Sora\",sans-serif;font-size:clamp(1.7rem,3.4vw,2.6rem);font-weight:700;letter-spacing:-.02em;line-height:1.1;color:#f5f5f0;max-width:20ch;margin:0 auto clamp(18px,3vh,28px)}.fxh-vs{display:flex;flex-wrap:wrap;justify-content:center;gap:clamp(9px,1.1vw,14px);max-width:min(780px,100%);margin:clamp(14px,3vh,30px) auto 0;padding:0;list-style:none}.fxh-vs li{display:flex;align-items:center;gap:12px;padding:11px clamp(18px,1.6vw,24px);border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.035);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:999px}.fxh-vs__no{font-family:\"Geist Mono\",ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;color:rgba(255,255,255,.42)}.fxh-vs__name{font-family:\"Sora\",sans-serif;font-size:clamp(12.5px,1.1vw,15px);font-weight:600;letter-spacing:.01em;color:rgba(255,255,255,.9)}.fxh-scroll{position:absolute;bottom:clamp(20px,4vh,40px);left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:8px;font-family:\"Geist Mono\",ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10px;letter-spacing:.3em;text-transform:uppercase;color:rgba(255,255,255,.42)}.fxh-scroll-line{width:1px;height:46px;background:linear-gradient(rgba(255,255,255,.45),transparent)}.fxh-eyebrow{font-family:\"Geist Mono\",ui-monospace,SFMono-Regular,Menlo,monospace;display:inline-flex;align-items:center;gap:12px;font-size:13px;font-weight:400;letter-spacing:.22em;text-transform:uppercase;color:#a3a39a;margin-bottom:28px}.fxh-tick{display:inline-block;width:8px;height:8px;flex-shrink:0;background:#fcb813;animation:fxh-tick-pulse 2.6s ease-in-out infinite}.fxh-title{display:block;font-family:\"Sora\",sans-serif;font-weight:700;letter-spacing:-.02em;line-height:1.08;max-width:920px;margin:0 auto clamp(20px,3vh,28px);text-wrap:balance}.fxh-line{display:block;font-size:clamp(1.7rem,3.4vw,2.7rem);color:#f5f5f0}.fxh-line--dim{color:rgba(244,245,243,.58);margin-top:.06em}.fxh-amber{color:#fcb813}.fxh-sub{display:block;max-width:62ch;margin:0 auto clamp(20px,3vh,28px);font-size:15px;line-height:1.55;color:#b9b9b1}.fxh-cta,.fxh-ctas{justify-content:center}.fxh-ctas{display:flex;flex-wrap:wrap;gap:12px;position:relative}.fxh-cta{display:inline-flex;align-items:center;gap:8px;white-space:nowrap;padding:12px 22px;border-radius:10px;font-size:15px;font-weight:550;text-decoration:none!important;transition:background .2s ease,border-color .2s ease,color .2s ease}.fxh-cta--primary{background:#fcb813;color:#131007!important;font-weight:640}.fxh-cta--primary:hover{background:#ffc739}.fxh-cta--ghost{border:1px solid rgba(255,255,255,.16);color:#f4f5f3!important}.fxh-cta--ghost:hover{border-color:rgba(255,255,255,.42);background:rgba(255,255,255,.04)}.fxh-term,.fxh-term__dots i{border:1px solid rgba(255,255,255,.12)}.fxh-term{position:relative;width:min(680px,100%);margin:clamp(24px,4vh,36px) auto clamp(22px,3.5vh,32px);text-align:left;border-radius:18px;overflow:hidden;background:linear-gradient(180deg,rgba(255,255,255,.1) 0,rgba(255,255,255,.03) 20%,rgba(255,255,255,.01) 60%,rgba(255,255,255,.045) 100%),rgba(10,11,13,.91);box-shadow:0 24px 60px rgba(0,0,0,.5)}.fxh-term__bar{display:flex;align-items:center;gap:16px;padding:14px 22px;font-family:\"Geist Mono\",ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;letter-spacing:.06em;color:rgba(255,255,255,.62);border-bottom:1px solid rgba(255,255,255,.12)}.fxh-term__dots{display:inline-flex;gap:7px}.fxh-term__dots i{width:11px;height:11px;border-radius:50%}.fxh-term__body{display:flex;flex-direction:column;gap:14px;padding:24px 26px 26px;font-family:\"Geist Mono\",ui-monospace,SFMono-Regular,Menlo,monospace;font-size:14px}.fxh-term__body p{margin:0;color:rgba(255,255,255,.72)}.fxh-term__prompt{color:#fcb813;margin-right:8px}.fxh-caret{display:inline-block;width:9px;height:1.05em;margin-left:6px;vertical-align:text-bottom;background:rgba(252,184,19,.85);animation:fxh-caret-blink 1.1s steps(1) infinite}.fxh-term__log{display:grid;gap:5px;align-content:start}.fxh-term__log:empty{display:none}.fxh-term__log .ln{display:flex;justify-content:space-between;gap:16px;font-size:12.5px;color:rgba(255,255,255,.58);opacity:0;transform:translateY(6px);animation:fxh-ln-in .45s cubic-bezier(.16,1,.3,1) forwards}.fxh-term__log .ok{color:#fcb813;margin-right:8px}.fxh-term__log .t,.fxh-term__ver{color:rgba(255,255,255,.34)}.fxh-term__ver{margin-left:auto}.fxh-field{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;opacity:.55}#footer a[href*=\"utm_campaign=poweredBy\"],.fxh-hero--live .fxh-hero__bg::before{display:none}.fxh-hero--live .fxh-hero__step:first-child .fxh-ctas,.fxh-hero--live .fxh-hero__step:first-child .fxh-eyebrow,.fxh-hero--live .fxh-hero__step:first-child .fxh-scroll,.fxh-hero--live .fxh-hero__step:first-child .fxh-sub,.fxh-hero--live .fxh-hero__step:first-child .fxh-title{opacity:0;transform:translateY(26px);animation:fxh-rv-in .9s cubic-bezier(.16,1,.3,1) forwards}.fxh-hero--live .fxh-hero__step:first-child .fxh-eyebrow{animation-delay:.15s}.fxh-hero--live .fxh-hero__step:first-child .fxh-title{animation-delay:.26s}.fxh-hero--live .fxh-hero__step:first-child .fxh-sub{animation-delay:.48s}.fxh-hero--live .fxh-hero__step:first-child .fxh-ctas{animation-delay:.59s}.fxh-hero--live .fxh-hero__step:first-child .fxh-scroll{animation-delay:.92s}@media (max-width:640px){.fxh-hero__step{padding:72px 20px}}@media (prefers-reduced-motion:reduce){.fxh-caret,.fxh-tick{animation:none}.fxh-hero--live .fxh-hero__step:first-child .fxh-ctas,.fxh-hero--live .fxh-hero__step:first-child .fxh-eyebrow,.fxh-hero--live .fxh-hero__step:first-child .fxh-scroll,.fxh-hero--live .fxh-hero__step:first-child .fxh-sub,.fxh-hero--live .fxh-hero__step:first-child .fxh-title{animation:none;opacity:1;transform:none}}.cb-grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}@media (max-width:640px){.cb-grid--2{grid-template-columns:1fr}}:root{--fxl-mono:\"Geist Mono\", ui-monospace, SFMono-Regular, Menlo, monospace;--fxl-display:\"Sora\", sans-serif;--fxl-ease:cubic-bezier(0.16, 1, 0.3, 1);--fxl-text:#17181b;--fxl-dim:rgba(23, 24, 27, 0.64);--fxl-faint:rgba(23, 24, 27, 0.44);--fxl-line:rgba(24, 24, 27, 0.12);--fxl-line-soft:rgba(24, 24, 27, 0.07);--fxl-amber-text:#8a5e00;--fxl-bg:#f4f4f5;--fxl-panel:#fcfcfd;--fxl-amber-soft:rgba(252, 184, 19, 0.12)}.dark{--fxl-text:#f4f5f3;--fxl-dim:rgba(244, 245, 243, 0.58);--fxl-faint:rgba(244, 245, 243, 0.34);--fxl-line:rgba(255, 255, 255, 0.08);--fxl-line-soft:rgba(255, 255, 255, 0.05);--fxl-amber-text:#fcb813;--fxl-bg:#0a0b0d;--fxl-panel:#0c0e11;--fxl-amber-soft:rgba(252, 184, 19, 0.08)}.fxl-no{display:flex;align-items:center;gap:12px;font-family:var(--fxl-mono);font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--fxl-faint);margin-top:8px}.fxl-no::after{content:\"\";flex:1;height:1px;background:var(--fxl-line-soft)}.fxl-no+h2{margin-top:10px}.fxl-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--fxl-line);border:1px solid var(--fxl-line);border-radius:16px;overflow:hidden}.fxl-cell{position:relative;display:block;background:var(--fxl-panel);padding:clamp(24px,2.6vw,34px);text-decoration:none!important;transition:background .2s ease}.fxl-cell:hover{background:var(--fxl-amber-soft)}.fxl-cell::after{content:\"\\2192\";position:absolute;top:24px;right:26px;font-family:var(--fxl-mono);font-size:14px;color:var(--fxl-faint);transition:color .2s ease,transform .2s ease}.fxl-cell:hover::after{color:var(--fxl-amber-text);transform:translateX(4px)}.fxl-cell__no{display:block;font-family:var(--fxl-mono);font-size:11px;letter-spacing:.2em;color:var(--fxl-amber-text);margin-bottom:14px}.fxl-cell__title{display:block;font-family:var(--fxl-display);font-size:18px;font-weight:600;letter-spacing:-.01em;color:var(--fxl-text);margin-bottom:6px}.fxl-cell__desc{display:block;font-size:13.5px;line-height:1.5;color:var(--fxl-dim);max-width:46ch}.fxl-grid--1{grid-template-columns:1fr}.fxl-grid--3{grid-template-columns:repeat(3,1fr)}@media (max-width:1024px){.fxl-grid--3{grid-template-columns:repeat(2,1fr)}}@media (max-width:640px){.fxl-grid,.fxl-grid--3{grid-template-columns:1fr}}.fxl-cell--eval{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:32px;align-items:center}.fxl-cell--eval::after{content:none}.fxl-cell--eval:hover{background:var(--fxl-panel)}.fxl-eval__links{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:18px}.fxl-eval__links a,.fxl-stack{font-family:var(--fxl-mono);font-size:12px}.fxl-eval__links a{color:var(--fxl-amber-text);text-decoration:none!important;border-bottom:1px solid rgba(252,184,19,.45);padding-bottom:1px}.fxl-eval__links a:hover{border-bottom-color:var(--fxl-amber-text)}.fxl-stack{color:var(--fxl-faint)}.fxl-stack__row{position:relative;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:7px 12px 7px 30px;border-bottom:1px solid var(--fxl-line-soft)}.fxl-rails li:last-child,.fxl-stack__row:last-child{border-bottom:none}.fxl-stack__row span:last-child{font-size:10.5px;letter-spacing:.08em;opacity:.8}.fxl-stack__tick{position:absolute;left:10px;top:50%;width:7px;height:7px;margin-top:-3.5px;border-radius:2px;background:var(--fxl-line)}.fxl-stack__client{border:1px solid var(--fxl-line);border-radius:10px;color:var(--fxl-dim)}.fxl-stack__client .fxl-stack__tick{background:#fcb813}.fxl-stack__gw{display:flex;align-items:center;gap:10px;padding:10px 0 10px 30px;font-size:10.5px;letter-spacing:.16em;text-transform:uppercase}.fxl-stack__gw::after{content:\"\";flex:1;height:1px;background:repeating-linear-gradient(90deg,var(--fxl-line) 0 4px,transparent 4px 8px)}.fxl-stack__svc{position:relative;border:1px solid var(--fxl-line);border-radius:10px;overflow:hidden}.fxl-stack__spine{position:absolute;left:13px;top:0;bottom:0;width:1px;background:var(--fxl-line)}.fxl-stack__pulse{position:absolute;left:10px;top:0;width:7px;height:7px;border-radius:50%;background:#fcb813;box-shadow:0 0 0 4px rgba(252,184,19,.18);opacity:0;animation:fxl-stack-ride 6.6s linear infinite}.fxl-stack__svc .fxl-stack__row,.fxl-stack__svc .fxl-stack__tick{animation:6.6s linear infinite}.fxl-stack__svc .fxl-stack__row{animation-name:fxl-stack-lit}.fxl-stack__svc .fxl-stack__tick{animation-name:fxl-stack-tick}.fxl-stack__svc .fxl-stack__row:nth-child(4),.fxl-stack__svc .fxl-stack__row:nth-child(4) .fxl-stack__tick{animation-delay:.55s}.fxl-stack__svc .fxl-stack__row:nth-child(5),.fxl-stack__svc .fxl-stack__row:nth-child(5) .fxl-stack__tick{animation-delay:1.1s}.fxl-stack__svc .fxl-stack__row:nth-child(6),.fxl-stack__svc .fxl-stack__row:nth-child(6) .fxl-stack__tick{animation-delay:1.65s}.fxl-stack__svc .fxl-stack__row:nth-child(7),.fxl-stack__svc .fxl-stack__row:nth-child(7) .fxl-stack__tick{animation-delay:2.2s}.fxl-stack__svc .fxl-stack__row:nth-child(8),.fxl-stack__svc .fxl-stack__row:nth-child(8) .fxl-stack__tick{animation-delay:2.75s}.fxl-stack__foot{display:flex;justify-content:space-between;margin-top:8px;font-size:10.5px;letter-spacing:.14em;text-transform:uppercase}.fxl-rails a:hover,.fxl-stack__bus{color:var(--fxl-amber-text)}@media (prefers-reduced-motion:reduce){.fxl-stack__pulse,.fxl-stack__svc .fxl-stack__row,.fxl-stack__svc .fxl-stack__tick{animation:none}.fxl-stack__svc .fxl-stack__row{color:var(--fxl-dim)}}@media (max-width:768px){.fxl-cell--eval{grid-template-columns:1fr;gap:24px}}.fxl-flow{display:flex;align-items:stretch;gap:14px}.fxl-flow__stage{flex:1;border:1px solid var(--fxl-line);background:var(--fxl-panel);border-radius:14px;padding:20px 22px}.fxl-flow__no{display:block;font-family:var(--fxl-mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--fxl-amber-text);margin-bottom:10px}.fxl-flow__title{display:block;font-family:var(--fxl-display);font-size:15px;font-weight:600;letter-spacing:-.01em;color:var(--fxl-text)}.fxl-flow__desc{display:block;margin-top:6px;font-size:12.5px;line-height:1.5;color:var(--fxl-dim)}.fxl-flow__arrow{align-self:center;flex-shrink:0;font-family:var(--fxl-mono);font-size:16px;color:var(--fxl-amber-text)}@media (max-width:768px){.fxl-flow{flex-direction:column}.fxl-flow__arrow{transform:rotate(90deg)}}.fxl-rails{list-style:none;padding:0;margin:0;font-family:var(--fxl-mono);font-size:13px;color:var(--fxl-dim)}.fxl-rails li{display:flex;align-items:baseline;gap:12px;padding:12px 0;border-bottom:1px solid var(--fxl-line-soft)}.fxl-rails__state{align-self:center;flex-shrink:0;width:7px;height:7px;border-radius:2px;background:#fcb813}.fxl-rails a{color:var(--fxl-text);text-decoration:none;border-bottom:1px solid rgba(252,184,19,.45);padding-bottom:1px;transition:color .15s ease}.fxl-rails em{margin-left:auto;padding-left:16px;flex-shrink:0;font-style:normal;font-size:11px;letter-spacing:.1em;color:var(--fxl-faint)}.fxl-proc{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;list-style:none;padding:0;margin:0;background:var(--fxl-line);border:1px solid var(--fxl-line);border-radius:16px;overflow:hidden}.fxl-proc li{background:var(--fxl-bg);padding:clamp(22px,2.4vw,32px);margin:0}.fxl-proc a,.fxl-proc__no{font-family:var(--fxl-mono);color:var(--fxl-amber-text)}.fxl-proc__no{display:block;font-size:11px;letter-spacing:.2em;margin-bottom:16px}.fxl-proc__title{display:block;font-family:var(--fxl-display);font-size:17px;font-weight:600;letter-spacing:-.01em;color:var(--fxl-text);margin-bottom:8px}.fxl-proc__desc{display:block;font-size:13.5px;line-height:1.55;color:var(--fxl-dim)}.fxl-proc a{display:inline-block;margin-top:12px;font-size:12px;text-decoration:none;border-bottom:1px solid rgba(252,184,19,.45);padding-bottom:1px}.fxl-proc a:hover{border-bottom-color:var(--fxl-amber-text)}@media (max-width:1024px){.fxl-proc{grid-template-columns:repeat(2,1fr)}}@media (max-width:640px){.fxl-proc{grid-template-columns:1fr}}.fxl-reg{border:1px solid var(--fxl-line);background:var(--fxl-panel);border-radius:16px;padding:clamp(16px,2.5vw,28px)}.fxl-reg__hd,.fxl-reg__row{display:grid;grid-template-columns:minmax(180px,1.2fr) 2fr 150px 24px;gap:16px;align-items:baseline;font-family:var(--fxl-mono)}.fxl-reg__hd{font-size:11px;letter-spacing:.08em;color:var(--fxl-faint);padding-bottom:10px}.fxl-reg__hd,.fxl-reg__item{border-bottom:1px solid var(--fxl-line-soft)}.fxl-reg__item:last-child{border-bottom:none}.fxl-reg__toggle{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.fxl-reg__row{padding:14px 0;cursor:pointer;font-size:12.5px;user-select:none}.fxl-reg__toggle:focus-visible+.fxl-reg__row{outline:2px solid #fcb813;outline-offset:2px}.fxl-reg__type{font-size:10px;letter-spacing:.12em;color:var(--fxl-faint);margin-left:6px}.fxl-reg__type--lts,a.fxl-reg__row:hover .fxl-reg__name{color:var(--fxl-amber-text)}a.fxl-reg__row{text-decoration:none!important;transition:background .15s ease}a.fxl-reg__row:hover{background:var(--fxl-amber-soft)}.fxl-reg__name{color:var(--fxl-text);font-weight:500}.fxl-reg__caps{color:var(--fxl-dim)}.fxl-reg__status{color:var(--fxl-amber-text);white-space:nowrap}.fxl-reg__mark{color:var(--fxl-amber-text);font-size:14px;text-align:right;transition:transform .3s var(--fxl-ease)}.fxl-reg__item:has(.fxl-reg__toggle:checked) .fxl-reg__mark{transform:rotate(45deg)}.fxl-reg__body{display:none;padding:2px 0 18px;font-size:13.5px;line-height:1.6;color:var(--fxl-dim);max-width:72ch}.fxl-reg__item:has(.fxl-reg__toggle:checked) .fxl-reg__body{display:block}.fxl-reg__body p{margin:0 0 8px}.fxl-reg__body strong{color:var(--fxl-text);font-weight:600}@media (max-width:768px){.fxl-reg__hd,.fxl-reg__row{grid-template-columns:1fr 132px 20px;gap:10px}.fxl-reg__caps,.fxl-reg__hd span:nth-child(2){display:none}}.fxl-dgv{display:grid;gap:10px}.fxl-dgv__row{display:grid;grid-template-columns:150px 1fr;gap:18px;align-items:baseline;border:1px solid var(--fxl-line);border-radius:12px;padding:14px 20px}.fxl-dgv__key{font-family:var(--fxl-mono);font-size:12.5px;color:var(--fxl-amber-text)}.fxl-dgv__val{font-size:13.5px;line-height:1.55;color:var(--fxl-dim)}@media (max-width:640px){.fxl-dgv__row{grid-template-columns:1fr;gap:6px}}.fxl-cta{position:relative;overflow:hidden;border-radius:18px;padding:clamp(40px,6vw,64px) clamp(24px,5vw,56px);background:#0a0b0d;border:1px solid rgba(255,255,255,.08);text-align:center}.fxl-cta::before{content:\"\";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);background-size:56px 56px;-webkit-mask-image:radial-gradient(ellipse at 50% 100%,#000 25%,transparent 75%);mask-image:radial-gradient(ellipse at 50% 100%,#000 25%,transparent 75%);pointer-events:none}.fxl-cta>*{position:relative;z-index:1}.fxl-cta__title{display:block;font-family:var(--fxl-display);font-size:clamp(1.5rem,3vw,2.2rem);font-weight:700;letter-spacing:-.02em;line-height:1.1;color:#f5f5f0;margin-bottom:12px}.fxl-cta__sub{display:block;font-size:14.5px;color:#b9b9b1;max-width:56ch;margin:0 auto 24px}html.fxl-js .rv{opacity:0;transform:translateY(12px);transition:opacity .6s var(--fxl-ease),transform .6s var(--fxl-ease);transition-delay:calc(var(--i, 0)*.06s)}html.fxl-js .rv.in{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){html.fxl-js .rv{opacity:1;transform:none;transition:none}.fxl-rails__state{animation:none}}"}],"page":{"pagePath":"6.x/docs/platform-deep-dive/integrations/email-trigger","slug":"/6.x/docs/platform-deep-dive/integrations/email-trigger","pageMetadata":{"title":"Email Trigger","description":"Configure email-based process triggers to automatically start process instances when emails are received. Email Triggers connect to IMAP mail servers and monitor specific mailboxes to initiate workflows.","owner":"docs","last_reviewed":"2026-10-29T00:00:00.000Z","href":"/6.x/docs/platform-deep-dive/integrations/email-trigger"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Configure email-based process triggers to automatically start process instances when emails are received. Email Triggers connect to IMAP mail servers and monitor specific mailboxes to initiate workflows.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,hr:`hr`,img:`img`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{Accordion,AccordionGroup,Card,CardGroup,CodeBlock,Frame,Heading,Info,Note,ParamField,Step,Steps,Tab,Table,Tabs,Tip,Warning}=_components;if(!Accordion)_missingMdxReference(`Accordion`,true);if(!AccordionGroup)_missingMdxReference(`AccordionGroup`,true);if(!Card)_missingMdxReference(`Card`,true);if(!CardGroup)_missingMdxReference(`CardGroup`,true);if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Frame)_missingMdxReference(`Frame`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Info)_missingMdxReference(`Info`,true);if(!Note)_missingMdxReference(`Note`,true);if(!ParamField)_missingMdxReference(`ParamField`,true);if(!Step)_missingMdxReference(`Step`,true);if(!Steps)_missingMdxReference(`Steps`,true);if(!Tab)_missingMdxReference(`Tab`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Tabs)_missingMdxReference(`Tabs`,true);if(!Tip)_missingMdxReference(`Tip`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(Card,{children:_jsx(_components.p,{children:`Email Trigger is a data source type that enables process instances to be automatically started when emails are received via IMAP, bringing event-driven automation to your email workflows.`})}),`\n`,_jsx(Tip,{children:_jsxs(_components.p,{children:[`For Microsoft Outlook mailboxes, you can also use the `,_jsx(_components.a,{href:`/6.x/docs/platform-deep-dive/integrations/microsoft-outlook-data-source`,children:`Microsoft Outlook`}),` data source which connects via the MS Graph API and supports both reading and sending emails in a single data source.`]})}),`\n`,_jsx(Heading,{level:`3`,id:`email-trigger-vs-microsoft-outlook`,children:`Email Trigger vs Microsoft Outlook`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{}),_jsx(_components.th,{children:`Email Trigger + Email Sender`}),_jsx(_components.th,{children:`Microsoft Outlook`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Protocol`})}),_jsx(_components.td,{children:`IMAP (read) + SMTP (send)`}),_jsx(_components.td,{children:`MS Graph API`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Authentication`})}),_jsx(_components.td,{children:`Username + password / app password`}),_jsx(_components.td,{children:`Azure AD (client credentials)`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Read + Send`})}),_jsx(_components.td,{children:`Two separate data sources`}),_jsx(_components.td,{children:`Single data source (Read \u0026 Send scope)`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Reply threading`})}),_jsxs(_components.td,{children:[`Manual — requires `,_jsx(_components.code,{children:`Message-ID`}),` header forwarding`]}),_jsx(_components.td,{children:`Native — uses MS Graph message ID to maintain conversation threads`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Provider support`})}),_jsx(_components.td,{children:`Any IMAP/SMTP-compatible mail server`}),_jsx(_components.td,{children:`Microsoft 365 / Outlook only`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Best for`})}),_jsx(_components.td,{children:`Gmail, self-hosted mail servers, or mixed environments`}),_jsx(_components.td,{children:`Organizations using Microsoft 365`})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`overview`,children:`Overview`}),`\n`,_jsx(_components.p,{children:`Email Trigger is a data source type in Integration Designer that allows FlowX.AI processes to be triggered automatically when emails arrive in a monitored mailbox. This enables use cases such as:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Customer support automation`}),`: Automatically create support tickets when emails arrive`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Document processing`}),`: Trigger document workflows when emails with attachments are received`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Request handling`}),`: Start approval processes based on incoming email requests`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Notification workflows`}),`: Process automated alerts from monitoring systems`]}),`\n`]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`how-it-works`,children:`How it works`}),`\n`,_jsx(_components.p,{children:`The Email Trigger system follows a straightforward flow:`}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Configure Email Connection`,children:_jsx(_components.p,{children:`Set up an IMAP connection to your email server as a Data Source in Integration Designer.`})}),_jsx(Step,{title:`Link to Message Start Event (Start Catch Message)`,children:_jsx(_components.p,{children:`Connect the Email Trigger to a Message Start Event node in your process definition.`})}),_jsx(Step,{title:`Activate the Trigger`,children:_jsx(_components.p,{children:`Turn on monitoring from the Manage Triggers section in Runtime Settings.`})}),_jsx(Step,{title:`Process Incoming Emails`,children:_jsx(_components.p,{children:`When emails arrive, FlowX.AI automatically creates process instances with the email data.`})})]}),`\n`,_jsxs(_components.p,{children:[`An Email Trigger can also start an integration workflow: bind it on the workflow’s `,_jsx(_components.strong,{children:`Start`}),` node instead of a Message Start Event. The email arrives in the workflow’s data model as `,_jsx(_components.code,{children:`emailMessage`}),`. For details, see `,_jsx(_components.a,{href:`/6.x/docs/platform-deep-dive/integrations/integration-designer#external-triggers`,children:`External triggers`}),`. `]}),`\n`,_jsxs(Warning,{children:[_jsx(_components.p,{children:_jsx(_components.strong,{children:`Email Triggers process only new emails`})}),_jsxs(_components.p,{children:[`An Email Trigger only processes emails that arrive `,_jsx(_components.strong,{children:`after the trigger is activated for the first time`}),`. Existing emails in the mailbox — whether read or unread — are never picked up retroactively.`]}),_jsxs(_components.p,{children:[`This applies to `,_jsx(_components.strong,{children:`reactivation as well`}),`: if you deactivate and then reactivate a trigger, only emails that arrive `,_jsx(_components.strong,{children:`after the reactivation`}),` are processed. Anything that landed in the mailbox during the inactive period is ignored.`]}),_jsxs(_components.p,{children:[`For IMAP triggers, the email must also still be `,_jsx(_components.strong,{children:`unread`}),` in the monitored folder when the trigger picks it up.`]})]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`creating-an-email-trigger-data-source`,children:`Creating an email trigger data source`}),`\n`,_jsx(Heading,{level:`3`,id:`prerequisites`,children:`Prerequisites`}),`\n`,_jsx(_components.p,{children:`Before configuring an Email Trigger, ensure you have:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Access to Integration Designer with appropriate permissions`}),`\n`,_jsx(_components.li,{children:`IMAP server credentials (host, port, username, password)`}),`\n`,_jsxs(_components.li,{children:[`Knowledge of the mailbox folder to monitor (defaults to `,_jsx(_components.code,{children:`INBOX`}),` if not specified)`]}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`step-1-access-integration-designer`,children:`Step 1: Access Integration Designer`}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Navigate to Data Sources`,children:_jsxs(_components.p,{children:[`Navigate to `,_jsx(_components.strong,{children:`FlowX Designer`}),` → `,_jsx(_components.strong,{children:`Workspaces`}),` → `,_jsx(_components.strong,{children:`Your workspace`}),` → `,_jsx(_components.strong,{children:`Projects`}),` → `,_jsx(_components.strong,{children:`Your project`}),` → `,_jsx(_components.strong,{children:`Integrations`}),` → `,_jsx(_components.strong,{children:`Data Sources`})]})}),_jsx(Step,{title:`Add a new data source`,children:_jsxs(_components.p,{children:[`Click `,_jsx(_components.strong,{children:`Add New Data Source`})]})}),_jsx(Step,{title:`Select Email Trigger`,children:_jsxs(_components.p,{children:[`Select `,_jsx(_components.strong,{children:`Email Trigger`}),` as the data source type`]})})]}),`\n`,_jsx(Frame,{children:_jsx(_components.p,{children:_jsx(_components.img,{src:`https://s3.eu-west-1.amazonaws.com/docx.flowx.ai/5.6/email_trigger_mock.png`,alt:`Select Email Trigger`})})}),`\n`,_jsx(Heading,{level:`3`,id:`step-2-configure-connection-settings`,children:`Step 2: Configure connection settings`}),`\n`,_jsx(_components.p,{children:`Configure the IMAP connection with the following fields:`}),`\n`,_jsx(ParamField,{path:`Protocol`,type:`string`,required:true,id:`param-protocol`,children:_jsxs(_components.p,{children:[`The email protocol to use. Currently only `,_jsx(_components.strong,{children:`IMAP`}),` is supported.`]})}),`\n`,_jsxs(ParamField,{path:`Server Host`,type:`string`,required:true,id:`param-server-host`,children:[_jsx(_components.p,{children:`The hostname or IP address of your IMAP server.`}),_jsx(_components.p,{children:_jsx(_components.strong,{children:`Examples:`})}),_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:_jsx(_components.code,{children:`imap.gmail.com`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.code,{children:`outlook.office365.com`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.code,{children:`mail.yourcompany.com`})}),`\n`]}),_jsx(Tip,{children:_jsxs(_components.p,{children:[`This field accepts configuration parameters. Use `,_jsx(_components.code,{children:\"${configParam}\"}),` syntax to reference environment-specific values.`]})})]}),`\n`,_jsxs(ParamField,{path:`Port`,type:`number`,required:true,id:`param-port`,children:[_jsx(_components.p,{children:`The port number for the IMAP connection. The default value updates automatically based on the SSL/TLS setting.`}),_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`SSL/TLS`}),_jsx(_components.th,{children:`Default Port`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`ON`}),_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.code,{children:`993`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`OFF`}),_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.code,{children:`143`})})]})]})]})]}),`\n`,_jsxs(ParamField,{path:`User`,type:`string`,required:true,id:`param-user`,children:[_jsx(_components.p,{children:`The email account username or full email address used for authentication.`}),_jsx(Tip,{children:_jsx(_components.p,{children:`This field accepts configuration parameters for environment-specific credentials.`})})]}),`\n`,_jsxs(ParamField,{path:`Password`,type:`string`,required:true,id:`param-password`,children:[_jsx(_components.p,{children:`The password or app-specific password for the email account.`}),_jsx(Warning,{children:_jsx(_components.p,{children:`For Gmail and other providers with 2FA enabled, you may need to generate an app-specific password.`})}),_jsx(Tip,{children:_jsxs(_components.p,{children:[`Store sensitive credentials in configuration parameters and reference them here using `,_jsx(_components.code,{children:\"${configParam}\"}),` syntax.`]})})]}),`\n`,_jsxs(ParamField,{path:`SSL/TLS`,type:`boolean`,id:`param-ssl-tls`,children:[_jsxs(_components.p,{children:[`Turn on secure connection using SSL/TLS encryption. `,_jsx(_components.strong,{children:`Recommended: ON.`})]}),_jsxs(_components.p,{children:[`With SSL/TLS on, the mail server’s certificate is verified: it must be signed by a trusted authority and match the server’s host name. `,_jsx(_components.strong,{children:`Test Connection`}),` and the trigger fail against a server with a self-signed, private-CA, or mismatched certificate. On self-hosted deployments, add the server’s CA to the Email Gateway trust store or list the host in `,_jsx(_components.code,{children:`EMAILGATEWAY_IMAP_SSLTRUSTEDHOSTS`}),`. See `,_jsx(_components.a,{href:`/6.x/setup-guides/email-gateway-setup#imap-configuration`,children:`IMAP configuration`}),` in the Email Gateway setup guide.`]}),_jsx(Info,{children:_jsx(_components.p,{children:`The SSL/TLS setting determines the default port value. Change this setting before adjusting the port.`})})]}),`\n`,_jsx(Heading,{level:`3`,id:`step-3-test-the-connection`,children:`Step 3: Test the connection`}),`\n`,_jsxs(_components.p,{children:[`Click the `,_jsx(_components.strong,{children:`Test Connection`}),` button to verify your settings:`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Result`}),_jsx(_components.th,{children:`Message`}),_jsx(_components.th,{children:`Action`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`✅ Success`}),_jsx(_components.td,{children:`”Established connection”`}),_jsx(_components.td,{children:`Proceed to save`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`❌ Error`}),_jsx(_components.td,{children:`”Failed to establish connection”`}),_jsx(_components.td,{children:`Check credentials and server settings`})]})]})]}),`\n`,_jsx(Info,{children:_jsxs(_components.p,{children:[`When you click `,_jsx(_components.strong,{children:`Create`}),`, another authentication test is performed. If the test fails, you’ll be redirected to the `,_jsx(_components.strong,{children:`Authorization`}),` tab with an error message, but the Email Trigger will still be created.`]})}),`\n`,_jsx(Heading,{level:`3`,id:`step-4-configure-basic-information`,children:`Step 4: Configure basic information`}),`\n`,_jsxs(ParamField,{path:`Name`,type:`string`,required:true,id:`param-name`,children:[_jsx(_components.p,{children:`A unique, descriptive name for the Email Trigger.`}),_jsx(_components.p,{children:_jsx(_components.strong,{children:`Validation rules:`})}),_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Required field`}),`\n`,_jsx(_components.li,{children:`Must be unique within the project`}),`\n`,_jsxs(_components.li,{children:[`Only letters, numbers, and these characters allowed: `,_jsx(_components.code,{children:`[]`}),`, `,_jsx(_components.code,{children:`()`}),`, `,_jsx(_components.code,{children:`.`}),`, `,_jsx(_components.code,{children:`_`}),`, `,_jsx(_components.code,{children:`-`})]}),`\n`,_jsx(_components.li,{children:`Minimum 3 characters, maximum 50 characters`}),`\n`]})]}),`\n`,_jsx(ParamField,{path:`Description`,type:`string`,id:`param-description`,children:_jsx(_components.p,{children:`Optional description explaining the purpose of this Email Trigger.`})}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`configuring-email-trigger-settings`,children:`Configuring email trigger settings`}),`\n`,_jsxs(_components.p,{children:[`After creating the Email Trigger, configure monitoring and validation settings in the `,_jsx(_components.strong,{children:`Settings`}),` tab.`]}),`\n`,_jsx(Heading,{level:`3`,id:`filtering-criteria`,children:`Filtering criteria`}),`\n`,_jsx(_components.p,{children:`Define which emails should trigger processes:`}),`\n`,_jsxs(ParamField,{path:`Mailbox Folder`,type:`string`,required:true,id:`param-mailbox-folder`,children:[_jsx(_components.p,{children:`The mailbox folder to monitor for incoming emails.`}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Default:`}),` `,_jsx(_components.code,{children:`INBOX`})]}),_jsx(_components.p,{children:_jsx(_components.strong,{children:`Examples:`})}),_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:_jsx(_components.code,{children:`INBOX`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.code,{children:`Support`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.code,{children:`Orders/New`})}),`\n`]}),_jsx(Tip,{children:_jsx(_components.p,{children:`This field accepts configuration parameters for environment-specific folder names.`})})]}),`\n`,_jsx(Frame,{children:_jsx(_components.p,{children:_jsx(_components.img,{src:`https://s3.eu-west-1.amazonaws.com/docx.flowx.ai/5.6/trigger_email_props.png`,alt:`Email Trigger Configuration`})})}),`\n`,_jsx(Heading,{level:`3`,id:`trigger-condition-and-attachment-forwarding`,children:`Trigger condition and attachment forwarding`}),`\n`,_jsx(_components.p,{children:`Email Trigger validation uses a two-stage model:`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Start Process for`}),` — which incoming emails should create a process instance.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Save email attachments on process`}),` — which attachments are forwarded into the process data.`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`If a trigger condition fails, the email is rejected and appears in the `,_jsx(_components.strong,{children:`Failed Triggers`}),` section. If an attachment is filtered out by the forwarding mode, it is dropped silently and no Failed Trigger is recorded.`]}),`\n`,_jsx(Heading,{level:`4`,id:`start-process-for`,children:`Start Process for`}),`\n`,_jsx(_components.p,{children:`Select which incoming emails create a process instance.`}),`\n`,_jsx(ParamField,{path:`All incoming emails`,type:`radio`,id:`param-all-incoming-emails`,children:_jsx(_components.p,{children:`Start the process for all emails received in the selected mailbox folder.`})}),`\n`,_jsx(ParamField,{path:`Only emails with attachments`,type:`radio`,id:`param-only-emails-with-attachments`,children:_jsxs(_components.p,{children:[`Start the process only when the email has at least one attachment. Emails without attachments are rejected with cause `,_jsx(_components.strong,{children:`No attachments`}),`.`]})}),`\n`,_jsxs(ParamField,{path:`Only emails with these attachment file types`,type:`radio`,id:`param-only-emails-with-these-attachment-file-types`,children:[_jsxs(_components.p,{children:[`Start the process if at least one attachment matches the selected file types. The `,_jsx(_components.strong,{children:`Allowed File Types`}),` multiselect activates. Emails without a matching attachment are rejected with cause `,_jsx(_components.strong,{children:`No matching file types`}),`.`]}),_jsx(_components.p,{children:`Earlier releases selected allowed types from the file type categories below.`}),_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Extensions`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`PDF`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`.pdf`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`DOCUMENT`}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`.doc`}),`, `,_jsx(_components.code,{children:`.docx`}),`, `,_jsx(_components.code,{children:`.txt`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`IMAGE`}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`.png`}),`, `,_jsx(_components.code,{children:`.jpg`}),`, `,_jsx(_components.code,{children:`.jpeg`}),`, `,_jsx(_components.code,{children:`.tif`}),`, `,_jsx(_components.code,{children:`.tiff`}),`, `,_jsx(_components.code,{children:`.gif`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`EXCEL`}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`.xls`}),`, `,_jsx(_components.code,{children:`.xlsx`}),`, `,_jsx(_components.code,{children:`.csv`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`ZIP`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`.zip`})})]})]})]}),_jsxs(Info,{children:[_jsx(_components.p,{children:_jsx(_components.strong,{children:`Individual file extensions`})}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Allowed File Types`}),` and `,_jsx(_components.strong,{children:`Forward File Types`}),` select individual file extensions instead of these categories. The categories no longer exist in the runtime, so the table above serves only as a reference for what each one used to cover.`]}),_jsxs(_components.p,{children:[`Selected extensions are stored as bare uppercase values without a leading dot (`,_jsx(_components.code,{children:`PDF`}),`, `,_jsx(_components.code,{children:`DOCX`}),`). Input is tolerant of case and of a leading dot, so `,_jsx(_components.code,{children:`pdf`}),` and `,_jsx(_components.code,{children:`.pdf`}),` resolve to the same extension. Existing triggers are migrated automatically, with each stored category expanded into the individual extensions it covered.`]})]})]}),`\n`,_jsx(Heading,{level:`4`,id:`save-email-attachments-on-process`,children:`Save email attachments on process`}),`\n`,_jsx(_components.p,{children:`Select which attachments from the email are passed into the process.`}),`\n`,_jsx(ParamField,{path:`All attachments`,type:`radio`,id:`param-all-attachments`,children:_jsx(_components.p,{children:`Save all attachments from the email to the process instance.`})}),`\n`,_jsx(ParamField,{path:`No attachments, send only email metadata`,type:`radio`,id:`param-no-attachments-send-only-email-metadata`,children:_jsxs(_components.p,{children:[`No files are forwarded. Only email metadata (subject, body, sender, headers) reaches the process. The `,_jsx(_components.strong,{children:`Maximum File Size`}),` field is disabled.`]})}),`\n`,_jsx(ParamField,{path:`Only these attachment file types`,type:`radio`,id:`param-only-these-attachment-file-types`,children:_jsxs(_components.p,{children:[`Save only attachments that match the selected file types. The `,_jsx(_components.strong,{children:`Forward File Types`}),` multiselect activates. Non-matching attachments are dropped silently (no Failed Trigger entry).`]})}),`\n`,_jsx(Heading,{level:`4`,id:`limits`,children:`Limits`}),`\n`,_jsxs(ParamField,{path:`Maximum File Count`,type:`number`,id:`param-maximum-file-count`,children:[_jsxs(_components.p,{children:[`Maximum number of attachments allowed per email. If exceeded, the email is rejected at the trigger level and appears in `,_jsx(_components.strong,{children:`Failed Triggers`}),` with cause `,_jsx(_components.strong,{children:`File count exceeded`}),`.`]}),_jsx(_components.p,{children:`Leave empty for no limit.`})]}),`\n`,_jsxs(ParamField,{path:`Maximum File Size (MB)`,type:`number`,id:`param-maximum-file-size-mb`,children:[_jsx(_components.p,{children:`Maximum allowed size per attachment file, in megabytes. Applies across all forwarding strategies.`}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Maximum allowed value:`}),` 25 MB`]}),_jsx(_components.p,{children:`Leave empty to apply no per-file size limit beyond the 25 MB hard cap.`})]}),`\n`,_jsxs(Note,{children:[_jsx(_components.p,{children:_jsx(_components.strong,{children:`Triggers migrated from an earlier deployment`})}),_jsxs(_components.p,{children:[`When a deployment is upgraded, existing triggers are set to `,_jsx(_components.strong,{children:`All incoming emails`}),` + `,_jsx(_components.strong,{children:`All attachments`}),`. The `,_jsx(_components.code,{children:`Allowed File Types`}),` value is preserved on the trigger but no longer filters anything until you switch the trigger condition or forwarding mode to one of the file-type options. Reopen each trigger after the upgrade to confirm the new settings match your intent.`]})]}),`\n`,_jsx(Tip,{children:_jsx(_components.p,{children:`All fields in the Settings section accept configuration parameters, enabling environment-specific configurations.`})}),`\n`,_jsx(Heading,{level:`3`,id:`polling-interval`,children:`Polling interval`}),`\n`,_jsx(Info,{children:_jsxs(_components.p,{children:[`The Email Trigger polls for new emails every `,_jsx(_components.strong,{children:`30 seconds`}),` by default. This interval can be configured at the environment level but is not user-configurable in the UI.`]})}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`connecting-to-a-message-start-event`,children:`Connecting to a Message Start Event`}),`\n`,_jsxs(_components.p,{children:[`To use the Email Trigger, connect it to a `,_jsx(_components.strong,{children:`Message Start Event`}),` node in your process definition.`]}),`\n`,_jsx(Heading,{level:`3`,id:`configuring-the-message-start-event`,children:`Configuring the Message Start Event`}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Open your process definition`,children:_jsx(_components.p,{children:`Open your process definition in the Process Designer.`})}),_jsx(Step,{title:`Add a Message Start Event node`,children:_jsxs(_components.p,{children:[`Add a `,_jsx(_components.strong,{children:`Message Start Event`}),` node.`]})}),_jsx(Step,{title:`Configure the Process Trigger`,children:_jsxs(_components.p,{children:[`In the node configuration, locate the `,_jsx(_components.strong,{children:`Process Trigger`}),` section:`]})})]}),`\n`,_jsxs(ParamField,{path:`Trigger Type`,type:`select`,required:true,id:`param-trigger-type`,children:[_jsx(_components.p,{children:`Select the trigger type:`}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Internal Throw Message`}),` - Traditional message-based triggering`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Email Trigger`}),` - Email-based triggering`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Incoming Webhook`}),` - Webhook-based triggering (see the `,_jsx(_components.a,{href:`/6.x/docs/platform-deep-dive/integrations/incoming-webhooks`,children:`Incoming Webhooks`}),` data source)`]}),`\n`]})]}),`\n`,_jsxs(ParamField,{path:`Email Trigger`,type:`select`,required:true,id:`param-email-trigger`,children:[_jsx(_components.p,{children:`Select the Email Trigger data source to use. Only Email Triggers created in the current project are available.`}),_jsx(Info,{children:_jsx(_components.p,{children:`Tooltip: “The email connection that will be triggered”`})})]}),`\n`,_jsx(Frame,{children:_jsx(_components.p,{children:_jsx(_components.img,{src:`https://s3.eu-west-1.amazonaws.com/docx.flowx.ai/5.6/trigger_email_trigger_type_process.png`,alt:`Message Start Event with Email Trigger`})})}),`\n`,_jsxs(Warning,{children:[_jsxs(_components.p,{children:[`To start monitoring, you must activate the trigger from `,_jsx(_components.strong,{children:`Manage Triggers`}),` in `,_jsx(_components.strong,{children:`Runtime Settings`}),`.`]}),_jsx(Frame,{children:_jsx(_components.p,{children:_jsx(_components.img,{src:`https://s3.eu-west-1.amazonaws.com/docx.flowx.ai/5.x/et5.png`,alt:`Manage Triggers`})})})]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`email-data-schema`,children:`Email data schema`}),`\n`,_jsx(_components.p,{children:`When an email triggers a process, the following data structure is available in your process variables:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`19`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`19`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"emailMessage\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"subject\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"Support Request #12345\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"dateTime\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"2026-01-15T10:30:00Z\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"sender\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"customer@example.com\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"replyTo\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: [`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"replies@example.com\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`],`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"body\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"Email body content...\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"fileAttachments\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: [`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"filePath\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"email-attachments/proc-123/invoice.pdf\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"downloadPath\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"internal/files/uuid-456/download\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` ],`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"headerParams\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"Message-ID\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"\u003cabc123@example.com>\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#F44747`,\"--shiki-dark\":`#F44747`},children:` ...`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsx(Frame,{children:_jsx(_components.p,{children:_jsx(_components.img,{src:`https://s3.eu-west-1.amazonaws.com/docx.flowx.ai/5.x/et6.png`,alt:`Email data schema`})})}),`\n`,_jsx(Heading,{level:`3`,id:`schema-fields`,children:`Schema fields`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Field`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`subject`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`Email subject line`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`dateTime`})}),_jsx(_components.td,{children:`string (ISO 8601)`}),_jsx(_components.td,{children:`Timestamp when email was received`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`sender`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`Sender’s email address`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`replyTo`})}),_jsx(_components.td,{children:`array of strings`}),_jsxs(_components.td,{children:[`Reply-To addresses from the email header. Use these when sending a reply via the `,_jsx(_components.a,{href:`/6.x/docs/platform-deep-dive/integrations/email-sender`,children:`Email Sender`}),` or `,_jsx(_components.a,{href:`/6.x/docs/building-blocks/actions/send-notification-action`,children:`Send Notification Action`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`body`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`Email body content (plain text)`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`attachments`})}),_jsx(_components.td,{children:`array`}),_jsx(_components.td,{children:`List of attachment metadata objects`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`fileAttachments[].filePath`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`Storage path in Document Plugin`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`fileAttachments[].downloadPath`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`API path to download the file`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`headerParams.Message-ID`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`Unique email message identifier`})]})]})]}),`\n`,_jsx(Heading,{level:`3`,id:`attachment-handling`,children:`Attachment handling`}),`\n`,_jsx(_components.p,{children:`Email attachments are automatically:`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Uploaded`}),` to the Document Plugin as temporary files`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Copied`}),` to permanent storage linked to the process instance`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Referenced`}),` in the `,_jsx(_components.code,{children:`fileAttachments`}),` array with download paths`]}),`\n`]}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[`Attachment processing happens asynchronously. The file copy to permanent storage may complete after the process instance starts. If your process needs to access attachments immediately, consider adding a wait step. Upload retries on `,_jsx(_components.code,{children:`InterruptedException`}),` only — up to 3 attempts with exponential backoff totaling roughly 7 seconds. Other failures (network, document plugin errors) fail fast.`]})}),`\n`,_jsx(Heading,{level:`3`,id:`forwarding-incoming-attachments-to-a-reply`,children:`Forwarding incoming attachments to a reply`}),`\n`,_jsxs(_components.p,{children:[`The inbound `,_jsx(_components.code,{children:`fileAttachments[]`}),` shape (`,_jsx(_components.code,{children:`filePath`}),`, `,_jsx(_components.code,{children:`downloadPath`}),`) differs from the outbound shape expected by the `,_jsx(_components.a,{href:`/6.x/docs/building-blocks/actions/send-notification-action`,children:`Send Notification action`}),`’s `,_jsx(_components.strong,{children:`Attachments`}),` field (`,_jsx(_components.code,{children:`path`}),`, `,_jsx(_components.code,{children:`filename`}),`).`]}),`\n`,_jsxs(_components.p,{children:[`To forward original attachments on a reply, transform `,_jsx(_components.code,{children:`emailMessage.fileAttachments`}),` into the Send Notification shape — typically in a Script node — and pass the result through a process variable:`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`4`,language:`javascript`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`javascript`,children:_jsxs(_components.code,{language:`javascript`,numberOfLines:`4`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#4FC1FF`,\"--shiki-dark\":`#4FC1FF`},children:` replyAttachments`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`emailMessage`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`fileAttachments`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`map`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`f`}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:` =>`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` ({`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` path:`}),_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` f`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`filePath`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` filename:`}),_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` f`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`filePath`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`substring`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`f`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`filePath`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`lastIndexOf`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`'/'`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`) + `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`1`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`}));`})}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`Reference the resulting variable (for example, `,_jsx(_components.code,{children:\"${replyAttachments}\"}),`) in the Send Notification action’s `,_jsx(_components.strong,{children:`Attachments`}),` field.`]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`managing-triggers-at-runtime`,children:`Managing triggers at runtime`}),`\n`,_jsx(Heading,{level:`3`,id:`accessing-manage-triggers`,children:`Accessing Manage Triggers`}),`\n`,_jsxs(_components.p,{children:[`Navigate to `,_jsx(_components.strong,{children:`Runtime`}),` → `,_jsx(_components.strong,{children:`Runtime Settings`}),` → `,_jsx(_components.strong,{children:`Manage Triggers`}),` to view and control all configured Email Triggers.`]}),`\n`,_jsx(Heading,{level:`3`,id:`trigger-list-columns`,children:`Trigger list columns`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Column`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`State`})}),_jsxs(_components.td,{children:[`Current status: `,_jsx(_components.code,{children:`Active`}),` or `,_jsx(_components.code,{children:`Deactivated`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Trigger Type`})}),_jsx(_components.td,{children:`Always “Email Trigger” for email-based triggers`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Event Name`})}),_jsx(_components.td,{children:`The Email Trigger data source name`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Location`})}),_jsxs(_components.td,{children:[`Dependency app name, or `,_jsx(_components.code,{children:`Local`}),` for the current build`]})]})]})]}),`\n`,_jsx(Heading,{level:`3`,id:`activation-requirements`,children:`Activation requirements`}),`\n`,_jsx(_components.p,{children:`For an Email Trigger to appear in Manage Triggers:`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsx(_components.li,{children:`✅ Email Trigger must be created as a Data Source`}),`\n`,_jsx(_components.li,{children:`✅ Email Trigger must be added to a Message Start Event node`}),`\n`,_jsxs(_components.li,{children:[`✅ The process must be part of a build in the `,_jsx(_components.strong,{children:`Active Policy`})]}),`\n`]}),`\n`,_jsx(Info,{children:_jsx(_components.p,{children:`When the Active Policy changes, Email Triggers retain their previous state (Active or Deactivated). If an Email Trigger is deleted from the latest build, it will be automatically deactivated.`})}),`\n`,_jsx(Info,{children:_jsx(_components.p,{children:`All Email Trigger configuration changes and runtime actions (activation, deactivation, trigger events) are recorded in the audit trail for compliance and debugging purposes.`})}),`\n`,_jsx(Heading,{level:`3`,id:`activating-and-deactivating-triggers`,children:`Activating and deactivating triggers`}),`\n`,_jsxs(_components.p,{children:[`Open the row menu (`,_jsx(_components.strong,{children:`⋮`}),`) on the trigger and select `,_jsx(_components.strong,{children:`Activate`}),` or `,_jsx(_components.strong,{children:`Deactivate`}),`, then confirm. The `,_jsx(_components.strong,{children:`State`}),` column updates to:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Active`}),`: The system monitors the mailbox and creates process instances for incoming emails`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Deactivated`}),`: Monitoring is paused; no new process instances are created`]}),`\n`]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`testing-with-mock-email-content`,children:`Testing with mock email content`}),`\n`,_jsx(_components.p,{children:`When running a process from the build list, you can provide mock email content to simulate an incoming email trigger. This is useful for:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Testing process logic before connecting to a live mailbox`}),`\n`,_jsx(_components.li,{children:`Verifying attachment handling and validation rules`}),`\n`,_jsx(_components.li,{children:`Debugging email-triggered workflows in development`}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`how-to-test-with-mock-email`,children:`How to test with mock email`}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Open the start process dialog`,children:_jsxs(_components.p,{children:[`Navigate to your process definition and click `,_jsx(_components.strong,{children:`Start Process`}),`. If the process has a Message Start Event configured with an Email Trigger, the dialog displays a mock email form instead of the standard start parameters.`]})}),_jsxs(Step,{title:`Fill in the mock email fields`,children:[_jsx(_components.p,{children:`Complete the form fields to simulate an incoming email:`}),_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Field`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Subject`})}),_jsx(_components.td,{children:`The email subject line`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Sender`})}),_jsx(_components.td,{children:`The sender email address`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Datetime`})}),_jsx(_components.td,{children:`When the email was “received” (defaults to the current date and time)`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Body`})}),_jsx(_components.td,{children:`The email body content`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Upload files`})}),_jsx(_components.td,{children:`Attach files to simulate email attachments. Accepted types: PDF, DOCUMENT (.doc, .docx, .txt), IMAGE (.png, .jpg, .jpeg, .tif, .tiff, .gif), EXCEL (.xls, .xlsx, .csv), ZIP (.zip), up to 25 MB`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Theme`})}),_jsx(_components.td,{children:`Select the theme to use for the process instance`})]})]})]})]}),_jsx(Step,{title:`Start the process`,children:_jsxs(_components.p,{children:[`Click `,_jsx(_components.strong,{children:`Start Process`}),` to create a process instance using the mock email data, just as if a real email had been received.`]})})]}),`\n`,_jsx(Tip,{children:_jsx(_components.p,{children:`Use mock testing to validate your process handles edge cases — emails without attachments, emails with multiple Reply-To addresses, or emails with large body content.`})}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`handling-failed-triggers`,children:`Handling failed triggers`}),`\n`,_jsxs(_components.p,{children:[`When emails fail validation or processing errors occur, they appear in the `,_jsx(_components.strong,{children:`Failed Triggers`}),` section.`]}),`\n`,_jsx(Heading,{level:`3`,id:`accessing-failed-triggers`,children:`Accessing Failed Triggers`}),`\n`,_jsxs(_components.p,{children:[`Navigate to `,_jsx(_components.strong,{children:`Runtime`}),` → `,_jsx(_components.strong,{children:`Processes`}),` → `,_jsx(_components.strong,{children:`Failed Triggers`}),` to view failed email processing attempts.`]}),`\n`,_jsx(Heading,{level:`3`,id:`failed-triggers-list`,children:`Failed Triggers list`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Column`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Timestamp`})}),_jsx(_components.td,{children:`Date and time (localized)`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Trigger Type`})}),_jsx(_components.td,{children:`”Email Trigger”`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Trigger Name`})}),_jsx(_components.td,{children:`The Email Trigger data source name`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Cause Type`})}),_jsx(_components.td,{children:`Type of failure`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Context`})}),_jsxs(_components.td,{children:[`Additional info, e.g., “Sender: `,_jsx(_components.a,{href:`mailto:customer@example.com`,children:`customer@example.com`}),`”`]})]})]})]}),`\n`,_jsx(Heading,{level:`3`,id:`cause-types`,children:`Cause types`}),`\n`,_jsxs(Tabs,{children:[_jsxs(Tab,{title:`File type not permitted`,id:`file-type-not-permitted`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Message:`}),` “The file `,_jsx(_components.code,{children:`{filename}`}),` could not be uploaded because it is not on the list of permitted file types.”`]}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Resolution:`}),` Update the Allowed File Types in the Email Trigger settings, or ask the sender to use an accepted format.`]})]}),_jsxs(Tab,{title:`File size exceeded`,id:`file-size-exceeded`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Message:`}),` “`,_jsx(_components.code,{children:`{filename}`}),` is too large. Maximum allowed: 25 MB”`]}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Resolution:`}),` The attachment exceeds the maximum file size limit. Ask the sender to reduce the file size or split into multiple emails.`]})]}),_jsxs(Tab,{title:`File count exceeded`,id:`file-count-exceeded`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Message:`}),` “File limit exceeded. For this Email Trigger there is a limit of `,_jsx(_components.code,{children:`{limit}`}),` files per email.”`]}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Resolution:`}),` The email contains more attachments than the trigger-level `,_jsx(_components.strong,{children:`Maximum File Count`}),`. Ask the sender to split attachments across multiple emails, or raise the limit on the trigger.`]})]}),_jsxs(Tab,{title:`No attachments`,id:`no-attachments`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Message:`}),` “Email rejected: trigger requires emails with attachments, but none were found.”`]}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Resolution:`}),` The trigger is configured to `,_jsx(_components.strong,{children:`Start Process for → Only emails with attachments`}),`, but the incoming email had none. Ask the sender to include an attachment, or switch the trigger condition to `,_jsx(_components.strong,{children:`All incoming emails`}),`.`]})]}),_jsxs(Tab,{title:`No matching file types`,id:`no-matching-file-types`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Message:`}),` “Email rejected: no attachments matching the allowed file types `,_jsx(_components.code,{children:`{types}`}),` were found.”`]}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Resolution:`}),` The trigger is configured to `,_jsx(_components.strong,{children:`Start Process for → Only emails with these attachment file types`}),`, and none of the inbound attachments matched the `,_jsx(_components.strong,{children:`Allowed File Types`}),` list. Ask the sender to use an accepted format or widen the allowed list.`]})]}),_jsxs(Tab,{title:`Unable to connect to email server`,id:`unable-to-connect-to-email-server`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Message:`}),` “We couldn’t connect to your email server. This might be due to:`]}),_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Incorrect server settings`}),`\n`,_jsx(_components.li,{children:`No internet connection`}),`\n`,_jsx(_components.li,{children:`Firewall blocking the connection`}),`\n`]}),_jsx(_components.p,{children:`Please check your connection and try again.”`}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Resolution:`}),` Verify the IMAP server settings in the Email Trigger Authorization tab and test the connection.`]})]})]}),`\n`,_jsx(Heading,{level:`3`,id:`failed-trigger-details-page`,children:`Failed trigger details page`}),`\n`,_jsx(_components.p,{children:`Click on a failed trigger row to open the dedicated details page, which displays:`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Field`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Email Subject`})}),_jsx(_components.td,{children:`Subject line of the failed email`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Email Sender`})}),_jsx(_components.td,{children:`Sender address`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Timestamp`})}),_jsx(_components.td,{children:`When the email was received`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Cause Type`})}),_jsx(_components.td,{children:`Failure classification`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Error Details`})}),_jsx(_components.td,{children:`Detailed error description, displayed in a code editor for easy reading`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Build Status`})}),_jsx(_components.td,{children:`Whether the associated build is WIP or Committed`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Monitored Email Address`})}),_jsx(_components.td,{children:`The email account being monitored`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Monitored Inbox Folder`})}),_jsx(_components.td,{children:`The mailbox folder being monitored`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Process Definition`})}),_jsx(_components.td,{children:`Link to navigate to the process definition (requires config rights)`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Build`})}),_jsx(_components.td,{children:`Build identifier`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Project/Library`})}),_jsx(_components.td,{children:`Source project or library`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Build Created From`})}),_jsx(_components.td,{children:`Branch name`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Project/Library Version ID`})}),_jsx(_components.td,{children:`Version identifier`})]})]})]}),`\n`,_jsx(_components.p,{children:`Use the breadcrumb navigation at the top of the page to return to the failed triggers list.`}),`\n`,_jsx(Info,{children:_jsx(_components.p,{children:`If an email fails for multiple reasons, all failure causes are listed in the details view.`})}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`use-cases`,children:`Use cases`}),`\n`,_jsx(Heading,{level:`3`,id:`customer-support-ticket-creation`,children:`Customer support ticket creation`}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Configure Email Trigger`,children:_jsxs(_components.p,{children:[`Create an Email Trigger connected to your support email (e.g., `,_jsx(_components.code,{children:`support@company.com`}),`).`]})}),_jsxs(Step,{title:`Design the process`,children:[_jsx(_components.p,{children:`Create a process that:`}),_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Extracts customer information from the email`}),`\n`,_jsx(_components.li,{children:`Creates a ticket in your CRM`}),`\n`,_jsx(_components.li,{children:`Assigns to the appropriate team`}),`\n`,_jsx(_components.li,{children:`Sends an acknowledgment email`}),`\n`]})]}),_jsx(Step,{title:`Handle attachments`,children:_jsx(_components.p,{children:`Configure validation to accept relevant file types (PDF, images) and route attachments to your document management system.`})})]}),`\n`,_jsx(Heading,{level:`3`,id:`document-processing-workflow`,children:`Document processing workflow`}),`\n`,_jsx(CodeBlock,{numberOfLines:`10`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`10`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Email received with attachments`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` ↓`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Extract document metadata`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` ↓`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Classify document type (invoice, contract, etc.)`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` ↓`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Route to appropriate processing workflow`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` ↓`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Notify relevant stakeholders`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`best-practices`,children:`Best practices`}),`\n`,_jsxs(CardGroup,{cols:2,children:[_jsx(Card,{title:`Use configuration parameters`,icon:`gear`,children:_jsx(_components.p,{children:`Store server credentials and environment-specific settings in configuration parameters for easy management across environments.`})}),_jsx(Card,{title:`Set appropriate validations`,icon:`shield-check`,children:_jsx(_components.p,{children:`Configure file type, size, and count limits to prevent processing of unwanted or malicious content.`})}),_jsx(Card,{title:`Monitor failed triggers`,icon:`triangle-exclamation`,children:_jsx(_components.p,{children:`Regularly review the Failed Triggers section to identify issues with email processing.`})}),_jsx(Card,{title:`Handle attachments asynchronously`,icon:`clock`,children:_jsx(_components.p,{children:`Remember that attachment processing is asynchronous. Design your process to handle potential delays in file availability.`})})]}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Security Note:`}),` Email attachments are uploaded without virus scanning in the current implementation. Consider implementing additional security measures for sensitive environments.`]})}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`troubleshooting`,children:`Troubleshooting`}),`\n`,_jsxs(AccordionGroup,{children:[_jsxs(Accordion,{title:`Email Trigger not appearing in Manage Triggers`,id:`email-trigger-not-appearing-in-manage-triggers`,children:[_jsx(_components.p,{children:`Ensure all requirements are met:`}),_jsxs(_components.ol,{children:[`\n`,_jsx(_components.li,{children:`Email Trigger is created as a Data Source`}),`\n`,_jsx(_components.li,{children:`Email Trigger is linked to a Message Start Event`}),`\n`,_jsx(_components.li,{children:`The process is included in an Active Policy build`}),`\n`]})]}),_jsxs(Accordion,{title:`Connection test fails`,id:`connection-test-fails`,children:[_jsx(_components.p,{children:`Common causes:`}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Incorrect credentials`}),`: Verify username and password`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Wrong port`}),`: Use 993 for IMAP with SSL/TLS`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Certificate not trusted`}),`: With SSL/TLS on, the server’s certificate must be signed by a trusted authority and match its host name. On self-hosted deployments, trust a self-signed or private-CA certificate as described in `,_jsx(_components.a,{href:`/6.x/setup-guides/email-gateway-setup#imap-configuration`,children:`IMAP configuration`})]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Firewall`}),`: Ensure outbound connections to the mail server are allowed`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`2FA enabled`}),`: Generate an app-specific password for the email account`]}),`\n`]})]}),_jsxs(Accordion,{title:`Emails not triggering processes`,id:`emails-not-triggering-processes`,children:[_jsx(_components.p,{children:`Check:`}),_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`Is the trigger `,_jsx(_components.strong,{children:`Active`}),` in Manage Triggers?`]}),`\n`,_jsx(_components.li,{children:`Is the correct mailbox folder configured?`}),`\n`,_jsx(_components.li,{children:`Do incoming emails pass validation rules?`}),`\n`,_jsx(_components.li,{children:`Review Failed Triggers for error details`}),`\n`]})]}),_jsxs(Accordion,{title:`Attachments not available in process`,id:`attachments-not-available-in-process`,children:[_jsx(_components.p,{children:`Attachment processing is asynchronous. If you need immediate access:`}),_jsxs(_components.ol,{children:[`\n`,_jsx(_components.li,{children:`Add a wait step or message catch event after the start node`}),`\n`,_jsx(_components.li,{children:`Verify the email passed file validation rules`}),`\n`,_jsx(_components.li,{children:`Check Document Plugin connectivity`}),`\n`]})]})]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`related-documentation`,children:`Related documentation`}),`\n`,_jsxs(CardGroup,{cols:2,children:[_jsx(Card,{title:`Cookbook: reconcile invoices`,icon:`file-invoice-dollar`,href:`/6.x/cookbooks/invoice-reconciliation`,children:_jsx(_components.p,{children:`See the Email Trigger in a full build: invoices arrive by email, AI extracts them, and exceptions go to a reviewer`})}),_jsx(Card,{title:`Email Sender`,icon:`paper-plane`,href:`/6.x/docs/platform-deep-dive/integrations/email-sender`,children:_jsx(_components.p,{children:`Configure SMTP connections to send and reply to emails from processes`})}),_jsx(Card,{title:`Microsoft Outlook`,icon:`envelope`,href:`/6.x/docs/platform-deep-dive/integrations/microsoft-outlook-data-source`,children:_jsx(_components.p,{children:`Connect to Outlook via MS Graph API for reading and sending emails`})}),_jsx(Card,{title:`Send Notification Action`,icon:`envelope`,href:`/6.x/docs/building-blocks/actions/send-notification-action`,children:_jsx(_components.p,{children:`Send emails and reply to received emails directly from process nodes`})}),_jsx(Card,{title:`Integration Designer`,icon:`puzzle-piece`,href:`/6.x/docs/platform-deep-dive/integrations/integration-designer`,children:_jsx(_components.p,{children:`Learn about other data source types and workflow creation`})}),_jsx(Card,{title:`Message Start Event`,icon:`play`,href:`/6.x/docs/building-blocks/node/message-events/message-catch-start-event`,children:_jsx(_components.p,{children:`Configure message-based process triggers`})}),_jsx(Card,{title:`Document Plugin`,icon:`file`,href:`/6.x/docs/platform-deep-dive/core-extensions/content-management/documents-plugin/documents-plugin-overview`,children:_jsx(_components.p,{children:`Manage files and attachments in FlowX.AI`})}),_jsx(Card,{title:`Configuration Parameters`,icon:`sliders`,href:`/6.x/docs/platform-deep-dive/core-extensions/configuration-parameters`,children:_jsx(_components.p,{children:`Use environment variables for flexible configurations`})})]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"codeStyling":"dark","config":{},"pageMetadata":{"title":"Email Trigger","description":"Configure email-based process triggers to automatically start process instances when emails are received. Email Triggers connect to IMAP mail servers and monitor specific mailboxes to initiate workflows.","owner":"docs","last_reviewed":"2026-10-29T00:00:00.000Z","href":"/6.x/docs/platform-deep-dive/integrations/email-trigger"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Email Trigger vs Microsoft Outlook","slug":"email-trigger-vs-microsoft-outlook","depth":3,"children":[]},{"title":"Overview","slug":"overview","depth":2,"children":[]},{"title":"How it works","slug":"how-it-works","depth":2,"children":[]},{"title":"Creating an email trigger data source","slug":"creating-an-email-trigger-data-source","depth":2,"children":[{"title":"Prerequisites","slug":"prerequisites","depth":3,"children":[]},{"title":"Step 1: Access Integration Designer","slug":"step-1-access-integration-designer","depth":3,"children":[]},{"title":"Step 2: Configure connection settings","slug":"step-2-configure-connection-settings","depth":3,"children":[]},{"title":"Step 3: Test the connection","slug":"step-3-test-the-connection","depth":3,"children":[]},{"title":"Step 4: Configure basic information","slug":"step-4-configure-basic-information","depth":3,"children":[]}]},{"title":"Configuring email trigger settings","slug":"configuring-email-trigger-settings","depth":2,"children":[{"title":"Filtering criteria","slug":"filtering-criteria","depth":3,"children":[]},{"title":"Trigger condition and attachment forwarding","slug":"trigger-condition-and-attachment-forwarding","depth":3,"children":[]},{"title":"Start Process for","slug":"start-process-for","depth":4,"children":[]},{"title":"Save email attachments on process","slug":"save-email-attachments-on-process","depth":4,"children":[]},{"title":"Limits","slug":"limits","depth":4,"children":[]},{"title":"Polling interval","slug":"polling-interval","depth":3,"children":[]}]},{"title":"Connecting to a Message Start Event","slug":"connecting-to-a-message-start-event","depth":2,"children":[{"title":"Configuring the Message Start Event","slug":"configuring-the-message-start-event","depth":3,"children":[]}]},{"title":"Email data schema","slug":"email-data-schema","depth":2,"children":[{"title":"Schema fields","slug":"schema-fields","depth":3,"children":[]},{"title":"Attachment handling","slug":"attachment-handling","depth":3,"children":[]},{"title":"Forwarding incoming attachments to a reply","slug":"forwarding-incoming-attachments-to-a-reply","depth":3,"children":[]}]},{"title":"Managing triggers at runtime","slug":"managing-triggers-at-runtime","depth":2,"children":[{"title":"Accessing Manage Triggers","slug":"accessing-manage-triggers","depth":3,"children":[]},{"title":"Trigger list columns","slug":"trigger-list-columns","depth":3,"children":[]},{"title":"Activation requirements","slug":"activation-requirements","depth":3,"children":[]},{"title":"Activating and deactivating triggers","slug":"activating-and-deactivating-triggers","depth":3,"children":[]}]},{"title":"Testing with mock email content","slug":"testing-with-mock-email-content","depth":2,"children":[{"title":"How to test with mock email","slug":"how-to-test-with-mock-email","depth":3,"children":[]}]},{"title":"Handling failed triggers","slug":"handling-failed-triggers","depth":2,"children":[{"title":"Accessing Failed Triggers","slug":"accessing-failed-triggers","depth":3,"children":[]},{"title":"Failed Triggers list","slug":"failed-triggers-list","depth":3,"children":[]},{"title":"Cause types","slug":"cause-types","depth":3,"children":[]},{"title":"Failed trigger details page","slug":"failed-trigger-details-page","depth":3,"children":[]}]},{"title":"Use cases","slug":"use-cases","depth":2,"children":[{"title":"Customer support ticket creation","slug":"customer-support-ticket-creation","depth":3,"children":[]},{"title":"Document processing workflow","slug":"document-processing-workflow","depth":3,"children":[]}]},{"title":"Best practices","slug":"best-practices","depth":2,"children":[]},{"title":"Troubleshooting","slug":"troubleshooting","depth":2,"children":[]},{"title":"Related documentation","slug":"related-documentation","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/flowxai/9795f3937492dd76/snippets/zendesk-verification.js","/_mintlify/custom/flowxai/93d12cb97573b7cd/snippets/intro-hero.js","/_mintlify/custom/flowxai/90103fefc8b4bea0/snippets/footer-horizon.js"],"subdomain":"flowxai","siteName":"FlowX.AI","title":"Email Trigger - FlowX.AI","relatedPagesConfig":{"enabled":true,"limit":5,"mode":"automatic"},"contextualStarterQuestions":[{"_id":"6ae4be412e85ccd8a8a6d500","deploymentId":"694954a421c35c020852b639","questionText":"When should I use Microsoft Outlook?","status":"active","generatedBy":"contextual","path":"6.x/docs/platform-deep-dive/integrations/email-trigger","createdAt":"2026-10-30T15:56:49.072Z","updatedAt":"2026-10-30T15:56:49.072Z","__v":0},{"_id":"6ae4be412e85ccd8a8a6d501","deploymentId":"694954a421c35c020852b639","questionText":"What mail servers are supported?","status":"active","generatedBy":"contextual","path":"6.x/docs/platform-deep-dive/integrations/email-trigger","createdAt":"2026-10-30T15:56:49.072Z","updatedAt":"2026-10-30T15:56:49.072Z","__v":0},{"_id":"6ae4be412e85ccd8a8a6d4ff","deploymentId":"694954a421c35c020852b639","questionText":"How do I set up email triggers?","status":"active","generatedBy":"contextual","path":"6.x/docs/platform-deep-dive/integrations/email-trigger","createdAt":"2026-10-30T15:56:49.072Z","updatedAt":"2026-10-30T15:56:49.072Z","__v":0}],"navMaps":{"firstHrefInVersion":{"v6.x":{"href":"/6.x/docs/platform-deep-dive/integrations/email-trigger","matchLevel":0},"v5.9.x":{"href":"/5.9/docs/platform-deep-dive/integrations/email-trigger","matchLevel":1},"v5.1.x":{"href":"/5.1/docs/platform-deep-dive/core-components/flowx-engine","matchLevel":2},"v4.7.x":{"href":"/4.7.x/docs/platform-deep-dive/core-components/flowx-engine","matchLevel":2},"v4.1.x":{"href":"/4.1.x/docs/platform-deep-dive/core-components/flowx-engine","matchLevel":2},"v3.x":{"href":"/3.x/docs/platform-deep-dive/core-components/flowx-engine","matchLevel":2}},"firstHrefInLanguage":{}},"lastModified":"2026-10-30T15:55:57.617Z","gitLastModified":"2026-10-30T15:55:04.000Z","originalFileLocation":"6.x/docs/platform-deep-dive/integrations/email-trigger.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"dark\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Configure email-based process triggers to automatically start process instances when emails are received. Email Triggers connect to IMAP mail servers and monitor specific mailboxes to initiate workflows.\">\u003cmeta data-mint-head name=\"application-name\" content=\"FlowX.AI\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/flowxai/tLAtpK66JQ6LptNv/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/flowxai/tLAtpK66JQ6LptNv/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/flowxai/tLAtpK66JQ6LptNv/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/flowxai/tLAtpK66JQ6LptNv/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/flowxai/tLAtpK66JQ6LptNv/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/flowxai/tLAtpK66JQ6LptNv/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/flowxai/tLAtpK66JQ6LptNv/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/flowxai/tLAtpK66JQ6LptNv/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/flowxai/tLAtpK66JQ6LptNv/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Email Trigger - FlowX.AI\">\u003cmeta data-mint-head property=\"og:description\" content=\"Configure email-based process triggers to automatically start process instances when emails are received. Email Triggers connect to IMAP mail servers and monitor specific mailboxes to initiate workflows.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"FlowX.AI\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.flowx.ai/6.x/docs/platform-deep-dive/integrations/email-trigger\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://flowxai.mintlify.app/_mintlify/api/og/v2?division=Data+sources\u0026amp;title=Email+Trigger\u0026amp;description=Configure+email-based+process+triggers+to+automatically+start+process+instances+when+emails+are+received.+Email+Triggers+connect+to+IMAP+mail+servers+and+monito\u0026amp;theme=021ad2ee1834111be160e8a7\u0026amp;signature=a8cc82baeefda8974ff96e1454c35e7b6b3993a3cb234026821bd6285bc5f039\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Email Trigger - FlowX.AI\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Configure email-based process triggers to automatically start process instances when emails are received. Email Triggers connect to IMAP mail servers and monitor specific mailboxes to initiate workflows.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://flowxai.mintlify.app/_mintlify/api/og/v2?division=Data+sources\u0026amp;title=Email+Trigger\u0026amp;description=Configure+email-based+process+triggers+to+automatically+start+process+instances+when+emails+are+received.+Email+Triggers+connect+to+IMAP+mail+servers+and+monito\u0026amp;theme=021ad2ee1834111be160e8a7\u0026amp;signature=a8cc82baeefda8974ff96e1454c35e7b6b3993a3cb234026821bd6285bc5f039\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/flowxai/tLAtpK66JQ6LptNv/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"FlowX.AI\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#fcb813\">\u003cmeta data-mint-head name=\"zd-site-verification\" content=\"94tteg5ir5of8gkb4twzh\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.flowx.ai/6.x/docs/platform-deep-dive/integrations/email-trigger\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/6.x/docs/platform-deep-dive/integrations/email-trigger.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.flowx.ai/#organization\",\"name\":\"FlowX.AI\",\"url\":\"https://docs.flowx.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/flowxai/38fXEM0a7v86Lg2m/logo/light.png?fit=max\u0026auto=format\u0026n=38fXEM0a7v86Lg2m\u0026q=85\u0026s=d767c06cef433b0a02f40a1f4f785eab\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.flowx.ai#website\",\"name\":\"FlowX.AI\",\"url\":\"https://docs.flowx.ai\",\"publisher\":{\"@id\":\"https://docs.flowx.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.flowx.ai/6.x/docs/platform-deep-dive/integrations/email-trigger#webpage\",\"url\":\"https://docs.flowx.ai/6.x/docs/platform-deep-dive/integrations/email-trigger\",\"name\":\"Email Trigger\",\"description\":\"Configure email-based process triggers to automatically start process instances when emails are received. Email Triggers connect to IMAP mail servers and monitor specific mailboxes to initiate workflows.\",\"dateModified\":\"2026-10-30T15:55:04.000Z\",\"isPartOf\":{\"@id\":\"https://docs.flowx.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.flowx.ai/6.x/docs/platform-deep-dive/integrations/email-trigger#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.flowx.ai/6.x/docs/platform-deep-dive/integrations/email-trigger#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Platform deep dive\",\"item\":\"https://docs.flowx.ai/6.x/docs/platform-deep-dive/core-components/flowx-engine\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Integrations\",\"item\":\"https://docs.flowx.ai/6.x/docs/platform-deep-dive/integrations/integrations-overview\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Data sources\",\"item\":\"https://docs.flowx.ai/6.x/docs/platform-deep-dive/integrations/flowx-database\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Email Trigger\",\"item\":\"https://docs.flowx.ai/6.x/docs/platform-deep-dive/integrations/email-trigger\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.flowx.ai/6.x/docs/platform-deep-dive/integrations/email-trigger#article\",\"headline\":\"Email Trigger\",\"name\":\"Email Trigger\",\"description\":\"Configure email-based process triggers to automatically start process instances when emails are received. Email Triggers connect to IMAP mail servers and monitor specific mailboxes to initiate workflows.\",\"url\":\"https://docs.flowx.ai/6.x/docs/platform-deep-dive/integrations/email-trigger\",\"mainEntityOfPage\":{\"@id\":\"https://docs.flowx.ai/6.x/docs/platform-deep-dive/integrations/email-trigger#webpage\"},\"dateModified\":\"2026-10-30T15:55:04.000Z\",\"publisher\":{\"@id\":\"https://docs.flowx.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.flowx.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"FlowX.AI\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"FlowX.AI","nav":{"global":null,"versions":[{"version":"v6.x","tag":"Preview","tabs":[{"tab":"Documentation","icon":"book","groups":[{"group":"Getting Started","pages":[{"title":"FlowX.AI documentation","icon":"book-open","mode":"wide","href":"/6.x/docs/introduction"},{"title":"Tutorial: Build a credit card application","sidebarTitle":"Build your first process","icon":"rocket","href":"/6.x/docs/getting-started/building-your-first-proc"},{"title":"Tutorial: Build your first workflow","sidebarTitle":"Build your first workflow","icon":"diagram-next","href":"/6.x/docs/getting-started/building-your-first-workflow"},{"title":"Tutorial: Build your first UI Flow","sidebarTitle":"Build your first UI Flow","icon":"browser","href":"/6.x/docs/getting-started/building-your-first-ui-flow"},{"title":"Glossary","icon":"book","href":"/6.x/docs/getting-started/glossary"},{"title":"Using FlowX docs with AI assistants","icon":"robot","href":"/6.x/docs/getting-started/using-flowx-docs-with-ai"}]},{"group":"Concepts","pages":[{"title":"FlowX.AI architecture: services, layers, and data flow","sidebarTitle":"FlowX.AI architecture","icon":"diagram-project","href":"/6.x/docs/platform-overview/flowx-architecture"},{"title":"FlowX.AI data architecture: which service uses which store","sidebarTitle":"Data architecture","icon":"database","href":"/6.x/docs/platform-overview/data-architecture"},{"title":"Security","icon":"shield-check","href":"/6.x/docs/platform-overview/security"},{"title":"Intro to BPMN","icon":"diagram-project","href":"/6.x/docs/platform-overview/frameworks-and-standards/business-process-industry-standards/intro-to-bpmn"},{"group":"Infrastructure technologies","icon":"server","pages":[{"title":"Intro to Elasticsearch","href":"/6.x/docs/platform-overview/frameworks-and-standards/event-driven-architecture-frameworks/intro-to-elasticsearch"},{"title":"Intro to Kafka concepts","href":"/6.x/docs/platform-overview/frameworks-and-standards/event-driven-architecture-frameworks/intro-to-kafka-concepts"},{"title":"Intro to Kubernetes","href":"/6.x/docs/platform-overview/frameworks-and-standards/event-driven-architecture-frameworks/intro-to-kubernetes"},{"title":"Intro to NGINX","href":"/6.x/docs/platform-overview/frameworks-and-standards/event-driven-architecture-frameworks/intro-to-nginx"},{"title":"Intro to Redis","href":"/6.x/docs/platform-overview/frameworks-and-standards/event-driven-architecture-frameworks/intro-to-redis"}]}]},{"group":"FlowX.AI Designer","pages":[{"title":"FlowX.AI Designer","icon":"pen-ruler","href":"/6.x/docs/flowx-designer/overview"},{"title":"Notification center","icon":"bell","href":"/6.x/docs/flowx-designer/notification-center"},{"group":"Design Assets","icon":"pen","pages":[{"title":"Themes","href":"/6.x/docs/flowx-designer/design-assets/themes"},{"title":"Fonts","href":"/6.x/docs/flowx-designer/design-assets/font-files"},{"title":"Global Media Library","href":"/6.x/docs/flowx-designer/design-assets/global-media-library"}]},{"group":"Managing a project flow","icon":"arrow-progress","pages":[{"title":"Creating a new project","href":"/6.x/docs/flowx-designer/managing-a-project-flow/creating-a-project"},{"title":"Creating and managing process definitions","href":"/6.x/docs/flowx-designer/managing-a-project-flow/creating-a-new-process-definition"},{"title":"Adding a new node","href":"/6.x/docs/flowx-designer/managing-a-project-flow/adding-a-new-node"},{"title":"Adding an action to a node","href":"/6.x/docs/flowx-designer/managing-a-project-flow/adding-an-action-to-a-node"},{"title":"Handling decisions in the flow","href":"/6.x/docs/flowx-designer/managing-a-project-flow/handling-decisions-in-the-flow"},{"title":"Adding parallel flow branches","href":"/6.x/docs/flowx-designer/managing-a-project-flow/adding-more-flow-branches"},{"title":"Creating a user interface","href":"/6.x/docs/flowx-designer/managing-a-project-flow/creating-a-user-interface"},{"title":"Moving a token backwards in a process","href":"/6.x/docs/flowx-designer/managing-a-project-flow/moving-a-token-backwards-in-a-process"},{"title":"Exporting and importing projects","href":"/6.x/docs/flowx-designer/managing-a-project-flow/export-import-a-process-definition"},{"title":"Initiating/starting processes","href":"/6.x/docs/flowx-designer/managing-a-project-flow/starting-a-process"}]}]},{"group":"Building projects","pages":[{"title":"Workspaces","icon":"building-columns","href":"/6.x/docs/projects/workspaces"},{"title":"Resources","icon":"building-wheat","href":"/6.x/docs/projects/resources"},{"title":"Reference types in resources usage","icon":"link","href":"/6.x/docs/projects/reference-types"},{"group":"Configuration","icon":"box","pages":[{"title":"Projects","href":"/6.x/docs/projects/managing-applications/application"},{"title":"Libraries","href":"/6.x/docs/projects/managing-applications/libraries"},{"title":"Versioning","href":"/6.x/docs/projects/managing-applications/versioning"},{"title":"Checking a version for issues","icon":"triangle-exclamation","href":"/6.x/docs/projects/managing-applications/checking-for-issues"},{"title":"Dependencies","href":"/6.x/docs/projects/managing-applications/dependencies"}]},{"group":"Runtime","icon":"play","pages":[{"title":"Builds","href":"/6.x/docs/projects/runtime/builds"},{"title":"Active policy","href":"/6.x/docs/projects/runtime/active-policy"},{"title":"Configuration parameters overrides","href":"/6.x/docs/projects/runtime/configuration-parameters-overrides"},{"group":"Active process","pages":[{"title":"Process instance","href":"/6.x/docs/projects/runtime/active-process/process-instance"},{"title":"Update process variables","href":"/6.x/docs/projects/runtime/active-process/update-process-variables"},{"title":"Migrate process instances","href":"/6.x/docs/projects/runtime/active-process/migrate-process-instances"},{"title":"Move tokens","href":"/6.x/docs/projects/runtime/active-process/move-token"},{"title":"Failed process start (exceptions)","href":"/6.x/docs/projects/runtime/active-process/failed-process-start"}]},{"title":"Schedules","href":"/6.x/docs/projects/runtime/scheduled-processes"},{"title":"Manage Triggers","href":"/6.x/docs/projects/runtime/manage-triggers"},{"title":"Workflow instances","icon":"diagram-project","href":"/6.x/docs/projects/runtime/workflow-instances"},{"title":"UI Flow Sessions","href":"/6.x/docs/projects/runtime/ui-flow-sessions"}]}]},{"group":"Building blocks","pages":[{"group":"Processes","icon":"network-wired","pages":[{"title":"Process Designer","href":"/6.x/docs/building-blocks/process/process"},{"title":"Process definition","href":"/6.x/docs/building-blocks/process/process-definition"},{"title":"Permission-based expressions","href":"/6.x/docs/building-blocks/process/permission-based-expressions"},{"title":"Process data model","href":"/6.x/docs/building-blocks/process/data-model"},{"title":"Data mappers","href":"/6.x/docs/building-blocks/process/data-mappers"},{"title":"Passing data between nodes","href":"/6.x/docs/building-blocks/process/passing-data-between-nodes"},{"title":"Subprocess management","href":"/6.x/docs/building-blocks/process/subprocess"},{"title":"Navigation areas","href":"/6.x/docs/building-blocks/process/navigation-areas"},{"title":"Navigation best practices","href":"/6.x/docs/building-blocks/process/navigation-best-practices"},{"title":"Process design principles","href":"/6.x/docs/building-blocks/process/design-principles"}]},{"group":"Nodes","icon":"circle-nodes","pages":[{"title":"Process nodes (BPMN)","href":"/6.x/docs/building-blocks/node/node"},{"title":"Start/end nodes","href":"/6.x/docs/building-blocks/node/start-end-node"},{"title":"Send message/receive message tasks","href":"/6.x/docs/building-blocks/node/message-send-received-task-node"},{"title":"Service Task node","href":"/6.x/docs/building-blocks/node/task-node"},{"title":"User task node","href":"/6.x/docs/building-blocks/node/user-task-node"},{"title":"Exclusive gateway","href":"/6.x/docs/building-blocks/node/exclusive-gateway-node"},{"title":"Parallel gateway","href":"/6.x/docs/building-blocks/node/parallel-gateway"},{"group":"Call subprocess tasks","pages":[{"title":"Call activity node","href":"/6.x/docs/building-blocks/node/call-subprocess-tasks/call-activity-node"},{"title":"Start embedded subprocess","href":"/6.x/docs/building-blocks/node/call-subprocess-tasks/start-embedded-subprocess"}]},{"group":"Message events","pages":[{"title":"Message Events","href":"/6.x/docs/building-blocks/node/message-events/message-events"},{"title":"Message Start Event","href":"/6.x/docs/building-blocks/node/message-events/message-catch-start-event"},{"group":"Message intermediate events","pages":[{"title":"Message intermediate events overview","href":"/6.x/docs/building-blocks/node/message-events/message-intermediate/message-intermediate"},{"title":"Message throw intermediate event","href":"/6.x/docs/building-blocks/node/message-events/message-intermediate/message-throw-intermediate-event"},{"title":"Message catch intermediate event","href":"/6.x/docs/building-blocks/node/message-events/message-intermediate/message-catch-intermediate-event"},{"title":"Intermediate message events in business processes","href":"/6.x/docs/building-blocks/node/message-events/message-intermediate/example-intermediate-message-events"}]},{"title":"Message catch boundary events","href":"/6.x/docs/building-blocks/node/message-events/message-catch-boundary-event"}]},{"group":"Timer events","pages":[{"title":"Timer events","href":"/6.x/docs/building-blocks/node/timer-events/timer-events"},{"title":"Timer start event","href":"/6.x/docs/building-blocks/node/timer-events/timer-start-event"},{"title":"Timer Intermediate Event (interrupting)","href":"/6.x/docs/building-blocks/node/timer-events/timer-intermediate-event"},{"title":"Timer boundary event","href":"/6.x/docs/building-blocks/node/timer-events/timer-boundary-event"},{"title":"Timer expressions","href":"/6.x/docs/building-blocks/node/timer-events/timer-expressions"}]},{"title":"Error events","href":"/6.x/docs/building-blocks/node/error-events"}]},{"group":"Actions","icon":"bolt","pages":[{"title":"Node actions","href":"/6.x/docs/building-blocks/actions/actions"},{"group":"Business rule actions","pages":[{"title":"Business rules types","href":"/6.x/docs/building-blocks/actions/business-rule-action/business-rule-action"},{"title":"Extracting additional data in business rules","href":"/6.x/docs/building-blocks/actions/business-rule-action/extracting-additional-data"}]},{"title":"Send data to user interface","href":"/6.x/docs/building-blocks/actions/send-data-to-user-interface"},{"title":"Upload file action","href":"/6.x/docs/building-blocks/actions/upload-file-action"},{"title":"Start subprocess action","href":"/6.x/docs/building-blocks/actions/start-subprocess-action"},{"title":"Append params to parent process","href":"/6.x/docs/building-blocks/actions/append-params-to-parent-process"},{"title":"Kafka send action","href":"/6.x/docs/building-blocks/actions/kafka-send-action"},{"title":"Start integration workflow action","href":"/6.x/docs/building-blocks/actions/start-integration-workflow"},{"title":"Start new project instance","href":"/6.x/docs/building-blocks/actions/start-new-project-instance"},{"title":"Send notification action","href":"/6.x/docs/building-blocks/actions/send-notification-action"}]},{"group":"UI Designer","icon":"paintbrush","pages":[{"title":"UI Designer","href":"/6.x/docs/building-blocks/ui-designer/ui-designer"},{"title":"Platform-specific considerations","href":"/6.x/docs/building-blocks/ui-designer/platform-considerations"},{"title":"Screen configuration guide","href":"/6.x/docs/building-blocks/ui-designer/screen-configuration-guide"},{"title":"UI Designer best practices","href":"/6.x/docs/building-blocks/ui-designer/best-practices"},{"group":"Root components","pages":[{"title":"Root Components in UI Design","href":"/6.x/docs/building-blocks/ui-designer/ui-component-types/root-components/root-components"},{"title":"Container","href":"/6.x/docs/building-blocks/ui-designer/ui-component-types/root-components/container"},{"title":"Card","href":"/6.x/docs/building-blocks/ui-designer/ui-component-types/root-components/card"},{"title":"Custom component","href":"/6.x/docs/building-blocks/ui-designer/ui-component-types/root-components/custom"},{"title":"Global Header and Footer","href":"/6.x/docs/building-blocks/ui-designer/ui-component-types/root-components/global-header-footer"}]},{"group":"Collections UI elements","pages":[{"title":"Collection","href":"/6.x/docs/building-blocks/ui-designer/ui-component-types/collection/collection"},{"title":"Collection Prototype","href":"/6.x/docs/building-blocks/ui-designer/ui-component-types/collection/collection-prototype"}]},{"group":"Form elements","pages":[{"title":"Input field","href":"/6.x/docs/building-blocks/ui-designer/ui-component-types/form-elements/input-form-field"},{"title":"Text area","href":"/6.x/docs/building-blocks/ui-designer/ui-component-types/form-elements/text-area"},{"title":"Single Select","href":"/6.x/docs/building-blocks/ui-designer/ui-component-types/form-elements/select-form-field"},{"title":"Multi select","href":"/6.x/docs/building-blocks/ui-designer/ui-component-types/form-elements/multi-select"},{"title":"Checkbox","href":"/6.x/docs/building-blocks/ui-designer/ui-component-types/form-elements/checkbox-form-field"},{"title":"Radio","href":"/6.x/docs/building-blocks/ui-designer/ui-component-types/form-elements/radio-form-field"},{"title":"Switch","href":"/6.x/docs/building-blocks/ui-designer/ui-component-types/form-elements/switch-form-field"},{"title":"Datepicker","href":"/6.x/docs/building-blocks/ui-designer/ui-component-types/form-elements/datepicker-form-field"},{"title":"Slider","href":"/6.x/docs/building-blocks/ui-designer/ui-component-types/form-elements/slider"},{"title":"Segmented button","href":"/6.x/docs/building-blocks/ui-designer/ui-component-types/form-elements/segmented-button"}]},{"title":"Buttons","href":"/6.x/docs/building-blocks/ui-designer/ui-component-types/buttons"},{"title":"Multiple file upload","href":"/6.x/docs/building-blocks/ui-designer/ui-component-types/multiple-file-upload"},{"title":"File preview","href":"/6.x/docs/building-blocks/ui-designer/ui-component-types/file-preview"},{"title":"File download","href":"/6.x/docs/building-blocks/ui-designer/ui-component-types/file-download"},{"title":"Table","href":"/6.x/docs/building-blocks/ui-designer/ui-component-types/table"},{"title":"Image","href":"/6.x/docs/building-blocks/ui-designer/ui-component-types/image"},{"title":"Indicators","href":"/6.x/docs/building-blocks/ui-designer/ui-component-types/indicators"},{"title":"Typography","href":"/6.x/docs/building-blocks/ui-designer/ui-component-types/typography"},{"title":"Chat","href":"/6.x/docs/building-blocks/ui-designer/ui-component-types/chat"},{"title":"Markdown","href":"/6.x/docs/building-blocks/ui-designer/ui-component-types/markdown"},{"title":"Separator","href":"/6.x/docs/building-blocks/ui-designer/ui-component-types/separator"},{"title":"Progress bar","href":"/6.x/docs/building-blocks/ui-designer/ui-component-types/progress-bar"},{"title":"Tooltip","href":"/6.x/docs/building-blocks/ui-designer/ui-component-types/tooltip"},{"title":"Event Handlers","href":"/6.x/docs/building-blocks/ui-designer/event-handlers"},{"title":"Validators","href":"/6.x/docs/building-blocks/ui-designer/validators"},{"title":"Dynamic \u0026 computed values","href":"/6.x/docs/building-blocks/ui-designer/dynamic-and-computed-values"},{"title":"Localization and internationalization","href":"/6.x/docs/building-blocks/ui-designer/localization-and-i18n"},{"title":"Layout configuration","href":"/6.x/docs/building-blocks/ui-designer/layout-configuration"},{"title":"Conditional styling","href":"/6.x/docs/building-blocks/ui-designer/conditional-styling"}]},{"title":"UI Flows","icon":"file-pen","href":"/6.x/docs/building-blocks/ui-flows"},{"title":"Combine UI Flows, processes, and workflows","sidebarTitle":"Combine UI Flows, processes, and workflows","icon":"diagram-project","href":"/6.x/docs/building-blocks/combining-ui-flows-processes-and-workflows"},{"title":"Project data model","icon":"square-binary","href":"/6.x/docs/building-blocks/project-data-model"},{"title":"Token","icon":"coins","href":"/6.x/docs/building-blocks/token"},{"title":"Supported scripts","icon":"file-code","href":"/6.x/docs/building-blocks/supported-scripts"},{"group":"Reusable resources","icon":"puzzle-piece","pages":[{"title":"Reusable Functions","href":"/6.x/docs/building-blocks/reusable-resources/reusable-functions"},{"title":"Reusable UI Templates","href":"/6.x/docs/building-blocks/reusable-resources/reusable-ui"},{"title":"Custom Components","href":"/6.x/docs/building-blocks/reusable-resources/custom-components"}]}]},{"group":"Platform deep dive","pages":[{"group":"Core components","icon":"puzzle","pages":[{"title":"FlowX.AI Engine","href":"/6.x/docs/platform-deep-dive/core-components/flowx-engine"},{"title":"FlowX.AI Advancing Controller","href":"/6.x/docs/platform-deep-dive/core-components/advancing-controller"},{"title":"FlowX.AI Events Gateway","href":"/6.x/docs/platform-deep-dive/core-components/events-gateway"}]},{"group":"Core extensions","icon":"puzzle-piece","pages":[{"group":"Content management","pages":[{"title":"FlowX.AI CMS","href":"/6.x/docs/platform-deep-dive/core-extensions/content-management/content-management"},{"title":"Enumerations","href":"/6.x/docs/platform-deep-dive/core-extensions/content-management/enumerations"},{"title":"Substitution tags","href":"/6.x/docs/platform-deep-dive/core-extensions/content-management/substitution-tags"},{"title":"Media library","href":"/6.x/docs/platform-deep-dive/core-extensions/content-management/media-library"},{"group":"Document Templates","pages":[{"title":"Document Templates","href":"/6.x/docs/platform-deep-dive/core-extensions/content-management/documents-plugin/documents-plugin-overview"},{"title":"Generating documents","href":"/6.x/docs/platform-deep-dive/core-extensions/content-management/documents-plugin/generating-from-html-templates"},{"title":"Managing templates","href":"/6.x/docs/platform-deep-dive/core-extensions/content-management/documents-plugin/managing-html-templates"},{"title":"Creating and uploading a new document","href":"/6.x/docs/platform-deep-dive/core-extensions/content-management/documents-plugin/uploading-a-new-document"},{"title":"Converting files","href":"/6.x/docs/platform-deep-dive/core-extensions/content-management/documents-plugin/converting-documents-to-different-formats"},{"title":"Splitting documents","href":"/6.x/docs/platform-deep-dive/core-extensions/content-management/documents-plugin/splitting-a-document"},{"title":"Combining files","href":"/6.x/docs/platform-deep-dive/core-extensions/content-management/documents-plugin/combining-files"},{"title":"Deleting files","href":"/6.x/docs/platform-deep-dive/core-extensions/content-management/documents-plugin/deleting-a-file"},{"title":"Getting URLs","href":"/6.x/docs/platform-deep-dive/core-extensions/content-management/documents-plugin/getting-urls-to-documents"},{"title":"Listing stored files","href":"/6.x/docs/platform-deep-dive/core-extensions/content-management/documents-plugin/listing-stored-files"},{"title":"Encrypting and decrypting files","href":"/6.x/docs/platform-deep-dive/core-extensions/content-management/documents-plugin/encrypting-decrypting-files"}]},{"group":"Notification Templates","pages":[{"title":"Notification Templates","href":"/6.x/docs/platform-deep-dive/core-extensions/content-management/notifications-plugin/notifications-plugin-overview"},{"title":"Managing notification templates","href":"/6.x/docs/platform-deep-dive/core-extensions/content-management/notifications-plugin/managing-notification-templates"},{"title":"Sending a notification","href":"/6.x/docs/platform-deep-dive/core-extensions/content-management/notifications-plugin/sending-a-notification"},{"title":"Sending an email","href":"/6.x/docs/platform-deep-dive/core-extensions/content-management/notifications-plugin/sending-an-email-with-attachments"},{"title":"Forwarding notifications","href":"/6.x/docs/platform-deep-dive/core-extensions/content-management/notifications-plugin/forwarding-notifications-to-an-external-system"},{"group":"OTP flow","pages":[{"title":"Handling OTP","href":"/6.x/docs/platform-deep-dive/core-extensions/content-management/notifications-plugin/otp-flow/otp-flow"},{"title":"Generate OTP","href":"/6.x/docs/platform-deep-dive/core-extensions/content-management/notifications-plugin/otp-flow/generate-otp"},{"title":"Validate OTP","href":"/6.x/docs/platform-deep-dive/core-extensions/content-management/notifications-plugin/otp-flow/validate-otp"}]}]}]},{"group":"Task management","pages":[{"title":"Task management","href":"/6.x/docs/platform-deep-dive/core-extensions/task-management/task-management-overview"},{"title":"Task Management localization","href":"/6.x/docs/platform-deep-dive/core-extensions/task-management/task-management-localization"},{"title":"Using allocation rules","href":"/6.x/docs/platform-deep-dive/core-extensions/task-management/using-allocation-rules"},{"title":"Using out of office records","href":"/6.x/docs/platform-deep-dive/core-extensions/task-management/using-out-of-office-records"},{"title":"Using stages","href":"/6.x/docs/platform-deep-dive/core-extensions/task-management/using-stages"}]},{"title":"Configuration parameters","href":"/6.x/docs/platform-deep-dive/core-extensions/configuration-parameters"},{"title":"FlowX.AI Audit","href":"/6.x/docs/platform-deep-dive/core-extensions/audit"},{"title":"FlowX.AI Scheduler","href":"/6.x/docs/platform-deep-dive/core-extensions/scheduler"},{"title":"FlowX.AI Data Search","href":"/6.x/docs/platform-deep-dive/core-extensions/search-data-service"}]},{"group":"Plugins","icon":"puzzle-piece-simple","pages":[{"title":"FlowX custom plugins","href":"/6.x/docs/platform-deep-dive/plugins/custom-plugins"},{"title":"OCR plugin","href":"/6.x/docs/platform-deep-dive/plugins/custom-plugins/ocr-plugin"},{"group":"Reporting plugin","pages":[{"title":"Reporting plugin","href":"/6.x/docs/platform-deep-dive/plugins/custom-plugins/reporting/reporting-overview"},{"title":"Authorization \u0026 access roles","href":"/6.x/docs/platform-deep-dive/plugins/custom-plugins/reporting/access-and-authorization"}]},{"title":"WYSIWYG editor","href":"/6.x/docs/platform-deep-dive/plugins/wysiwyg"}]},{"group":"Integrations","icon":"link","pages":[{"title":"Choose how to connect FlowX.AI to external systems","sidebarTitle":"Overview","href":"/6.x/docs/platform-deep-dive/integrations/integrations-overview"},{"title":"Consuming FlowX from external apps","href":"/6.x/docs/platform-deep-dive/integrations/consuming-flowx-from-external-apps"},{"title":"Finding identifiers and parameters","href":"/6.x/docs/platform-deep-dive/integrations/finding-identifiers-and-parameters"},{"group":"Integration Designer","pages":[{"title":"Integration Designer","href":"/6.x/docs/platform-deep-dive/integrations/integration-designer"},{"title":"Workflow data model","href":"/6.x/docs/platform-deep-dive/integrations/workflow-data-models"},{"title":"Custom Agent node","href":"/6.x/docs/platform-deep-dive/integrations/custom-agent-node"},{"title":"Deep Research node","href":"/6.x/docs/platform-deep-dive/integrations/deep-research-node"},{"title":"Document classifiers","href":"/6.x/docs/platform-deep-dive/integrations/document-classifiers"},{"title":"Proxy connections","href":"/6.x/docs/platform-deep-dive/integrations/proxy-connections"},{"group":"MCP Integration","pages":[{"title":"MCP integration","href":"/6.x/docs/platform-deep-dive/integrations/mcp-integration/mcp-integration-overview"},{"title":"MCP Data Sources","href":"/6.x/docs/platform-deep-dive/integrations/mcp-integration/adding-mcp-data-source"}]},{"group":"Knowledge Base Integration","pages":[{"title":"Knowledge Base integration","href":"/6.x/docs/platform-deep-dive/integrations/knowledge-base-integration/knowledge-base-overview"},{"title":"Managing stores","href":"/6.x/docs/platform-deep-dive/integrations/knowledge-base-integration/managing-content"},{"title":"Using Knowledge Base in workflows","href":"/6.x/docs/platform-deep-dive/integrations/knowledge-base-integration/using-knowledge-base-in-workflows"},{"title":"Testing a knowledge base","href":"/6.x/docs/platform-deep-dive/integrations/knowledge-base-integration/testing-knowledge-base"}]}]},{"group":"Data sources","pages":[{"title":"FlowX Database","href":"/6.x/docs/platform-deep-dive/integrations/flowx-database"},{"title":"Unmanaged MongoDB","href":"/6.x/docs/platform-deep-dive/integrations/unmanaged-mongodb"},{"title":"Oracle Database","href":"/6.x/docs/platform-deep-dive/integrations/oracle-database"},{"title":"PostgreSQL Database","href":"/6.x/docs/platform-deep-dive/integrations/postgresql-database"},{"title":"Db2 Database","href":"/6.x/docs/platform-deep-dive/integrations/db2-database"},{"title":"Testing data sources from Runtime","href":"/6.x/docs/platform-deep-dive/integrations/testing-data-sources"},{"title":"SOAP System","href":"/6.x/docs/platform-deep-dive/integrations/soap-system"},{"title":"File Storage","description":"Connect to external file storage (FTP, SFTP, S3, or Azure Blob) as a data source and move files in and out of FlowX from your workflows.","href":"/6.x/docs/platform-deep-dive/integrations/file-storage"},{"title":"Email Trigger","href":"/6.x/docs/platform-deep-dive/integrations/email-trigger"},{"title":"Email Sender","description":"Configure SMTP email connections as data sources to send emails directly from your FlowX.AI processes, including replies to received emails and new outbound messages.","href":"/6.x/docs/platform-deep-dive/integrations/email-sender"},{"title":"Microsoft Outlook","href":"/6.x/docs/platform-deep-dive/integrations/microsoft-outlook-data-source"},{"title":"Incoming Webhooks","href":"/6.x/docs/platform-deep-dive/integrations/incoming-webhooks"}]},{"group":"Custom integrations","pages":[{"title":"Building a connector","href":"/6.x/docs/platform-deep-dive/integrations/building-a-connector"},{"title":"Creating a Kafka consumer","href":"/6.x/docs/platform-deep-dive/integrations/creating-a-kafka-consumer"},{"title":"Creating a Kafka producer","href":"/6.x/docs/platform-deep-dive/integrations/creating-a-kafka-producer"}]},{"group":"Testing \u0026 monitoring","pages":[{"title":"Mock integrations","href":"/6.x/docs/platform-deep-dive/integrations/mock-integrations"},{"title":"Observability with OpenTelemetry","href":"/6.x/docs/platform-deep-dive/integrations/open-telemetry"}]}]},{"title":"Third-party components","icon":"cube","href":"/6.x/docs/platform-deep-dive/third-party-components"},{"title":"Accessibility","icon":"universal-access","href":"/6.x/docs/platform-deep-dive/accessibility"},{"group":"User roles management","icon":"user","pages":[{"title":"Swimlanes","href":"/6.x/docs/platform-deep-dive/user-roles-management/swimlanes"},{"title":"Business filters","href":"/6.x/docs/platform-deep-dive/user-roles-management/business-filters"},{"title":"Anonymous runtime access","href":"/6.x/docs/platform-deep-dive/user-roles-management/anonymous-runtime-access"}]}]},{"group":"Resources","pages":[{"title":"Error glossary","icon":"circle-exclamation","href":"/6.x/docs/resources/error-glossary"}]},{"group":"API reference","pages":[{"group":"Start processes","pages":[{"title":"Get Build Info","api":"GET https://admin.devmain.flowxai.dev/rtm/api/runtime/wks/{workspaceId}/app/{appId}/build/info","href":"/6.x/docs/api/start-process/get-build-info"},{"title":"Get build info by process instance","api":"GET {BASE_URL}/api/runtime/process-instance/{processInstanceUuid}/build/info","href":"/6.x/docs/api/start-process/build-info-by-process-instance"},{"title":"Get build info by UI flow session","api":"GET {BASE_URL}/api/runtime/ui-flow-session/{uiFlowSessionUuid}/build/info","href":"/6.x/docs/api/start-process/build-info-by-ui-flow-session"},{"title":"Start process by workspace, app, and process name","api":"POST {BASE_URL}/api/runtime/wks/{workspaceId}/app/{appId}/process-name/{processName}/start","href":"/6.x/docs/api/start-process/start-by-process-name"},{"title":"Start process by build id and process name","api":"POST https://admin.devmain.flowxai.dev/rtm/api/runtime/app/{appId}/build/{buildId}/process-name/{processDefinitionName}/start","href":"/6.x/docs/api/start-process/rest2"},{"title":"Start process and copy data from another instance","api":"POST {BASE_URL}/api/runtime/wks/{workspaceId}/app/{appId}/process-name/{processName}/start/copyDataFrom/{processInstanceId}","href":"/6.x/docs/api/start-process/start-with-copy-data"},{"title":"Start process from UI with resource definition and inherit values","api":"POST {BASE_URL}/api/runtime/wks/{workspaceId}/app/{appId}/rdi/{resourceDefinitionId}/start/inherit-from/{processInstanceId}","href":"/6.x/docs/api/start-process/start-process-rdi-inherit"}]},{"group":"Mocks","pages":[{"title":"Add new Kafka exchange mock","api":"POST {MOCK_ADAPTER_URL}/api/kafka-exchanges/","href":"/6.x/docs/api/mocks/add-kafka-mock"},{"title":"View Kafka Exchanges","api":"GET {MOCK_ADAPTER_URL}/api/kafka-exchanges","href":"/6.x/docs/api/mocks/view-kafka-exchanges"}]},{"group":"Storage","pages":[{"title":"List storage buckets","api":"GET {{documentUrl}}/internal/storage/buckets","href":"/6.x/docs/api/storage/list-buckets"},{"title":"List objects in a bucket","api":"GET {{documentURL}}/internal/storage/buckets/{BUCKET_NAME}","href":"/6.x/docs/api/storage/list-objects-in-buckets"},{"title":"Download a file","api":"GET documentURL/internal/storage/download","href":"/6.x/docs/api/storage/download-file"}]},{"title":"Clear cache","api":"POST {{baseUrlAdmin}}/api/internal/cache/clear","href":"/6.x/docs/api/clear-cache"},{"title":"Force platform rescan","api":"GET {baseUrl}/api/platform/discover","href":"/6.x/docs/api/force-rescan"},{"title":"MCP API Reference","href":"/6.x/docs/api/mcp-api-reference"}]}]},{"tab":"AI Platform","icon":"robot","pages":[{"title":"AI Platform","href":"/6.x/ai-platform/ai-in-flowx"}]},{"tab":"SDKs","icon":"code","pages":[{"title":"SDKs","href":"/6.x/sdks/sdks-overview"}]},{"tab":"Release notes","icon":"newspaper","pages":[{"title":"Release notes","href":"/release-notes/overview"}]},{"tab":"Cookbooks","icon":"utensils","pages":[{"title":"Cookbooks","href":"/6.x/cookbooks/overview"}]},{"tab":"Observatory","icon":"telescope","pages":[{"title":"Observatory","href":"/6.x/observatory/overview"}]},{"tab":"FlowX SaaS","icon":"cloud","pages":[{"title":"FlowX SaaS","href":"/6.x/docs/saas/saas-overview"}]},{"tab":"Setup guides","icon":"screwdriver-wrench","pages":[{"title":"Setup guides","href":"/6.x/setup-guides/migrate-to-flowx-ai-helm-chart"}]}]},{"version":"v5.9.x","default":true,"tag":"Latest LTS","pages":[{"title":"v5.9.x","href":"/5.9/docs/platform-deep-dive/integrations/email-trigger"}]},{"version":"v5.1.x","tag":"LTS","pages":[{"title":"v5.1.x","href":"/5.1/docs/platform-deep-dive/core-components/flowx-engine"}]},{"version":"v4.7.x","tag":"Legacy","pages":[{"title":"v4.7.x","href":"/4.7.x/docs/platform-deep-dive/core-components/flowx-engine"}]},{"version":"v4.1.x","tag":"Legacy","pages":[{"title":"v4.1.x","href":"/4.1.x/docs/platform-deep-dive/core-components/flowx-engine"}]},{"version":"v3.x","tag":"Legacy","pages":[{"title":"v3.x","href":"/3.x/docs/platform-deep-dive/core-components/flowx-engine"}]}]},"basePath":"","title":"Email Trigger - FlowX.AI","buildId":"dpl_77Hw7ZuAABM8E3WMbYAf2ohQCr3v","deploymentId":"dpl_77Hw7ZuAABM8E3WMbYAf2ohQCr3v","dynamics":["10e4515597","07c022d89b","a74be98ba7"],"chunks":["BannerMarkdown-Br4Fx2_Z.js","dist-ptfS1uB_.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","clsx-rIpTdK8h.js","html-void-elements-mCSPHezU.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","Frame-CNMfPRAk.js","DynamicMarkdown-D9cdbgj9.js","zoom-image-lightbox-CqbnXZMj.js","lightbox-handle-r17bVUz3.js"]}