From 4cdc9414908db08457fa4e8539eee366a5fe03b6 Mon Sep 17 00:00:00 2001 From: Theodore Li Date: Thu, 16 Apr 2026 11:21:10 -0700 Subject: [PATCH 1/4] fix(ui): fix focusing bugs while editing files (#4197) --- .../components/file-viewer/file-viewer.tsx | 101 +++++++++--------- .../generic-resource-content.tsx | 6 +- .../home/components/user-input/user-input.tsx | 14 ++- 3 files changed, 70 insertions(+), 51 deletions(-) diff --git a/apps/sim/app/workspace/[workspaceId]/files/components/file-viewer/file-viewer.tsx b/apps/sim/app/workspace/[workspaceId]/files/components/file-viewer/file-viewer.tsx index f190d8fa6e1..02e3c683ae9 100644 --- a/apps/sim/app/workspace/[workspaceId]/files/components/file-viewer/file-viewer.tsx +++ b/apps/sim/app/workspace/[workspaceId]/files/components/file-viewer/file-viewer.tsx @@ -764,6 +764,8 @@ function TextEditor({ ) const textareaStuckRef = useRef(true) + const renderedContentRef = useRef(renderedContent) + renderedContentRef.current = renderedContent useEffect(() => { if (!shouldUseCodeRenderer) return @@ -772,14 +774,13 @@ function TextEditor({ const updateActiveLineNumber = () => { const pos = textarea.selectionStart - const textBeforeCursor = renderedContent.substring(0, pos) + const textBeforeCursor = renderedContentRef.current.substring(0, pos) const nextActiveLineNumber = textBeforeCursor.split('\n').length setActiveLineNumber((currentLineNumber) => currentLineNumber === nextActiveLineNumber ? currentLineNumber : nextActiveLineNumber ) } - updateActiveLineNumber() textarea.addEventListener('click', updateActiveLineNumber) textarea.addEventListener('keyup', updateActiveLineNumber) textarea.addEventListener('focus', updateActiveLineNumber) @@ -789,60 +790,64 @@ function TextEditor({ textarea.removeEventListener('keyup', updateActiveLineNumber) textarea.removeEventListener('focus', updateActiveLineNumber) } - }, [renderedContent, shouldUseCodeRenderer]) + }, [shouldUseCodeRenderer]) + + const calculateVisualLinesRef = useRef(() => {}) + calculateVisualLinesRef.current = () => { + const preElement = codeEditorRef.current?.querySelector('pre') + if (!(preElement instanceof HTMLElement)) return + + const lines = renderedContentRef.current.split('\n') + const newVisualLineHeights: number[] = [] + + const tempContainer = document.createElement('div') + tempContainer.style.cssText = ` + position: absolute; + visibility: hidden; + height: auto; + width: ${preElement.clientWidth}px; + font-family: ${window.getComputedStyle(preElement).fontFamily}; + font-size: ${window.getComputedStyle(preElement).fontSize}; + line-height: ${CODE_EDITOR_LINE_HEIGHT_PX}px; + padding: 8px; + white-space: pre-wrap; + word-break: break-word; + box-sizing: border-box; + ` + document.body.appendChild(tempContainer) + + lines.forEach((line) => { + const lineDiv = document.createElement('div') + lineDiv.textContent = line || ' ' + tempContainer.appendChild(lineDiv) + const actualHeight = lineDiv.getBoundingClientRect().height + const lineUnits = Math.max(1, Math.ceil(actualHeight / CODE_EDITOR_LINE_HEIGHT_PX)) + newVisualLineHeights.push(lineUnits) + tempContainer.removeChild(lineDiv) + }) + + document.body.removeChild(tempContainer) + setVisualLineHeights((currentVisualLineHeights) => + areNumberArraysEqual(currentVisualLineHeights, newVisualLineHeights) + ? currentVisualLineHeights + : newVisualLineHeights + ) + } useEffect(() => { if (!shouldUseCodeRenderer || !codeEditorRef.current) return - const calculateVisualLines = () => { - const preElement = codeEditorRef.current?.querySelector('pre') - if (!(preElement instanceof HTMLElement)) return - - const lines = renderedContent.split('\n') - const newVisualLineHeights: number[] = [] - - const tempContainer = document.createElement('div') - tempContainer.style.cssText = ` - position: absolute; - visibility: hidden; - height: auto; - width: ${preElement.clientWidth}px; - font-family: ${window.getComputedStyle(preElement).fontFamily}; - font-size: ${window.getComputedStyle(preElement).fontSize}; - line-height: ${CODE_EDITOR_LINE_HEIGHT_PX}px; - padding: 8px; - white-space: pre-wrap; - word-break: break-word; - box-sizing: border-box; - ` - document.body.appendChild(tempContainer) - - lines.forEach((line) => { - const lineDiv = document.createElement('div') - lineDiv.textContent = line || ' ' - tempContainer.appendChild(lineDiv) - const actualHeight = lineDiv.getBoundingClientRect().height - const lineUnits = Math.max(1, Math.ceil(actualHeight / CODE_EDITOR_LINE_HEIGHT_PX)) - newVisualLineHeights.push(lineUnits) - tempContainer.removeChild(lineDiv) - }) - - document.body.removeChild(tempContainer) - setVisualLineHeights((currentVisualLineHeights) => - areNumberArraysEqual(currentVisualLineHeights, newVisualLineHeights) - ? currentVisualLineHeights - : newVisualLineHeights - ) - } - - const timeoutId = setTimeout(calculateVisualLines, 50) - const resizeObserver = new ResizeObserver(calculateVisualLines) + const resizeObserver = new ResizeObserver(() => calculateVisualLinesRef.current()) resizeObserver.observe(codeEditorRef.current) return () => { - clearTimeout(timeoutId) resizeObserver.disconnect() } + }, [shouldUseCodeRenderer]) + + useEffect(() => { + if (!shouldUseCodeRenderer) return + calculateVisualLinesRef.current() }, [renderedContent, shouldUseCodeRenderer]) const renderCodeLineNumbers = useCallback((): ReactElement[] => { @@ -938,7 +943,7 @@ function TextEditor({ if (streamingContent === undefined) { if (isLoading) return DOCUMENT_SKELETON - if (error) { + if (error && !isInitialized) { return (

Failed to load file content

diff --git a/apps/sim/app/workspace/[workspaceId]/home/components/mothership-view/components/resource-content/generic-resource-content.tsx b/apps/sim/app/workspace/[workspaceId]/home/components/mothership-view/components/resource-content/generic-resource-content.tsx index 804284d4eb2..12d4ff0da63 100644 --- a/apps/sim/app/workspace/[workspaceId]/home/components/mothership-view/components/resource-content/generic-resource-content.tsx +++ b/apps/sim/app/workspace/[workspaceId]/home/components/mothership-view/components/resource-content/generic-resource-content.tsx @@ -13,7 +13,11 @@ export function GenericResourceContent({ data }: GenericResourceContentProps) { const bottomRef = useRef(null) useEffect(() => { - bottomRef.current?.scrollIntoView({ behavior: 'smooth' }) + const el = bottomRef.current + const container = el?.parentElement + if (container) { + container.scrollTop = container.scrollHeight + } }, [data.entries.length]) if (data.entries.length === 0) { diff --git a/apps/sim/app/workspace/[workspaceId]/home/components/user-input/user-input.tsx b/apps/sim/app/workspace/[workspaceId]/home/components/user-input/user-input.tsx index a243e39055c..ce207f48a29 100644 --- a/apps/sim/app/workspace/[workspaceId]/home/components/user-input/user-input.tsx +++ b/apps/sim/app/workspace/[workspaceId]/home/components/user-input/user-input.tsx @@ -430,14 +430,24 @@ export const UserInput = forwardRef(function Us useEffect(() => { if (wasSendingRef.current && !isSending) { - textareaRef.current?.focus() + const active = document.activeElement + const isEditingElsewhere = + active instanceof HTMLTextAreaElement || active instanceof HTMLInputElement + if (!isEditingElsewhere) { + textareaRef.current?.focus() + } } wasSendingRef.current = isSending }, [isSending, textareaRef]) useEffect(() => { const raf = window.requestAnimationFrame(() => { - textareaRef.current?.focus() + const active = document.activeElement + const isEditingElsewhere = + active instanceof HTMLTextAreaElement || active instanceof HTMLInputElement + if (!isEditingElsewhere) { + textareaRef.current?.focus() + } }) return () => window.cancelAnimationFrame(raf) }, [textareaRef]) From 147ac89672bc7ecb67d237b0651d940c2b612577 Mon Sep 17 00:00:00 2001 From: Waleed Date: Thu, 16 Apr 2026 11:51:49 -0700 Subject: [PATCH 2/4] feat(docs): fill documentation gaps across platform features (#4110) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat(docs): fill documentation gaps across platform features * fix(docs): address PR review comments on chat OTP cookies and MCP env var placeholders * fix(docs): replace smart quotes with straight quotes in JSX attributes * update(docs): update mcp, custom tools, and variables docs * Fix grammar * mothership docs, tags, connectors, api, chat deploy, etc * more info * more * feat(docs): auto-generate per-provider trigger documentation Extends scripts/generate-docs.ts to produce one MDX page per trigger provider (39 pages) in apps/docs/content/docs/en/triggers/. The 5 hand-written pages (index, start, schedule, webhook, rss) are never touched. Key additions to the generation script: - resolveConstVariable() resolves module-level const spreads so providers like Vercel that build outputs from const variables (not just functions) are fully documented - resolveTriggerBuilderFunction() extended to expand variable spreads (...varName) in addition to function-call spreads (...fn()) - groupTriggersByProvider() deduplicates v1/v2 trigger variants by name, keeping the highest-versioned one per provider - writeIconMapping() adds bare-name aliases for versioned block types (github_v2 → github, fireflies_v2 → fireflies, etc.) so BlockInfoCard resolves icons for all 39 trigger providers - extractTriggerConfigFields() filters readOnly display blocks (webhook URL displays, sample payloads, curl examples) from config tables Each generated page includes: BlockInfoCard with correct icon/color, trigger count, polling note where applicable, Configuration table, and Output table for every trigger. No "Type:" lines. * refactor(docs): align trigger docs structure with tools docs - Use ### `trigger_id` headings (matching ### `tool_id` in tools docs) - Wrap all trigger sections under a ## Triggers header - Rename Configuration/Output to #### level (matching #### Input/Output) - Use Parameter column header to match tools docs table style - Map UI widget types to semantic types: short-input/long-input/dropdown → string, switch → boolean, slider → number, oauth-input → string * refactor(docs): use human-readable names for trigger section headings Trigger IDs are internal identifiers; users scan by name. Switch from ### `trigger_id` to ### Trigger Name for cleaner sidebar navigation and better readability. * fix(docs): resolve subBlock builder functions for all trigger Config sections Extends generate-docs.ts to parse subBlock builder functions so all 15 providers previously missing Configuration sections now generate them. Handles three patterns: - `buildTriggerSubBlocks({extraFields: buildX(...)})` — extracts extra fields from the call site and resolves them from the provider's utils.ts - `return [...]` — direct array return (Attio, Confluence, etc.) - `blocks.push(...)` — imperative push pattern (Linear, Ashby) Also resolves const-reference field IDs (SCREAMING_CASE) by searching the webhook provider constants cache, fixing Gong's `gongJwtPublicKeyPem` field which was previously unresolvable. Adds title-as-description fallback for OAuth credential fields that have no explicit description. * fix(docs): correctly destructure nested implicit-object trigger outputs Fixes a parser bug where output fields with no top-level `type` key but child fields each having their own `type`/`description` were incorrectly parsed. The `type:` and `description:` regex matches were not depth-aware, so values from nested children bled into the parent field. Changes: - Add `isAtDepthZero()` helper for brace-depth-aware regex matching - Fix `parseFieldContent` to only match `type:` at brace depth 0 - Fix `extractDescription` to only match `description:` at brace depth 0 - Add implicit-object fallback: when no top-level `type` exists but child fields have their own types, treat as `object` with `properties` - Regenerate all affected trigger docs (Cal.com payload, Linear data, Jira issue.fields, Ashby application, Greenhouse candidate, etc.) * chore(docs): update static trigger and start page images * feat(providers): add claude-opus-4-7 model with adaptive thinking support * Add workflow version screenshots * Add function block screenshots --------- Co-authored-by: Theodore Li --- apps/docs/app/[lang]/not-found.tsx | 29 +- apps/docs/components/ui/icon-mapping.ts | 22 + apps/docs/content/docs/en/blocks/function.mdx | 120 +- apps/docs/content/docs/en/copilot/index.mdx | 236 +--- .../content/docs/en/credentials/index.mdx | 182 +-- .../content/docs/en/credentials/meta.json | 4 +- .../content/docs/en/custom-tools/index.mdx | 100 ++ .../docs/en/execution/api-deployment.mdx | 343 +++++ apps/docs/content/docs/en/execution/chat.mdx | 184 +++ apps/docs/content/docs/en/execution/costs.mdx | 15 + apps/docs/content/docs/en/execution/index.mdx | 53 +- apps/docs/content/docs/en/execution/meta.json | 2 +- .../google-service-account.mdx | 0 .../content/docs/en/integrations/index.mdx | 140 ++ .../content/docs/en/integrations/meta.json | 5 + .../docs/en/knowledgebase/connectors.mdx | 156 ++- .../content/docs/en/knowledgebase/tags.mdx | 161 ++- .../content/docs/en/mcp/deploy-workflows.mdx | 123 +- apps/docs/content/docs/en/mcp/index.mdx | 115 +- apps/docs/content/docs/en/meta.json | 3 + .../docs/content/docs/en/mothership/files.mdx | 121 ++ .../docs/content/docs/en/mothership/index.mdx | 68 + .../content/docs/en/mothership/knowledge.mdx | 84 ++ .../docs/content/docs/en/mothership/meta.json | 4 + .../content/docs/en/mothership/research.mdx | 43 + .../content/docs/en/mothership/tables.mdx | 60 + .../docs/content/docs/en/mothership/tasks.mdx | 130 ++ .../content/docs/en/mothership/workflows.mdx | 122 ++ .../content/docs/en/tools/custom-tools.mdx | 162 +++ apps/docs/content/docs/en/tools/gong.mdx | 4 +- apps/docs/content/docs/en/tools/meta.json | 1 + .../docs/content/docs/en/tools/sharepoint.mdx | 8 +- apps/docs/content/docs/en/tools/textract.mdx | 2 +- apps/docs/content/docs/en/tools/typeform.mdx | 8 +- .../content/docs/en/triggers/airtable.mdx | 60 + apps/docs/content/docs/en/triggers/ashby.mdx | 185 +++ apps/docs/content/docs/en/triggers/attio.mdx | 513 +++++++ apps/docs/content/docs/en/triggers/calcom.mdx | 293 ++++ .../content/docs/en/triggers/calendly.mdx | 181 +++ .../content/docs/en/triggers/circleback.mdx | 163 +++ .../content/docs/en/triggers/confluence.mdx | 476 +++++++ apps/docs/content/docs/en/triggers/fathom.mdx | 95 ++ .../content/docs/en/triggers/fireflies.mdx | 34 + apps/docs/content/docs/en/triggers/github.mdx | 1186 +++++++++++++++++ apps/docs/content/docs/en/triggers/gmail.mdx | 52 + apps/docs/content/docs/en/triggers/gong.mdx | 109 ++ .../docs/en/triggers/google-calendar.mdx | 54 + .../content/docs/en/triggers/google-drive.mdx | 52 + .../docs/en/triggers/google-sheets.mdx | 46 + .../content/docs/en/triggers/google_forms.mdx | 41 + apps/docs/content/docs/en/triggers/grain.mdx | 239 ++++ .../content/docs/en/triggers/greenhouse.mdx | 295 ++++ .../docs/content/docs/en/triggers/hubspot.mdx | 1144 ++++++++++++++++ apps/docs/content/docs/en/triggers/imap.mdx | 54 + .../content/docs/en/triggers/intercom.mdx | 163 +++ apps/docs/content/docs/en/triggers/jira.mdx | 392 ++++++ .../docs/content/docs/en/triggers/lemlist.mdx | 366 +++++ apps/docs/content/docs/en/triggers/linear.mdx | 703 ++++++++++ apps/docs/content/docs/en/triggers/meta.json | 47 +- .../docs/en/triggers/microsoft-teams.mdx | 92 ++ apps/docs/content/docs/en/triggers/notion.mdx | 331 +++++ .../docs/content/docs/en/triggers/outlook.mdx | 54 + apps/docs/content/docs/en/triggers/resend.mdx | 259 ++++ .../content/docs/en/triggers/salesforce.mdx | 208 +++ .../content/docs/en/triggers/servicenow.mdx | 210 +++ apps/docs/content/docs/en/triggers/slack.mdx | 51 + apps/docs/content/docs/en/triggers/stripe.mdx | 41 + .../content/docs/en/triggers/telegram.mdx | 65 + .../content/docs/en/triggers/twilio_voice.mdx | 66 + .../content/docs/en/triggers/typeform.mdx | 78 ++ apps/docs/content/docs/en/triggers/vercel.mdx | 356 +++++ .../docs/content/docs/en/triggers/webflow.mdx | 131 ++ .../content/docs/en/triggers/whatsapp.mdx | 49 + apps/docs/content/docs/en/triggers/zoom.mdx | 149 +++ apps/docs/content/docs/en/variables/index.mdx | 90 ++ apps/docs/content/docs/en/variables/meta.json | 5 + .../docs/en/variables/workflow-variables.mdx | 33 +- apps/docs/next.config.ts | 3 + .../public/static/api-deployment/api-info.png | Bin 0 -> 181035 bytes .../api-deployment/api-select-outputs.png | Bin 0 -> 252282 bytes .../public/static/api-deployment/api-tab.png | Bin 0 -> 250816 bytes .../api-deployment/api-update-button.png | Bin 0 -> 14583 bytes .../api-deployment/api-versions-menu.png | Bin 0 -> 68209 bytes .../static/api-deployment/api-versions.png | Bin 0 -> 220686 bytes .../static/blocks/custom-tool-schema.png | Bin 0 -> 128137 bytes .../public/static/blocks/function-python.png | Bin 0 -> 44444 bytes .../public/static/blocks/mcp-add-modal.png | Bin 0 -> 56536 bytes .../static/blocks/mcp-agent-dropdown.png | Bin 0 -> 169351 bytes .../public/static/blocks/mcp-agent-tools.png | Bin 0 -> 43935 bytes .../static/blocks/mcp-client-config.png | Bin 0 -> 187255 bytes .../public/static/blocks/mcp-deploy-modal.png | Bin 0 -> 111168 bytes .../static/blocks/mcp-server-add-modal.png | Bin 0 -> 68494 bytes .../static/blocks/mcp-server-details.png | Bin 0 -> 268259 bytes .../static/blocks/mcp-servers-settings.png | Bin 0 -> 113634 bytes .../public/static/blocks/mcp-settings.png | Bin 0 -> 140964 bytes .../public/static/blocks/mcp-tool-block.png | Bin 0 -> 157730 bytes apps/docs/public/static/blocks/triggers.png | Bin 56566 -> 21791 bytes .../public/static/blocks/variables-menu.png | Bin 0 -> 112075 bytes .../public/static/blocks/variables-panel.png | Bin 0 -> 37669 bytes .../static/chat/chat-deploy-access-email.png | Bin 0 -> 37763 bytes .../public/static/chat/chat-deploy-config.png | Bin 0 -> 183526 bytes .../public/static/chat/chat-deploy-output.png | Bin 0 -> 84607 bytes apps/docs/public/static/chat/chat-live.png | Bin 0 -> 237102 bytes .../static/connectors/connectors-excluded.png | Bin 0 -> 170929 bytes .../static/connectors/connectors-list.png | Bin 0 -> 129251 bytes .../static/connectors/connectors-sources.png | Bin 0 -> 176934 bytes .../connectors/connectors-sync-history.png | Bin 0 -> 175242 bytes .../execution/deployment-version-preview.png | Bin 0 -> 149346 bytes .../execution/deployment-versions-table.png | Bin 0 -> 136867 bytes .../static/integrations/connect-modal.png | Bin 0 -> 120231 bytes .../integrations/connect-service-picker.png | Bin 0 -> 73026 bytes .../integrations/copy-credential-id.png | Bin 0 -> 20855 bytes .../integrations/integration-details.png | Bin 0 -> 46071 bytes .../static/integrations/integrations-list.png | Bin 0 -> 90483 bytes .../integrations/manual-credential-id.png | Bin 0 -> 12253 bytes .../integrations/switch-to-manual-id.png | Bin 0 -> 14940 bytes .../public/static/secrets/secret-details.png | Bin 0 -> 39573 bytes .../public/static/secrets/secrets-list.png | Bin 0 -> 76343 bytes apps/docs/public/static/start.png | Bin 60139 -> 43044 bytes apps/docs/public/static/tags/tags-create.png | Bin 0 -> 59331 bytes .../public/static/tags/tags-document-list.png | Bin 0 -> 92343 bytes apps/docs/public/static/tags/tags-kb-menu.png | Bin 0 -> 36787 bytes .../static/tags/tags-knowledge-block.png | Bin 0 -> 219378 bytes apps/sim/providers/anthropic/core.ts | 6 +- apps/sim/providers/models.ts | 20 + scripts/generate-docs.ts | 956 ++++++++++++- 126 files changed, 12442 insertions(+), 564 deletions(-) create mode 100644 apps/docs/content/docs/en/custom-tools/index.mdx create mode 100644 apps/docs/content/docs/en/execution/api-deployment.mdx create mode 100644 apps/docs/content/docs/en/execution/chat.mdx rename apps/docs/content/docs/en/{credentials => integrations}/google-service-account.mdx (100%) create mode 100644 apps/docs/content/docs/en/integrations/index.mdx create mode 100644 apps/docs/content/docs/en/integrations/meta.json create mode 100644 apps/docs/content/docs/en/mothership/files.mdx create mode 100644 apps/docs/content/docs/en/mothership/index.mdx create mode 100644 apps/docs/content/docs/en/mothership/knowledge.mdx create mode 100644 apps/docs/content/docs/en/mothership/meta.json create mode 100644 apps/docs/content/docs/en/mothership/research.mdx create mode 100644 apps/docs/content/docs/en/mothership/tables.mdx create mode 100644 apps/docs/content/docs/en/mothership/tasks.mdx create mode 100644 apps/docs/content/docs/en/mothership/workflows.mdx create mode 100644 apps/docs/content/docs/en/tools/custom-tools.mdx create mode 100644 apps/docs/content/docs/en/triggers/airtable.mdx create mode 100644 apps/docs/content/docs/en/triggers/ashby.mdx create mode 100644 apps/docs/content/docs/en/triggers/attio.mdx create mode 100644 apps/docs/content/docs/en/triggers/calcom.mdx create mode 100644 apps/docs/content/docs/en/triggers/calendly.mdx create mode 100644 apps/docs/content/docs/en/triggers/circleback.mdx create mode 100644 apps/docs/content/docs/en/triggers/confluence.mdx create mode 100644 apps/docs/content/docs/en/triggers/fathom.mdx create mode 100644 apps/docs/content/docs/en/triggers/fireflies.mdx create mode 100644 apps/docs/content/docs/en/triggers/github.mdx create mode 100644 apps/docs/content/docs/en/triggers/gmail.mdx create mode 100644 apps/docs/content/docs/en/triggers/gong.mdx create mode 100644 apps/docs/content/docs/en/triggers/google-calendar.mdx create mode 100644 apps/docs/content/docs/en/triggers/google-drive.mdx create mode 100644 apps/docs/content/docs/en/triggers/google-sheets.mdx create mode 100644 apps/docs/content/docs/en/triggers/google_forms.mdx create mode 100644 apps/docs/content/docs/en/triggers/grain.mdx create mode 100644 apps/docs/content/docs/en/triggers/greenhouse.mdx create mode 100644 apps/docs/content/docs/en/triggers/hubspot.mdx create mode 100644 apps/docs/content/docs/en/triggers/imap.mdx create mode 100644 apps/docs/content/docs/en/triggers/intercom.mdx create mode 100644 apps/docs/content/docs/en/triggers/jira.mdx create mode 100644 apps/docs/content/docs/en/triggers/lemlist.mdx create mode 100644 apps/docs/content/docs/en/triggers/linear.mdx create mode 100644 apps/docs/content/docs/en/triggers/microsoft-teams.mdx create mode 100644 apps/docs/content/docs/en/triggers/notion.mdx create mode 100644 apps/docs/content/docs/en/triggers/outlook.mdx create mode 100644 apps/docs/content/docs/en/triggers/resend.mdx create mode 100644 apps/docs/content/docs/en/triggers/salesforce.mdx create mode 100644 apps/docs/content/docs/en/triggers/servicenow.mdx create mode 100644 apps/docs/content/docs/en/triggers/slack.mdx create mode 100644 apps/docs/content/docs/en/triggers/stripe.mdx create mode 100644 apps/docs/content/docs/en/triggers/telegram.mdx create mode 100644 apps/docs/content/docs/en/triggers/twilio_voice.mdx create mode 100644 apps/docs/content/docs/en/triggers/typeform.mdx create mode 100644 apps/docs/content/docs/en/triggers/vercel.mdx create mode 100644 apps/docs/content/docs/en/triggers/webflow.mdx create mode 100644 apps/docs/content/docs/en/triggers/whatsapp.mdx create mode 100644 apps/docs/content/docs/en/triggers/zoom.mdx create mode 100644 apps/docs/content/docs/en/variables/index.mdx create mode 100644 apps/docs/content/docs/en/variables/meta.json create mode 100644 apps/docs/public/static/api-deployment/api-info.png create mode 100644 apps/docs/public/static/api-deployment/api-select-outputs.png create mode 100644 apps/docs/public/static/api-deployment/api-tab.png create mode 100644 apps/docs/public/static/api-deployment/api-update-button.png create mode 100644 apps/docs/public/static/api-deployment/api-versions-menu.png create mode 100644 apps/docs/public/static/api-deployment/api-versions.png create mode 100644 apps/docs/public/static/blocks/custom-tool-schema.png create mode 100644 apps/docs/public/static/blocks/function-python.png create mode 100644 apps/docs/public/static/blocks/mcp-add-modal.png create mode 100644 apps/docs/public/static/blocks/mcp-agent-dropdown.png create mode 100644 apps/docs/public/static/blocks/mcp-agent-tools.png create mode 100644 apps/docs/public/static/blocks/mcp-client-config.png create mode 100644 apps/docs/public/static/blocks/mcp-deploy-modal.png create mode 100644 apps/docs/public/static/blocks/mcp-server-add-modal.png create mode 100644 apps/docs/public/static/blocks/mcp-server-details.png create mode 100644 apps/docs/public/static/blocks/mcp-servers-settings.png create mode 100644 apps/docs/public/static/blocks/mcp-settings.png create mode 100644 apps/docs/public/static/blocks/mcp-tool-block.png create mode 100644 apps/docs/public/static/blocks/variables-menu.png create mode 100644 apps/docs/public/static/blocks/variables-panel.png create mode 100644 apps/docs/public/static/chat/chat-deploy-access-email.png create mode 100644 apps/docs/public/static/chat/chat-deploy-config.png create mode 100644 apps/docs/public/static/chat/chat-deploy-output.png create mode 100644 apps/docs/public/static/chat/chat-live.png create mode 100644 apps/docs/public/static/connectors/connectors-excluded.png create mode 100644 apps/docs/public/static/connectors/connectors-list.png create mode 100644 apps/docs/public/static/connectors/connectors-sources.png create mode 100644 apps/docs/public/static/connectors/connectors-sync-history.png create mode 100644 apps/docs/public/static/execution/deployment-version-preview.png create mode 100644 apps/docs/public/static/execution/deployment-versions-table.png create mode 100644 apps/docs/public/static/integrations/connect-modal.png create mode 100644 apps/docs/public/static/integrations/connect-service-picker.png create mode 100644 apps/docs/public/static/integrations/copy-credential-id.png create mode 100644 apps/docs/public/static/integrations/integration-details.png create mode 100644 apps/docs/public/static/integrations/integrations-list.png create mode 100644 apps/docs/public/static/integrations/manual-credential-id.png create mode 100644 apps/docs/public/static/integrations/switch-to-manual-id.png create mode 100644 apps/docs/public/static/secrets/secret-details.png create mode 100644 apps/docs/public/static/secrets/secrets-list.png create mode 100644 apps/docs/public/static/tags/tags-create.png create mode 100644 apps/docs/public/static/tags/tags-document-list.png create mode 100644 apps/docs/public/static/tags/tags-kb-menu.png create mode 100644 apps/docs/public/static/tags/tags-knowledge-block.png diff --git a/apps/docs/app/[lang]/not-found.tsx b/apps/docs/app/[lang]/not-found.tsx index 819448091d0..531ce4d6991 100644 --- a/apps/docs/app/[lang]/not-found.tsx +++ b/apps/docs/app/[lang]/not-found.tsx @@ -1,4 +1,5 @@ -import { DocsBody, DocsPage } from 'fumadocs-ui/page' +import { DocsPage } from 'fumadocs-ui/page' +import Link from 'next/link' export const metadata = { title: 'Page Not Found', @@ -7,17 +8,21 @@ export const metadata = { export default function NotFound() { return ( - -
-

- 404 -

-

Page Not Found

-

- The page you're looking for doesn't exist or has been moved. -

-
-
+
+

+ 404 +

+

Page Not Found

+

+ The page you're looking for doesn't exist or has been moved. +

+ + Go home + +
) } diff --git a/apps/docs/components/ui/icon-mapping.ts b/apps/docs/components/ui/icon-mapping.ts index 492117d6bb3..aec51ff51b4 100644 --- a/apps/docs/components/ui/icon-mapping.ts +++ b/apps/docs/components/ui/icon-mapping.ts @@ -226,8 +226,10 @@ export const blockTypeToIconMap: Record = { cloudflare: CloudflareIcon, cloudformation: CloudFormationIcon, cloudwatch: CloudWatchIcon, + confluence: ConfluenceIcon, confluence_v2: ConfluenceIcon, crowdstrike: CrowdStrikeIcon, + cursor: CursorIcon, cursor_v2: CursorIcon, dagster: DagsterIcon, databricks: DatabricksIcon, @@ -245,19 +247,25 @@ export const blockTypeToIconMap: Record = { enrich: EnrichSoIcon, evernote: EvernoteIcon, exa: ExaAIIcon, + extend: ExtendIcon, extend_v2: ExtendIcon, fathom: FathomIcon, + file: DocumentIcon, file_v3: DocumentIcon, firecrawl: FirecrawlIcon, + fireflies: FirefliesIcon, fireflies_v2: FirefliesIcon, gamma: GammaIcon, + github: GithubIcon, github_v2: GithubIcon, gitlab: GitLabIcon, + gmail: GmailIcon, gmail_v2: GmailIcon, gong: GongIcon, google_ads: GoogleAdsIcon, google_bigquery: GoogleBigQueryIcon, google_books: GoogleBooksIcon, + google_calendar: GoogleCalendarIcon, google_calendar_v2: GoogleCalendarIcon, google_contacts: GoogleContactsIcon, google_docs: GoogleDocsIcon, @@ -268,7 +276,9 @@ export const blockTypeToIconMap: Record = { google_meet: GoogleMeetIcon, google_pagespeed: GooglePagespeedIcon, google_search: GoogleIcon, + google_sheets: GoogleSheetsIcon, google_sheets_v2: GoogleSheetsIcon, + google_slides: GoogleSlidesIcon, google_slides_v2: GoogleSlidesIcon, google_tasks: GoogleTasksIcon, google_translate: GoogleTranslateIcon, @@ -287,16 +297,19 @@ export const blockTypeToIconMap: Record = { imap: MailServerIcon, incidentio: IncidentioIcon, infisical: InfisicalIcon, + intercom: IntercomIcon, intercom_v2: IntercomIcon, jina: JinaAIIcon, jira: JiraIcon, jira_service_management: JiraServiceManagementIcon, + kalshi: KalshiIcon, kalshi_v2: KalshiIcon, ketch: KetchIcon, knowledge: PackageSearchIcon, langsmith: LangsmithIcon, launchdarkly: LaunchDarklyIcon, lemlist: LemlistIcon, + linear: LinearIcon, linear_v2: LinearIcon, linkedin: LinkedInIcon, linkup: LinkupIcon, @@ -308,13 +321,16 @@ export const blockTypeToIconMap: Record = { memory: BrainIcon, microsoft_ad: AzureIcon, microsoft_dataverse: MicrosoftDataverseIcon, + microsoft_excel: MicrosoftExcelIcon, microsoft_excel_v2: MicrosoftExcelIcon, microsoft_planner: MicrosoftPlannerIcon, microsoft_teams: MicrosoftTeamsIcon, + mistral_parse: MistralIcon, mistral_parse_v3: MistralIcon, mongodb: MongoDBIcon, mysql: MySQLIcon, neo4j: Neo4jIcon, + notion: NotionIcon, notion_v2: NotionIcon, obsidian: ObsidianIcon, okta: OktaIcon, @@ -331,12 +347,14 @@ export const blockTypeToIconMap: Record = { postgresql: PostgresIcon, posthog: PosthogIcon, profound: ProfoundIcon, + pulse: PulseIcon, pulse_v2: PulseIcon, qdrant: QdrantIcon, quiver: QuiverIcon, rds: RDSIcon, reddit: RedditIcon, redis: RedisIcon, + reducto: ReductoIcon, reducto_v2: ReductoIcon, resend: ResendIcon, revenuecat: RevenueCatIcon, @@ -362,11 +380,13 @@ export const blockTypeToIconMap: Record = { stagehand: StagehandIcon, stripe: StripeIcon, sts: STSIcon, + stt: STTIcon, stt_v2: STTIcon, supabase: SupabaseIcon, tailscale: TailscaleIcon, tavily: TavilyIcon, telegram: TelegramIcon, + textract: TextractIcon, textract_v2: TextractIcon, tinybird: TinybirdIcon, translate: TranslateIcon, @@ -377,7 +397,9 @@ export const blockTypeToIconMap: Record = { typeform: TypeformIcon, upstash: UpstashIcon, vercel: VercelIcon, + video_generator: VideoIcon, video_generator_v2: VideoIcon, + vision: EyeIcon, vision_v2: EyeIcon, wealthbox: WealthboxIcon, webflow: WebflowIcon, diff --git a/apps/docs/content/docs/en/blocks/function.mdx b/apps/docs/content/docs/en/blocks/function.mdx index 05510aa3d22..fecc0b590fb 100644 --- a/apps/docs/content/docs/en/blocks/function.mdx +++ b/apps/docs/content/docs/en/blocks/function.mdx @@ -2,10 +2,12 @@ title: Function --- +import { Callout } from 'fumadocs-ui/components/callout' +import { Tab, Tabs } from 'fumadocs-ui/components/tabs' import { Image } from '@/components/ui/image' import { FAQ } from '@/components/ui/faq' -The Function block executes custom JavaScript or TypeScript code in your workflows. Transform data, perform calculations, or implement custom logic. +The Function block executes custom JavaScript, TypeScript, or Python code in your workflows. Transform data, perform calculations, or implement custom logic.
+ ```javascript title="loyalty-calculator.js" // Process customer data and calculate loyalty score const { purchaseHistory, accountAge, supportTickets } = ; @@ -64,6 +68,120 @@ return { metrics: { spendScore, frequencyScore, supportScore } }; ``` + + +```python title="loyalty-calculator.py" +import json + +# Reference outputs from other blocks using angle bracket syntax +data = json.loads('') +purchase_history = data["purchaseHistory"] +account_age = data["accountAge"] +support_tickets = data["supportTickets"] + +# Calculate metrics +total_spent = sum(p["amount"] for p in purchase_history) +purchase_frequency = len(purchase_history) / (account_age / 365) +ticket_ratio = support_tickets["resolved"] / support_tickets["total"] + +# Calculate loyalty score (0-100) +spend_score = min(total_spent / 1000 * 30, 30) +frequency_score = min(purchase_frequency * 20, 40) +support_score = ticket_ratio * 30 + +loyalty_score = round(spend_score + frequency_score + support_score) + +tier = "Platinum" if loyalty_score >= 80 else "Gold" if loyalty_score >= 60 else "Silver" + +result = { + "customer": data["name"], + "loyaltyScore": loyalty_score, + "loyaltyTier": tier, + "metrics": { + "spendScore": spend_score, + "frequencyScore": frequency_score, + "supportScore": support_score + } +} +print(json.dumps(result)) +``` + + + +## Python Support + +The Function block supports Python as an alternative to JavaScript. Python code runs in a secure [E2B](https://e2b.dev) cloud sandbox. + +
+ Function block with Python selected +
+ +### Enabling Python + +Select **Python** from the language dropdown in the Function block. Python execution requires E2B to be enabled on your Sim instance. + + +If you don't see Python as an option in the language dropdown, E2B is not enabled. This only applies to self-hosted instances — E2B is enabled by default on sim.ai. + + + +Python code always runs in the E2B sandbox, even for simple scripts without imports. This ensures a secure, isolated execution environment. + + +### Returning Results + +In Python, print your result as JSON to stdout. The Function block captures stdout and makes it available via ``: + +```python title="example.py" +import json + +data = {"status": "processed", "count": 42} +print(json.dumps(data)) +``` + +### Available Libraries + +The E2B sandbox includes the Python standard library (`json`, `re`, `datetime`, `math`, `os`, `collections`, etc.) and common packages like `matplotlib` for visualization. Charts generated with matplotlib are captured as images automatically. + + + The exact set of pre-installed packages depends on the E2B sandbox configuration. If a package you need isn't available, consider calling an external API from your code instead. + + +### Matplotlib Charts + +When your Python code generates matplotlib figures, they are automatically captured and returned as base64-encoded PNG images in the output: + +```python title="chart.py" +import matplotlib.pyplot as plt +import json + +data = json.loads('') + +plt.figure(figsize=(10, 6)) +plt.bar(data["labels"], data["values"]) +plt.title("Monthly Revenue") +plt.xlabel("Month") +plt.ylabel("Revenue ($)") +plt.savefig("chart.png") +plt.show() +``` + +{/* TODO: Screenshot of Python code execution output in the logs panel */} + +### JavaScript vs. Python + +| | JavaScript | Python | +|--|-----------|--------| +| **Execution** | Local VM (fast) or E2B sandbox (with imports) | Always E2B sandbox | +| **Returning results** | `return { ... }` | `print(json.dumps({ ... }))` | +| **HTTP requests** | `fetch()` built-in | `requests` or `httpx` | +| **Best for** | Quick transforms, JSON manipulation | Data science, charting, complex math | ## Best Practices diff --git a/apps/docs/content/docs/en/copilot/index.mdx b/apps/docs/content/docs/en/copilot/index.mdx index 8aad8c75aa2..3ea5a152925 100644 --- a/apps/docs/content/docs/en/copilot/index.mdx +++ b/apps/docs/content/docs/en/copilot/index.mdx @@ -1,225 +1,70 @@ --- title: Copilot +description: Your per-workflow AI assistant for building and editing workflows. --- import { Callout } from 'fumadocs-ui/components/callout' -import { Card, Cards } from 'fumadocs-ui/components/card' import { Image } from '@/components/ui/image' -import { MessageCircle, Hammer, ListChecks, Zap, Globe, Paperclip, History, RotateCcw, Brain } from 'lucide-react' +import { FAQ } from '@/components/ui/faq' -Copilot is your in-editor assistant that helps you build and edit workflows. It can: +Copilot is the AI assistant built into every workflow editor. It is scoped to the workflow you have open — it reads the current structure, makes changes directly, and saves checkpoints so you can revert if needed. -- **Explain**: Answer questions about Sim and your current workflow -- **Guide**: Suggest edits and best practices -- **Build**: Add blocks, wire connections, and configure settings -- **Debug**: Analyze execution issues and optimize performance +For workspace-wide tasks (managing multiple workflows, running research, working with tables, scheduling jobs), use [Mothership](/mothership). - Copilot is a Sim-managed service. For self-hosted deployments: - 1. Go to [sim.ai](https://sim.ai) → Settings → Copilot and generate a Copilot API key - 2. Set `COPILOT_API_KEY` in your self-hosted environment + Copilot is a Sim-managed service. For self-hosted deployments, go to [sim.ai](https://sim.ai) → Settings → Copilot, generate a Copilot API key, then set `COPILOT_API_KEY` in your self-hosted environment. -## Modes - -Switch between modes using the mode selector at the bottom of the input area. - - - - - Ask - - } - > -
- Q&A mode for explanations, guidance, and suggestions without making changes to your workflow. -
-
- - - Build - - } - > -
- Workflow building mode. Copilot can add blocks, wire connections, edit configurations, and debug issues. -
-
- - - Plan - - } - > -
- Creates a step-by-step implementation plan for your workflow without making any changes. Helps you think through the approach before building. -
-
-
- -## Models - -Select your preferred AI model using the model selector at the bottom right of the input area. - -**Available Models:** -- Claude 4.6 Opus (default), 4.5 Opus, Sonnet, Haiku -- GPT 5.2 Codex, Pro -- Gemini 3 Pro - -Choose based on your needs: faster models for simple tasks, more capable models for complex workflows. - -## Context Menu (@) - -Use the `@` symbol to reference resources and give Copilot more context: - -| Reference | Description | -|-----------|-------------| -| **Chats** | Previous copilot conversations | -| **Workflows** | Any workflow in your workspace | -| **Workflow Blocks** | Blocks in the current workflow | -| **Blocks** | Block types and templates | -| **Knowledge** | Uploaded documents and knowledge bases | -| **Docs** | Sim documentation | -| **Templates** | Workflow templates | -| **Logs** | Execution logs and results | - -Type `@` in the input field to open the context menu, then search or browse to find what you need. - -## Slash Commands (/) - -Use slash commands for quick actions: - -| Command | Description | -|---------|-------------| -| `/fast` | Fast mode execution | -| `/research` | Research and exploration mode | -| `/actions` | Execute agent actions | - -**Web Commands:** - -| Command | Description | -|---------|-------------| -| `/search` | Search the web | -| `/read` | Read a specific URL | -| `/scrape` | Scrape web page content | -| `/crawl` | Crawl multiple pages | - -Type `/` in the input field to see available commands. - -## Chat Management - -### Starting a New Chat - -Click the **+** button in the Copilot header to start a fresh conversation. - -### Chat History +{/* TODO: Screenshot of the workflow editor with the Copilot panel open on the right side — showing a conversation with a workflow change applied. Ideally shows a message from the user, a response from Copilot, and the checkpoint icon visible on the message. */} -Click **History** to view previous conversations grouped by date. You can: -- Click a chat to resume it -- Delete chats you no longer need +## What Copilot Can Do -### Editing Messages +Copilot can read and modify the workflow you are currently editing: -Hover over any of your messages and click **Edit** to modify and resend it. This is useful for refining your prompts. +- Add, configure, and connect blocks +- Edit existing block configurations +- Delete blocks and connections +- Debug failures by reading execution logs +- Answer questions about the workflow or how Sim works -### Message Queue +## Chat History -If you send a message while Copilot is still responding, it gets queued. You can: -- View queued messages in the expandable queue panel -- Send a queued message immediately (aborts current response) -- Remove messages from the queue +Click **History** (clock icon) in the Copilot header to see past conversations for this workflow. Click any chat to resume it, or click **+** to start a new one. ## File Attachments -Click the attachment icon to upload files with your message. Supported file types include: -- Images (preview thumbnails shown) -- PDFs -- Text files, JSON, XML -- Other document formats +Click the attachment icon in the input to upload files alongside your message. Copilot can read images, PDFs, and text-based files as context. -Files are displayed as clickable thumbnails that open in a new tab. +## Checkpoints -## Checkpoints & Changes +When Copilot modifies a workflow, it saves a checkpoint of the previous state. -When Copilot makes changes to your workflow, it saves checkpoints so you can revert if needed. +To revert: hover over a Copilot message and click the checkpoints icon, then click **Revert** on the state you want to restore. Reverting cannot be undone. -### Viewing Checkpoints +## Thinking -Hover over a Copilot message and click the checkpoints icon to see saved workflow states for that message. +For complex requests, Copilot may show its reasoning in an expandable thinking block before responding. The block shows how long the thinking took and collapses after the response is complete. -### Reverting Changes +## Usage -Click **Revert** on any checkpoint to restore your workflow to that state. A confirmation dialog will warn that this action cannot be undone. +Copilot usage is billed per token and counts toward your plan's credit usage. If you reach your limit, enable on-demand billing from Settings → Subscription. -### Accepting Changes - -When Copilot proposes changes, you can: -- **Accept**: Apply the proposed changes (`Mod+Shift+Enter`) -- **Reject**: Dismiss the changes and keep your current workflow - -## Thinking Blocks - -For complex requests, Copilot may show its reasoning process in expandable thinking blocks: - -- Blocks auto-expand while Copilot is thinking -- Click to manually expand/collapse -- Shows duration of the thinking process -- Helps you understand how Copilot arrived at its solution - -## Options Selection - -When Copilot presents multiple options, you can select using: - -| Control | Action | -|---------|--------| -| **1-9** | Select option by number | -| **Arrow Up/Down** | Navigate between options | -| **Enter** | Select highlighted option | - -Selected options are highlighted; unselected options appear struck through. - -## Keyboard Shortcuts - -| Shortcut | Action | -|----------|--------| -| `@` | Open context menu | -| `/` | Open slash commands | -| `Arrow Up/Down` | Navigate menu items | -| `Enter` | Select menu item | -| `Esc` | Close menus | -| `Mod+Shift+Enter` | Accept Copilot changes | - -## Usage Limits - -Copilot usage is billed per token from the underlying LLM and counts toward your plan's credit usage. If you reach your usage limit, enable on-demand billing from Settings → Subscription to continue using Copilot beyond your plan's included credits. - - - See the [Cost Calculation page](/execution/costs) for billing and plan details. - ## Copilot MCP -You can use Copilot as an MCP server in your favorite editor or AI client. This lets you build, test, deploy, and manage Sim workflows directly from tools like Cursor, Claude Code, Claude Desktop, and VS Code. +You can use Copilot as an MCP server to build, test, and manage Sim workflows from external editors — Cursor, Claude Code, Claude Desktop, and VS Code. ### Generating a Copilot API Key -To connect to the Copilot MCP server, you need a **Copilot API key**: - 1. Go to [sim.ai](https://sim.ai) and sign in 2. Navigate to **Settings** → **Copilot** 3. Click **Generate API Key** 4. Copy the key — it is only shown once -The key will look like `sk-sim-copilot-...`. You will use this in the configuration below. +The key will look like `sk-sim-copilot-...`. ### Cursor -Add the following to your `.cursor/mcp.json` (project-level) or global Cursor MCP settings: +Add to `.cursor/mcp.json`: ```json { @@ -234,12 +79,8 @@ Add the following to your `.cursor/mcp.json` (project-level) or global Cursor MC } ``` -Replace `YOUR_COPILOT_API_KEY` with the key you generated above. - ### Claude Code -Run the following command to add the Copilot MCP server: - ```bash claude mcp add sim-copilot \ --transport http \ @@ -247,11 +88,9 @@ claude mcp add sim-copilot \ --header "X-API-Key: YOUR_COPILOT_API_KEY" ``` -Replace `YOUR_COPILOT_API_KEY` with your key. - ### Claude Desktop -Claude Desktop requires [`mcp-remote`](https://www.npmjs.com/package/mcp-remote) to connect to HTTP-based MCP servers. Add the following to your Claude Desktop config file (`~/Library/Application Support/Claude/claude_desktop_config.json` on macOS): +Claude Desktop requires [`mcp-remote`](https://www.npmjs.com/package/mcp-remote). Add to `~/Library/Application Support/Claude/claude_desktop_config.json`: ```json { @@ -270,11 +109,9 @@ Claude Desktop requires [`mcp-remote`](https://www.npmjs.com/package/mcp-remote) } ``` -Replace `YOUR_COPILOT_API_KEY` with your key. - ### VS Code -Add the following to your VS Code `settings.json` or workspace `.vscode/settings.json`: +Add to `settings.json` or `.vscode/settings.json`: ```json { @@ -292,21 +129,14 @@ Add the following to your VS Code `settings.json` or workspace `.vscode/settings } ``` -Replace `YOUR_COPILOT_API_KEY` with your key. - For self-hosted deployments, replace `https://www.sim.ai` with your self-hosted Sim URL. -import { FAQ } from '@/components/ui/faq' - Copilot on sim.ai. Then add the MCP server configuration to your editor using the endpoint https://www.sim.ai/api/mcp/copilot with your API key in the X-API-Key header. Configuration examples are available for Cursor, Claude Code, Claude Desktop, and VS Code." }, - { question: "Can I revert changes that Copilot made to my workflow?", answer: "Yes. When Copilot makes changes in Build mode, it saves checkpoints of your workflow state. You can hover over a Copilot message and click the checkpoints icon to see saved states, then click Revert on any checkpoint to restore your workflow. Note that reverting cannot be undone, so review the checkpoint before confirming." }, - { question: "How does Copilot billing work?", answer: "Copilot usage is billed per token from the underlying LLM and counts toward your plan's credit usage. More capable models like Claude Opus cost more per token than lighter models like Haiku. If you reach your usage limit, you can enable on-demand billing from Settings > Subscription to continue using Copilot." }, - { question: "What do the slash commands like /research and /search do?", answer: "Slash commands trigger specialized behaviors. /fast enables fast mode execution, /research activates a research and exploration mode, and /actions executes agent actions. Web commands like /search, /read, /scrape, and /crawl let Copilot interact with the web to search for information, read URLs, scrape page content, or crawl multiple pages to gather context for your request." }, - { question: "How do I set up Copilot for a self-hosted deployment?", answer: "For self-hosted deployments, go to sim.ai > Settings > Copilot and generate a Copilot API key. Then set the COPILOT_API_KEY environment variable in your self-hosted environment. Copilot is a Sim-managed service, so the self-hosted instance communicates with Sim's servers to process requests." }, + { question: "How is Copilot different from Mothership?", answer: "Copilot is scoped to the workflow you have open — it reads and edits that workflow's blocks and connections. Mothership has access to your entire workspace and can build workflows, manage tables, run research, schedule jobs, and take actions across integrations." }, + { question: "Can Copilot access other workflows or workspace data?", answer: "Copilot is scoped to the current workflow. For tasks that span multiple workflows or require workspace-level context, use Mothership." }, + { question: "Can I revert changes Copilot made?", answer: "Yes. Copilot saves a checkpoint before each change. Hover over the message and click the checkpoints icon to see saved states, then click Revert to restore one. Reverting cannot be undone." }, + { question: "How does Copilot billing work?", answer: "Copilot usage is billed per token and counts toward your plan's credit usage. If you reach your limit, enable on-demand billing from Settings → Subscription." }, + { question: "How do I set up Copilot for a self-hosted deployment?", answer: "Go to sim.ai → Settings → Copilot and generate a Copilot API key. Set the COPILOT_API_KEY environment variable in your self-hosted environment. Copilot runs on Sim's infrastructure regardless of where you host the application." }, ]} /> - diff --git a/apps/docs/content/docs/en/credentials/index.mdx b/apps/docs/content/docs/en/credentials/index.mdx index 783282fef51..b5bd02b6d1f 100644 --- a/apps/docs/content/docs/en/credentials/index.mdx +++ b/apps/docs/content/docs/en/credentials/index.mdx @@ -1,203 +1,121 @@ --- -title: Credentials -description: Manage secrets, API keys, and OAuth connections for your workflows +title: Secrets +description: Manage API keys and environment variables for your workflows --- import { Callout } from 'fumadocs-ui/components/callout' import { Image } from '@/components/ui/image' -import { Step, Steps } from 'fumadocs-ui/components/steps' import { FAQ } from '@/components/ui/faq' -Credentials provide a secure way to manage API keys, tokens, and third-party service connections across your workflows. Instead of hardcoding sensitive values into your workflow, you store them as credentials and reference them at runtime. +Secrets are key-value pairs that store sensitive data like API keys, tokens, and passwords. Instead of hardcoding values into your workflows, you store them as secrets and reference them by name at runtime. -Sim supports two categories of credentials: **secrets** for static values like API keys, and **OAuth accounts** for authenticated service connections like Google or Slack. +## Managing Secrets -## Getting Started - -To manage credentials, open your workspace **Settings** and navigate to the **Secrets** tab. +To manage secrets, open your workspace **Settings** and navigate to the **Secrets** tab. Settings modal showing the Secrets tab with a list of saved credentials -From here you can search, create, and delete both secrets and OAuth connections. +Secrets are organized into two sections: -## Secrets +- **Workspace** — shared with all members of your workspace +- **Personal** — private to you -Secrets are key-value pairs that store sensitive data like API keys, tokens, and passwords. Each secret has a **key** (used to reference it in workflows) and a **value** (the actual secret). +### Adding a Secret -### Creating a Secret +Type a key name (e.g. `OPENAI_API_KEY`) into the **Key** column and its value into the **Value** column in the last empty row. A new empty row appears automatically as you type. Existing values are masked by default. -Create Secret dialog with fields for key, value, description, and scope toggle +When you're done, click **Save** to persist all changes. + + +Keys must use only letters, numbers, and underscores — no spaces or special characters. + + +### Bulk Import + +You can populate multiple secrets at once by pasting `.env`-style content into any key or value field. The parser supports standard `KEY=VALUE` pairs, `export KEY=VALUE`, quoted values, and inline comments. + +### Editing and Deleting + +Click directly into any key or value cell to edit it. To delete a secret, click the trash icon on its row and save. + +## Using Secrets in Workflows - - - Click **+ Add** and select **Secret** as the type - - - Enter a **Key** name (letters, numbers, and underscores only, e.g. `OPENAI_API_KEY`) - - - Enter the **Value** - - - Optionally add a **Description** to help your team understand what the secret is for - - - Choose the **Scope** — Workspace or Personal - - - Click **Create** - - - -### Using Secrets in Workflows - -To reference a secret in any input field, type `{{` to open the dropdown. It will show your available secrets grouped by scope. +To reference a secret in any input field, type `{{` to open the variable dropdown. Your available secrets are listed grouped by scope (workspace, then personal). Typing {{ in a code block opens a dropdown showing available workspace secrets -Select the secret you want to use. The reference will appear highlighted in blue, indicating it will be resolved at runtime. +Select the secret you want to use. The reference appears highlighted in blue and is resolved to its actual value at runtime. A resolved secret reference shown in blue text as {{OPENAI_API_KEY}} -Secret values are never exposed in the workflow editor or logs. They are only resolved during execution. +Secret values are never exposed in the workflow editor or execution logs — they are only resolved during execution. -### Bulk Import - -You can import multiple secrets at once by pasting `.env`-style content: - -1. Click **+ Add**, then switch to **Bulk** mode -2. Paste your environment variables in `KEY=VALUE` format -3. Choose the scope for all imported secrets -4. Click **Create** - -The parser supports standard `KEY=VALUE` pairs, quoted values, comments (`#`), and blank lines. +## Secret Details -## OAuth Accounts - -OAuth accounts are authenticated connections to third-party services like Google, Slack, GitHub, and more. Sim handles the OAuth flow, token storage, and automatic refresh. - -You can connect **multiple accounts per provider** — for example, two separate Gmail accounts for different workflows. - -### Connecting an OAuth Account +Click **Details** on any secret row to open its detail view. Create Secret dialog with OAuth Account type selected, showing display name and provider dropdown - - - Click **+ Add** and select **OAuth Account** as the type - - - Enter a **Display name** to identify this connection (e.g. "Work Gmail" or "Marketing Slack") - - - Optionally add a **Description** - - - Select the **Account** provider from the dropdown - - - Click **Connect** and complete the authorization flow - - - -### Using OAuth Accounts in Workflows - -Blocks that require authentication (e.g. Gmail, Slack, Google Sheets) display a credential selector dropdown. Select the OAuth account you want the block to use. +From here you can: -Gmail block showing the account selector dropdown with a connected account and option to connect another - -You can also connect additional accounts directly from the block by selecting **Connect another account** at the bottom of the dropdown. +- Edit the **Display Name** and **Description** +- Manage **Members** — invite teammates by email and assign them an **Admin** or **Member** role - -If a block requires an OAuth connection and none is selected, the workflow will fail at that step. - +Click **Save** to apply changes, or **Back** to return to the list. ## Workspace vs. Personal -Credentials can be scoped to your **workspace** (shared with your team) or kept **personal** (private to you). - | | Workspace | Personal | |---|---|---| | **Visibility** | All workspace members | Only you | | **Use in workflows** | Any member can use | Only you can use | | **Best for** | Production workflows, shared services | Testing, personal API keys | | **Who can edit** | Workspace admins | Only you | -| **Auto-shared** | Yes — all members get access on creation | No — only you have access | -When a workspace and personal secret share the same key name, the **workspace secret takes precedence**. +When a workspace secret and a personal secret share the same key name, the **workspace secret takes precedence**. ### Resolution Order -When a workflow runs, Sim resolves secrets in this order: +When a workflow runs, secrets resolve in this order: 1. **Workspace secrets** are checked first 2. **Personal secrets** are used as a fallback — from the user who triggered the run (manual) or the workflow owner (automated runs via API, webhook, or schedule) -## Access Control - -Each credential has role-based access control: - -- **Admin** — can view, edit, delete, and manage who has access -- **Member** — can use the credential in workflows (read-only) - -When you create a workspace secret, all current workspace members are automatically granted access. Personal secrets are only accessible to you by default. - -### Sharing a Credential - -To share a credential with specific team members: - -1. Click **Details** on the credential -2. Invite members by email -3. Assign them an **Admin** or **Member** role - ## Best Practices -- **Use workspace credentials for production** so workflows work regardless of who triggers them -- **Use personal credentials for development** to keep your test keys separate +- **Use workspace secrets for production** so workflows work regardless of who triggers them +- **Use personal secrets for development** to keep test keys separate - **Name keys descriptively** — `STRIPE_SECRET_KEY` over `KEY1` -- **Connect multiple OAuth accounts** when you need different permissions or identities per workflow - **Never hardcode secrets** in workflow input fields — always use `{{KEY}}` references diff --git a/apps/docs/content/docs/en/credentials/meta.json b/apps/docs/content/docs/en/credentials/meta.json index 78cd836b509..8007146f040 100644 --- a/apps/docs/content/docs/en/credentials/meta.json +++ b/apps/docs/content/docs/en/credentials/meta.json @@ -1,5 +1,5 @@ { - "title": "Credentials", - "pages": ["index", "google-service-account"], + "title": "Secrets", + "pages": ["index"], "defaultOpen": false } diff --git a/apps/docs/content/docs/en/custom-tools/index.mdx b/apps/docs/content/docs/en/custom-tools/index.mdx new file mode 100644 index 00000000000..b73dd33c768 --- /dev/null +++ b/apps/docs/content/docs/en/custom-tools/index.mdx @@ -0,0 +1,100 @@ +--- +title: Custom Tools +description: Extend your agents with your own functions — defined by a schema and executed as JavaScript +--- + +import { Image } from '@/components/ui/image' +import { Callout } from 'fumadocs-ui/components/callout' + +Custom Tools let you define your own functions that agents can call, without needing an external MCP server. You write a JSON schema describing the function and the JavaScript code that runs when the agent invokes it. + +## What Is a Custom Tool? + +A custom tool has three parts: + +| Part | Description | +|------|-------------| +| **Schema** | OpenAI function-calling format — name, description, and parameters. This is what the agent sees when deciding whether to call the tool. | +| **Code** | JavaScript that runs when the tool is called. Parameters come in as variables matching the schema. | +| **Scope** | Custom tools are workspace-scoped and available to every agent in that workspace. | + +Use custom tools when you need tightly-scoped logic that doesn't warrant spinning up a full MCP server — one-off API calls, formatting helpers, internal utilities, etc. + +## Creating a Custom Tool + +1. Navigate to **Settings → Custom Tools** +2. Click **Add** +3. Fill out the **Schema** tab with your function definition + +
+ Custom tool schema editor +
+ + +Use the **Generate** button to have AI draft the schema from a plain-English description. + + +4. Write your implementation in the **Code** tab +5. Click **Save** + + +You can also create a custom tool directly from an Agent block — click **Add tool… → Create Tool** in the tool dropdown. + + +## Schema Format + +Custom tool schemas follow the OpenAI function-calling spec: + +```json +{ + "type": "function", + "function": { + "name": "get_weather", + "description": "Get the current weather for a city", + "parameters": { + "type": "object", + "properties": { + "city": { + "type": "string", + "description": "The city to get weather for" + } + }, + "required": ["city"] + } + } +} +``` + +The `name` must be lowercase, use underscores, and match what your code expects as input. + +## Using Custom Tools in Agents + +Once created, your tools become available in any Agent block: + +1. Open an **Agent** block +2. In the **Tools** section, click **Add tool…** +3. Under **Custom Tools**, click the tool you want to add +4. The agent can now call the tool the same way it calls MCP tools or built-in tools + +## Custom Tools vs MCP Tools + +| | **Custom Tools** | **MCP Tools** | +|---|---|---| +| **Defined** | Inline — schema + code in Sim | External MCP server | +| **Hosting** | Runs inside Sim | Runs on your server | +| **Best for** | Small, workspace-specific helpers | Shared tools, third-party services, complex integrations | +| **Setup** | One modal | Deploy and register a server | + +## Permission Requirements + +| Action | Required Permission | +|--------|-------------------| +| Create or update custom tools | **Write** or **Admin** | +| Delete custom tools | **Admin** | +| Use custom tools in agents | **Read**, **Write**, or **Admin** | diff --git a/apps/docs/content/docs/en/execution/api-deployment.mdx b/apps/docs/content/docs/en/execution/api-deployment.mdx new file mode 100644 index 00000000000..b74a886271c --- /dev/null +++ b/apps/docs/content/docs/en/execution/api-deployment.mdx @@ -0,0 +1,343 @@ +--- +title: API Deployment +--- + +import { Callout } from 'fumadocs-ui/components/callout' +import { Tab, Tabs } from 'fumadocs-ui/components/tabs' +import { Image } from '@/components/ui/image' +import { FAQ } from '@/components/ui/faq' + +Deploy your workflow as a REST API endpoint that any application can call directly. Supports synchronous, streaming, and asynchronous execution modes. + +## Deploying a Workflow + +Open your workflow and click **Deploy**. The **General** tab opens first and shows you the current deployment state: + +General tab of the Workflow Deployment modal showing a live workflow preview, a Versions table with v2 (live) and v1, and Undeploy / Update buttons + +The **General** tab contains: + +- **Live Workflow** — a read-only minimap of the workflow snapshot that is currently deployed +- **Versions** — a table of every deployment you've published, showing version number, who deployed it, and when +- **Deploy / Update / Undeploy** — action buttons at the bottom right + +Click **Deploy** to publish your workflow for the first time, or **Update** to push a new snapshot after making changes. The green dot next to a version indicates it is the currently live version. + +Once deployed, your workflow is available at: + +``` +POST https://sim.ai/api/workflows/{workflow-id}/execute +``` + + + API executions always run against the active deployment snapshot. After changing your workflow on the canvas, click **Update** to publish a new version. + + +### Keeping Track of Changes + +When you modify the workflow canvas after deploying, an **Update deployment** badge appears at the bottom of the screen as a reminder that your live version is out of date: + +Canvas toolbar showing the Update and Run buttons with an Update deployment tooltip + +You can click the **Update** button directly from the canvas toolbar — you don't need to open the Deploy modal every time. + +## Version Control + +Every time you deploy or update, a new version is recorded in the Versions table. You can manage past versions using the context menu (⋮) next to any row: + +Versions table showing v2 (live) and v1 with a context menu open offering Rename, Add description, Promote to live, and Load deployment options + +| Action | Description | +|--------|-------------| +| **Rename** | Give the version a human-readable name (e.g., "Added memory") | +| **Add description** | Attach a note describing what changed in this version | +| **Promote to live** | Make this older version the active one without re-deploying | +| **Load deployment** | Load the workflow snapshot from this version back onto your canvas | + +**Promote to live** is useful for rolling back — if a new deployment has an issue, promote the previous version to restore the last known-good state instantly. + +## Making API Calls + +Switch to the **API** tab in the Deploy modal to see ready-to-use code for all three execution modes: + +API tab showing cURL, Python, JavaScript, and TypeScript language options, with Run workflow, Run workflow (stream response), and Run workflow (async) code sections + +The language selector at the top lets you switch between **cURL**, **Python**, **JavaScript**, and **TypeScript**. Each mode — synchronous, streaming, and async — has its own code block that you can copy directly. The code is pre-filled with your workflow ID and a masked version of your API key. + +At the bottom of the tab, two buttons give you quick access to key settings: + +- **Edit API Info** — set a description and choose between API key auth or public access +- **Generate API Key** — create a new API key scoped to your workspace + +## Authentication + +By default, API endpoints require an API key passed in the `x-api-key` header. Generate keys in **Settings → Sim Keys** or via the **Generate API Key** button in the API tab. + +```bash +curl -X POST https://sim.ai/api/workflows/{workflow-id}/execute \ + -H "Content-Type: application/json" \ + -H "x-api-key: $SIM_API_KEY" \ + -d '{ "input": "Hello" }' +``` + +### API Info and Public Access + +Click **Edit API Info** to add a description and change the access mode: + +Edit API Info modal with a Description textarea and an Access section toggling between API Key and Public modes + +| Access Mode | Description | +|-------------|-------------| +| **API Key** (default) | Requires a valid API key in the `x-api-key` header | +| **Public** | No authentication required — anyone with the URL can call the endpoint | + +The **Description** field documents what the workflow API does. This is useful for teams, or when exposing the workflow to tools and services that surface API metadata. + + + Public endpoints can be called by anyone with the URL. Only use this for workflows that don't expose sensitive data or perform sensitive actions. + + +## Execution Modes + +### Synchronous + +The default mode. Send a request and wait for the complete response: + + + +```bash +curl -X POST https://sim.ai/api/workflows/{workflow-id}/execute \ + -H "Content-Type: application/json" \ + -H "x-api-key: $SIM_API_KEY" \ + -d '{ "input": "Summarize this article" }' +``` + + +```python +import requests, os + +response = requests.post( + "https://sim.ai/api/workflows/{workflow-id}/execute", + headers={ + "Content-Type": "application/json", + "x-api-key": os.environ["SIM_API_KEY"] + }, + json={"input": "Summarize this article"} +) +print(response.json()) +``` + + +```typescript +const response = await fetch('https://sim.ai/api/workflows/{workflow-id}/execute', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + 'x-api-key': process.env.SIM_API_KEY! + }, + body: JSON.stringify({ input: 'Summarize this article' }) +}); +console.log(await response.json()); +``` + + + +### Streaming + +Stream the response token-by-token as it is generated. Add `"stream": true` to your request body and specify which block output fields to stream using `selectedOutputs`. + +Use the **Select outputs** dropdown in the API tab to choose which fields to stream: + +Select outputs dropdown open showing Agent 1 block with selectable output fields: content, model, tokens, toolCalls, providerTiming, cost + +The dropdown groups available outputs by block. The most common choice is `content` from an Agent block, which streams the generated text. You can select fields from multiple blocks simultaneously. + +The `selectedOutputs` values in the request body follow the format `blockName.field` (e.g., `agent_1.content`). + + + +```bash +curl -X POST https://sim.ai/api/workflows/{workflow-id}/execute \ + -H "Content-Type: application/json" \ + -H "x-api-key: $SIM_API_KEY" \ + -d '{ + "input": "Write a long essay", + "stream": true, + "selectedOutputs": ["agent_1.content"] + }' +``` + + +```python +import requests, os + +response = requests.post( + "https://sim.ai/api/workflows/{workflow-id}/execute", + headers={ + "Content-Type": "application/json", + "x-api-key": os.environ["SIM_API_KEY"] + }, + json={ + "input": "Write a long essay", + "stream": True, + "selectedOutputs": ["agent_1.content"] + }, + stream=True +) +for line in response.iter_lines(): + if line: + print(line.decode()) +``` + + +```typescript +const response = await fetch('https://sim.ai/api/workflows/{workflow-id}/execute', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + 'x-api-key': process.env.SIM_API_KEY! + }, + body: JSON.stringify({ + input: 'Write a long essay', + stream: true, + selectedOutputs: ['agent_1.content'] + }) +}); + +const reader = response.body!.getReader(); +const decoder = new TextDecoder(); +while (true) { + const { done, value } = await reader.read(); + if (done) break; + console.log(decoder.decode(value)); +} +``` + + + +### Asynchronous + +For long-running workflows, async mode returns a job ID immediately so you don't need to hold the connection open. Add the `X-Execution-Mode: async` header to your request. The API returns HTTP 202 with a job ID and status URL. Poll the status URL until the job completes. + + + +```bash +curl -X POST https://sim.ai/api/workflows/{workflow-id}/execute \ + -H "Content-Type: application/json" \ + -H "x-api-key: $SIM_API_KEY" \ + -H "X-Execution-Mode: async" \ + -d '{ "input": "Process this large dataset" }' +``` + +**Response** (HTTP 202): +```json +{ + "success": true, + "async": true, + "jobId": "run_abc123", + "executionId": "exec_xyz", + "message": "Workflow execution queued", + "statusUrl": "https://sim.ai/api/jobs/run_abc123" +} +``` + + +```bash +curl https://sim.ai/api/jobs/{jobId} \ + -H "x-api-key: $SIM_API_KEY" +``` + +**While processing:** +```json +{ + "success": true, + "taskId": "run_abc123", + "status": "processing", + "metadata": { + "createdAt": "2025-09-10T12:00:00.000Z", + "startedAt": "2025-09-10T12:00:01.000Z" + }, + "estimatedDuration": 300000 +} +``` + +**When completed:** +```json +{ + "success": true, + "taskId": "run_abc123", + "status": "completed", + "metadata": { + "createdAt": "2025-09-10T12:00:00.000Z", + "startedAt": "2025-09-10T12:00:01.000Z", + "completedAt": "2025-09-10T12:00:05.000Z", + "duration": 4000 + }, + "output": { "result": "..." } +} +``` + + + +#### Job Status Values + +| Status | Description | +|--------|-------------| +| `queued` | Job is waiting to be picked up | +| `processing` | Workflow is actively executing | +| `completed` | Finished successfully — `output` field contains the result | +| `failed` | Execution failed — `error` field contains the message | + +Poll the `statusUrl` from the initial response until the status is `completed` or `failed`. + +#### Execution Time Limits + +| Plan | Sync Limit | Async Limit | +|------|-----------|-------------| +| **Community** | 5 minutes | 90 minutes | +| **Pro / Max / Team / Enterprise** | 50 minutes | 90 minutes | + +If a job exceeds its time limit it is automatically marked as `failed`. + +#### Job Retention + +Completed and failed job results are retained for **24 hours**. After that, the status endpoint returns `404`. Retrieve and store results on your end if you need them longer. + +#### Capacity Limits + +If the execution queue is full, the API returns `503`: + +```json +{ + "error": "Service temporarily at capacity", + "retryAfterSeconds": 10 +} +``` + + + Async mode always runs against the deployed version. It does not support draft state, block overrides, or partial execution options like `runFromBlock` or `stopAfterBlockId`. + + +## API Key Management + +Generate and manage API keys in **Settings → Sim Keys**: + +- **Create** new keys for different applications or environments +- **Revoke** keys that are no longer needed +- Keys are scoped to your workspace + +## Rate Limits + +API calls are subject to rate limits based on your plan. Rate limit details are returned in response headers (`X-RateLimit-*`) and in the response body. Use async mode for high-volume or long-running workloads. + +For detailed rate limit information and the logs/webhooks API, see [External API](/execution/api). + + diff --git a/apps/docs/content/docs/en/execution/chat.mdx b/apps/docs/content/docs/en/execution/chat.mdx new file mode 100644 index 00000000000..aaee17a2af6 --- /dev/null +++ b/apps/docs/content/docs/en/execution/chat.mdx @@ -0,0 +1,184 @@ +--- +title: Chat Deployment +--- + +import { Callout } from 'fumadocs-ui/components/callout' +import { Tab, Tabs } from 'fumadocs-ui/components/tabs' +import { Image } from '@/components/ui/image' +import { FAQ } from '@/components/ui/faq' + +Deploy your workflow as a conversational chat interface that users can interact with via a shareable link or embedded widget. Chat supports multi-turn conversations, file uploads, and voice input. + +A deployed chat interface showing a conversation with Friendly Assistant + +Every chat message triggers a fresh workflow execution, with the full conversation history passed in as context. Responses stream back to the user in real time. + + +Chat executions run against your workflow's active deployment snapshot. Publish a new deployment after making canvas changes so the chat uses the updated version. + + +## Creating a Chat + +Open your workflow, click **Deploy**, and select the **Chat** tab. You'll see the chat configuration panel: + +Chat deployment configuration panel showing URL, Title, Output, Access control, and Welcome message fields + +Configure the following fields, then click **Launch Chat**: + +| Field | Description | +|-------|-------------| +| **URL** | Slug that forms the public URL, e.g. `https://www.sim.ai/chat/your-slug`. Lowercase letters, numbers, and hyphens only. Must be unique across all workspaces. | +| **Title** | Display name shown in the chat header. | +| **Output** | Output fields from your workflow blocks returned as the chat response. At least one must be selected. | +| **Welcome Message** | Greeting shown before the user sends their first message. Defaults to `"Hi there! How can I help you today?"`. | +| **Access Control** | Controls who can access the chat. See [Access Control](#access-control) below. | + +### Output Selection + +Output dropdown showing Agent 1 block with selectable fields: content, model, tokens, toolCalls, providerTiming, cost + +The output dropdown groups available fields by block. For an Agent block, you can choose from `content`, `model`, `tokens`, `toolCalls`, `providerTiming`, and `cost`. In most cases, selecting `content` from the final Agent block is all you need — it streams the agent's text response directly to the user. + +## Access Control + +Access control section with Email tab selected, showing an Allowed emails field with @sim.ai domain added + +| Mode | Description | +|------|-------------| +| **Public** | Anyone with the link can chat — no authentication required | +| **Password** | Users must enter a password before they can start chatting | +| **Email** | Only specific email addresses or domains can access. Users verify with a 6-digit OTP sent to their email | +| **SSO** | OIDC-based single sign-on (enterprise only) | + +**Email access:** Add individual addresses (`user@example.com`) or entire domains (`@example.com`) to the **Allowed emails** field. Users receive a one-time 6-digit OTP to their inbox — once verified, they can chat for the duration of their session. + +**Password access:** A password field appears when this mode is selected. Share the password with users directly; they enter it before the conversation begins. + +**SSO:** Uses OIDC to authenticate users through your identity provider. Available on enterprise plans. + +## Sharing + +### Direct Link + +``` +https://www.sim.ai/chat/your-slug +``` + +### Iframe + +```html + +``` + +## API Submission + +You can also send messages to a chat programmatically. Responses are streamed using server-sent events (SSE). + + + +```bash +curl -X POST https://www.sim.ai/api/chat/your-slug \ + -H "Content-Type: application/json" \ + -d '{ + "input": "Hello, I need help with my order", + "conversationId": "optional-conversation-id" + }' +``` + + +```typescript +const response = await fetch('https://www.sim.ai/api/chat/your-slug', { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ + input: 'Hello, I need help with my order', + conversationId: 'optional-conversation-id' + }) +}); + +// Response is an SSE stream +const reader = response.body?.getReader(); +const decoder = new TextDecoder(); + +while (true) { + const { done, value } = await reader!.read(); + if (done) break; + console.log(decoder.decode(value)); +} +``` + + + +### With File Uploads + +```bash +curl -X POST https://www.sim.ai/api/chat/your-slug \ + -H "Content-Type: application/json" \ + -d '{ + "input": "What does this document say?", + "files": [{ + "name": "report.pdf", + "type": "application/pdf", + "size": 1048576, + "data": "data:application/pdf;base64,..." + }] + }' +``` + +### Protected Chats + +For password-protected chats, include the password in the request body: + +```bash +curl -X POST https://www.sim.ai/api/chat/your-slug \ + -H "Content-Type: application/json" \ + -d '{ "password": "secret", "input": "Hello" }' +``` + +For email-protected chats, authenticate with OTP first: + +```bash +# Step 1: Request OTP — sends a 6-digit code to the email address +curl -X POST https://www.sim.ai/api/chat/your-slug/otp \ + -H "Content-Type: application/json" \ + -d '{ "email": "allowed@example.com" }' + +# Step 2: Verify OTP — save the Set-Cookie header for subsequent requests +curl -X PUT https://www.sim.ai/api/chat/your-slug/otp \ + -H "Content-Type: application/json" \ + -c cookies.txt \ + -d '{ "email": "allowed@example.com", "otp": "123456" }' + +# Step 3: Send messages using the auth cookie from Step 2 +curl -X POST https://www.sim.ai/api/chat/your-slug \ + -H "Content-Type: application/json" \ + -b cookies.txt \ + -d '{ "input": "Hello" }' +``` + +## Troubleshooting + +**Chat returns 403** — The deployment is inactive. Open the Deploy modal and re-deploy the workflow. + +**"At least one output block is required"** — No output field is selected in the Output dropdown. Open the Deploy modal, go to the Chat tab, and select at least one output from a block. + +**OTP email not arriving** — Confirm the email address is on the allowed list and check spam folders. OTP codes expire after 15 minutes and can be resent after a 30-second cooldown. + +**Chat not loading in iframe** — Check your site's Content Security Policy allows iframes from `sim.ai`. + +**Responses not updating after workflow changes** — Chat uses the active deployment snapshot. Publish a new deployment from the Deploy modal to pick up your latest changes. + + diff --git a/apps/docs/content/docs/en/execution/costs.mdx b/apps/docs/content/docs/en/execution/costs.mdx index a2391a0b83a..8ba43616d89 100644 --- a/apps/docs/content/docs/en/execution/costs.mdx +++ b/apps/docs/content/docs/en/execution/costs.mdx @@ -441,6 +441,21 @@ curl -X GET -H "X-API-Key: YOUR_API_KEY" -H "Content-Type: application/json" htt - `limit` is derived from individual limits (Free/Pro/Max) or pooled organization limits (Team/Enterprise) - `plan` is the highest-priority active plan associated with your user +## Purchasing Additional Credits + +Pro and Team plan users can buy additional credits at any time in **Settings → Subscription → Credit Balance**: + +- **Range**: $10 to $1,000 per purchase +- **Conversion**: 1 credit = $0.005 (a $10 purchase adds 2,000 credits) +- **Availability**: Credits are added immediately after payment +- **Expiration**: Purchased credits do not expire +- **Refunds**: Purchases are non-refundable +- **Team plans**: Only organization owners and admins can purchase credits. Purchased credits are added to the team's shared pool. + + + Enterprise users should contact support for credit adjustments. + + ## Cost Optimization Strategies - **Model Selection**: Choose models based on task complexity. Simple tasks can use GPT-4.1-nano while complex reasoning might need o1 or Claude Opus. diff --git a/apps/docs/content/docs/en/execution/index.mdx b/apps/docs/content/docs/en/execution/index.mdx index 7b677473137..348793f4671 100644 --- a/apps/docs/content/docs/en/execution/index.mdx +++ b/apps/docs/content/docs/en/execution/index.mdx @@ -32,6 +32,15 @@ Sim's execution engine brings your workflows to life by processing blocks in the Access run logs and set up webhooks programmatically via REST API + + + Deploy your workflow as a REST API endpoint with sync, streaming, and async modes + + + + Deploy your workflow as a conversational chat interface with streaming, file uploads, and voice + + ## Key Concepts @@ -58,17 +67,51 @@ Each workflow maintains a rich context during a run containing: API, Chat, Schedule, and Webhook runs use the workflow’s active deployment snapshot. Manual runs from the editor use the current draft canvas state, letting you test changes before deploying. Publish a new deployment whenever you change the canvas so every trigger uses the updated version. -
+
Deployment versions table
-The Deploy modal keeps a full version history—inspect any snapshot, compare it against your draft, and promote or roll back with one click when you need to restore a prior release. +### Version History + +The **General** tab in the Deploy modal shows a version history table for every deployment. Each row shows the version name, who deployed it, and when. + +
+ Version history table with multiple deployment versions +
+ +From the version table you can: + +- **Rename** a version to give it a meaningful label (e.g., "v2 — added error handling") +- **Add a description** with notes about what changed in that deployment +- **Promote to live** to roll back to an older version — this makes the selected version the active deployment without changing your draft canvas +- **Load into editor** to restore a previous version's workflow into the canvas for editing and redeploying +- **Preview a version** by selecting a row to view that version's workflow in the canvas preview, then toggle between **Live** and the selected version + +
+ Previewing a selected deployment version +
+ + + Promoting an old version takes effect immediately — all API, Chat, Schedule, and Webhook executions will use the promoted version. Your draft canvas is not affected. + ## Programmatic Access diff --git a/apps/docs/content/docs/en/execution/meta.json b/apps/docs/content/docs/en/execution/meta.json index fd2124b9dd4..9092f40f161 100644 --- a/apps/docs/content/docs/en/execution/meta.json +++ b/apps/docs/content/docs/en/execution/meta.json @@ -1,3 +1,3 @@ { - "pages": ["index", "basics", "files", "api", "logging", "costs"] + "pages": ["index", "basics", "files", "api", "api-deployment", "chat", "logging", "costs"] } diff --git a/apps/docs/content/docs/en/credentials/google-service-account.mdx b/apps/docs/content/docs/en/integrations/google-service-account.mdx similarity index 100% rename from apps/docs/content/docs/en/credentials/google-service-account.mdx rename to apps/docs/content/docs/en/integrations/google-service-account.mdx diff --git a/apps/docs/content/docs/en/integrations/index.mdx b/apps/docs/content/docs/en/integrations/index.mdx new file mode 100644 index 00000000000..463e664e4cc --- /dev/null +++ b/apps/docs/content/docs/en/integrations/index.mdx @@ -0,0 +1,140 @@ +--- +title: Integrations +description: Connect third-party services and OAuth accounts for your workflows +--- + +import { Callout } from 'fumadocs-ui/components/callout' +import { Image } from '@/components/ui/image' +import { FAQ } from '@/components/ui/faq' + +Integrations are authenticated connections to third-party services like Gmail, Slack, GitHub, Dropbox, and more. Sim handles the OAuth flow, token storage, and automatic token refresh — you connect once and select the account in any block that needs it. + +You can connect **multiple accounts per service** — for example, two separate Gmail accounts for different workflows. + +## Managing Integrations + +To manage integrations, open your workspace **Settings** and navigate to the **Integrations** tab. + +Integrations tab showing connected accounts with service icons, names, and Details/Disconnect buttons + +The list shows all your connected accounts with the service icon, display name, and provider. Each entry has a **Details** button and a **Disconnect** button. + +## Connecting an Account + +Click **+ Connect** in the top right to open the connection modal. + +Connect Integration modal showing a searchable list of available services + +Search for or select the service you want to connect, then fill in the connection details: + +Connect Gmail modal showing permissions requested, display name field, and description field + +1. Review the **Permissions requested** — these are the scopes Sim will request from the provider +2. Enter a **Display name** to identify this connection (e.g. "Work Gmail" or "Marketing Slack") +3. Optionally add a **Description** +4. Click **Connect** and complete the authorization flow + +## Using Integrations in Workflows + +Blocks that require authentication (e.g. Gmail, Slack, Google Sheets) display a credential selector. Select the connected account you want that block to use. + +Gmail block showing the account selector dropdown with connected accounts + +You can also connect additional accounts directly from the block by selecting **Connect another [service] account** at the bottom of the dropdown. + + +If a block requires an integration and none is selected, the workflow will fail at that step. + + +## Using a Credential ID + +Each integration has a unique credential ID you can use to reference it dynamically. This is useful when you have multiple accounts for the same service and want to switch between them programmatically — for example, routing different workflow runs to different Gmail accounts based on a variable. + +To copy a credential ID, open **Details** on any integration and click the clipboard icon next to the Display Name. + +Integration details showing the Copy credential ID tooltip on the clipboard icon next to the Display Name + +In any block that requires an integration, click **Switch to manual ID** next to the credential selector to switch from the dropdown to a text field. + +Block showing the Switch to manual ID button next to the account selector + +Paste or reference the credential ID in that field. You can use a `{{SECRET}}` reference or a block output variable to make it dynamic. + +Block showing the Enter credential ID text field after switching to manual mode + +## Integration Details + +Click **Details** on any integration to open its detail view. + +Integration details view showing Display Name, Description, Members, Reconnect, and Disconnect + +From here you can: + +- Edit the **Display Name** and **Description** +- Manage **Members** — invite teammates by email and assign them an **Admin** or **Member** role +- **Reconnect** — re-authorize the connection if it has expired or if you need to update permissions +- **Disconnect** — remove the integration entirely + +Click **Save** to apply changes, or **Back** to return to the list. + + +If you disconnect an integration that is used in a workflow, that workflow will fail at any block referencing it. Update blocks before disconnecting. + + +## Access Control + +Each integration has role-based access: + +- **Admin** — can view, edit, disconnect, reconnect, and manage member access +- **Member** — can use the integration in workflows (read-only) + +When you connect an integration, you are automatically set as its Admin. You can share it with teammates from the Details view. + + diff --git a/apps/docs/content/docs/en/integrations/meta.json b/apps/docs/content/docs/en/integrations/meta.json new file mode 100644 index 00000000000..282504513b3 --- /dev/null +++ b/apps/docs/content/docs/en/integrations/meta.json @@ -0,0 +1,5 @@ +{ + "title": "Integrations", + "pages": ["index", "google-service-account"], + "defaultOpen": false +} diff --git a/apps/docs/content/docs/en/knowledgebase/connectors.mdx b/apps/docs/content/docs/en/knowledgebase/connectors.mdx index c6573ed5505..88a62383027 100644 --- a/apps/docs/content/docs/en/knowledgebase/connectors.mdx +++ b/apps/docs/content/docs/en/knowledgebase/connectors.mdx @@ -5,13 +5,16 @@ description: Automatically sync documents from external sources into your knowle import { Callout } from 'fumadocs-ui/components/callout' import { Step, Steps } from 'fumadocs-ui/components/steps' +import { Image } from '@/components/ui/image' import { FAQ } from '@/components/ui/faq' -Connectors let you pull documents directly from external services into your knowledge base. Instead of manually uploading files, a connector continuously syncs content from sources like Notion, Google Drive, GitHub, Slack, and more — keeping your knowledge base up to date automatically. +Connectors continuously sync documents from external services into your knowledge base, so you never have to upload files manually. New content is added, changed content is re-processed, and deleted content is removed — all automatically. ## Available Connectors -Sim ships with 30 built-in connectors spanning productivity tools, cloud storage, development platforms, and more. +Connect Source picker showing a searchable list of available connectors including Airtable, Asana, Confluence, Discord, Dropbox, Evernote, Fireflies, GitHub, and Gmail + +Sim ships with 30 built-in connectors: | Category | Connectors | |----------|-----------| @@ -29,24 +32,25 @@ Sim ships with 30 built-in connectors spanning productivity tools, cloud storage ## Adding a Connector - - - -### Select a source - -Open a knowledge base and click **Add Connector**. You'll see the full list of available connectors — pick the service you want to sync from. +From inside a knowledge base, click **+ New connector** in the top right to open the connector picker. Select a service, then complete the setup steps: - + ### Authenticate -Most connectors use **OAuth** — select an existing credential from the dropdown, or click **Connect new account** to authorize through the service's login flow. Tokens are refreshed automatically, so you won't need to re-authenticate unless you revoke access. +Most connectors use **OAuth** — select an existing credential from the dropdown or click **Connect new account** to authorize through the service. Tokens are refreshed automatically. -A few connectors (Evernote, Obsidian, Fireflies) use **API keys** instead. Paste your key or developer token directly, and it will be stored securely. +A few connectors use **API keys** instead: + +| Connector | Where to get the key | +|-----------|---------------------| +| **Evernote** | Developer Token (starts with `S=`) from your Evernote account settings | +| **Obsidian** | Install the [Local REST API](https://github.com/coddingtonbear/obsidian-local-rest-api) plugin, then copy the key from its settings | +| **Fireflies** | Generate from the Integrations page in your Fireflies account | - If you rotate an API key in the external service, you'll need to update it in Sim as well. OAuth tokens are refreshed automatically, but API keys are not. + If you rotate an API key in the external service, update it in Sim as well — OAuth tokens refresh automatically, but API keys do not. @@ -54,103 +58,135 @@ A few connectors (Evernote, Obsidian, Fireflies) use **API keys** instead. Paste ### Configure -Each connector has its own configuration fields that control what gets synced. Some examples: +Each connector has source-specific fields that control what gets synced. Examples: -- **Notion**: Choose between syncing an entire workspace, a specific database, or a single page tree -- **GitHub**: Specify a repository, branch, and optional file extension filter -- **Confluence**: Enter your Atlassian domain and optionally filter by space key or content type -- **Obsidian**: Provide your vault URL and optionally restrict to a folder path +- **Notion** — sync an entire workspace, a specific database, or a single page tree +- **GitHub** — specify a repository, branch, and optional file extension filter +- **Confluence** — enter your Atlassian domain and optionally filter by space key or content type +- **Obsidian** — provide your vault URL (`https://127.0.0.1:27124` by default) and optionally restrict to a folder path +- **Fireflies** — optionally filter by host email or cap the number of transcripts synced -All configuration is validated when you save — if a repository doesn't exist or a domain is unreachable, you'll get an immediate error. +Configuration is validated on save — if a repository doesn't exist or a domain is unreachable, you'll see an error immediately. ### Choose sync frequency -Select how often the connector should re-sync: - -| Frequency | Description | -|-----------|-------------| +| Frequency | Notes | +|-----------|-------| | Every hour | Best for fast-moving sources | -| Every 6 hours | Good balance for most use cases | +| Every 6 hours | Good balance for most sources | | **Daily** (default) | Suitable for content that changes infrequently | | Weekly | For stable, rarely-updated sources | -| Manual only | Sync only when you trigger it | +| Manual only | Sync only when you trigger it manually | + +Sub-hourly frequencies require a Max or Enterprise plan. ### Configure metadata tags (optional) -If the connector supports metadata tags, you'll see checkboxes for each tag type (e.g., Labels, Last Modified, Notebook). All are enabled by default — uncheck any you don't need. +If the connector supports metadata tags, you'll see checkboxes for each available tag type (e.g., Labels, Last Modified, Notebook). All are enabled by default — uncheck any you don't need. -See the [Metadata Tags](#metadata-tags) section below for details. +Tag slots are shared across all documents in a knowledge base. See [Tags](/knowledgebase/tags) for details. ### Connect & Sync -Click **Connect & Sync** to save the connector and trigger the first sync immediately. Documents will begin appearing in your knowledge base as they are processed. +Click **Connect & Sync** to save the connector and trigger the first sync. Documents will start appearing as they're processed. -## How Syncing Works +## Managing Connectors -On each sync, the connector fetches documents from the external service and compares them against what's already in your knowledge base. Only documents that have actually changed are reprocessed — new content is added, updated content is re-chunked and re-embedded, and documents that no longer exist in the source are removed. +Open **Connected Sources** from the knowledge base to see all active connectors. Each card shows the connector's status, the last sync time and document count, and the next scheduled sync: -This means syncing is efficient even for large document sets. A connector with thousands of documents will only do meaningful work when something changes. +Connected Sources panel showing a Google Docs connector with Active status, last sync details, and a sync history log with dated entries -### Handling Failures +The action buttons on each connector card: -If a single document fails to fetch (e.g., due to a permission issue or timeout), the sync continues with the remaining documents. The failed document will be retried on the next sync cycle. +| Button | Action | +|--------|--------| +| **↻** (Refresh) | Trigger a manual sync immediately. Disabled while syncing or disabled; a 5-minute cooldown applies after each manual trigger | +| **⚙** (Settings) | Open the edit modal to change source config or sync frequency | +| **⏸ / ▶** (Pause / Resume) | Pause scheduled syncs without removing the connector. Resume works from both paused and disabled states | +| **🗑** (Delete) | Remove the connector. A confirmation modal appears with an option to also delete all synced documents | +| **∨** (Chevron) | Expand to show sync history | -If an entire sync fails (e.g., the service is down or credentials expired), the connector automatically backs off and retries later. The backoff resets as soon as a sync succeeds. +### Editing a Connector -## Metadata Tags +Click the settings icon to open the edit modal. It has two tabs: -Connectors can automatically populate [tags](/docs/knowledgebase/tags) with metadata from the source, letting you filter documents in the Knowledge block based on information from the external service. +**Settings** — change any source-specific config fields (e.g., switch the GitHub branch) and update the sync frequency. -For example, a Notion connector might tag documents with their **Labels**, **Last Modified** date, and **Created** date. A GitHub connector might tag documents with their **Repository** and **File Path**. This metadata becomes available for [tag-based filtering](/docs/knowledgebase/tags) in your workflows. +**Documents** — browse all documents this connector has synced and manage exclusions (see [Excluding Documents](#excluding-documents) below). -### Opting Out +### Sync History -You can disable specific metadata tags during connector setup. Disabled tags won't be populated, leaving those tag slots available for other connectors or manual tagging. +Expand any connector card by clicking the chevron to see a log of recent syncs: - - Tag slots are shared across all documents in a knowledge base. If you have multiple connectors, each one's metadata tags draw from the same pool of available slots. - +- Each row shows the date/time and a summary of what changed: **+N** (added, green), **~N** (updated, amber), **-N** (deleted, red), **!N** (failed, red), or **No changes** +- A spinner indicates a sync currently in progress +- Error rows show a red icon and the failure message + +The log retains the most recent 10 sync runs. ## Excluding Documents -You can manually exclude specific documents from a connector's sync. Excluded documents are skipped on every subsequent sync, even if they change in the source. This is useful for filtering out templates, drafts, or other content you don't want in your knowledge base. +Sometimes a connector syncs documents you don't want in your knowledge base — drafts, templates, confidential pages, and so on. You can exclude them individually. -## Source Links +Edit Google Docs modal showing the Documents tab with Active (37) and Excluded (0) filter buttons and a 'No excluded documents' message -Every synced document retains a link back to the original in the external service. This lets you trace any knowledge base document to its source — whether that's a Notion page, a GitHub file, a Confluence article, or a Slack conversation. +To exclude a document, open the connector's settings modal, go to the **Documents** tab, and click **Exclude** next to any document. Excluded documents are skipped on every subsequent sync even if the source content changes. -## Multiple Connectors +To reverse an exclusion, switch to the **Excluded** tab and click **Restore** — the document will be pulled in on the next sync. -You can add multiple connectors to a single knowledge base. For example, you might sync internal documentation from Confluence alongside code from GitHub and meeting notes from Fireflies — all searchable together through the Knowledge block. +## How Syncing Works + +On each run the connector fetches documents from the source and compares them against what's already stored. Only changed documents are reprocessed — new content is added, updated content is re-chunked and re-embedded, deleted content is removed. A connector syncing thousands of documents will only do real work when something actually changes. + +### Connector Status + +| Status | Meaning | +|--------|---------| +| **Active** | Running normally on schedule | +| **Syncing** | A sync is currently in progress | +| **Paused** | Scheduled syncs are suspended; manual sync is still available | +| **Error** | The last sync failed; will retry on the next scheduled run with backoff | +| **Disabled** | Syncing has been paused automatically after 10 consecutive failures | + +A disabled connector requires intervention — either reconnect the OAuth account or use the Resume button to re-enable syncing. + +### Handling Failures + +If a single document fails (e.g., a permission issue or timeout), the sync continues and retries that document next time. If an entire sync fails, the connector backs off and retries with increasing delays. After 10 consecutive full-sync failures the connector is automatically set to **Disabled** to avoid spinning indefinitely. -Each connector manages its own documents independently. Metadata tag slots are shared across the knowledge base, so keep an eye on slot usage if you're combining several connectors that each populate tags. +## Metadata Tags + +Connectors can auto-populate [tags](/knowledgebase/tags) with metadata from the source — for example, a Notion connector can tag documents with their Labels and Last Modified date; a GitHub connector can tag documents with Repository and File Path. These tags are then available for filtered search in the Knowledge block. + +You can disable specific tag types during setup or at any time from the connector settings to free up tag slots for manual tagging or other connectors. + + + Tag slots are shared across all documents in a knowledge base. If multiple connectors each populate tags, they draw from the same pool of 17 slots. + + +## Multiple Connectors -## Common Use Cases +Knowledge base document list showing synced Google Docs documents with Name, Size, Tokens, Chunks, Uploaded date, Status, and Tags columns -- **Internal knowledge base**: Sync your team's Notion workspace and Confluence spaces so AI agents can answer questions about internal processes, policies, and documentation -- **Customer support**: Connect HubSpot or Salesforce alongside your help docs from WordPress or Google Docs to give support agents full context on customers and product information -- **Engineering assistant**: Sync a GitHub repository and Jira or Linear issues so an AI agent can reference code, specs, and ticket history when answering developer questions -- **Meeting intelligence**: Pull in Fireflies transcripts alongside Slack conversations to build a searchable archive of decisions and discussions -- **Research and notes**: Sync Evernote notebooks or an Obsidian vault to make your personal notes available to AI workflows +You can add as many connectors as you need to a single knowledge base. Each manages its own documents independently, and all content is searchable together through the Knowledge block. Keep tag slot usage in mind when combining connectors that each populate metadata tags. diff --git a/apps/docs/content/docs/en/knowledgebase/tags.mdx b/apps/docs/content/docs/en/knowledgebase/tags.mdx index 47b64b58b19..420efbceda0 100644 --- a/apps/docs/content/docs/en/knowledgebase/tags.mdx +++ b/apps/docs/content/docs/en/knowledgebase/tags.mdx @@ -2,117 +2,112 @@ title: Tags and Filtering --- -import { Video } from '@/components/ui/video' +import { Callout } from 'fumadocs-ui/components/callout' +import { Image } from '@/components/ui/image' import { FAQ } from '@/components/ui/faq' -Tags provide a powerful way to organize your documents and create precise filtering for your vector searches. By combining tag-based filtering with semantic search, you can retrieve exactly the content you need from your knowledgebase. +Tags let you attach structured metadata to documents so the Knowledge block can filter results precisely — by department, date, priority, status, or any dimension you define. -## Adding Tags to Documents +## How Tags Work -You can add custom tags to any document in your knowledgebase to organize and categorize your content for easier retrieval. +Tags have two layers: -
-
+1. **Tag definitions** — created at the knowledge base level. A definition has a name (e.g., "Department") and a type (Text, Number, Date, or Boolean). Definitions are shared across all documents. +2. **Tag values** — set per document. Once a definition exists, you assign a value to it on each document that needs it (e.g., `Department = "engineering"`). -### Tag Management -- **Custom tags**: Create your own tag system that fits your workflow -- **Multiple tags per document**: Apply as many tags as needed to each document. Each knowledgebase has 17 tag slots total: 7 text, 5 number, 2 date, and 3 boolean slots, shared by all documents in the knowledgebase -- **Tag organization**: Group related documents with consistent tagging +## Tag Slots -### Tag Best Practices -- **Consistent naming**: Use standardized tag names across your documents -- **Descriptive tags**: Use clear, meaningful tag names -- **Regular cleanup**: Remove unused or outdated tags periodically +Each knowledge base has **17 tag slots** distributed across four types: -## Using Tags in Knowledge Blocks +| Type | Slots | Accepted values | +|------|-------|-----------------| +| **Text** | 7 | Any string — matching is case-insensitive | +| **Number** | 5 | Any valid number | +| **Date** | 2 | `YYYY-MM-DD` format | +| **Boolean** | 3 | `true` or `false` | -Tags become powerful when combined with the Knowledge block in your workflows. You can filter your searches to specific tagged content, ensuring your AI agents get the most relevant information. +The type dropdown in the creation form shows current slot usage for each type (e.g., `Text (0/7)` means none of the 7 text slots are in use yet). -
-
+ + Slots are shared across all documents and connectors in a knowledge base. Connectors that auto-populate metadata tags draw from the same pool. Plan your schema with that in mind. + -## Search Modes +## Defining Tags + +Tag definitions live at the knowledge base level. To manage them, click the knowledge base name in the header to open the context menu and select **Tags**: + +Knowledge base header showing the dropdown menu with Rename, Tags, and Delete options + +This opens the Tags modal, which lists all defined tags and shows how many documents each one is assigned to. Click **Add Tag** to define a new one: + +Tags modal showing 0 defined tags, a Tag Name input field, and a Type dropdown set to Text (0/7), with Cancel and Create Tag buttons + +Enter a **Tag Name** and pick a **Type**, then click **Create Tag**. The name must be unique within the knowledge base. The type dropdown only shows types that still have available slots. Press Enter to submit or Escape to cancel. + +To delete a tag definition, click the trash icon next to it. Deleting a definition removes the tag value from every document it was assigned to — the modal shows you which documents are affected before you confirm. -The Knowledge block supports three different search modes depending on what you provide: +Clicking any existing tag definition opens a dialog showing all documents that have a value set for it, along with their current tag values. -### 1. Tag-Only Search -When you **only provide tags** (no search query): -- **Direct retrieval**: Fetches all documents that have the specified tags -- **No vector search**: Results are based purely on tag matching -- **Fast performance**: Quick retrieval without semantic processing -- **Exact matching**: Only documents with all specified tags are returned +## Setting Tag Values on Documents -**Use case**: When you need all documents from a specific category or project +Once a definition exists, you assign values document by document. Right-click any document (or click the `…` menu) to open the document context menu, then select **Tags**: -### 2. Vector Search Only -When you **only provide a search query** (no tags): -- **Semantic search**: Finds content based on meaning and context -- **Full knowledgebase**: Searches across all documents -- **Relevance ranking**: Results ordered by semantic similarity -- **Natural language**: Use questions or phrases to find relevant content +This opens the tag panel for that document where you can set a value for each defined tag. -**Use case**: When you need the most relevant content regardless of organization +## Viewing Tags in the Document List -### 3. Combined Tag Filtering + Vector Search -When you **provide both tags and a search query**: -1. **First**: Filter documents to only those with the specified tags -2. **Then**: Perform vector search within that filtered subset -3. **Result**: Semantically relevant content from your tagged documents only +The **Tags** column in the document list shows the current tag values for each document at a glance. Documents with no tags assigned show `– – –`: -**Use case**: When you need relevant content from a specific category or project +Knowledge base document list showing Name, Size, Tokens, Chunks, Uploaded, Status, and Tags columns — Document1.txt shows no tags (– – –) while Document2.txt shows the value 'Waleed' -### Search Configuration +Use the **Filter** and **Sort** controls in the top right to narrow the list by tag values or sort by them. -#### Tag Filtering -- **Multiple tags**: Use multiple tags with AND or OR logic to control whether documents must match all or any of the specified tags -- **Tag combinations**: Mix different tag types for precise filtering -- **Case sensitivity**: Tag matching is case-insensitive -- **Partial matching**: Text fields support partial matching operators such as contains, starts_with, and ends_with in addition to exact matching +## Using Tags in the Knowledge Block -#### Vector Search Parameters -- **Query complexity**: Natural language questions work best -- **Result limits**: Configure how many chunks to retrieve -- **Relevance threshold**: Set minimum similarity scores -- **Context window**: Adjust chunk size for your use case +In a workflow, open the Knowledge block and configure **Tag Filters** to restrict which documents are searched: -## Integration with Workflows +Knowledge block editor showing Operation: search, Knowledge Base: test, Search Query field (optional), Number of Results, and a Tag Filters section with Filter 1 containing Tag: Name, Operator: equals, and a Value field + +Each filter has three parts: +- **Tag** — select a tag definition from the knowledge base +- **Operator** — depends on the tag type (see below) +- **Value** — the value to match against + +Add as many filters as you need with the **+** button. Multiple filters are combined with AND logic — a document must match all filters to be included in the search. + +### Operators by Type + +| Type | Available operators | +|------|-------------------| +| **Text** | `equals`, `not equals`, `contains`, `does not contain`, `starts with`, `ends with` | +| **Number** | `equals`, `not equals`, `greater than`, `greater than or equal`, `less than`, `less than or equal`, `between` | +| **Date** | `equals`, `after`, `on or after`, `before`, `on or before`, `between` | +| **Boolean** | `is`, `is not` | + +Tag values in filter fields can be static strings or workflow variable references (e.g., ``), so filtering can adapt dynamically at runtime. + +## Search Modes -### Knowledge Block Configuration -1. **Select knowledgebase**: Choose which knowledgebase to search -2. **Add tags**: Specify filtering tags (optional) -3. **Enter query**: Add your search query (optional) -4. **Configure results**: Set number of chunks to retrieve -5. **Test search**: Preview results before using in workflow +The Knowledge block behaves differently depending on what you provide: -### Dynamic Tag Usage -- **Variable tags**: Use workflow variables as tag values -- **Conditional filtering**: Apply different tags based on workflow logic -- **Context-aware search**: Adjust tags based on conversation context -- **Multi-step filtering**: Refine searches through workflow steps +| What you provide | Behaviour | +|-----------------|-----------| +| **Tags only** (no search query) | Fetches all documents that match the tag filters — pure tag matching, no vector search | +| **Query only** (no tag filters) | Semantic vector search across all documents in the knowledge base | +| **Both tags and query** | Tag filters run first to narrow the document set, then vector search runs within that subset | -### Performance Optimization -- **Efficient filtering**: Tag filtering happens before vector search for better performance -- **Caching**: Frequently used tag combinations are cached for speed -- **Parallel processing**: Multiple tag searches can run simultaneously -- **Resource management**: Automatic optimization of search resources +The combined mode is the most precise — tag filtering cuts down the candidate set cheaply before the more expensive vector similarity comparison runs. -## Getting Started with Tags +## Connector-Populated Tags -1. **Plan your tag structure**: Decide on consistent naming conventions -2. **Start tagging**: Add relevant tags to your existing documents -3. **Test combinations**: Experiment with tag + search query combinations -4. **Integrate into workflows**: Use the Knowledge block with your tagging strategy -5. **Refine over time**: Adjust your tagging approach based on search results +Connectors can auto-populate tags with metadata from the source. A Notion connector might set **Last Modified** and **Labels**; a GitHub connector might set **Repository** and **File Path**. These work exactly like manually defined tags and are available in Knowledge block filters. -Tags transform your knowledgebase from a simple document store into a precisely organized, searchable intelligence system that your AI workflows can navigate with surgical precision. +You can disable specific metadata tag types during connector setup or in connector settings to free up slots for manual use. See [Connectors](/knowledgebase/connectors) for details. as the filter value. It resolves to the actual value at runtime, so a single workflow can filter different documents on each run." }, + { question: "What happens to tag values when I delete a tag definition?", answer: "Deleting a definition removes the tag value from every document it was assigned to and frees the slot. The modal shows you which documents are affected before you confirm." }, ]} /> diff --git a/apps/docs/content/docs/en/mcp/deploy-workflows.mdx b/apps/docs/content/docs/en/mcp/deploy-workflows.mdx index 1c031197ebb..25c78609a80 100644 --- a/apps/docs/content/docs/en/mcp/deploy-workflows.mdx +++ b/apps/docs/content/docs/en/mcp/deploy-workflows.mdx @@ -3,6 +3,7 @@ title: Deploy Workflows as MCP description: Expose your workflows as MCP tools for external AI assistants and applications --- +import { Image } from '@/components/ui/image' import { Video } from '@/components/ui/video' import { Callout } from 'fumadocs-ui/components/callout' import { FAQ } from '@/components/ui/faq' @@ -18,10 +19,47 @@ MCP servers group your workflow tools together. Create and manage them in worksp
1. Navigate to **Settings → MCP Servers** -2. Click **Create Server** + +
+ MCP Servers settings page +
+ +2. Click **Add** 3. Enter a name and optional description -4. Copy the server URL for use in your MCP clients -5. View and manage all tools added to the server +4. Choose access: **API Key** (private, requires `X-API-Key` header) or **Public** (no authentication) +5. Optionally select deployed workflows to add as tools immediately + +
+ Add New MCP Server modal +
+ +6. Click **Add Server** +7. Click **Details** to view the MCP server + +
+ MCP Server details view +
+ +8. Copy the server URL for use in your MCP clients +9. View and manage all tools added to the server ## Adding a Workflow as a Tool @@ -33,9 +71,21 @@ Once your workflow is deployed, you can expose it as an MCP tool: 1. Open your deployed workflow 2. Click **Deploy** and go to the **MCP** tab + +
+ Workflow Deployment MCP tab +
+ 3. Configure the tool name and description 4. Add descriptions for each parameter (helps AI understand inputs) 5. Select which MCP servers to add it to +6. Click **Save Tool** The workflow must be deployed before it can be added as an MCP tool. @@ -54,9 +104,50 @@ Your workflow's input format fields become tool parameters. Add descriptions to ## Connecting MCP Clients -Use the server URL from settings to connect external applications: +Sim generates a ready-to-paste configuration for every supported client. To get it: + +1. Navigate to **Settings → MCP Servers** +2. Click **Details** on your server +3. Under **MCP Client**, select your client — **Cursor**, **Claude Code**, **Claude Desktop**, **VS Code**, or **Sim** +4. Copy the configuration, replacing `$SIM_API_KEY` with your Sim API key + +
+ MCP client configuration panel +
+ +### Cursor + +Cursor supports direct URL configuration. Add to your Cursor MCP settings (`.cursor/mcp.json`): + +```json +{ + "mcpServers": { + "my-sim-workflows": { + "url": "YOUR_SERVER_URL", + "headers": { "X-API-Key": "$SIM_API_KEY" } + } + } +} +``` + +Cursor also provides a one-click install button in the server detail view. + +### Claude Code + +Run this command in your terminal: + +```bash +claude mcp add "my-sim-workflows" --url "YOUR_SERVER_URL" --header "X-API-Key:$SIM_API_KEY" +``` ### Claude Desktop + Add to your Claude Desktop config (`~/Library/Application Support/Claude/claude_desktop_config.json`): ```json @@ -64,17 +155,33 @@ Add to your Claude Desktop config (`~/Library/Application Support/Claude/claude_ "mcpServers": { "my-sim-workflows": { "command": "npx", - "args": ["-y", "mcp-remote", "YOUR_SERVER_URL"] + "args": ["-y", "mcp-remote", "YOUR_SERVER_URL", "--header", "X-API-Key:$SIM_API_KEY"] } } } ``` -### Cursor -Add the server URL in Cursor's MCP settings using the same mcp-remote pattern. +### VS Code + +Add to your VS Code MCP settings (`.vscode/mcp.json`): + +```json +{ + "mcpServers": { + "my-sim-workflows": { + "command": "npx", + "args": ["-y", "mcp-remote", "YOUR_SERVER_URL", "--header", "X-API-Key:$SIM_API_KEY"] + } + } +} +``` + + +For public servers, omit the `X-API-Key` header and `--header` arguments. Public servers don't require authentication. + -Include your API key header (`X-API-Key`) for authenticated access when using mcp-remote or other HTTP-based MCP transports. +`$SIM_API_KEY` is a placeholder. For Claude Desktop and VS Code configs, replace it with your actual API key since these clients don't expand environment variables in JSON config files. Claude Code and Cursor handle variable expansion natively. ## Server Management diff --git a/apps/docs/content/docs/en/mcp/index.mdx b/apps/docs/content/docs/en/mcp/index.mdx index 4e966165dc5..7ab67e4880f 100644 --- a/apps/docs/content/docs/en/mcp/index.mdx +++ b/apps/docs/content/docs/en/mcp/index.mdx @@ -18,27 +18,83 @@ MCP is an open standard that enables AI assistants to securely connect to extern - Execute custom tools and scripts - Maintain secure, controlled access to external resources -## Configuring MCP Servers +## Adding an MCP Server as a Tool -MCP servers provide collections of tools that your agents can use. Configure them in workspace settings: +MCP servers provide collections of tools that your agents can use.
-1. Navigate to your workspace settings -2. Go to the **MCP Servers** section -3. Click **Add MCP Server** -4. Enter the server configuration details -5. Save the configuration +To add one: + +1. Navigate to **Settings → MCP Tools** + +
+ MCP Tools settings page +
+ +2. Click **Add** to open the configuration modal +3. Enter a **Server Name** and **Server URL** +4. Add any required **Headers** (e.g. API keys) +5. Click **Add MCP** to save + +
+ Add New MCP Server modal +
You can also configure MCP servers directly from the toolbar in an Agent block for quick setup. +### Server Configuration Options + +| Field | Description | +|-------|-------------| +| **Name** | Display name for the server | +| **URL** | The MCP server endpoint | +| **Transport** | Currently supports `streamable-http` | +| **Headers** | Key-value pairs for authentication or custom headers | +| **Timeout** | Connection timeout in milliseconds (default: 30,000) | + +### Environment Variables in Configuration + +Server URLs and headers support environment variable substitution using `{{VAR_NAME}}` syntax. This keeps sensitive values like API keys out of the server configuration. + +``` +URL: https://api.example.com/mcp +Authorization: Bearer {{MCP_API_TOKEN}} +``` + +When you type `{{` in the URL or header fields, a dropdown appears showing available workspace environment variables. + +### Testing and Validation + +Click **Test Connection** before saving to verify the server is reachable and discover available tools. The test response shows the number of tools found and the protocol version. + +After saving, each server displays its available tools with parameter names, types, and required flags. If a server's tools change (e.g., after a server update), click **Refresh** to fetch the latest schemas. This automatically updates any agent blocks using those tools. + +Tool validation badges appear on servers with issues — for example, if a tool was removed from the server but is still referenced in a workflow. Click the badge to see which workflows are affected. + +### Domain Allowlisting + +Self-hosted deployments can restrict which MCP server domains are allowed by setting the `ALLOWED_MCP_DOMAINS` environment variable (comma-separated list). When set, only servers on approved domains can be added. When unset, all domains are allowed. + ### Refresh Tools -Click **Refresh** on a server to fetch the latest tool schemas and automatically update any agent blocks using those tools with the new parameter definitions. +To auto-refresh an MCP tool already in use by an agent, go to **Settings → MCP Tools**, open the server's details, and click **Refresh**. This fetches the latest tool schemas and automatically updates any agent blocks using those tools with the new parameter definitions. ## Using MCP Tools in Agents @@ -46,7 +102,7 @@ Once MCP servers are configured, their tools become available within your agent
Using MCP Tool in Agent Block 1. Open an **Agent** block -2. In the **Tools** section, you'll see available MCP tools -3. Select the tools you want the agent to use -4. The agent can now access these tools during execution +2. In the **Tools** section, click **Add tool…** +3. Under **MCP Servers**, click a server to see its tools + +
+ MCP tools list for a selected server +
+ +4. Select individual tools, or choose **Use all N tools** to add every tool from that server +5. The agent can now access these tools during execution + + +If you haven't configured a server yet, click **Add MCP Server** at the top of the dropdown to open the setup modal without leaving the block. + ## Standalone MCP Tool Block @@ -65,7 +137,7 @@ For more granular control, you can use the dedicated MCP Tool block to execute s
Standalone MCP Tool Block diff --git a/apps/docs/content/docs/en/mothership/index.mdx b/apps/docs/content/docs/en/mothership/index.mdx new file mode 100644 index 00000000000..13474ffc795 --- /dev/null +++ b/apps/docs/content/docs/en/mothership/index.mdx @@ -0,0 +1,68 @@ +--- +title: Mothership +description: Your AI command center. Build and manage your entire workspace in natural language. +--- + +import { Image } from '@/components/ui/image' +import { FAQ } from '@/components/ui/faq' + +Describe what you want and Mothership handles it. Build a workflow, run research, generate a presentation, query a table, schedule a recurring job, send a Slack message — Mothership knows your entire workspace and takes action directly. + +{/* TODO: Screenshot or GIF of the full Mothership home page — chat pane on the left with a conversation in progress, resource panel on the right with a workflow or file tab open. Hero shot for the page. */} + +## What You Can Do + +| Area | What Mothership can do | +|------|-----------------------| +| **[Workflows](/mothership/workflows)** | Build, edit, run, debug, deploy, and organize workflows | +| **[Research](/mothership/research)** | Search the web, read pages, crawl sites, produce research reports | +| **[Files & Documents](/mothership/files)** | Upload, create, edit, and generate documents, presentations, and images | +| **[Tables](/mothership/tables)** | Create, query, update, and export workspace tables | +| **[Automation & Configuration](/mothership/tasks)** | Schedule jobs, take immediate actions, connect integrations, manage tools | +| **[Knowledge Bases](/mothership/knowledge)** | Create knowledge bases, add documents, and query content in plain language | + +## How It Works + +Mothership receives a snapshot of your entire workspace with every message — all workflows, tables, knowledge bases, files, credentials, jobs, and integrations. This is why you can refer to things by name without specifying IDs or paths: + +- "Run the invoice workflow" +- "Add a row to the leads table" +- "Deploy the summarizer as a chat" + +No configuration, no context-setting. Just describe what you want: + +- "Build a lead enrichment workflow that scores inbound signups and writes the results to the leads table" +- "Research our top 5 competitors and save a battle card for each one" +- "Schedule a daily job that checks for new high-fit prospects and posts them to #outbound in Slack" +- "Create a workflow that takes a contract PDF, extracts the key terms, and emails a summary to legal" + +For complex tasks, Mothership delegates to specialized subagents automatically. You'll see them appear as collapsible sections in the chat while they work — building, researching, writing files, executing actions. + +{/* TODO: Screenshot of the Mothership chat showing a subagent section expanded mid-task — e.g., the Build or Research subagent actively working, with its collapsible header and steps visible in the thread. */} + +## Adding Context + +Bring any workspace object into the conversation via the **+** menu, `@`-mentions, or drag-and-drop from the sidebar. Mothership also opens resources automatically when it creates or modifies them. + +{/* TODO: Screenshot of the resource panel with multiple tabs open — a workflow tab, a table tab, and a file tab — showing different resource types side by side. */} + +| What to add | How it appears | +|-------------|---------------| +| **Workflow** | Interactive canvas in the resource panel | +| **Table** | Full table editor in the resource panel | +| **File** | File viewer with editor, split, and preview modes | +| **Knowledge Base** | Knowledge base management UI | +| **Folder** | Folder contents | +| **Past task** | A previous Mothership conversation | + +## Layout + +Mothership has two panes. On the left: the chat thread, where your messages and Mothership's responses appear. On the right: the resource panel, where workflows, tables, files, and knowledge bases open as tabs. The panel is resizable; tabs are draggable and closeable. + + diff --git a/apps/docs/content/docs/en/mothership/knowledge.mdx b/apps/docs/content/docs/en/mothership/knowledge.mdx new file mode 100644 index 00000000000..1151f873d3f --- /dev/null +++ b/apps/docs/content/docs/en/mothership/knowledge.mdx @@ -0,0 +1,84 @@ +--- +title: Knowledge Bases +description: Create, populate, and query knowledge bases from Mothership. +--- + +import { Image } from '@/components/ui/image' +import { FAQ } from '@/components/ui/faq' + +Create a knowledge base, add documents to it, and query it in plain language — all through conversation. Knowledge bases you create in Mothership are immediately available to Agent blocks in any workflow. + +{/* TODO: Screenshot of Mothership with a knowledge base open in the resource panel — showing the knowledge base name, document list, and status of indexed documents. */} + +## Creating Knowledge Bases + +Describe the knowledge base and Mothership creates it: + +- "Create a knowledge base called 'Product Docs'" +- "Set up a knowledge base for our support team — call it 'Support KB'" +- "Create a competitive intelligence knowledge base" +- "Create a knowledge base from our sales playbook and attach it to the outbound agent workflow" +- "Set up a customer success knowledge base — I'll add our onboarding guides and past case studies to it" + +## Adding Documents + +Add documents by attaching files to your message, pasting text, or pointing Mothership at a URL: + +- "Add this PDF to the Product Docs knowledge base [attach file]" +- "Add the following text to the Support KB as a new document: [paste content]" +- "Fetch the page at [URL] and add it to the competitive intelligence knowledge base" +- "Add these three uploaded case studies to the customer success knowledge base" + +Mothership processes and indexes each document automatically. Once indexed, the content is searchable by any Agent block that has the knowledge base attached. + +{/* TODO: Screenshot of Mothership confirming a document was added and indexed — showing the document name and its indexed status in the knowledge base. */} + +## Querying Knowledge Bases + +Ask Mothership a question and it searches the specified knowledge base to answer: + +- "What does the Product Docs knowledge base say about our refund policy?" +- "Search the Support KB for anything related to SSO setup errors" +- "What are the key differences between our Pro and Enterprise plans, based on the product docs?" +- "Find everything in the competitive intelligence knowledge base about [competitor]'s pricing" + +## Connectors + +For knowledge bases that should stay current automatically, connectors sync content from external services on a schedule — no manual uploads needed. New content is added, changed content is re-processed, and deleted content is removed on every run. + +Connectors are configured through the knowledge base settings, not through Mothership chat. Once connected, all synced content is immediately searchable by Mothership and by any Agent block with the knowledge base attached. + +Sim ships with 30 built-in connectors, including Notion, Google Drive, Slack, GitHub, Confluence, HubSpot, Salesforce, Gmail, and more. + +Examples of what you can sync: + +- **Notion** — sync a workspace, a database, or a specific page tree +- **Google Drive / Dropbox / OneDrive** — sync documents from cloud storage +- **GitHub** — sync a repository's markdown and code files +- **Slack** — sync channel history +- **Confluence / Jira** — sync your internal wiki or issue tracker +- **HubSpot / Salesforce** — sync CRM records into a searchable knowledge base + +See [Connectors](/knowledgebase/connectors) for setup steps, sync frequency options, and managing connector status. + +## Managing Knowledge Bases + +List, inspect, and clean up knowledge bases in plain language: + +- "What knowledge bases are in this workspace?" +- "How many documents are in the Support KB?" +- "Remove the outdated pricing doc from the Product Docs knowledge base" +- "Delete the old-competitive-intel knowledge base" + +## Using Knowledge Bases in Workflows + +Knowledge bases created in Mothership are immediately available to Agent blocks in any workflow. Attach a knowledge base to an Agent block and it will use semantic search to retrieve relevant content at runtime. + +See [Knowledge Base](/knowledgebase) for full details on document processing settings, search configuration, and connector syncing. + + diff --git a/apps/docs/content/docs/en/mothership/meta.json b/apps/docs/content/docs/en/mothership/meta.json new file mode 100644 index 00000000000..767005e2f25 --- /dev/null +++ b/apps/docs/content/docs/en/mothership/meta.json @@ -0,0 +1,4 @@ +{ + "title": "Mothership", + "pages": ["index", "workflows", "research", "files", "tables", "tasks", "knowledge"] +} diff --git a/apps/docs/content/docs/en/mothership/research.mdx b/apps/docs/content/docs/en/mothership/research.mdx new file mode 100644 index 00000000000..482ce32ad61 --- /dev/null +++ b/apps/docs/content/docs/en/mothership/research.mdx @@ -0,0 +1,43 @@ +--- +title: Research +description: Ask Mothership to research anything — it searches, reads, and synthesizes from the web. +--- + +import { Image } from '@/components/ui/image' +import { FAQ } from '@/components/ui/faq' + +Ask Mothership to research anything and it figures out the best approach — searching the web, reading specific pages, crawling sites, looking up technical docs. Just describe what you want to know. + +{/* TODO: Screenshot of the Research subagent section in the Mothership chat — expanded, showing it working through a research task with the final report or answer appearing. Ideally with a file tab open in the resource panel showing the output. */} + +## Asking Questions + +Ask anything — about a company, a competitor, a market, a technical question, or a specific URL: + +- "What did Salesforce, HubSpot, and Gong each ship in the past 30 days? Summarize the key product updates." +- "What's Acme Corp's tech stack, recent hires, and open engineering roles?" +- "Find everything published about [competitor] in the past 90 days — press, product changes, job postings." +- "What are the current rate limits on the Anthropic API?" +- "Read [URL] and tell me what changed in this release" +- "What does Stripe's API say about handling webhooks with idempotency keys?" +- "Who are the main players in AI-powered revenue operations, and how do they differentiate?" + +Mothership returns an answer directly in the chat. For anything that needs a longer written output, ask it to save the result as a file. + +## Research Reports + +When you need a structured, saved document rather than a chat answer, ask Mothership to write it up. It searches, reads, and cross-references multiple sources until it has enough to produce a full report. The output is saved as a file in your workspace and opened in the resource panel. + +{/* TODO: Screenshot of a completed research report open in the resource panel as a file — showing a structured markdown document with sections, findings, and citations. */} + +- "Research the top 10 AI SDR tools — pricing, features, positioning, and what customers say. Save as a competitive analysis." +- "Do a full market landscape for AI in healthcare diagnostics — major players, funding, use cases, and regulatory environment." +- "Research how our top 5 competitors handle multi-tenant auth — pricing, architecture, and any known vulnerabilities. Write it up as a report." +- "Find every public case study on AI agents in financial compliance from the past 2 years. Summarize the key outcomes and save as a markdown file." +- "Build a battle card for [competitor] — their positioning, pricing, strengths, weaknesses, and how we win against them." + + diff --git a/apps/docs/content/docs/en/mothership/tables.mdx b/apps/docs/content/docs/en/mothership/tables.mdx new file mode 100644 index 00000000000..6c7ee1866c0 --- /dev/null +++ b/apps/docs/content/docs/en/mothership/tables.mdx @@ -0,0 +1,60 @@ +--- +title: Tables +description: Create, query, and manage workspace tables from Mothership. +--- + +import { Image } from '@/components/ui/image' +import { FAQ } from '@/components/ui/faq' + +Create a table from a description or a CSV, query it in plain language, add or update rows, and export the results — all through conversation. Tables open in the resource panel when created or referenced. + +{/* TODO: Screenshot of Mothership with a table open in the resource panel — ideally after a query or row operation, showing the table with data populated. */} + +## Creating Tables + +Describe the schema and Mothership creates the table: + +- "Create a leads table with columns for name, email, company, status, and created date" +- "Create a table that matches the structure of this CSV [attach file]" +- "Set up an errors table with: id (text), message (text), workflow (text), timestamp (date), resolved (boolean)" +- "Create a prospect table for outbound — company, domain, employee count, industry, ICP score, and last contacted date" +- "Set up an enrichment results table to store output from the lead enrichment workflow: email, company, title, LinkedIn URL, fit score" + +## Querying Data + +Ask questions about table contents in plain language: + +- "How many rows in the leads table have status 'qualified'?" +- "Show me all records from the past 7 days where score is above 0.8" +- "What are the top 5 most common error messages in the failures table?" +- "Are there any duplicate emails in the contacts table?" +- "How many prospects have an ICP score above 0.75 and haven't been contacted in the past 30 days?" +- "What's the conversion rate from 'contacted' to 'meeting booked' in the pipeline table this month?" + +Mothership translates the question into a structured query and returns the results. + +## Adding and Updating Rows + +Add individual rows, bulk-update based on a condition, or delete records — all in plain language: + +- "Add a row to the leads table: Acme Corp, jane@acme.com, status pending" +- "Mark all rows in the queue table as processed where created_at is before today" +- "Update the price column for all rows where tier is 'pro' to 49" +- "Delete all rows in the test_events table" + +## Exporting + +Export a full table or a filtered subset as a CSV. The file is saved to your workspace and can be downloaded or referenced in other workflows: + +- "Export the leads table to a CSV" +- "Export all rows where status is 'closed' and save as a file" + +## Using Tables in Workflows + +Tables created in Mothership are immediately available in workflows via the [Table tool](/tools/table). Reference a table by name — no additional configuration needed. + + diff --git a/apps/docs/content/docs/en/mothership/tasks.mdx b/apps/docs/content/docs/en/mothership/tasks.mdx new file mode 100644 index 00000000000..b729e0ec2cb --- /dev/null +++ b/apps/docs/content/docs/en/mothership/tasks.mdx @@ -0,0 +1,130 @@ +--- +title: Automation & Configuration +description: Schedule recurring jobs, take immediate actions, connect integrations, and configure your workspace. +--- + +import { Callout } from 'fumadocs-ui/components/callout' +import { Image } from '@/components/ui/image' +import { FAQ } from '@/components/ui/faq' + +Mothership can act on your behalf right now — send a message, create an issue, call an API — or on a schedule, running a prompt automatically every hour, day, or week. It can also connect integrations, set environment variables, add MCP servers, and create custom tools. + +## Scheduled Jobs + +A scheduled job is a Mothership task that runs on a cron schedule. On each run, Mothership reads the current workspace state and executes the job's prompt as if you had just sent it. + +{/* TODO: Screenshot of Mothership chat confirming a scheduled job was created — showing the job name, schedule, and what it will do. If there's a jobs list view in the sidebar, include that as a second screenshot here. */} + +### Creating a Job + +Describe the recurring task and how often it should run: + +- "Every morning at 8am, check the leads table for new entries and post a summary to #sales in Slack" +- "Every Monday at 9am, pull last week's workflow run counts and write a report to the workspace" +- "Run the data sync workflow every 6 hours" +- "On the first of every month, export the billing table to CSV and email it to finance@example.com" +- "Every weekday at 7am, check for new funding announcements from companies in our ICP and post the top 5 to #market-intel in Slack" +- "Every Sunday night, run the lead enrichment workflow on all prospects added in the past week and update their scores in the table" +- "Daily at 6am, pull the previous day's workflow errors, summarize the top issues, and post to #eng-alerts" + +Mothership sets the cron expression and stores the job prompt. The first run happens at the next scheduled time. + +### Viewing Job Logs + +- "Show me the last 5 runs of the weekly report job" +- "Did the sync job run successfully this morning?" +- "What did the Monday digest job do last week?" + +Logs show run time, status (completed, failed), and a summary of what the agent did. + +### Managing Jobs + +- "Pause the morning summary job" +- "Change the sync job to run every 3 hours instead of 6" +- "Delete the onboarding digest job" +- "What scheduled jobs are currently active?" + +## Taking Direct Action + +For requests that should happen right now — without building a workflow — just ask. Mothership acts immediately using the credentials connected to your workspace. + +{/* TODO: Screenshot of Mothership chat showing the "Taking action" subagent label active during a direct action — e.g., posting to Slack or sending an email. Shows the subagent inline in the chat thread. */} + +| Request | What happens | +|---------|-------------| +| "Send a Slack message to #eng that the deploy finished" | Posts to Slack immediately | +| "Email the Q3 report to jane@example.com" | Sends via connected Gmail or Outlook | +| "Create a GitHub issue: auth tokens not rotating on logout" | Opens an issue in the specified repo | +| "Add a contact to HubSpot: Acme Corp, ceo@acme.com" | Creates the contact via HubSpot API | +| "Call the webhook at [URL] with this JSON payload" | Makes the HTTP request | + +If an integration isn't connected, Mothership walks you through connecting it. + +## Connecting Integrations + +Mothership can connect new OAuth integrations and API credentials on demand: + +- "Connect my Google account" +- "Add the Slack workspace for our team" +- "Set up GitHub with my personal access token" + +{/* TODO: Screenshot of Mothership walking through connecting an integration — e.g., the Integration subagent active with an OAuth prompt or confirmation that a credential was connected. */} + +Once connected, credentials are available to Mothership for direct actions and scheduled jobs, and to all workflows in the workspace. + + + Connected credentials are shared across the workspace. Any workflow that uses the same integration will automatically use the same credential. + + +See [Credentials](/credentials) for managing connected accounts. + +## Environment Variables + +Environment variables are workspace-scoped values — API keys, connection strings, and configuration that workflows reference via `{{ENV_VAR}}` syntax rather than hardcoding. Set them once and every workflow in the workspace can use them. + +- "Set the DATABASE_URL environment variable to 'postgres://...'" +- "Add an OPENAI_API_KEY environment variable" +- "Add a WEBHOOK_SECRET variable for the inbound webhook workflow" +- "Update the SCORING_API_URL variable to point to the new endpoint" +- "What environment variables are currently set?" + +{/* TODO: Screenshot of Mothership confirming an environment variable was set — e.g., a response message showing the variable name was saved. */} + +## MCP Servers + +MCP (Model Context Protocol) servers expose tools from external services that Agent blocks can call inside workflows. Connecting an MCP server makes all of its tools available in the workflow editor's tool picker — no custom integration code required. + +Mothership can add and manage MCP servers connected to your workspace: + +- "Add the Stripe MCP server using my API key" +- "Remove the old analytics MCP server" +- "What MCP servers are connected to this workspace?" +- "Update the endpoint for the internal tools MCP server to [URL]" + +Once added, MCP tools appear in the workflow editor's tool picker and can be called from any Agent block. + +{/* TODO: Screenshot of Mothership confirming an MCP server was added or updated — showing the server name and its status. */} + +## Custom Tools + +Custom tools are single HTTP endpoints you define manually — useful for internal APIs and services that don't have a built-in Sim integration or an MCP server. Once created, they appear in the workflow editor alongside built-in tools and can be called from any Agent block. + +Mothership can build custom tools from a description: + +- "Create a custom tool that calls our internal scoring API at [URL] with a POST request and returns the score field" +- "Build a tool for our Zendesk instance that creates a ticket with a subject and body" +- "Create a tool that hits our internal enrichment API with a domain and returns company size, industry, and funding stage" +- "Add a tool that calls our CRM's REST API to look up a contact by email and return their account owner" + +Custom tools appear in the workflow editor and are callable from any Agent block alongside built-in tools. + +{/* TODO: Screenshot of Mothership with the Custom Tool subagent active — showing it building a tool definition. */} + + diff --git a/apps/docs/content/docs/en/mothership/workflows.mdx b/apps/docs/content/docs/en/mothership/workflows.mdx new file mode 100644 index 00000000000..102c60e6fc7 --- /dev/null +++ b/apps/docs/content/docs/en/mothership/workflows.mdx @@ -0,0 +1,122 @@ +--- +title: Workflows +description: Create, edit, run, debug, deploy, and organize workflows from Mothership. +--- + +import { Callout } from 'fumadocs-ui/components/callout' +import { Image } from '@/components/ui/image' +import { FAQ } from '@/components/ui/faq' + +Describe a workflow and Mothership builds it. Reference an existing one by name and it edits it. No canvas navigation required — every change appears in the resource panel in real time. + +{/* TODO: Screenshot of Mothership chat on the left with the Build subagent section visible, and a workflow open in the resource panel on the right. Shows the split-pane experience of building via natural language. */} + +## Creating Workflows + +Describe what the workflow should do — what triggers it, what it should do, which integrations it needs, and what it should return. Mothership builds it and opens the canvas in the resource panel. + +- "Build a workflow that takes a URL, scrapes the page, summarizes it with Claude, and sends the summary to a Slack channel" +- "Create a workflow triggered by a webhook that extracts invoice data from a PDF and writes it to the billing table" +- "Build an outbound workflow: take a company name and domain, enrich it with firmographic data, score the fit, and draft a personalized cold email" +- "Create a lead enrichment workflow that takes an email from a form submission, looks up the company, and writes the enriched record to the leads table" +- "Build a customer onboarding workflow: when a new user signs up, send a welcome email, create a HubSpot contact, and post a notification to #new-customers in Slack" + +## Editing Workflows + +{/* TODO: Screenshot of Mothership with the Edit subagent active and a change applied to an open workflow — e.g., a new block added or a configuration updated, visible on the canvas in the resource panel. */} + +Open an existing workflow with `@workflow-name` or the **+** menu, then describe the change. Mothership reads the current structure before modifying it — you don't need to explain what already exists. + +- "Add a condition that routes to a different branch if the confidence score is below 0.7" +- "Replace the GPT-4o model with Claude Opus 4.6 on the summarizer block" +- "Add a Slack notification at the end that includes the output" + +## Running Workflows + +{/* TODO: Screenshot or GIF of Mothership running a workflow — showing the chat streaming execution output on the left while the workflow canvas in the resource panel highlights blocks as they execute in real time. */} + +Ask Mothership to run a workflow and it handles the execution: + +- "Run the data sync workflow" +- "Run the invoice processor with this PDF [attach file]" +- "Test the lead scoring workflow with these inputs: name=Acme, score=0.4" + +Execution streams back to the chat. The workflow in the resource panel shows live block-by-block state. + +## Reading Logs + +Mothership can retrieve and interpret execution logs for any workflow in the workspace: + +- "Show me the last 10 runs of the pipeline workflow" +- "Why did the invoice workflow fail yesterday?" +- "What did the extractor block return in the most recent run?" + +Logs include per-block execution state, outputs, errors, and timing. + +## Debugging + +When a workflow fails, tell Mothership to debug it: + +- "Debug the last failed run of the content pipeline" +- "The summarizer block is returning empty output — figure out why" + +Mothership reads the failure logs, identifies the cause, applies a fix, and can re-run to confirm. + +{/* TODO: Screenshot of the Debug subagent section in the Mothership chat showing it reading logs and applying a fix. */} + +## Deploying + +Mothership can deploy a workflow as any of the three deployment types: + +| Deployment type | What it creates | +|----------------|----------------| +| **API** | A REST endpoint at `https://sim.ai/api/workflows/{id}/execute` | +| **Chat** | A hosted conversational interface with a shareable URL | +| **MCP tool** | An MCP server that exposes the workflow as a tool | + +Ask: "Deploy the invoice workflow as an API and generate an API key." + +Mothership can also roll back: "Revert the billing workflow to the version from last Tuesday." + +See [API Deployment](/execution/api-deployment) and [Chat Deployment](/execution/chat) for full details on each deployment type. + +## Organizing Workflows + +Mothership can create and manage folders to keep your workspace organized. + +**Folders:** +- "Create a folder called 'Data Pipelines'" +- "Move the invoice workflow into the billing folder" +- "Move the billing folder inside the finance folder" +- "Delete the old-experiments folder" + +**Renaming and moving:** +- "Rename the 'test_v2' workflow to 'lead-scorer'" +- "Move the summarizer workflow to the research folder" + +{/* TODO: Screenshot showing Mothership confirming a folder or workflow organization action — e.g., a message confirming "Moved 'invoice-processor' into 'billing' folder" with the resource panel showing the folder open. */} + +## Workflow Variables + +Mothership can set global variables on a workflow — values accessible across all blocks in that workflow at runtime: + +- "Set the API_ENDPOINT variable on the sync workflow to 'https://api.example.com/v2'" +- "Update the MAX_RETRIES variable on the pipeline workflow to 5" + +Variables set this way are available via `` syntax inside any block in the workflow. + +## Deleting Workflows + +- "Delete the old_api_prototype workflow" +- "Delete all workflows in the deprecated folder" + + + Workflow deletion is permanent. Deployed versions are also removed. There is no recycle bin. + + + diff --git a/apps/docs/content/docs/en/tools/custom-tools.mdx b/apps/docs/content/docs/en/tools/custom-tools.mdx new file mode 100644 index 00000000000..6261af27a80 --- /dev/null +++ b/apps/docs/content/docs/en/tools/custom-tools.mdx @@ -0,0 +1,162 @@ +--- +title: Custom Tools +description: Create your own tools with JavaScript code and use them in Agent blocks +--- + +import { Callout } from 'fumadocs-ui/components/callout' +import { Step, Steps } from 'fumadocs-ui/components/steps' +import { FAQ } from '@/components/ui/faq' + +Custom tools let you write your own JavaScript functions and make them available as callable tools in Agent blocks. This is useful when you need functionality that isn't covered by Sim's built-in integrations — for example, calling an internal API, performing a custom calculation, or transforming data in a specific way. + +## How Custom Tools Work + +A custom tool has two parts: + +1. **Schema** — A JSON definition describing the tool's name, description, and parameters (using the OpenAI function-calling format). This tells the AI agent what the tool does and what inputs it expects. +2. **Code** — A JavaScript function body that runs when the agent calls the tool. Parameters defined in the schema are available as variables in your code. + +When an Agent block has access to a custom tool, the AI model decides when to call it based on the schema description and the conversation context — just like built-in tools. + +## Creating a Custom Tool + + + + +### Open Custom Tools settings + +Navigate to **Settings → Custom Tools** in your workspace and click **Add**. + + + + +### Define the schema + +In the **Schema** tab, define your tool using JSON in the OpenAI function-calling format: + +```json +{ + "type": "function", + "function": { + "name": "get_weather", + "description": "Get the current weather for a city", + "parameters": { + "type": "object", + "properties": { + "city": { + "type": "string", + "description": "The city name" + }, + "units": { + "type": "string", + "enum": ["celsius", "fahrenheit"], + "description": "Temperature units" + } + }, + "required": ["city"] + } + } +} +``` + + + You can use the AI wand button to generate a schema from a natural language description of what the tool should do. + + + + + +### Write the code + +Switch to the **Code** tab and write the JavaScript function body. Parameters from your schema are available directly as variables: + +```javascript +const response = await fetch( + `https://api.openweathermap.org/data/2.5/weather?q=${city}&units=${units === 'celsius' ? 'metric' : 'imperial'}&appid={{OPENWEATHER_API_KEY}}` +); + +const data = await response.json(); + +return { + temperature: data.main.temp, + description: data.weather[0].description, + humidity: data.main.humidity +}; +``` + + + You can also use the AI wand to generate code from a description. Environment variables are referenced with `{{KEY}}` syntax. + + + + + +### Save + +Click **Save** to create the tool. It's now available to use in any Agent block across your workspace. + + + + +## Using Custom Tools in Workflows + +Once created, custom tools appear alongside built-in tools when configuring an Agent block: + +1. Open an Agent block +2. Click **Add Tools** +3. Find your custom tool in the tool list +4. The agent will call the tool when it determines it's relevant to the task + +## Code Environment + +### Available Features + +- **Async/await** — Your code runs in an async context, so you can use `await` directly +- **fetch()** — Make HTTP requests to external APIs +- **Node.js built-ins** — Access to `crypto`, `Buffer`, and other standard modules +- **Environment variables** — Use `{{KEY}}` syntax to inject secrets + +### Limitations + +- **No npm packages** — External libraries like `axios` or `lodash` are not available. Use built-in APIs instead +- **Parameters by name** — Schema parameters are available directly as variables (e.g., `city`), not via a `params` object + +### Returning Results + +Return a value from your code to send it back to the agent: + +```javascript +const result = await fetch(`https://api.example.com/data?q=${query}`); +const data = await result.json(); +return data; +``` + +The returned value becomes the tool output that the agent sees and can use in its response. + +## Managing Custom Tools + +From **Settings → Custom Tools** you can: + +- **Search** tools by name, function name, or description +- **Edit** any tool's schema or code +- **Delete** tools that are no longer needed + + + Deleting a custom tool removes it from all Agent blocks that reference it. Make sure no active workflows depend on the tool before deleting. + + +## Permissions + +| Action | Required Permission | +|--------|-------------------| +| View custom tools | **Read**, **Write**, or **Admin** | +| Create or edit tools | **Write** or **Admin** | +| Delete tools | **Write** or **Admin** | + + diff --git a/apps/docs/content/docs/en/tools/gong.mdx b/apps/docs/content/docs/en/tools/gong.mdx index 34ef1563d6e..954883120ad 100644 --- a/apps/docs/content/docs/en/tools/gong.mdx +++ b/apps/docs/content/docs/en/tools/gong.mdx @@ -409,7 +409,7 @@ Retrieve interaction statistics for users by date range from Gong. Only includes | Parameter | Type | Description | | --------- | ---- | ----------- | -| `peopleInteractionStats` | array | Email address of the Gong user | +| `peopleInteractionStats` | array | Interaction statistics per user. Applicable stat names: 'Longest Monologue', 'Longest Customer Story', 'Interactivity', 'Patience', 'Question Rate'. | | ↳ `userId` | string | Gong's unique numeric identifier for the user | | ↳ `userEmailAddress` | string | Email address of the Gong user | | ↳ `personInteractionStats` | array | List of interaction stat measurements for this user | @@ -656,7 +656,7 @@ Retrieve coaching metrics for a manager from Gong. | Parameter | Type | Description | | --------- | ---- | ----------- | | `requestId` | string | A Gong request reference ID for troubleshooting purposes | -| `coachingData` | array | The manager user information | +| `coachingData` | array | A list of coaching data entries, one per manager's team | | ↳ `manager` | object | The manager user information | | ↳ `id` | string | Gong unique numeric identifier for the user | | ↳ `emailAddress` | string | Email address of the Gong user | diff --git a/apps/docs/content/docs/en/tools/meta.json b/apps/docs/content/docs/en/tools/meta.json index 6f77170985e..1ef36ef015a 100644 --- a/apps/docs/content/docs/en/tools/meta.json +++ b/apps/docs/content/docs/en/tools/meta.json @@ -31,6 +31,7 @@ "confluence", "crowdstrike", "cursor", + "custom-tools", "dagster", "databricks", "datadog", diff --git a/apps/docs/content/docs/en/tools/sharepoint.mdx b/apps/docs/content/docs/en/tools/sharepoint.mdx index d348a0f9084..13027ea8261 100644 --- a/apps/docs/content/docs/en/tools/sharepoint.mdx +++ b/apps/docs/content/docs/en/tools/sharepoint.mdx @@ -87,7 +87,7 @@ Read a specific page from a SharePoint site | ↳ `createdDateTime` | string | When the page was created | | ↳ `lastModifiedDateTime` | string | When the page was last modified | | `pages` | array | List of SharePoint pages | -| ↳ `page` | object | The unique ID of the page | +| ↳ `page` | object | page output from the tool | | ↳ `id` | string | The unique ID of the page | | ↳ `name` | string | The name of the page | | ↳ `title` | string | The title of the page | @@ -95,7 +95,7 @@ Read a specific page from a SharePoint site | ↳ `pageLayout` | string | The layout type of the page | | ↳ `createdDateTime` | string | When the page was created | | ↳ `lastModifiedDateTime` | string | When the page was last modified | -| ↳ `content` | object | Extracted text content from the page | +| ↳ `content` | object | content output from the tool | | ↳ `content` | string | Extracted text content from the page | | ↳ `canvasLayout` | object | Raw SharePoint canvas layout structure | | `content` | object | Content of the SharePoint page | @@ -127,9 +127,9 @@ List details of all SharePoint sites | ↳ `createdDateTime` | string | When the site was created | | ↳ `lastModifiedDateTime` | string | When the site was last modified | | ↳ `isPersonalSite` | boolean | Whether this is a personal site | -| ↳ `root` | object | Server relative URL | +| ↳ `root` | object | root output from the tool | | ↳ `serverRelativeUrl` | string | Server relative URL | -| ↳ `siteCollection` | object | Site collection hostname | +| ↳ `siteCollection` | object | siteCollection output from the tool | | ↳ `hostname` | string | Site collection hostname | | `sites` | array | List of all accessible SharePoint sites | | ↳ `id` | string | The unique ID of the site | diff --git a/apps/docs/content/docs/en/tools/textract.mdx b/apps/docs/content/docs/en/tools/textract.mdx index c654e281ff2..c6062a937c4 100644 --- a/apps/docs/content/docs/en/tools/textract.mdx +++ b/apps/docs/content/docs/en/tools/textract.mdx @@ -66,7 +66,7 @@ Integrate AWS Textract into your workflow to extract text, tables, forms, and ke | ↳ `Confidence` | number | Confidence score \(0-100\) | | ↳ `Page` | number | Page number | | ↳ `Geometry` | object | Location and bounding box information | -| ↳ `BoundingBox` | object | Height as ratio of document height | +| ↳ `BoundingBox` | object | BoundingBox output from the tool | | ↳ `Height` | number | Height as ratio of document height | | ↳ `Left` | number | Left position as ratio of document width | | ↳ `Top` | number | Top position as ratio of document height | diff --git a/apps/docs/content/docs/en/tools/typeform.mdx b/apps/docs/content/docs/en/tools/typeform.mdx index b8a7e97e527..d3e97f913c3 100644 --- a/apps/docs/content/docs/en/tools/typeform.mdx +++ b/apps/docs/content/docs/en/tools/typeform.mdx @@ -96,7 +96,7 @@ Retrieve insights and analytics for Typeform forms | Parameter | Type | Description | | --------- | ---- | ----------- | -| `fields` | array | Number of users who dropped off at this field | +| `fields` | array | Analytics data for individual form fields | | ↳ `dropoffs` | number | Number of users who dropped off at this field | | ↳ `id` | string | Unique field ID | | ↳ `label` | string | Field label | @@ -104,15 +104,15 @@ Retrieve insights and analytics for Typeform forms | ↳ `title` | string | Field title/question | | ↳ `type` | string | Field type \(e.g., short_text, multiple_choice\) | | ↳ `views` | number | Number of times this field was viewed | -| `form` | object | Average completion time for this platform | -| ↳ `platforms` | array | Average completion time for this platform | +| `form` | object | Form-level analytics and performance data | +| ↳ `platforms` | array | Platform-specific analytics data | | ↳ `average_time` | number | Average completion time for this platform | | ↳ `completion_rate` | number | Completion rate for this platform | | ↳ `platform` | string | Platform name \(e.g., desktop, mobile\) | | ↳ `responses_count` | number | Number of responses from this platform | | ↳ `total_visits` | number | Total visits from this platform | | ↳ `unique_visits` | number | Unique visits from this platform | -| ↳ `summary` | object | Overall average completion time | +| ↳ `summary` | object | Overall form performance summary | | ↳ `average_time` | number | Overall average completion time | | ↳ `completion_rate` | number | Overall completion rate | | ↳ `responses_count` | number | Total number of responses | diff --git a/apps/docs/content/docs/en/triggers/airtable.mdx b/apps/docs/content/docs/en/triggers/airtable.mdx new file mode 100644 index 00000000000..f053764c544 --- /dev/null +++ b/apps/docs/content/docs/en/triggers/airtable.mdx @@ -0,0 +1,60 @@ +--- +title: Airtable +description: Available Airtable triggers for automating workflows +--- + +import { BlockInfoCard } from "@/components/ui/block-info-card" + + + +Airtable provides 1 trigger for automating workflows based on events. + +## Triggers + +### Airtable Webhook + +Trigger workflow from Airtable record changes like create, update, and delete events (requires Airtable credentials) + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `triggerCredentials` | string | Yes | This trigger requires airtable credentials to access your account. | +| `baseId` | string | Yes | The ID of the Airtable Base this webhook will monitor. | +| `tableId` | string | Yes | The ID of the table within the Base that the webhook will monitor. | +| `includeCellValues` | boolean | No | Enable to receive the complete record data in the payload, not just changes. | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `payloads` | array | The payloads of the Airtable changes | +| ↳ `timestamp` | string | Timestamp of the change | +| ↳ `baseTransactionNumber` | number | Transaction number | +| `latestPayload` | object | The most recent payload from Airtable | +| ↳ `timestamp` | string | ISO 8601 timestamp of the change | +| ↳ `baseTransactionNumber` | number | Transaction number | +| ↳ `payloadFormat` | string | Payload format version \(e.g., v0\) | +| ↳ `actionMetadata` | object | Metadata about who made the change | +| ↳ `source` | string | Source of the change \(e.g., client, publicApi\) | +| ↳ `sourceMetadata` | object | Source metadata including user info | +| ↳ `user` | object | User who made the change | +| ↳ `id` | string | User ID | +| ↳ `email` | string | User email | +| ↳ `name` | string | User name | +| ↳ `permissionLevel` | string | User permission level | +| ↳ `changedTablesById` | object | Tables that were changed \(keyed by table ID\) | +| ↳ `changedRecordsById` | object | Changed records keyed by record ID | +| ↳ `current` | object | Current state of the record | +| ↳ `cellValuesByFieldId` | object | Cell values keyed by field ID | +| ↳ `createdRecordsById` | object | Created records by ID | +| ↳ `destroyedRecordIds` | array | Array of destroyed record IDs | +| `airtableChanges` | array | Changes made to the Airtable table | +| ↳ `tableId` | string | Table ID | +| ↳ `recordId` | string | Record ID | +| ↳ `changeType` | string | Type of change \(created, changed, destroyed\) | +| ↳ `cellValuesByFieldId` | object | Cell values by field ID | + diff --git a/apps/docs/content/docs/en/triggers/ashby.mdx b/apps/docs/content/docs/en/triggers/ashby.mdx new file mode 100644 index 00000000000..aad15714728 --- /dev/null +++ b/apps/docs/content/docs/en/triggers/ashby.mdx @@ -0,0 +1,185 @@ +--- +title: Ashby +description: Available Ashby triggers for automating workflows +--- + +import { BlockInfoCard } from "@/components/ui/block-info-card" + + + +Ashby provides 6 triggers for automating workflows based on events. + +## Triggers + +### Ashby Application Submitted + +Trigger workflow when a new application is submitted + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `apiKey` | string | Yes | API Key | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `action` | string | The webhook event type \(e.g., applicationSubmit, candidateHire\) | +| `application` | object | application output from the tool | +| ↳ `id` | string | Application UUID | +| ↳ `createdAt` | string | Application creation timestamp \(ISO 8601\) | +| ↳ `updatedAt` | string | Application last update timestamp \(ISO 8601\) | +| ↳ `status` | string | Application status \(Active, Hired, Archived, Lead\) | +| ↳ `candidate` | object | candidate output from the tool | +| ↳ `id` | string | Candidate UUID | +| ↳ `name` | string | Candidate name | +| ↳ `currentInterviewStage` | object | currentInterviewStage output from the tool | +| ↳ `id` | string | Current interview stage UUID | +| ↳ `title` | string | Current interview stage title | +| ↳ `job` | object | job output from the tool | +| ↳ `id` | string | Job UUID | +| ↳ `title` | string | Job title | + + +--- + +### Ashby Candidate Deleted + +Trigger workflow when a candidate is deleted + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `apiKey` | string | Yes | API Key | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `action` | string | The webhook event type \(e.g., applicationSubmit, candidateHire\) | +| `candidate` | object | candidate output from the tool | +| ↳ `id` | string | Deleted candidate UUID | + + +--- + +### Ashby Candidate Hired + +Trigger workflow when a candidate is hired + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `apiKey` | string | Yes | API Key | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `action` | string | The webhook event type \(e.g., applicationSubmit, candidateHire\) | +| `application` | object | application output from the tool | +| ↳ `id` | string | Application UUID | +| ↳ `createdAt` | string | Application creation timestamp \(ISO 8601\) | +| ↳ `updatedAt` | string | Application last update timestamp \(ISO 8601\) | +| ↳ `status` | string | Application status \(Hired\) | +| ↳ `candidate` | object | candidate output from the tool | +| ↳ `id` | string | Candidate UUID | +| ↳ `name` | string | Candidate name | +| ↳ `currentInterviewStage` | object | currentInterviewStage output from the tool | +| ↳ `id` | string | Current interview stage UUID | +| ↳ `title` | string | Current interview stage title | +| ↳ `job` | object | job output from the tool | +| ↳ `id` | string | Job UUID | +| ↳ `title` | string | Job title | + + +--- + +### Ashby Candidate Stage Change + +Trigger workflow when a candidate changes interview stages + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `apiKey` | string | Yes | API Key | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `action` | string | The webhook event type \(e.g., applicationSubmit, candidateHire\) | +| `application` | object | application output from the tool | +| ↳ `id` | string | Application UUID | +| ↳ `createdAt` | string | Application creation timestamp \(ISO 8601\) | +| ↳ `updatedAt` | string | Application last update timestamp \(ISO 8601\) | +| ↳ `status` | string | Application status \(Active, Hired, Archived, Lead\) | +| ↳ `candidate` | object | candidate output from the tool | +| ↳ `id` | string | Candidate UUID | +| ↳ `name` | string | Candidate name | +| ↳ `currentInterviewStage` | object | currentInterviewStage output from the tool | +| ↳ `id` | string | Current interview stage UUID | +| ↳ `title` | string | Current interview stage title | +| ↳ `job` | object | job output from the tool | +| ↳ `id` | string | Job UUID | +| ↳ `title` | string | Job title | + + +--- + +### Ashby Job Created + +Trigger workflow when a new job is created + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `apiKey` | string | Yes | API Key | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `action` | string | The webhook event type \(e.g., applicationSubmit, candidateHire\) | +| `job` | object | job output from the tool | +| ↳ `id` | string | Job UUID | +| ↳ `title` | string | Job title | +| ↳ `confidential` | boolean | Whether the job is confidential | +| ↳ `status` | string | Job status \(Open, Closed, Draft, Archived\) | +| ↳ `employmentType` | string | Employment type \(Full-time, Part-time, etc.\) | + + +--- + +### Ashby Offer Created + +Trigger workflow when a new offer is created + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `apiKey` | string | Yes | API Key | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `action` | string | The webhook event type \(e.g., applicationSubmit, candidateHire\) | +| `offer` | object | offer output from the tool | +| ↳ `id` | string | Offer UUID | +| ↳ `applicationId` | string | Associated application UUID | +| ↳ `acceptanceStatus` | string | Offer acceptance status \(Accepted, Declined, Pending, Created, Cancelled, WaitingOnResponse\) | +| ↳ `offerStatus` | string | Offer process status \(WaitingOnApprovalStart, WaitingOnOfferApproval, WaitingOnCandidateResponse, CandidateAccepted, CandidateRejected, OfferCancelled\) | +| ↳ `decidedAt` | string | Offer decision timestamp \(ISO 8601\). Typically null at creation; populated after candidate responds. | +| ↳ `latestVersion` | object | latestVersion output from the tool | +| ↳ `id` | string | Latest offer version UUID | + diff --git a/apps/docs/content/docs/en/triggers/attio.mdx b/apps/docs/content/docs/en/triggers/attio.mdx new file mode 100644 index 00000000000..7d7418d36b1 --- /dev/null +++ b/apps/docs/content/docs/en/triggers/attio.mdx @@ -0,0 +1,513 @@ +--- +title: Attio +description: Available Attio triggers for automating workflows +--- + +import { BlockInfoCard } from "@/components/ui/block-info-card" + + + +Attio provides 22 triggers for automating workflows based on events. + +## Triggers + +### Attio Comment Created + +Trigger workflow when a new comment is created in Attio + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `triggerCredentials` | string | Yes | Attio Account | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `eventType` | string | The type of event \(e.g. record.created, note.created\) | +| `workspaceId` | string | The workspace ID | +| `threadId` | string | The thread ID | +| `commentId` | string | The comment ID | +| `objectId` | string | The object type ID | +| `recordId` | string | The record ID | +| `listId` | string | The list ID \(if comment is on a list entry\) | +| `entryId` | string | The list entry ID \(if comment is on a list entry\) | + + +--- + +### Attio Comment Deleted + +Trigger workflow when a comment is deleted in Attio + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `triggerCredentials` | string | Yes | Attio Account | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `eventType` | string | The type of event \(e.g. record.created, note.created\) | +| `workspaceId` | string | The workspace ID | +| `threadId` | string | The thread ID | +| `commentId` | string | The comment ID | +| `objectId` | string | The object type ID | +| `recordId` | string | The record ID | +| `listId` | string | The list ID \(if comment is on a list entry\) | +| `entryId` | string | The list entry ID \(if comment is on a list entry\) | + + +--- + +### Attio Comment Resolved + +Trigger workflow when a comment thread is resolved in Attio + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `triggerCredentials` | string | Yes | Attio Account | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `eventType` | string | The type of event \(e.g. record.created, note.created\) | +| `workspaceId` | string | The workspace ID | +| `threadId` | string | The thread ID | +| `commentId` | string | The comment ID | +| `objectId` | string | The object type ID | +| `recordId` | string | The record ID | +| `listId` | string | The list ID \(if comment is on a list entry\) | +| `entryId` | string | The list entry ID \(if comment is on a list entry\) | + + +--- + +### Attio Comment Unresolved + +Trigger workflow when a comment thread is unresolved in Attio + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `triggerCredentials` | string | Yes | Attio Account | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `eventType` | string | The type of event \(e.g. record.created, note.created\) | +| `workspaceId` | string | The workspace ID | +| `threadId` | string | The thread ID | +| `commentId` | string | The comment ID | +| `objectId` | string | The object type ID | +| `recordId` | string | The record ID | +| `listId` | string | The list ID \(if comment is on a list entry\) | +| `entryId` | string | The list entry ID \(if comment is on a list entry\) | + + +--- + +### Attio List Created + +Trigger workflow when a list is created in Attio + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `triggerCredentials` | string | Yes | Attio Account | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `eventType` | string | The type of event \(e.g. record.created, note.created\) | +| `workspaceId` | string | The workspace ID | +| `listId` | string | The list ID | + + +--- + +### Attio List Deleted + +Trigger workflow when a list is deleted in Attio + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `triggerCredentials` | string | Yes | Attio Account | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `eventType` | string | The type of event \(e.g. record.created, note.created\) | +| `workspaceId` | string | The workspace ID | +| `listId` | string | The list ID | + + +--- + +### Attio List Entry Created + +Trigger workflow when a new list entry is created in Attio + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `triggerCredentials` | string | Yes | Attio Account | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `eventType` | string | The type of event \(e.g. record.created, note.created\) | +| `workspaceId` | string | The workspace ID | +| `listId` | string | The list ID | +| `entryId` | string | The list entry ID | + + +--- + +### Attio List Entry Deleted + +Trigger workflow when a list entry is deleted in Attio + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `triggerCredentials` | string | Yes | Attio Account | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `eventType` | string | The type of event \(e.g. record.created, note.created\) | +| `workspaceId` | string | The workspace ID | +| `listId` | string | The list ID | +| `entryId` | string | The list entry ID | + + +--- + +### Attio List Entry Updated + +Trigger workflow when a list entry is updated in Attio + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `triggerCredentials` | string | Yes | Attio Account | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `eventType` | string | The type of event \(e.g. record.created, note.created\) | +| `workspaceId` | string | The workspace ID | +| `listId` | string | The list ID | +| `entryId` | string | The list entry ID | +| `attributeId` | string | The ID of the attribute that was updated on the list entry | + + +--- + +### Attio List Updated + +Trigger workflow when a list is updated in Attio + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `triggerCredentials` | string | Yes | Attio Account | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `eventType` | string | The type of event \(e.g. record.created, note.created\) | +| `workspaceId` | string | The workspace ID | +| `listId` | string | The list ID | + + +--- + +### Attio Note Created + +Trigger workflow when a new note is created in Attio + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `triggerCredentials` | string | Yes | Attio Account | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `eventType` | string | The type of event \(e.g. record.created, note.created\) | +| `workspaceId` | string | The workspace ID | +| `noteId` | string | The note ID | +| `parentObjectId` | string | The parent object type ID | +| `parentRecordId` | string | The parent record ID | + + +--- + +### Attio Note Deleted + +Trigger workflow when a note is deleted in Attio + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `triggerCredentials` | string | Yes | Attio Account | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `eventType` | string | The type of event \(e.g. record.created, note.created\) | +| `workspaceId` | string | The workspace ID | +| `noteId` | string | The note ID | +| `parentObjectId` | string | The parent object type ID | +| `parentRecordId` | string | The parent record ID | + + +--- + +### Attio Note Updated + +Trigger workflow when a note is updated in Attio + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `triggerCredentials` | string | Yes | Attio Account | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `eventType` | string | The type of event \(e.g. record.created, note.created\) | +| `workspaceId` | string | The workspace ID | +| `noteId` | string | The note ID | +| `parentObjectId` | string | The parent object type ID | +| `parentRecordId` | string | The parent record ID | + + +--- + +### Attio Record Created + +Trigger workflow when a new record is created in Attio + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `triggerCredentials` | string | Yes | Attio Account | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `eventType` | string | The type of event \(e.g. record.created, note.created\) | +| `workspaceId` | string | The workspace ID | +| `objectId` | string | The object type ID \(e.g. people, companies\) | +| `recordId` | string | The record ID | + + +--- + +### Attio Record Deleted + +Trigger workflow when a record is deleted in Attio + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `triggerCredentials` | string | Yes | Attio Account | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `eventType` | string | The type of event \(e.g. record.created, note.created\) | +| `workspaceId` | string | The workspace ID | +| `objectId` | string | The object type ID \(e.g. people, companies\) | +| `recordId` | string | The record ID | + + +--- + +### Attio Record Merged + +Trigger workflow when two records are merged in Attio + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `triggerCredentials` | string | Yes | Attio Account | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `eventType` | string | The type of event \(e.g. record.created, note.created\) | +| `workspaceId` | string | The workspace ID | +| `objectId` | string | The object type ID of the surviving record | +| `recordId` | string | The surviving record ID after merge | +| `duplicateObjectId` | string | The object type ID of the merged-away record | +| `duplicateRecordId` | string | The record ID that was merged away | + + +--- + +### Attio Record Updated + +Trigger workflow when a record is updated in Attio + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `triggerCredentials` | string | Yes | Attio Account | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `eventType` | string | The type of event \(e.g. record.created, note.created\) | +| `workspaceId` | string | The workspace ID | +| `objectId` | string | The object type ID \(e.g. people, companies\) | +| `recordId` | string | The record ID | +| `attributeId` | string | The ID of the attribute that was updated on the record | + + +--- + +### Attio Task Created + +Trigger workflow when a new task is created in Attio + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `triggerCredentials` | string | Yes | Attio Account | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `eventType` | string | The type of event \(e.g. record.created, note.created\) | +| `workspaceId` | string | The workspace ID | +| `taskId` | string | The task ID | + + +--- + +### Attio Task Deleted + +Trigger workflow when a task is deleted in Attio + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `triggerCredentials` | string | Yes | Attio Account | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `eventType` | string | The type of event \(e.g. record.created, note.created\) | +| `workspaceId` | string | The workspace ID | +| `taskId` | string | The task ID | + + +--- + +### Attio Task Updated + +Trigger workflow when a task is updated in Attio + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `triggerCredentials` | string | Yes | Attio Account | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `eventType` | string | The type of event \(e.g. record.created, note.created\) | +| `workspaceId` | string | The workspace ID | +| `taskId` | string | The task ID | + + +--- + +### Attio Webhook (All Events) + +Trigger workflow on any Attio webhook event + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `triggerCredentials` | string | Yes | Attio Account | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `eventType` | string | The type of event \(e.g. record.created, note.created\) | +| `id` | json | The event ID object containing resource identifiers | +| `parentObjectId` | string | The parent object type ID \(if applicable\) | +| `parentRecordId` | string | The parent record ID \(if applicable\) | + + +--- + +### Attio Workspace Member Created + +Trigger workflow when a new member is added to the Attio workspace + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `triggerCredentials` | string | Yes | Attio Account | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `eventType` | string | The type of event \(e.g. record.created, note.created\) | +| `workspaceId` | string | The workspace ID | +| `workspaceMemberId` | string | The workspace member ID | + diff --git a/apps/docs/content/docs/en/triggers/calcom.mdx b/apps/docs/content/docs/en/triggers/calcom.mdx new file mode 100644 index 00000000000..cdd8a94c1a5 --- /dev/null +++ b/apps/docs/content/docs/en/triggers/calcom.mdx @@ -0,0 +1,293 @@ +--- +title: Cal.com +description: Available Cal.com triggers for automating workflows +--- + +import { BlockInfoCard } from "@/components/ui/block-info-card" + + + +Cal.com provides 9 triggers for automating workflows based on events. + +## Triggers + +### CalCom Booking Cancelled + +Trigger workflow when a booking is cancelled in Cal.com + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `webhookSecret` | string | No | Used to verify webhook requests via X-Cal-Signature-256 header. | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `triggerEvent` | string | The webhook event type | +| `createdAt` | string | When the webhook event was created \(ISO 8601\) | +| `payload` | object | payload output from the tool | +| ↳ `title` | string | Booking title | +| ↳ `description` | string | Booking description | +| ↳ `eventTypeId` | number | Event type ID | +| ↳ `startTime` | string | Booking start time \(ISO 8601\) | +| ↳ `endTime` | string | Booking end time \(ISO 8601\) | +| ↳ `uid` | string | Unique booking identifier | +| ↳ `bookingId` | number | Numeric booking ID | +| ↳ `status` | string | Booking status | +| ↳ `location` | string | Meeting location or URL | +| ↳ `cancellationReason` | string | Reason for cancellation | +| ↳ `responses` | json | Booking form responses | +| ↳ `metadata` | json | Custom metadata attached to the booking | + + +--- + +### CalCom Booking Created + +Trigger workflow when a new booking is created in Cal.com + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `webhookSecret` | string | No | Used to verify webhook requests via X-Cal-Signature-256 header. | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `triggerEvent` | string | The webhook event type | +| `createdAt` | string | When the webhook event was created \(ISO 8601\) | +| `payload` | object | payload output from the tool | +| ↳ `title` | string | Booking title | +| ↳ `description` | string | Booking description | +| ↳ `eventTypeId` | number | Event type ID | +| ↳ `startTime` | string | Booking start time \(ISO 8601\) | +| ↳ `endTime` | string | Booking end time \(ISO 8601\) | +| ↳ `uid` | string | Unique booking identifier | +| ↳ `bookingId` | number | Numeric booking ID | +| ↳ `status` | string | Booking status | +| ↳ `location` | string | Meeting location or URL | +| ↳ `responses` | json | Booking form responses \(dynamic - fields depend on your event type configuration\) | +| ↳ `metadata` | json | Custom metadata attached to the booking \(dynamic - user-defined key-value pairs\) | +| ↳ `videoCallData` | json | Video call details \(structure varies by provider\) | + + +--- + +### CalCom Booking Paid + +Trigger workflow when payment is completed for a paid booking + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `webhookSecret` | string | No | Used to verify webhook requests via X-Cal-Signature-256 header. | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `triggerEvent` | string | The webhook event type \(BOOKING_PAID\) | +| `createdAt` | string | When the webhook event was created \(ISO 8601\) | +| `payload` | object | payload output from the tool | +| ↳ `title` | string | Booking title | +| ↳ `description` | string | Booking description | +| ↳ `eventTypeId` | number | Event type ID | +| ↳ `startTime` | string | Booking start time \(ISO 8601\) | +| ↳ `endTime` | string | Booking end time \(ISO 8601\) | +| ↳ `uid` | string | Unique booking identifier | +| ↳ `bookingId` | number | Numeric booking ID | +| ↳ `status` | string | Booking status | +| ↳ `location` | string | Meeting location or URL | +| ↳ `payment` | object | Payment details | +| ↳ `id` | string | Payment ID | +| ↳ `amount` | number | Payment amount | +| ↳ `currency` | string | Payment currency | +| ↳ `success` | boolean | Whether payment succeeded | +| ↳ `metadata` | json | Custom metadata attached to the booking | + + +--- + +### CalCom Booking Rejected + +Trigger workflow when a booking request is rejected by the host + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `webhookSecret` | string | No | Used to verify webhook requests via X-Cal-Signature-256 header. | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `triggerEvent` | string | The webhook event type \(BOOKING_REJECTED\) | +| `createdAt` | string | When the webhook event was created \(ISO 8601\) | +| `payload` | object | payload output from the tool | +| ↳ `title` | string | Booking title | +| ↳ `description` | string | Booking description | +| ↳ `eventTypeId` | number | Event type ID | +| ↳ `startTime` | string | Requested start time \(ISO 8601\) | +| ↳ `endTime` | string | Requested end time \(ISO 8601\) | +| ↳ `uid` | string | Unique booking identifier | +| ↳ `bookingId` | number | Numeric booking ID | +| ↳ `status` | string | Booking status \(rejected\) | +| ↳ `rejectionReason` | string | Reason for rejection provided by host | +| ↳ `metadata` | json | Custom metadata attached to the booking | + + +--- + +### CalCom Booking Requested + +Trigger workflow when a booking request is submitted (pending confirmation) + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `webhookSecret` | string | No | Used to verify webhook requests via X-Cal-Signature-256 header. | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `triggerEvent` | string | The webhook event type \(BOOKING_REQUESTED\) | +| `createdAt` | string | When the webhook event was created \(ISO 8601\) | +| `payload` | object | payload output from the tool | +| ↳ `title` | string | Booking title | +| ↳ `description` | string | Booking description | +| ↳ `eventTypeId` | number | Event type ID | +| ↳ `startTime` | string | Requested start time \(ISO 8601\) | +| ↳ `endTime` | string | Requested end time \(ISO 8601\) | +| ↳ `uid` | string | Unique booking identifier | +| ↳ `bookingId` | number | Numeric booking ID | +| ↳ `status` | string | Booking status \(pending\) | +| ↳ `location` | string | Meeting location or URL | +| ↳ `responses` | json | Booking form responses | +| ↳ `metadata` | json | Custom metadata attached to the booking | + + +--- + +### CalCom Booking Rescheduled + +Trigger workflow when a booking is rescheduled in Cal.com + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `webhookSecret` | string | No | Used to verify webhook requests via X-Cal-Signature-256 header. | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `triggerEvent` | string | The webhook event type | +| `createdAt` | string | When the webhook event was created \(ISO 8601\) | +| `payload` | object | payload output from the tool | +| ↳ `title` | string | Booking title | +| ↳ `description` | string | Booking description | +| ↳ `eventTypeId` | number | Event type ID | +| ↳ `startTime` | string | New booking start time \(ISO 8601\) | +| ↳ `endTime` | string | New booking end time \(ISO 8601\) | +| ↳ `uid` | string | Unique booking identifier | +| ↳ `bookingId` | number | Numeric booking ID | +| ↳ `status` | string | Booking status | +| ↳ `location` | string | Meeting location or URL | +| ↳ `rescheduleId` | number | Previous booking ID | +| ↳ `rescheduleUid` | string | Previous booking UID | +| ↳ `rescheduleStartTime` | string | Original start time \(ISO 8601\) | +| ↳ `rescheduleEndTime` | string | Original end time \(ISO 8601\) | +| ↳ `responses` | json | Booking form responses | +| ↳ `metadata` | json | Custom metadata attached to the booking | + + +--- + +### CalCom Meeting Ended + +Trigger workflow when a Cal.com meeting ends + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `webhookSecret` | string | No | Used to verify webhook requests via X-Cal-Signature-256 header. | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `triggerEvent` | string | The webhook event type \(MEETING_ENDED\) | +| `createdAt` | string | When the webhook event was created \(ISO 8601\) | +| `payload` | object | payload output from the tool | +| ↳ `title` | string | Meeting title | +| ↳ `eventTypeId` | number | Event type ID | +| ↳ `startTime` | string | Meeting start time \(ISO 8601\) | +| ↳ `endTime` | string | Meeting end time \(ISO 8601\) | +| ↳ `uid` | string | Unique booking identifier | +| ↳ `bookingId` | number | Numeric booking ID | +| ↳ `duration` | number | Actual meeting duration in minutes | +| ↳ `videoCallData` | json | Video call details | + + +--- + +### CalCom Recording Ready + +Trigger workflow when a meeting recording is ready for download + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `webhookSecret` | string | No | Used to verify webhook requests via X-Cal-Signature-256 header. | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `triggerEvent` | string | The webhook event type \(RECORDING_READY\) | +| `createdAt` | string | When the webhook event was created \(ISO 8601\) | +| `payload` | object | payload output from the tool | +| ↳ `title` | string | Meeting title | +| ↳ `eventTypeId` | number | Event type ID | +| ↳ `startTime` | string | Meeting start time \(ISO 8601\) | +| ↳ `endTime` | string | Meeting end time \(ISO 8601\) | +| ↳ `uid` | string | Unique booking identifier | +| ↳ `bookingId` | number | Numeric booking ID | +| ↳ `recordingUrl` | string | URL to download the recording | +| ↳ `transcription` | string | Meeting transcription text \(if available\) | + + +--- + +### CalCom Webhook (All Events) + +Trigger workflow on any Cal.com webhook event (configure event types in Cal.com) + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `webhookSecret` | string | No | Used to verify webhook requests via X-Cal-Signature-256 header. | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `triggerEvent` | string | The webhook event type \(e.g., BOOKING_CREATED, MEETING_ENDED\) | +| `createdAt` | string | When the webhook event was created \(ISO 8601\) | +| `payload` | json | Complete webhook payload \(structure varies by event type\) | + diff --git a/apps/docs/content/docs/en/triggers/calendly.mdx b/apps/docs/content/docs/en/triggers/calendly.mdx new file mode 100644 index 00000000000..7d29e5c916f --- /dev/null +++ b/apps/docs/content/docs/en/triggers/calendly.mdx @@ -0,0 +1,181 @@ +--- +title: Calendly +description: Available Calendly triggers for automating workflows +--- + +import { BlockInfoCard } from "@/components/ui/block-info-card" + + + +Calendly provides 4 triggers for automating workflows based on events. + +## Triggers + +### Calendly Invitee Canceled + +Trigger workflow when someone cancels a scheduled event on Calendly + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `apiKey` | string | Yes | Personal Access Token | +| `organization` | string | Yes | Organization URI for the webhook subscription. Get this from | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `event` | string | Event type \(invitee.created or invitee.canceled\) | +| `created_at` | string | Webhook event creation timestamp | +| `created_by` | string | URI of the Calendly user who created this webhook | +| `payload` | object | payload output from the tool | +| ↳ `uri` | string | Invitee URI | +| ↳ `email` | string | Invitee email address | +| ↳ `name` | string | Invitee full name | +| ↳ `first_name` | string | Invitee first name | +| ↳ `last_name` | string | Invitee last name | +| ↳ `status` | string | Invitee status \(active or canceled\) | +| ↳ `timezone` | string | Invitee timezone | +| ↳ `event` | string | Scheduled event URI | +| ↳ `text_reminder_number` | string | Phone number for text reminders | +| ↳ `rescheduled` | boolean | Whether this invitee rescheduled | +| ↳ `old_invitee` | string | URI of the old invitee \(if rescheduled\) | +| ↳ `new_invitee` | string | URI of the new invitee \(if rescheduled\) | +| ↳ `cancel_url` | string | URL to cancel the event | +| ↳ `reschedule_url` | string | URL to reschedule the event | +| ↳ `created_at` | string | Invitee creation timestamp | +| ↳ `updated_at` | string | Invitee last update timestamp | +| ↳ `canceled` | boolean | Whether the event was canceled | +| ↳ `cancellation` | object | Cancellation details | +| ↳ `canceled_by` | string | Who canceled the event | +| ↳ `reason` | string | Cancellation reason | +| ↳ `payment` | object | Payment details | +| ↳ `id` | string | Payment ID | +| ↳ `provider` | string | Payment provider | +| ↳ `amount` | number | Payment amount | +| ↳ `currency` | string | Payment currency | +| ↳ `terms` | string | Payment terms | +| ↳ `successful` | boolean | Whether payment was successful | +| ↳ `no_show` | object | No-show details | +| ↳ `created_at` | string | No-show marked timestamp | +| ↳ `reconfirmation` | object | Reconfirmation details | +| ↳ `created_at` | string | Reconfirmation timestamp | +| ↳ `confirmed_at` | string | Confirmation timestamp | + + +--- + +### Calendly Invitee Created + +Trigger workflow when someone schedules a new event on Calendly + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `apiKey` | string | Yes | Personal Access Token | +| `organization` | string | Yes | Organization URI for the webhook subscription. Get this from | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `event` | string | Event type \(invitee.created or invitee.canceled\) | +| `created_at` | string | Webhook event creation timestamp | +| `created_by` | string | URI of the Calendly user who created this webhook | +| `payload` | object | payload output from the tool | +| ↳ `uri` | string | Invitee URI | +| ↳ `email` | string | Invitee email address | +| ↳ `name` | string | Invitee full name | +| ↳ `first_name` | string | Invitee first name | +| ↳ `last_name` | string | Invitee last name | +| ↳ `status` | string | Invitee status \(active or canceled\) | +| ↳ `timezone` | string | Invitee timezone | +| ↳ `event` | string | Scheduled event URI | +| ↳ `text_reminder_number` | string | Phone number for text reminders | +| ↳ `rescheduled` | boolean | Whether this invitee rescheduled | +| ↳ `old_invitee` | string | URI of the old invitee \(if rescheduled\) | +| ↳ `new_invitee` | string | URI of the new invitee \(if rescheduled\) | +| ↳ `cancel_url` | string | URL to cancel the event | +| ↳ `reschedule_url` | string | URL to reschedule the event | +| ↳ `created_at` | string | Invitee creation timestamp | +| ↳ `updated_at` | string | Invitee last update timestamp | +| ↳ `canceled` | boolean | Whether the event was canceled | +| ↳ `cancellation` | object | Cancellation details | +| ↳ `canceled_by` | string | Who canceled the event | +| ↳ `reason` | string | Cancellation reason | +| ↳ `payment` | object | Payment details | +| ↳ `id` | string | Payment ID | +| ↳ `provider` | string | Payment provider | +| ↳ `amount` | number | Payment amount | +| ↳ `currency` | string | Payment currency | +| ↳ `terms` | string | Payment terms | +| ↳ `successful` | boolean | Whether payment was successful | +| ↳ `no_show` | object | No-show details | +| ↳ `created_at` | string | No-show marked timestamp | +| ↳ `reconfirmation` | object | Reconfirmation details | +| ↳ `created_at` | string | Reconfirmation timestamp | +| ↳ `confirmed_at` | string | Confirmation timestamp | + + +--- + +### Calendly Routing Form Submitted + +Trigger workflow when someone submits a Calendly routing form + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `apiKey` | string | Yes | Personal Access Token | +| `organization` | string | Yes | Organization URI for the webhook subscription. Get this from | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `event` | string | Event type \(routing_form_submission.created\) | +| `created_at` | string | Webhook event creation timestamp | +| `created_by` | string | URI of the Calendly user who created this webhook | +| `payload` | object | payload output from the tool | +| ↳ `uri` | string | Routing form submission URI | +| ↳ `routing_form` | string | Routing form URI | +| ↳ `submitter` | object | Submitter details | +| ↳ `uri` | string | Submitter URI | +| ↳ `email` | string | Submitter email address | +| ↳ `name` | string | Submitter full name | +| ↳ `submitter_type` | string | Type of submitter | +| ↳ `result` | object | Routing result details | +| ↳ `type` | string | Result type \(event_type, custom_message, or external_url\) | +| ↳ `value` | string | Result value \(event type URI, message, or URL\) | +| ↳ `created_at` | string | Submission creation timestamp | +| ↳ `updated_at` | string | Submission last update timestamp | + + +--- + +### Calendly Webhook + +Trigger workflow from any Calendly webhook event + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `apiKey` | string | Yes | Personal Access Token | +| `organization` | string | Yes | Organization URI for the webhook subscription. Get this from | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `event` | string | Event type \(invitee.created, invitee.canceled, or routing_form_submission.created\) | +| `created_at` | string | Webhook event creation timestamp | +| `created_by` | string | URI of the Calendly user who created this webhook | +| `payload` | object | Complete event payload \(structure varies by event type\) | + diff --git a/apps/docs/content/docs/en/triggers/circleback.mdx b/apps/docs/content/docs/en/triggers/circleback.mdx new file mode 100644 index 00000000000..28e389317ea --- /dev/null +++ b/apps/docs/content/docs/en/triggers/circleback.mdx @@ -0,0 +1,163 @@ +--- +title: Circleback +description: Available Circleback triggers for automating workflows +--- + +import { BlockInfoCard } from "@/components/ui/block-info-card" + + + +Circleback provides 3 triggers for automating workflows based on events. + +## Triggers + +### Circleback Meeting Completed + +Trigger workflow when a meeting is processed and ready in Circleback + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `webhookSecret` | string | No | Validates that webhook deliveries originate from Circleback using HMAC-SHA256. | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `id` | number | Circleback meeting ID | +| `name` | string | Meeting title/name | +| `url` | string | URL of the virtual meeting \(Zoom, Google Meet, Teams, etc.\) | +| `createdAt` | string | ISO8601 timestamp when meeting was created | +| `duration` | number | Meeting duration in seconds | +| `recordingUrl` | string | Recording URL \(valid for 24 hours, if enabled\) | +| `tags` | array | Array of tag strings | +| `icalUid` | string | Calendar event identifier | +| `attendees` | array | Array of attendee objects with name and email | +| ↳ `name` | string | Attendee name | +| ↳ `email` | string | Attendee email address | +| `notes` | string | Meeting notes in Markdown format | +| `actionItems` | array | Array of action item objects | +| ↳ `id` | number | Action item ID | +| ↳ `title` | string | Action item title | +| ↳ `description` | string | Action item description | +| ↳ `assignee` | object | Person assigned to the action item \(or null\) | +| ↳ `name` | string | Assignee name | +| ↳ `email` | string | Assignee email | +| ↳ `status` | string | Status: PENDING or DONE | +| `transcript` | array | Array of transcript segments | +| ↳ `speaker` | string | Speaker name | +| ↳ `text` | string | Transcript text | +| ↳ `timestamp` | number | Timestamp in seconds | +| `insights` | object | User-created insights keyed by insight name | +| `meeting` | object | Full meeting payload object | +| ↳ `id` | number | Meeting ID | +| ↳ `name` | string | Meeting name | +| ↳ `url` | string | Meeting URL | +| ↳ `duration` | number | Duration in seconds | +| ↳ `createdAt` | string | Creation timestamp | +| ↳ `recordingUrl` | string | Recording URL | + + +--- + +### Circleback Meeting Notes Ready + +Trigger workflow when meeting notes and action items are ready + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `webhookSecret` | string | No | Validates that webhook deliveries originate from Circleback using HMAC-SHA256. | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `id` | number | Circleback meeting ID | +| `name` | string | Meeting title/name | +| `url` | string | URL of the virtual meeting \(Zoom, Google Meet, Teams, etc.\) | +| `createdAt` | string | ISO8601 timestamp when meeting was created | +| `duration` | number | Meeting duration in seconds | +| `recordingUrl` | string | Recording URL \(valid for 24 hours, if enabled\) | +| `tags` | array | Array of tag strings | +| `icalUid` | string | Calendar event identifier | +| `attendees` | array | Array of attendee objects with name and email | +| ↳ `name` | string | Attendee name | +| ↳ `email` | string | Attendee email address | +| `notes` | string | Meeting notes in Markdown format | +| `actionItems` | array | Array of action item objects | +| ↳ `id` | number | Action item ID | +| ↳ `title` | string | Action item title | +| ↳ `description` | string | Action item description | +| ↳ `assignee` | object | Person assigned to the action item \(or null\) | +| ↳ `name` | string | Assignee name | +| ↳ `email` | string | Assignee email | +| ↳ `status` | string | Status: PENDING or DONE | +| `transcript` | array | Array of transcript segments | +| ↳ `speaker` | string | Speaker name | +| ↳ `text` | string | Transcript text | +| ↳ `timestamp` | number | Timestamp in seconds | +| `insights` | object | User-created insights keyed by insight name | +| `meeting` | object | Full meeting payload object | +| ↳ `id` | number | Meeting ID | +| ↳ `name` | string | Meeting name | +| ↳ `url` | string | Meeting URL | +| ↳ `duration` | number | Duration in seconds | +| ↳ `createdAt` | string | Creation timestamp | +| ↳ `recordingUrl` | string | Recording URL | + + +--- + +### Circleback Webhook + +Generic webhook trigger for all Circleback events + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `webhookSecret` | string | No | Validates that webhook deliveries originate from Circleback using HMAC-SHA256. | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `id` | number | Circleback meeting ID | +| `name` | string | Meeting title/name | +| `url` | string | URL of the virtual meeting \(Zoom, Google Meet, Teams, etc.\) | +| `createdAt` | string | ISO8601 timestamp when meeting was created | +| `duration` | number | Meeting duration in seconds | +| `recordingUrl` | string | Recording URL \(valid for 24 hours, if enabled\) | +| `tags` | array | Array of tag strings | +| `icalUid` | string | Calendar event identifier | +| `attendees` | array | Array of attendee objects with name and email | +| ↳ `name` | string | Attendee name | +| ↳ `email` | string | Attendee email address | +| `notes` | string | Meeting notes in Markdown format | +| `actionItems` | array | Array of action item objects | +| ↳ `id` | number | Action item ID | +| ↳ `title` | string | Action item title | +| ↳ `description` | string | Action item description | +| ↳ `assignee` | object | Person assigned to the action item \(or null\) | +| ↳ `name` | string | Assignee name | +| ↳ `email` | string | Assignee email | +| ↳ `status` | string | Status: PENDING or DONE | +| `transcript` | array | Array of transcript segments | +| ↳ `speaker` | string | Speaker name | +| ↳ `text` | string | Transcript text | +| ↳ `timestamp` | number | Timestamp in seconds | +| `insights` | object | User-created insights keyed by insight name | +| `meeting` | object | Full meeting payload object | +| ↳ `id` | number | Meeting ID | +| ↳ `name` | string | Meeting name | +| ↳ `url` | string | Meeting URL | +| ↳ `duration` | number | Duration in seconds | +| ↳ `createdAt` | string | Creation timestamp | +| ↳ `recordingUrl` | string | Recording URL | + diff --git a/apps/docs/content/docs/en/triggers/confluence.mdx b/apps/docs/content/docs/en/triggers/confluence.mdx new file mode 100644 index 00000000000..e0e9420af8b --- /dev/null +++ b/apps/docs/content/docs/en/triggers/confluence.mdx @@ -0,0 +1,476 @@ +--- +title: Confluence +description: Available Confluence triggers for automating workflows +--- + +import { BlockInfoCard } from "@/components/ui/block-info-card" + + + +Confluence provides 16 triggers for automating workflows based on events. + +## Triggers + +### Confluence Attachment Created + +Trigger workflow when an attachment is uploaded in Confluence + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `webhookSecret` | string | No | Optional secret to validate webhook deliveries from Confluence using HMAC signature | +| `confluenceDomain` | string | No | Your Confluence Cloud domain | +| `confluenceEmail` | string | No | Your Atlassian account email. Required together with API token to download attachment files. | +| `confluenceApiToken` | string | No | API token from https://id.atlassian.com/manage-profile/security/api-tokens. Required to download attachment file content. | +| `includeFileContent` | boolean | No | Download and include actual file content from attachments. Requires email, API token, and domain. | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `timestamp` | number | Timestamp of the webhook event \(Unix epoch milliseconds\) | +| `userAccountId` | string | Account ID of the user who triggered the event | +| `accountType` | string | Account type \(e.g., customer\) | +| `id` | number | Content ID | +| `title` | string | Content title | +| `contentType` | string | Content type \(page, blogpost, comment, attachment\) | +| `version` | number | Version number | +| `spaceKey` | string | Space key the content belongs to | +| `creatorAccountId` | string | Account ID of the creator | +| `lastModifierAccountId` | string | Account ID of the last modifier | +| `self` | string | URL link to the content | +| `creationDate` | number | Creation timestamp \(Unix epoch milliseconds\) | +| `modificationDate` | number | Last modification timestamp \(Unix epoch milliseconds\) | +| `attachment` | object | attachment output from the tool | +| ↳ `mediaType` | string | MIME type of the attachment | +| ↳ `fileSize` | number | File size in bytes | +| ↳ `parent` | object | parent output from the tool | +| ↳ `id` | number | Container page/blog ID | +| ↳ `title` | string | Container page/blog title | +| ↳ `contentType` | string | Container content type | +| `files` | file[] | Attachment file content downloaded from Confluence \(if includeFileContent is enabled with credentials\) | + + +--- + +### Confluence Attachment Removed + +Trigger workflow when an attachment is removed in Confluence + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `webhookSecret` | string | No | Optional secret to validate webhook deliveries from Confluence using HMAC signature | +| `confluenceDomain` | string | No | Your Confluence Cloud domain | +| `confluenceEmail` | string | No | Your Atlassian account email. Required together with API token to download attachment files. | +| `confluenceApiToken` | string | No | API token from https://id.atlassian.com/manage-profile/security/api-tokens. Required to download attachment file content. | +| `includeFileContent` | boolean | No | Download and include actual file content from attachments. Requires email, API token, and domain. | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `timestamp` | number | Timestamp of the webhook event \(Unix epoch milliseconds\) | +| `userAccountId` | string | Account ID of the user who triggered the event | +| `accountType` | string | Account type \(e.g., customer\) | +| `id` | number | Content ID | +| `title` | string | Content title | +| `contentType` | string | Content type \(page, blogpost, comment, attachment\) | +| `version` | number | Version number | +| `spaceKey` | string | Space key the content belongs to | +| `creatorAccountId` | string | Account ID of the creator | +| `lastModifierAccountId` | string | Account ID of the last modifier | +| `self` | string | URL link to the content | +| `creationDate` | number | Creation timestamp \(Unix epoch milliseconds\) | +| `modificationDate` | number | Last modification timestamp \(Unix epoch milliseconds\) | +| `attachment` | object | attachment output from the tool | +| ↳ `mediaType` | string | MIME type of the attachment | +| ↳ `fileSize` | number | File size in bytes | +| ↳ `parent` | object | parent output from the tool | +| ↳ `id` | number | Container page/blog ID | +| ↳ `title` | string | Container page/blog title | +| ↳ `contentType` | string | Container content type | +| `files` | file[] | Attachment file content downloaded from Confluence \(if includeFileContent is enabled with credentials\) | + + +--- + +### Confluence Blog Post Created + +Trigger workflow when a blog post is created in Confluence + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `webhookSecret` | string | No | Optional secret to validate webhook deliveries from Confluence using HMAC signature | +| `confluenceDomain` | string | No | Your Confluence Cloud domain | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `timestamp` | number | Timestamp of the webhook event \(Unix epoch milliseconds\) | +| `userAccountId` | string | Account ID of the user who triggered the event | +| `accountType` | string | Account type \(e.g., customer\) | + + +--- + +### Confluence Blog Post Removed + +Trigger workflow when a blog post is removed in Confluence + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `webhookSecret` | string | No | Optional secret to validate webhook deliveries from Confluence using HMAC signature | +| `confluenceDomain` | string | No | Your Confluence Cloud domain | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `timestamp` | number | Timestamp of the webhook event \(Unix epoch milliseconds\) | +| `userAccountId` | string | Account ID of the user who triggered the event | +| `accountType` | string | Account type \(e.g., customer\) | + + +--- + +### Confluence Blog Post Updated + +Trigger workflow when a blog post is updated in Confluence + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `webhookSecret` | string | No | Optional secret to validate webhook deliveries from Confluence using HMAC signature | +| `confluenceDomain` | string | No | Your Confluence Cloud domain | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `timestamp` | number | Timestamp of the webhook event \(Unix epoch milliseconds\) | +| `userAccountId` | string | Account ID of the user who triggered the event | +| `accountType` | string | Account type \(e.g., customer\) | + + +--- + +### Confluence Comment Created + +Trigger workflow when a comment is created in Confluence + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `webhookSecret` | string | No | Optional secret to validate webhook deliveries from Confluence using HMAC signature | +| `confluenceDomain` | string | No | Your Confluence Cloud domain | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `timestamp` | number | Timestamp of the webhook event \(Unix epoch milliseconds\) | +| `userAccountId` | string | Account ID of the user who triggered the event | +| `accountType` | string | Account type \(e.g., customer\) | +| `id` | number | Content ID | +| `title` | string | Content title | +| `contentType` | string | Content type \(page, blogpost, comment, attachment\) | +| `version` | number | Version number | +| `spaceKey` | string | Space key the content belongs to | +| `creatorAccountId` | string | Account ID of the creator | +| `lastModifierAccountId` | string | Account ID of the last modifier | +| `self` | string | URL link to the content | +| `creationDate` | number | Creation timestamp \(Unix epoch milliseconds\) | +| `modificationDate` | number | Last modification timestamp \(Unix epoch milliseconds\) | +| `comment` | object | comment output from the tool | +| ↳ `parent` | object | parent output from the tool | +| ↳ `id` | number | Parent page/blog ID | +| ↳ `title` | string | Parent page/blog title | +| ↳ `contentType` | string | Parent content type \(page or blogpost\) | +| ↳ `spaceKey` | string | Space key of the parent | +| ↳ `self` | string | URL link to the parent content | + + +--- + +### Confluence Comment Removed + +Trigger workflow when a comment is removed in Confluence + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `webhookSecret` | string | No | Optional secret to validate webhook deliveries from Confluence using HMAC signature | +| `confluenceDomain` | string | No | Your Confluence Cloud domain | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `timestamp` | number | Timestamp of the webhook event \(Unix epoch milliseconds\) | +| `userAccountId` | string | Account ID of the user who triggered the event | +| `accountType` | string | Account type \(e.g., customer\) | +| `id` | number | Content ID | +| `title` | string | Content title | +| `contentType` | string | Content type \(page, blogpost, comment, attachment\) | +| `version` | number | Version number | +| `spaceKey` | string | Space key the content belongs to | +| `creatorAccountId` | string | Account ID of the creator | +| `lastModifierAccountId` | string | Account ID of the last modifier | +| `self` | string | URL link to the content | +| `creationDate` | number | Creation timestamp \(Unix epoch milliseconds\) | +| `modificationDate` | number | Last modification timestamp \(Unix epoch milliseconds\) | +| `comment` | object | comment output from the tool | +| ↳ `parent` | object | parent output from the tool | +| ↳ `id` | number | Parent page/blog ID | +| ↳ `title` | string | Parent page/blog title | +| ↳ `contentType` | string | Parent content type \(page or blogpost\) | +| ↳ `spaceKey` | string | Space key of the parent | +| ↳ `self` | string | URL link to the parent content | + + +--- + +### Confluence Label Added + +Trigger workflow when a label is added to content in Confluence + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `webhookSecret` | string | No | Optional secret to validate webhook deliveries from Confluence using HMAC signature | +| `confluenceDomain` | string | No | Your Confluence Cloud domain | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `timestamp` | number | Timestamp of the webhook event \(Unix epoch milliseconds\) | +| `userAccountId` | string | Account ID of the user who triggered the event | +| `accountType` | string | Account type \(e.g., customer\) | +| `label` | object | label output from the tool | +| ↳ `name` | string | Label name | +| ↳ `id` | string | Label ID | +| ↳ `prefix` | string | Label prefix \(global, my, team\) | +| `content` | object | content output from the tool | +| ↳ `id` | number | Content ID the label was added to or removed from | +| ↳ `title` | string | Content title | +| ↳ `contentType` | string | Content type \(page, blogpost\) | + + +--- + +### Confluence Label Removed + +Trigger workflow when a label is removed from content in Confluence + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `webhookSecret` | string | No | Optional secret to validate webhook deliveries from Confluence using HMAC signature | +| `confluenceDomain` | string | No | Your Confluence Cloud domain | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `timestamp` | number | Timestamp of the webhook event \(Unix epoch milliseconds\) | +| `userAccountId` | string | Account ID of the user who triggered the event | +| `accountType` | string | Account type \(e.g., customer\) | +| `label` | object | label output from the tool | +| ↳ `name` | string | Label name | +| ↳ `id` | string | Label ID | +| ↳ `prefix` | string | Label prefix \(global, my, team\) | +| `content` | object | content output from the tool | +| ↳ `id` | number | Content ID the label was added to or removed from | +| ↳ `title` | string | Content title | +| ↳ `contentType` | string | Content type \(page, blogpost\) | + + +--- + +### Confluence Page Created + +Trigger workflow when a new page is created in Confluence + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `webhookSecret` | string | No | Optional secret to validate webhook deliveries from Confluence using HMAC signature | +| `confluenceDomain` | string | No | Your Confluence Cloud domain | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `timestamp` | number | Timestamp of the webhook event \(Unix epoch milliseconds\) | +| `userAccountId` | string | Account ID of the user who triggered the event | +| `accountType` | string | Account type \(e.g., customer\) | + + +--- + +### Confluence Page Moved + +Trigger workflow when a page is moved in Confluence + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `webhookSecret` | string | No | Optional secret to validate webhook deliveries from Confluence using HMAC signature | +| `confluenceDomain` | string | No | Your Confluence Cloud domain | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `timestamp` | number | Timestamp of the webhook event \(Unix epoch milliseconds\) | +| `userAccountId` | string | Account ID of the user who triggered the event | +| `accountType` | string | Account type \(e.g., customer\) | + + +--- + +### Confluence Page Removed + +Trigger workflow when a page is removed or trashed in Confluence + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `webhookSecret` | string | No | Optional secret to validate webhook deliveries from Confluence using HMAC signature | +| `confluenceDomain` | string | No | Your Confluence Cloud domain | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `timestamp` | number | Timestamp of the webhook event \(Unix epoch milliseconds\) | +| `userAccountId` | string | Account ID of the user who triggered the event | +| `accountType` | string | Account type \(e.g., customer\) | + + +--- + +### Confluence Page Updated + +Trigger workflow when a page is updated in Confluence + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `webhookSecret` | string | No | Optional secret to validate webhook deliveries from Confluence using HMAC signature | +| `confluenceDomain` | string | No | Your Confluence Cloud domain | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `timestamp` | number | Timestamp of the webhook event \(Unix epoch milliseconds\) | +| `userAccountId` | string | Account ID of the user who triggered the event | +| `accountType` | string | Account type \(e.g., customer\) | + + +--- + +### Confluence Space Created + +Trigger workflow when a new space is created in Confluence + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `webhookSecret` | string | No | Optional secret to validate webhook deliveries from Confluence using HMAC signature | +| `confluenceDomain` | string | No | Your Confluence Cloud domain | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `timestamp` | number | Timestamp of the webhook event \(Unix epoch milliseconds\) | +| `userAccountId` | string | Account ID of the user who triggered the event | +| `accountType` | string | Account type \(e.g., customer\) | +| `space` | object | space output from the tool | +| ↳ `key` | string | Space key | +| ↳ `name` | string | Space name | +| ↳ `self` | string | URL link to the space | + + +--- + +### Confluence Space Updated + +Trigger workflow when a space is updated in Confluence + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `webhookSecret` | string | No | Optional secret to validate webhook deliveries from Confluence using HMAC signature | +| `confluenceDomain` | string | No | Your Confluence Cloud domain | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `timestamp` | number | Timestamp of the webhook event \(Unix epoch milliseconds\) | +| `userAccountId` | string | Account ID of the user who triggered the event | +| `accountType` | string | Account type \(e.g., customer\) | +| `space` | object | space output from the tool | +| ↳ `key` | string | Space key | +| ↳ `name` | string | Space name | +| ↳ `self` | string | URL link to the space | + + +--- + +### Confluence Webhook (All Events) + +Trigger workflow on any Confluence webhook event + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `webhookSecret` | string | No | Optional secret to validate webhook deliveries from Confluence using HMAC signature | +| `confluenceDomain` | string | No | Your Confluence Cloud domain | +| `confluenceEmail` | string | No | Your Atlassian account email. Required together with API token to download attachment files. | +| `confluenceApiToken` | string | No | API token from https://id.atlassian.com/manage-profile/security/api-tokens. Required to download attachment file content. | +| `includeFileContent` | boolean | No | Download and include actual file content from attachments. Requires email, API token, and domain. | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `timestamp` | number | Timestamp of the webhook event \(Unix epoch milliseconds\) | +| `userAccountId` | string | Account ID of the user who triggered the event | +| `accountType` | string | Account type \(e.g., customer\) | +| `page` | json | Page object \(present in page events\) | +| `comment` | json | Comment object \(present in comment events\) | +| `blog` | json | Blog post object \(present in blog events\) | +| `attachment` | json | Attachment object \(present in attachment events\) | +| `space` | json | Space object \(present in space events\) | +| `label` | json | Label object \(present in label events\) | +| `content` | json | Content object \(present in label events\) | +| `files` | file[] | Attachment file content \(present in attachment events when includeFileContent is enabled\) | + diff --git a/apps/docs/content/docs/en/triggers/fathom.mdx b/apps/docs/content/docs/en/triggers/fathom.mdx new file mode 100644 index 00000000000..9c4a173aca2 --- /dev/null +++ b/apps/docs/content/docs/en/triggers/fathom.mdx @@ -0,0 +1,95 @@ +--- +title: Fathom +description: Available Fathom triggers for automating workflows +--- + +import { BlockInfoCard } from "@/components/ui/block-info-card" + + + +Fathom provides 2 triggers for automating workflows based on events. + +## Triggers + +### Fathom New Meeting Content + +Trigger workflow when new meeting content is ready in Fathom + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `apiKey` | string | Yes | Required to create the webhook in Fathom. | +| `triggeredFor` | string | No | Which recording types should trigger this webhook. | +| `includeSummary` | boolean | No | Include the meeting summary in the webhook payload. | +| `includeTranscript` | boolean | No | Include the full transcript in the webhook payload. | +| `includeActionItems` | boolean | No | Include action items extracted from the meeting. | +| `includeCrmMatches` | boolean | No | Include matched CRM contacts, companies, and deals from your linked CRM. | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `title` | string | Meeting title | +| `meeting_title` | string | Calendar event title | +| `recording_id` | number | Unique recording ID | +| `url` | string | URL to view the meeting in Fathom | +| `share_url` | string | Shareable URL for the meeting | +| `created_at` | string | ISO 8601 creation timestamp | +| `scheduled_start_time` | string | Scheduled start time | +| `scheduled_end_time` | string | Scheduled end time | +| `recording_start_time` | string | Recording start time | +| `recording_end_time` | string | Recording end time | +| `transcript_language` | string | Language of the transcript | +| `calendar_invitees_domains_type` | string | Domain type: only_internal or one_or_more_external | +| `recorded_by` | object | Recorder details | +| `calendar_invitees` | array | Array of calendar invitees with name and email | +| `default_summary` | object | Meeting summary | +| `transcript` | array | Array of transcript entries with speaker, text, and timestamp | +| `action_items` | array | Array of action items extracted from the meeting | +| `crm_matches` | json | Matched CRM contacts, companies, and deals from linked CRM | + + +--- + +### Fathom Webhook + +Generic webhook trigger for all Fathom events + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `apiKey` | string | Yes | Required to create the webhook in Fathom. | +| `triggeredFor` | string | No | Which recording types should trigger this webhook. | +| `includeSummary` | boolean | No | Include the meeting summary in the webhook payload. | +| `includeTranscript` | boolean | No | Include the full transcript in the webhook payload. | +| `includeActionItems` | boolean | No | Include action items extracted from the meeting. | +| `includeCrmMatches` | boolean | No | Include matched CRM contacts, companies, and deals from your linked CRM. | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `title` | string | Meeting title | +| `meeting_title` | string | Calendar event title | +| `recording_id` | number | Unique recording ID | +| `url` | string | URL to view the meeting in Fathom | +| `share_url` | string | Shareable URL for the meeting | +| `created_at` | string | ISO 8601 creation timestamp | +| `scheduled_start_time` | string | Scheduled start time | +| `scheduled_end_time` | string | Scheduled end time | +| `recording_start_time` | string | Recording start time | +| `recording_end_time` | string | Recording end time | +| `transcript_language` | string | Language of the transcript | +| `calendar_invitees_domains_type` | string | Domain type: only_internal or one_or_more_external | +| `recorded_by` | object | Recorder details | +| `calendar_invitees` | array | Array of calendar invitees with name and email | +| `default_summary` | object | Meeting summary | +| `transcript` | array | Array of transcript entries with speaker, text, and timestamp | +| `action_items` | array | Array of action items extracted from the meeting | +| `crm_matches` | json | Matched CRM contacts, companies, and deals from linked CRM | + diff --git a/apps/docs/content/docs/en/triggers/fireflies.mdx b/apps/docs/content/docs/en/triggers/fireflies.mdx new file mode 100644 index 00000000000..563f6608509 --- /dev/null +++ b/apps/docs/content/docs/en/triggers/fireflies.mdx @@ -0,0 +1,34 @@ +--- +title: Fireflies +description: Available Fireflies triggers for automating workflows +--- + +import { BlockInfoCard } from "@/components/ui/block-info-card" + + + +Fireflies provides 1 trigger for automating workflows based on events. + +## Triggers + +### Fireflies Transcription Complete + +Trigger workflow when a Fireflies meeting transcription is complete + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `webhookSecret` | string | No | Secret key for HMAC signature verification \(set in Fireflies dashboard\) | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `meetingId` | string | The ID of the transcribed meeting | +| `eventType` | string | The type of event \(Transcription completed\) | +| `clientReferenceId` | string | Custom reference ID if set during upload | + diff --git a/apps/docs/content/docs/en/triggers/github.mdx b/apps/docs/content/docs/en/triggers/github.mdx new file mode 100644 index 00000000000..26d4f8ace44 --- /dev/null +++ b/apps/docs/content/docs/en/triggers/github.mdx @@ -0,0 +1,1186 @@ +--- +title: GitHub +description: Available GitHub triggers for automating workflows +--- + +import { BlockInfoCard } from "@/components/ui/block-info-card" + + + +GitHub provides 12 triggers for automating workflows based on events. + +## Triggers + +### GitHub Actions Workflow Run + +Trigger workflow when a GitHub Actions workflow run is requested, in progress, or completed + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `contentType` | string | Yes | Format GitHub will use when sending the webhook payload. | +| `webhookSecret` | string | No | Validates that webhook deliveries originate from GitHub. | +| `sslVerification` | string | Yes | GitHub verifies SSL certificates when delivering webhooks. | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `event_type` | string | GitHub event type from X-GitHub-Event header \(e.g., workflow_run\) | +| `action` | string | Action performed \(requested, in_progress, completed\) | +| `workflow_run` | object | workflow_run output from the tool | +| ↳ `id` | number | Workflow run ID | +| ↳ `node_id` | string | Workflow run node ID | +| ↳ `name` | string | Workflow name | +| ↳ `workflow_id` | number | Workflow ID | +| ↳ `run_number` | number | Run number for this workflow | +| ↳ `run_attempt` | number | Attempt number for this run | +| ↳ `event` | string | Event that triggered the workflow \(push, pull_request, etc.\) | +| ↳ `status` | string | Current status \(queued, in_progress, completed\) | +| ↳ `conclusion` | string | Conclusion \(success, failure, cancelled, skipped, timed_out, action_required\) | +| ↳ `head_branch` | string | Branch name | +| ↳ `head_sha` | string | Commit SHA that triggered the workflow | +| ↳ `path` | string | Path to the workflow file | +| ↳ `display_title` | string | Display title for the run | +| ↳ `run_started_at` | string | Timestamp when the run started | +| ↳ `created_at` | string | Workflow run creation timestamp | +| ↳ `updated_at` | string | Workflow run last update timestamp | +| ↳ `html_url` | string | Workflow run HTML URL | +| ↳ `check_suite_id` | number | Associated check suite ID | +| ↳ `check_suite_node_id` | string | Associated check suite node ID | +| ↳ `url` | string | Workflow run API URL | +| ↳ `actor` | object | actor output from the tool | +| ↳ `login` | string | Username | +| ↳ `id` | number | User ID | +| ↳ `node_id` | string | User node ID | +| ↳ `avatar_url` | string | Avatar URL | +| ↳ `html_url` | string | Profile URL | +| ↳ `user_type` | string | User type \(User, Bot, Organization\) | +| ↳ `triggering_actor` | object | triggering_actor output from the tool | +| ↳ `login` | string | Username | +| ↳ `id` | number | User ID | +| ↳ `node_id` | string | User node ID | +| ↳ `avatar_url` | string | Avatar URL | +| ↳ `html_url` | string | Profile URL | +| ↳ `user_type` | string | User type \(User, Bot, Organization\) | +| ↳ `repository` | object | repository output from the tool | +| ↳ `id` | number | Repository ID | +| ↳ `node_id` | string | Repository node ID | +| ↳ `name` | string | Repository name | +| ↳ `full_name` | string | Repository full name | +| ↳ `private` | boolean | Whether repository is private | +| ↳ `head_repository` | object | head_repository output from the tool | +| ↳ `id` | number | Head repository ID | +| ↳ `node_id` | string | Head repository node ID | +| ↳ `name` | string | Head repository name | +| ↳ `full_name` | string | Head repository full name | +| ↳ `private` | boolean | Whether repository is private | +| ↳ `head_commit` | object | head_commit output from the tool | +| ↳ `id` | string | Commit SHA | +| ↳ `tree_id` | string | Tree ID | +| ↳ `message` | string | Commit message | +| ↳ `timestamp` | string | Commit timestamp | +| ↳ `author` | object | author output from the tool | +| ↳ `name` | string | Author name | +| ↳ `email` | string | Author email | +| ↳ `committer` | object | committer output from the tool | +| ↳ `name` | string | Committer name | +| ↳ `email` | string | Committer email | +| ↳ `pull_requests` | array | Array of associated pull requests | +| ↳ `referenced_workflows` | array | Array of referenced workflow runs | +| `workflow` | object | workflow output from the tool | +| ↳ `id` | number | Workflow ID | +| ↳ `node_id` | string | Workflow node ID | +| ↳ `name` | string | Workflow name | +| ↳ `path` | string | Path to workflow file | +| ↳ `state` | string | Workflow state \(active, deleted, disabled_fork, etc.\) | +| ↳ `created_at` | string | Workflow creation timestamp | +| ↳ `updated_at` | string | Workflow last update timestamp | +| ↳ `url` | string | Workflow API URL | +| ↳ `html_url` | string | Workflow HTML URL | +| ↳ `badge_url` | string | Workflow badge URL | +| `repository` | object | repository output from the tool | +| ↳ `id` | number | Repository ID | +| ↳ `node_id` | string | Repository node ID | +| ↳ `name` | string | Repository name | +| ↳ `full_name` | string | Repository full name \(owner/repo\) | +| ↳ `private` | boolean | Whether the repository is private | +| ↳ `html_url` | string | Repository HTML URL | +| ↳ `repo_description` | string | Repository description | +| ↳ `owner` | object | owner output from the tool | +| ↳ `login` | string | Owner username | +| ↳ `id` | number | Owner ID | +| ↳ `node_id` | string | Owner node ID | +| ↳ `avatar_url` | string | Owner avatar URL | +| ↳ `html_url` | string | Owner profile URL | +| ↳ `owner_type` | string | Owner type \(User, Organization\) | +| `sender` | object | sender output from the tool | +| ↳ `login` | string | Username | +| ↳ `id` | number | User ID | +| ↳ `node_id` | string | User node ID | +| ↳ `avatar_url` | string | Avatar URL | +| ↳ `html_url` | string | Profile URL | +| ↳ `user_type` | string | User type \(User, Bot, Organization\) | + + +--- + +### GitHub Issue Closed + +Trigger workflow when an issue is closed in a GitHub repository + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `contentType` | string | Yes | Format GitHub will use when sending the webhook payload. | +| `webhookSecret` | string | No | Validates that webhook deliveries originate from GitHub. | +| `sslVerification` | string | Yes | GitHub verifies SSL certificates when delivering webhooks. | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `event_type` | string | GitHub event type from X-GitHub-Event header \(e.g., issues, pull_request, push\) | +| `action` | string | Action performed \(opened, closed, reopened, edited, etc.\) | +| `issue` | object | issue output from the tool | +| ↳ `id` | number | Issue ID | +| ↳ `node_id` | string | Issue node ID | +| ↳ `number` | number | Issue number | +| ↳ `title` | string | Issue title | +| ↳ `body` | string | Issue body/description | +| ↳ `state` | string | Issue state \(open, closed\) | +| ↳ `state_reason` | string | Reason for state \(completed, not_planned, reopened\) | +| ↳ `html_url` | string | Issue HTML URL | +| ↳ `user` | object | user output from the tool | +| ↳ `login` | string | Username | +| ↳ `id` | number | User ID | +| ↳ `node_id` | string | User node ID | +| ↳ `avatar_url` | string | Avatar URL | +| ↳ `html_url` | string | Profile URL | +| ↳ `user_type` | string | User type \(User, Bot, Organization\) | +| ↳ `labels` | array | Array of label objects | +| ↳ `assignees` | array | Array of assigned users | +| ↳ `milestone` | object | Milestone object if assigned | +| ↳ `created_at` | string | Issue creation timestamp | +| ↳ `updated_at` | string | Issue last update timestamp | +| ↳ `closed_at` | string | Issue closed timestamp | +| `repository` | object | repository output from the tool | +| ↳ `id` | number | Repository ID | +| ↳ `node_id` | string | Repository node ID | +| ↳ `name` | string | Repository name | +| ↳ `full_name` | string | Repository full name \(owner/repo\) | +| ↳ `private` | boolean | Whether the repository is private | +| ↳ `html_url` | string | Repository HTML URL | +| ↳ `repo_description` | string | Repository description | +| ↳ `fork` | boolean | Whether the repository is a fork | +| ↳ `url` | string | Repository API URL | +| ↳ `homepage` | string | Repository homepage URL | +| ↳ `size` | number | Repository size in KB | +| ↳ `stargazers_count` | number | Number of stars | +| ↳ `watchers_count` | number | Number of watchers | +| ↳ `language` | string | Primary programming language | +| ↳ `forks_count` | number | Number of forks | +| ↳ `open_issues_count` | number | Number of open issues | +| ↳ `default_branch` | string | Default branch name | +| ↳ `owner` | object | owner output from the tool | +| ↳ `login` | string | Owner username | +| ↳ `id` | number | Owner ID | +| ↳ `avatar_url` | string | Owner avatar URL | +| ↳ `html_url` | string | Owner profile URL | +| ↳ `owner_type` | string | Owner type \(User, Organization\) | +| `sender` | object | sender output from the tool | +| ↳ `login` | string | Username | +| ↳ `id` | number | User ID | +| ↳ `node_id` | string | User node ID | +| ↳ `avatar_url` | string | Avatar URL | +| ↳ `html_url` | string | Profile URL | +| ↳ `user_type` | string | User type \(User, Bot, Organization\) | + + +--- + +### GitHub Issue Comment + +Trigger workflow when a comment is added to an issue (not pull requests) + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `contentType` | string | Yes | Format GitHub will use when sending the webhook payload. | +| `webhookSecret` | string | No | Validates that webhook deliveries originate from GitHub. | +| `sslVerification` | string | Yes | GitHub verifies SSL certificates when delivering webhooks. | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `event_type` | string | GitHub event type from X-GitHub-Event header \(e.g., issue_comment\) | +| `action` | string | Action performed \(created, edited, deleted\) | +| `issue` | object | issue output from the tool | +| ↳ `number` | number | Issue number | +| ↳ `title` | string | Issue title | +| ↳ `state` | string | Issue state \(open, closed\) | +| ↳ `html_url` | string | Issue HTML URL | +| ↳ `user` | object | user output from the tool | +| ↳ `login` | string | Username | +| ↳ `id` | number | User ID | +| ↳ `node_id` | string | User node ID | +| ↳ `avatar_url` | string | Avatar URL | +| ↳ `html_url` | string | Profile URL | +| ↳ `user_type` | string | User type \(User, Bot, Organization\) | +| `comment` | object | comment output from the tool | +| ↳ `id` | number | Comment ID | +| ↳ `node_id` | string | Comment node ID | +| ↳ `body` | string | Comment text | +| ↳ `html_url` | string | Comment HTML URL | +| ↳ `user` | object | user output from the tool | +| ↳ `login` | string | Username | +| ↳ `id` | number | User ID | +| ↳ `node_id` | string | User node ID | +| ↳ `avatar_url` | string | Avatar URL | +| ↳ `html_url` | string | Profile URL | +| ↳ `user_type` | string | User type \(User, Bot, Organization\) | +| ↳ `created_at` | string | Comment creation timestamp | +| ↳ `updated_at` | string | Comment last update timestamp | +| `repository` | object | repository output from the tool | +| ↳ `id` | number | Repository ID | +| ↳ `node_id` | string | Repository node ID | +| ↳ `name` | string | Repository name | +| ↳ `full_name` | string | Repository full name \(owner/repo\) | +| ↳ `private` | boolean | Whether the repository is private | +| ↳ `html_url` | string | Repository HTML URL | +| ↳ `repo_description` | string | Repository description | +| ↳ `fork` | boolean | Whether the repository is a fork | +| ↳ `url` | string | Repository API URL | +| ↳ `homepage` | string | Repository homepage URL | +| ↳ `size` | number | Repository size in KB | +| ↳ `stargazers_count` | number | Number of stars | +| ↳ `watchers_count` | number | Number of watchers | +| ↳ `language` | string | Primary programming language | +| ↳ `forks_count` | number | Number of forks | +| ↳ `open_issues_count` | number | Number of open issues | +| ↳ `default_branch` | string | Default branch name | +| ↳ `owner` | object | owner output from the tool | +| ↳ `login` | string | Owner username | +| ↳ `id` | number | Owner ID | +| ↳ `avatar_url` | string | Owner avatar URL | +| ↳ `html_url` | string | Owner profile URL | +| ↳ `owner_type` | string | Owner type \(User, Organization\) | +| `sender` | object | sender output from the tool | +| ↳ `login` | string | Username | +| ↳ `id` | number | User ID | +| ↳ `node_id` | string | User node ID | +| ↳ `avatar_url` | string | Avatar URL | +| ↳ `html_url` | string | Profile URL | +| ↳ `user_type` | string | User type \(User, Bot, Organization\) | + + +--- + +### GitHub Issue Opened + +Trigger workflow when a new issue is opened in a GitHub repository + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `contentType` | string | Yes | Format GitHub will use when sending the webhook payload. | +| `webhookSecret` | string | No | Validates that webhook deliveries originate from GitHub. | +| `sslVerification` | string | Yes | GitHub verifies SSL certificates when delivering webhooks. | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `event_type` | string | GitHub event type from X-GitHub-Event header \(e.g., issues, pull_request, push\) | +| `action` | string | Action performed \(opened, closed, reopened, edited, etc.\) | +| `issue` | object | issue output from the tool | +| ↳ `id` | number | Issue ID | +| ↳ `node_id` | string | Issue node ID | +| ↳ `number` | number | Issue number | +| ↳ `title` | string | Issue title | +| ↳ `body` | string | Issue body/description | +| ↳ `state` | string | Issue state \(open, closed\) | +| ↳ `state_reason` | string | Reason for state \(completed, not_planned, reopened\) | +| ↳ `html_url` | string | Issue HTML URL | +| ↳ `user` | object | user output from the tool | +| ↳ `login` | string | Username | +| ↳ `id` | number | User ID | +| ↳ `node_id` | string | User node ID | +| ↳ `avatar_url` | string | Avatar URL | +| ↳ `html_url` | string | Profile URL | +| ↳ `user_type` | string | User type \(User, Bot, Organization\) | +| ↳ `labels` | array | Array of label objects | +| ↳ `assignees` | array | Array of assigned users | +| ↳ `milestone` | object | Milestone object if assigned | +| ↳ `created_at` | string | Issue creation timestamp | +| ↳ `updated_at` | string | Issue last update timestamp | +| ↳ `closed_at` | string | Issue closed timestamp | +| `repository` | object | repository output from the tool | +| ↳ `id` | number | Repository ID | +| ↳ `node_id` | string | Repository node ID | +| ↳ `name` | string | Repository name | +| ↳ `full_name` | string | Repository full name \(owner/repo\) | +| ↳ `private` | boolean | Whether the repository is private | +| ↳ `html_url` | string | Repository HTML URL | +| ↳ `repo_description` | string | Repository description | +| ↳ `fork` | boolean | Whether the repository is a fork | +| ↳ `url` | string | Repository API URL | +| ↳ `homepage` | string | Repository homepage URL | +| ↳ `size` | number | Repository size in KB | +| ↳ `stargazers_count` | number | Number of stars | +| ↳ `watchers_count` | number | Number of watchers | +| ↳ `language` | string | Primary programming language | +| ↳ `forks_count` | number | Number of forks | +| ↳ `open_issues_count` | number | Number of open issues | +| ↳ `default_branch` | string | Default branch name | +| ↳ `owner` | object | owner output from the tool | +| ↳ `login` | string | Owner username | +| ↳ `id` | number | Owner ID | +| ↳ `avatar_url` | string | Owner avatar URL | +| ↳ `html_url` | string | Owner profile URL | +| ↳ `owner_type` | string | Owner type \(User, Organization\) | +| `sender` | object | sender output from the tool | +| ↳ `login` | string | Username | +| ↳ `id` | number | User ID | +| ↳ `node_id` | string | User node ID | +| ↳ `avatar_url` | string | Avatar URL | +| ↳ `html_url` | string | Profile URL | +| ↳ `user_type` | string | User type \(User, Bot, Organization\) | + + +--- + +### GitHub PR Closed + +Trigger workflow when a pull request is closed without being merged (e.g., abandoned) in a GitHub repository + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `contentType` | string | Yes | Format GitHub will use when sending the webhook payload. | +| `webhookSecret` | string | No | Validates that webhook deliveries originate from GitHub. | +| `sslVerification` | string | Yes | GitHub verifies SSL certificates when delivering webhooks. | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `event_type` | string | GitHub event type from X-GitHub-Event header \(e.g., pull_request\) | +| `action` | string | Action performed \(opened, closed, synchronize, reopened, edited, etc.\) | +| `number` | number | Pull request number | +| `pull_request` | object | pull_request output from the tool | +| ↳ `id` | number | Pull request ID | +| ↳ `node_id` | string | Pull request node ID | +| ↳ `number` | number | Pull request number | +| ↳ `title` | string | Pull request title | +| ↳ `body` | string | Pull request description | +| ↳ `state` | string | Pull request state \(open, closed\) | +| ↳ `merged` | boolean | Whether the PR was merged | +| ↳ `merged_at` | string | Timestamp when PR was merged | +| ↳ `merged_by` | object | merged_by output from the tool | +| ↳ `login` | string | Username | +| ↳ `id` | number | User ID | +| ↳ `node_id` | string | User node ID | +| ↳ `avatar_url` | string | Avatar URL | +| ↳ `html_url` | string | Profile URL | +| ↳ `user_type` | string | User type \(User, Bot, Organization\) | +| ↳ `draft` | boolean | Whether the PR is a draft | +| ↳ `html_url` | string | Pull request HTML URL | +| ↳ `diff_url` | string | Pull request diff URL | +| ↳ `patch_url` | string | Pull request patch URL | +| ↳ `user` | object | user output from the tool | +| ↳ `login` | string | Username | +| ↳ `id` | number | User ID | +| ↳ `node_id` | string | User node ID | +| ↳ `avatar_url` | string | Avatar URL | +| ↳ `html_url` | string | Profile URL | +| ↳ `user_type` | string | User type \(User, Bot, Organization\) | +| ↳ `head` | object | head output from the tool | +| ↳ `ref` | string | Source branch name | +| ↳ `sha` | string | Source branch commit SHA | +| ↳ `repo` | object | repo output from the tool | +| ↳ `name` | string | Source repository name | +| ↳ `full_name` | string | Source repository full name | +| ↳ `base` | object | base output from the tool | +| ↳ `ref` | string | Target branch name | +| ↳ `sha` | string | Target branch commit SHA | +| ↳ `repo` | object | repo output from the tool | +| ↳ `name` | string | Target repository name | +| ↳ `full_name` | string | Target repository full name | +| ↳ `additions` | number | Number of lines added | +| ↳ `deletions` | number | Number of lines deleted | +| ↳ `changed_files` | number | Number of files changed | +| ↳ `labels` | array | Array of label objects | +| ↳ `assignees` | array | Array of assigned users | +| ↳ `requested_reviewers` | array | Array of requested reviewers | +| ↳ `created_at` | string | Pull request creation timestamp | +| ↳ `updated_at` | string | Pull request last update timestamp | +| ↳ `closed_at` | string | Pull request closed timestamp | +| `repository` | object | repository output from the tool | +| ↳ `id` | number | Repository ID | +| ↳ `node_id` | string | Repository node ID | +| ↳ `name` | string | Repository name | +| ↳ `full_name` | string | Repository full name \(owner/repo\) | +| ↳ `private` | boolean | Whether the repository is private | +| ↳ `html_url` | string | Repository HTML URL | +| ↳ `repo_description` | string | Repository description | +| ↳ `fork` | boolean | Whether the repository is a fork | +| ↳ `url` | string | Repository API URL | +| ↳ `homepage` | string | Repository homepage URL | +| ↳ `size` | number | Repository size in KB | +| ↳ `stargazers_count` | number | Number of stars | +| ↳ `watchers_count` | number | Number of watchers | +| ↳ `language` | string | Primary programming language | +| ↳ `forks_count` | number | Number of forks | +| ↳ `open_issues_count` | number | Number of open issues | +| ↳ `default_branch` | string | Default branch name | +| ↳ `owner` | object | owner output from the tool | +| ↳ `login` | string | Owner username | +| ↳ `id` | number | Owner ID | +| ↳ `avatar_url` | string | Owner avatar URL | +| ↳ `html_url` | string | Owner profile URL | +| `sender` | object | sender output from the tool | +| ↳ `login` | string | Username | +| ↳ `id` | number | User ID | +| ↳ `node_id` | string | User node ID | +| ↳ `avatar_url` | string | Avatar URL | +| ↳ `html_url` | string | Profile URL | +| ↳ `user_type` | string | User type \(User, Bot, Organization\) | + + +--- + +### GitHub PR Comment + +Trigger workflow when a comment is added to a pull request in a GitHub repository + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `contentType` | string | Yes | Format GitHub will use when sending the webhook payload. | +| `webhookSecret` | string | No | Validates that webhook deliveries originate from GitHub. | +| `sslVerification` | string | Yes | GitHub verifies SSL certificates when delivering webhooks. | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `event_type` | string | GitHub event type from X-GitHub-Event header \(e.g., issue_comment\) | +| `action` | string | Action performed \(created, edited, deleted\) | +| `issue` | object | issue output from the tool | +| ↳ `id` | number | Issue ID | +| ↳ `node_id` | string | Issue node ID | +| ↳ `number` | number | Issue/PR number | +| ↳ `title` | string | Issue/PR title | +| ↳ `body` | string | Issue/PR description | +| ↳ `state` | string | Issue/PR state \(open, closed\) | +| ↳ `html_url` | string | Issue/PR HTML URL | +| ↳ `user` | object | user output from the tool | +| ↳ `login` | string | Username | +| ↳ `id` | number | User ID | +| ↳ `node_id` | string | User node ID | +| ↳ `avatar_url` | string | Avatar URL | +| ↳ `html_url` | string | Profile URL | +| ↳ `user_type` | string | User type \(User, Bot, Organization\) | +| ↳ `labels` | array | Array of label objects | +| ↳ `assignees` | array | Array of assigned users | +| ↳ `pull_request` | object | pull_request output from the tool | +| ↳ `url` | string | Pull request API URL \(present only for PR comments\) | +| ↳ `html_url` | string | Pull request HTML URL | +| ↳ `diff_url` | string | Pull request diff URL | +| ↳ `patch_url` | string | Pull request patch URL | +| ↳ `created_at` | string | Issue/PR creation timestamp | +| ↳ `updated_at` | string | Issue/PR last update timestamp | +| `comment` | object | comment output from the tool | +| ↳ `id` | number | Comment ID | +| ↳ `node_id` | string | Comment node ID | +| ↳ `url` | string | Comment API URL | +| ↳ `html_url` | string | Comment HTML URL | +| ↳ `body` | string | Comment text | +| ↳ `user` | object | user output from the tool | +| ↳ `login` | string | Username | +| ↳ `id` | number | User ID | +| ↳ `node_id` | string | User node ID | +| ↳ `avatar_url` | string | Avatar URL | +| ↳ `html_url` | string | Profile URL | +| ↳ `user_type` | string | User type \(User, Bot, Organization\) | +| ↳ `created_at` | string | Comment creation timestamp | +| ↳ `updated_at` | string | Comment last update timestamp | +| `repository` | object | repository output from the tool | +| ↳ `id` | number | Repository ID | +| ↳ `node_id` | string | Repository node ID | +| ↳ `name` | string | Repository name | +| ↳ `full_name` | string | Repository full name \(owner/repo\) | +| ↳ `private` | boolean | Whether the repository is private | +| ↳ `html_url` | string | Repository HTML URL | +| ↳ `repo_description` | string | Repository description | +| ↳ `owner` | object | owner output from the tool | +| ↳ `login` | string | Owner username | +| ↳ `id` | number | Owner ID | +| ↳ `node_id` | string | Owner node ID | +| ↳ `avatar_url` | string | Owner avatar URL | +| ↳ `html_url` | string | Owner profile URL | +| ↳ `owner_type` | string | Owner type \(User, Organization\) | +| `sender` | object | sender output from the tool | +| ↳ `login` | string | Username | +| ↳ `id` | number | User ID | +| ↳ `node_id` | string | User node ID | +| ↳ `avatar_url` | string | Avatar URL | +| ↳ `html_url` | string | Profile URL | +| ↳ `user_type` | string | User type \(User, Bot, Organization\) | + + +--- + +### GitHub PR Merged + +Trigger workflow when a pull request is successfully merged in a GitHub repository + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `contentType` | string | Yes | Format GitHub will use when sending the webhook payload. | +| `webhookSecret` | string | No | Validates that webhook deliveries originate from GitHub. | +| `sslVerification` | string | Yes | GitHub verifies SSL certificates when delivering webhooks. | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `event_type` | string | GitHub event type from X-GitHub-Event header \(e.g., pull_request\) | +| `action` | string | Action performed \(opened, closed, synchronize, reopened, edited, etc.\) | +| `number` | number | Pull request number | +| `pull_request` | object | pull_request output from the tool | +| ↳ `id` | number | Pull request ID | +| ↳ `node_id` | string | Pull request node ID | +| ↳ `number` | number | Pull request number | +| ↳ `title` | string | Pull request title | +| ↳ `body` | string | Pull request description | +| ↳ `state` | string | Pull request state \(open, closed\) | +| ↳ `merged` | boolean | Whether the PR was merged | +| ↳ `merged_at` | string | Timestamp when PR was merged | +| ↳ `merged_by` | object | merged_by output from the tool | +| ↳ `login` | string | Username | +| ↳ `id` | number | User ID | +| ↳ `node_id` | string | User node ID | +| ↳ `avatar_url` | string | Avatar URL | +| ↳ `html_url` | string | Profile URL | +| ↳ `user_type` | string | User type \(User, Bot, Organization\) | +| ↳ `draft` | boolean | Whether the PR is a draft | +| ↳ `html_url` | string | Pull request HTML URL | +| ↳ `diff_url` | string | Pull request diff URL | +| ↳ `patch_url` | string | Pull request patch URL | +| ↳ `user` | object | user output from the tool | +| ↳ `login` | string | Username | +| ↳ `id` | number | User ID | +| ↳ `node_id` | string | User node ID | +| ↳ `avatar_url` | string | Avatar URL | +| ↳ `html_url` | string | Profile URL | +| ↳ `user_type` | string | User type \(User, Bot, Organization\) | +| ↳ `head` | object | head output from the tool | +| ↳ `ref` | string | Source branch name | +| ↳ `sha` | string | Source branch commit SHA | +| ↳ `repo` | object | repo output from the tool | +| ↳ `name` | string | Source repository name | +| ↳ `full_name` | string | Source repository full name | +| ↳ `base` | object | base output from the tool | +| ↳ `ref` | string | Target branch name | +| ↳ `sha` | string | Target branch commit SHA | +| ↳ `repo` | object | repo output from the tool | +| ↳ `name` | string | Target repository name | +| ↳ `full_name` | string | Target repository full name | +| ↳ `additions` | number | Number of lines added | +| ↳ `deletions` | number | Number of lines deleted | +| ↳ `changed_files` | number | Number of files changed | +| ↳ `labels` | array | Array of label objects | +| ↳ `assignees` | array | Array of assigned users | +| ↳ `requested_reviewers` | array | Array of requested reviewers | +| ↳ `created_at` | string | Pull request creation timestamp | +| ↳ `updated_at` | string | Pull request last update timestamp | +| ↳ `closed_at` | string | Pull request closed timestamp | +| `repository` | object | repository output from the tool | +| ↳ `id` | number | Repository ID | +| ↳ `node_id` | string | Repository node ID | +| ↳ `name` | string | Repository name | +| ↳ `full_name` | string | Repository full name \(owner/repo\) | +| ↳ `private` | boolean | Whether the repository is private | +| ↳ `html_url` | string | Repository HTML URL | +| ↳ `repo_description` | string | Repository description | +| ↳ `fork` | boolean | Whether the repository is a fork | +| ↳ `url` | string | Repository API URL | +| ↳ `homepage` | string | Repository homepage URL | +| ↳ `size` | number | Repository size in KB | +| ↳ `stargazers_count` | number | Number of stars | +| ↳ `watchers_count` | number | Number of watchers | +| ↳ `language` | string | Primary programming language | +| ↳ `forks_count` | number | Number of forks | +| ↳ `open_issues_count` | number | Number of open issues | +| ↳ `default_branch` | string | Default branch name | +| ↳ `owner` | object | owner output from the tool | +| ↳ `login` | string | Owner username | +| ↳ `id` | number | Owner ID | +| ↳ `avatar_url` | string | Owner avatar URL | +| ↳ `html_url` | string | Owner profile URL | +| `sender` | object | sender output from the tool | +| ↳ `login` | string | Username | +| ↳ `id` | number | User ID | +| ↳ `node_id` | string | User node ID | +| ↳ `avatar_url` | string | Avatar URL | +| ↳ `html_url` | string | Profile URL | +| ↳ `user_type` | string | User type \(User, Bot, Organization\) | + + +--- + +### GitHub PR Opened + +Trigger workflow when a new pull request is opened in a GitHub repository + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `contentType` | string | Yes | Format GitHub will use when sending the webhook payload. | +| `webhookSecret` | string | No | Validates that webhook deliveries originate from GitHub. | +| `sslVerification` | string | Yes | GitHub verifies SSL certificates when delivering webhooks. | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `event_type` | string | GitHub event type from X-GitHub-Event header \(e.g., pull_request\) | +| `action` | string | Action performed \(opened, closed, synchronize, reopened, edited, etc.\) | +| `number` | number | Pull request number | +| `pull_request` | object | pull_request output from the tool | +| ↳ `id` | number | Pull request ID | +| ↳ `node_id` | string | Pull request node ID | +| ↳ `number` | number | Pull request number | +| ↳ `title` | string | Pull request title | +| ↳ `body` | string | Pull request description | +| ↳ `state` | string | Pull request state \(open, closed\) | +| ↳ `merged` | boolean | Whether the PR was merged | +| ↳ `merged_at` | string | Timestamp when PR was merged | +| ↳ `merged_by` | object | merged_by output from the tool | +| ↳ `login` | string | Username | +| ↳ `id` | number | User ID | +| ↳ `node_id` | string | User node ID | +| ↳ `avatar_url` | string | Avatar URL | +| ↳ `html_url` | string | Profile URL | +| ↳ `user_type` | string | User type \(User, Bot, Organization\) | +| ↳ `draft` | boolean | Whether the PR is a draft | +| ↳ `html_url` | string | Pull request HTML URL | +| ↳ `diff_url` | string | Pull request diff URL | +| ↳ `patch_url` | string | Pull request patch URL | +| ↳ `user` | object | user output from the tool | +| ↳ `login` | string | Username | +| ↳ `id` | number | User ID | +| ↳ `node_id` | string | User node ID | +| ↳ `avatar_url` | string | Avatar URL | +| ↳ `html_url` | string | Profile URL | +| ↳ `user_type` | string | User type \(User, Bot, Organization\) | +| ↳ `head` | object | head output from the tool | +| ↳ `ref` | string | Source branch name | +| ↳ `sha` | string | Source branch commit SHA | +| ↳ `repo` | object | repo output from the tool | +| ↳ `name` | string | Source repository name | +| ↳ `full_name` | string | Source repository full name | +| ↳ `base` | object | base output from the tool | +| ↳ `ref` | string | Target branch name | +| ↳ `sha` | string | Target branch commit SHA | +| ↳ `repo` | object | repo output from the tool | +| ↳ `name` | string | Target repository name | +| ↳ `full_name` | string | Target repository full name | +| ↳ `additions` | number | Number of lines added | +| ↳ `deletions` | number | Number of lines deleted | +| ↳ `changed_files` | number | Number of files changed | +| ↳ `labels` | array | Array of label objects | +| ↳ `assignees` | array | Array of assigned users | +| ↳ `requested_reviewers` | array | Array of requested reviewers | +| ↳ `created_at` | string | Pull request creation timestamp | +| ↳ `updated_at` | string | Pull request last update timestamp | +| ↳ `closed_at` | string | Pull request closed timestamp | +| `repository` | object | repository output from the tool | +| ↳ `id` | number | Repository ID | +| ↳ `node_id` | string | Repository node ID | +| ↳ `name` | string | Repository name | +| ↳ `full_name` | string | Repository full name \(owner/repo\) | +| ↳ `private` | boolean | Whether the repository is private | +| ↳ `html_url` | string | Repository HTML URL | +| ↳ `repo_description` | string | Repository description | +| ↳ `fork` | boolean | Whether the repository is a fork | +| ↳ `url` | string | Repository API URL | +| ↳ `homepage` | string | Repository homepage URL | +| ↳ `size` | number | Repository size in KB | +| ↳ `stargazers_count` | number | Number of stars | +| ↳ `watchers_count` | number | Number of watchers | +| ↳ `language` | string | Primary programming language | +| ↳ `forks_count` | number | Number of forks | +| ↳ `open_issues_count` | number | Number of open issues | +| ↳ `default_branch` | string | Default branch name | +| ↳ `owner` | object | owner output from the tool | +| ↳ `login` | string | Owner username | +| ↳ `id` | number | Owner ID | +| ↳ `avatar_url` | string | Owner avatar URL | +| ↳ `html_url` | string | Owner profile URL | +| ↳ `owner_type` | string | Owner type \(User, Organization\) | +| `sender` | object | sender output from the tool | +| ↳ `login` | string | Username | +| ↳ `id` | number | User ID | +| ↳ `node_id` | string | User node ID | +| ↳ `avatar_url` | string | Avatar URL | +| ↳ `html_url` | string | Profile URL | +| ↳ `user_type` | string | User type \(User, Bot, Organization\) | + + +--- + +### GitHub PR Reviewed + +Trigger workflow when a pull request review is submitted, edited, or dismissed in a GitHub repository + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `contentType` | string | Yes | Format GitHub will use when sending the webhook payload. | +| `webhookSecret` | string | No | Validates that webhook deliveries originate from GitHub. | +| `sslVerification` | string | Yes | GitHub verifies SSL certificates when delivering webhooks. | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `event_type` | string | GitHub event type from X-GitHub-Event header \(e.g., pull_request_review\) | +| `action` | string | Action performed \(submitted, edited, dismissed\) | +| `review` | object | review output from the tool | +| ↳ `id` | number | Review ID | +| ↳ `node_id` | string | Review node ID | +| ↳ `user` | object | user output from the tool | +| ↳ `login` | string | Reviewer username | +| ↳ `id` | number | Reviewer user ID | +| ↳ `node_id` | string | Reviewer node ID | +| ↳ `avatar_url` | string | Reviewer avatar URL | +| ↳ `html_url` | string | Reviewer profile URL | +| ↳ `user_type` | string | User type \(User, Bot, Organization\) | +| ↳ `body` | string | Review comment text | +| ↳ `state` | string | Review state \(approved, changes_requested, commented, dismissed\) | +| ↳ `html_url` | string | Review HTML URL | +| ↳ `submitted_at` | string | Review submission timestamp | +| ↳ `commit_id` | string | Commit SHA that was reviewed | +| ↳ `author_association` | string | Author association \(OWNER, MEMBER, COLLABORATOR, CONTRIBUTOR, etc.\) | +| `pull_request` | object | pull_request output from the tool | +| ↳ `id` | number | Pull request ID | +| ↳ `node_id` | string | Pull request node ID | +| ↳ `number` | number | Pull request number | +| ↳ `title` | string | Pull request title | +| ↳ `body` | string | Pull request description | +| ↳ `state` | string | Pull request state \(open, closed\) | +| ↳ `merged` | boolean | Whether the PR was merged | +| ↳ `draft` | boolean | Whether the PR is a draft | +| ↳ `html_url` | string | Pull request HTML URL | +| ↳ `diff_url` | string | Pull request diff URL | +| ↳ `patch_url` | string | Pull request patch URL | +| ↳ `user` | object | user output from the tool | +| ↳ `login` | string | PR author username | +| ↳ `id` | number | PR author user ID | +| ↳ `node_id` | string | PR author node ID | +| ↳ `avatar_url` | string | PR author avatar URL | +| ↳ `html_url` | string | PR author profile URL | +| ↳ `user_type` | string | User type \(User, Bot, Organization\) | +| ↳ `head` | object | head output from the tool | +| ↳ `ref` | string | Source branch name | +| ↳ `sha` | string | Source branch commit SHA | +| ↳ `repo` | object | repo output from the tool | +| ↳ `name` | string | Source repository name | +| ↳ `full_name` | string | Source repository full name | +| ↳ `base` | object | base output from the tool | +| ↳ `ref` | string | Target branch name | +| ↳ `sha` | string | Target branch commit SHA | +| ↳ `repo` | object | repo output from the tool | +| ↳ `name` | string | Target repository name | +| ↳ `full_name` | string | Target repository full name | +| ↳ `created_at` | string | Pull request creation timestamp | +| ↳ `updated_at` | string | Pull request last update timestamp | +| `repository` | object | repository output from the tool | +| ↳ `id` | number | Repository ID | +| ↳ `node_id` | string | Repository node ID | +| ↳ `name` | string | Repository name | +| ↳ `full_name` | string | Repository full name \(owner/repo\) | +| ↳ `private` | boolean | Whether the repository is private | +| ↳ `html_url` | string | Repository HTML URL | +| ↳ `repo_description` | string | Repository description | +| ↳ `owner` | object | owner output from the tool | +| ↳ `login` | string | Owner username | +| ↳ `id` | number | Owner ID | +| ↳ `node_id` | string | Owner node ID | +| ↳ `avatar_url` | string | Owner avatar URL | +| ↳ `html_url` | string | Owner profile URL | +| ↳ `owner_type` | string | Owner type \(User, Organization\) | +| `sender` | object | sender output from the tool | +| ↳ `login` | string | Username | +| ↳ `id` | number | User ID | +| ↳ `node_id` | string | User node ID | +| ↳ `avatar_url` | string | Avatar URL | +| ↳ `html_url` | string | Profile URL | +| ↳ `user_type` | string | User type \(User, Bot, Organization\) | + + +--- + +### GitHub Push + +Trigger workflow when code is pushed to a repository + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `contentType` | string | Yes | Format GitHub will use when sending the webhook payload. | +| `webhookSecret` | string | No | Validates that webhook deliveries originate from GitHub. | +| `sslVerification` | string | Yes | GitHub verifies SSL certificates when delivering webhooks. | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `event_type` | string | GitHub event type from X-GitHub-Event header \(e.g., push\) | +| `branch` | string | Branch name derived from ref \(e.g., main from refs/heads/main\) | +| `ref` | string | Git reference that was pushed \(e.g., refs/heads/main\) | +| `before` | string | SHA of the commit before the push | +| `after` | string | SHA of the commit after the push | +| `created` | boolean | Whether this push created a new branch or tag | +| `deleted` | boolean | Whether this push deleted a branch or tag | +| `forced` | boolean | Whether this was a force push | +| `base_ref` | string | Base reference for the push | +| `compare` | string | URL to compare the changes | +| `commits` | array | Array of commit objects included in this push | +| `head_commit` | object | head_commit output from the tool | +| ↳ `id` | string | Commit SHA of the most recent commit | +| ↳ `tree_id` | string | Git tree SHA | +| ↳ `distinct` | boolean | Whether this commit is distinct | +| ↳ `message` | string | Commit message | +| ↳ `timestamp` | string | Commit timestamp | +| ↳ `url` | string | Commit URL | +| ↳ `author` | object | author output from the tool | +| ↳ `name` | string | Author name | +| ↳ `email` | string | Author email | +| ↳ `username` | string | Author GitHub username | +| ↳ `committer` | object | committer output from the tool | +| ↳ `name` | string | Committer name | +| ↳ `email` | string | Committer email | +| ↳ `username` | string | Committer GitHub username | +| ↳ `added` | array | Array of file paths added in this commit | +| ↳ `removed` | array | Array of file paths removed in this commit | +| ↳ `modified` | array | Array of file paths modified in this commit | +| `pusher` | object | pusher output from the tool | +| ↳ `name` | string | Pusher name | +| ↳ `email` | string | Pusher email | +| `repository` | object | repository output from the tool | +| ↳ `id` | number | Repository ID | +| ↳ `node_id` | string | Repository node ID | +| ↳ `name` | string | Repository name | +| ↳ `full_name` | string | Repository full name \(owner/repo\) | +| ↳ `private` | boolean | Whether the repository is private | +| ↳ `html_url` | string | Repository HTML URL | +| ↳ `repo_description` | string | Repository description | +| ↳ `fork` | boolean | Whether the repository is a fork | +| ↳ `url` | string | Repository API URL | +| ↳ `homepage` | string | Repository homepage URL | +| ↳ `size` | number | Repository size in KB | +| ↳ `stargazers_count` | number | Number of stars | +| ↳ `watchers_count` | number | Number of watchers | +| ↳ `language` | string | Primary programming language | +| ↳ `forks_count` | number | Number of forks | +| ↳ `open_issues_count` | number | Number of open issues | +| ↳ `default_branch` | string | Default branch name | +| ↳ `owner` | object | owner output from the tool | +| ↳ `login` | string | Owner username | +| ↳ `id` | number | Owner ID | +| ↳ `node_id` | string | Owner node ID | +| ↳ `avatar_url` | string | Owner avatar URL | +| ↳ `html_url` | string | Owner profile URL | +| ↳ `owner_type` | string | Owner type \(User, Organization\) | +| `sender` | object | sender output from the tool | +| ↳ `login` | string | Username | +| ↳ `id` | number | User ID | +| ↳ `node_id` | string | User node ID | +| ↳ `avatar_url` | string | Avatar URL | +| ↳ `html_url` | string | Profile URL | +| ↳ `user_type` | string | User type \(User, Bot, Organization\) | + + +--- + +### GitHub Release Published + +Trigger workflow when a new release is published in a GitHub repository + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `contentType` | string | Yes | Format GitHub will use when sending the webhook payload. | +| `webhookSecret` | string | No | Validates that webhook deliveries originate from GitHub. | +| `sslVerification` | string | Yes | GitHub verifies SSL certificates when delivering webhooks. | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `event_type` | string | GitHub event type from X-GitHub-Event header \(e.g., release\) | +| `action` | string | Action performed \(published, unpublished, created, edited, deleted, prereleased, released\) | +| `release` | object | release output from the tool | +| ↳ `id` | number | Release ID | +| ↳ `node_id` | string | Release node ID | +| ↳ `tag_name` | string | Git tag name for the release | +| ↳ `target_commitish` | string | Target branch or commit SHA | +| ↳ `name` | string | Release name/title | +| ↳ `body` | string | Release description/notes in markdown format | +| ↳ `draft` | boolean | Whether the release is a draft | +| ↳ `prerelease` | boolean | Whether the release is a pre-release | +| ↳ `created_at` | string | Release creation timestamp | +| ↳ `published_at` | string | Release publication timestamp | +| ↳ `url` | string | Release API URL | +| ↳ `html_url` | string | Release HTML URL | +| ↳ `assets_url` | string | Release assets API URL | +| ↳ `upload_url` | string | URL for uploading release assets | +| ↳ `tarball_url` | string | Source code tarball download URL | +| ↳ `zipball_url` | string | Source code zipball download URL | +| ↳ `discussion_url` | string | Discussion URL if available | +| ↳ `author` | object | author output from the tool | +| ↳ `login` | string | Username | +| ↳ `id` | number | User ID | +| ↳ `node_id` | string | User node ID | +| ↳ `avatar_url` | string | Avatar URL | +| ↳ `gravatar_id` | string | Gravatar ID | +| ↳ `url` | string | User API URL | +| ↳ `html_url` | string | Profile URL | +| ↳ `followers_url` | string | Followers API URL | +| ↳ `following_url` | string | Following API URL | +| ↳ `gists_url` | string | Gists API URL | +| ↳ `starred_url` | string | Starred repositories API URL | +| ↳ `subscriptions_url` | string | Subscriptions API URL | +| ↳ `organizations_url` | string | Organizations API URL | +| ↳ `repos_url` | string | Repositories API URL | +| ↳ `events_url` | string | Events API URL | +| ↳ `received_events_url` | string | Received events API URL | +| ↳ `user_type` | string | User type \(User, Bot, Organization\) | +| ↳ `site_admin` | boolean | Whether user is a site administrator | +| ↳ `assets` | array | Array of release asset objects with download URLs | +| `repository` | object | repository output from the tool | +| ↳ `id` | number | Repository ID | +| ↳ `node_id` | string | Repository node ID | +| ↳ `name` | string | Repository name | +| ↳ `full_name` | string | Repository full name \(owner/repo\) | +| ↳ `private` | boolean | Whether the repository is private | +| ↳ `html_url` | string | Repository HTML URL | +| ↳ `repo_description` | string | Repository description | +| ↳ `fork` | boolean | Whether the repository is a fork | +| ↳ `url` | string | Repository API URL | +| ↳ `archive_url` | string | Archive API URL | +| ↳ `assignees_url` | string | Assignees API URL | +| ↳ `blobs_url` | string | Blobs API URL | +| ↳ `branches_url` | string | Branches API URL | +| ↳ `collaborators_url` | string | Collaborators API URL | +| ↳ `comments_url` | string | Comments API URL | +| ↳ `commits_url` | string | Commits API URL | +| ↳ `compare_url` | string | Compare API URL | +| ↳ `contents_url` | string | Contents API URL | +| ↳ `contributors_url` | string | Contributors API URL | +| ↳ `deployments_url` | string | Deployments API URL | +| ↳ `downloads_url` | string | Downloads API URL | +| ↳ `events_url` | string | Events API URL | +| ↳ `forks_url` | string | Forks API URL | +| ↳ `git_commits_url` | string | Git commits API URL | +| ↳ `git_refs_url` | string | Git refs API URL | +| ↳ `git_tags_url` | string | Git tags API URL | +| ↳ `hooks_url` | string | Hooks API URL | +| ↳ `issue_comment_url` | string | Issue comment API URL | +| ↳ `issue_events_url` | string | Issue events API URL | +| ↳ `issues_url` | string | Issues API URL | +| ↳ `keys_url` | string | Keys API URL | +| ↳ `labels_url` | string | Labels API URL | +| ↳ `languages_url` | string | Languages API URL | +| ↳ `merges_url` | string | Merges API URL | +| ↳ `milestones_url` | string | Milestones API URL | +| ↳ `notifications_url` | string | Notifications API URL | +| ↳ `pulls_url` | string | Pull requests API URL | +| ↳ `releases_url` | string | Releases API URL | +| ↳ `stargazers_url` | string | Stargazers API URL | +| ↳ `statuses_url` | string | Statuses API URL | +| ↳ `subscribers_url` | string | Subscribers API URL | +| ↳ `subscription_url` | string | Subscription API URL | +| ↳ `tags_url` | string | Tags API URL | +| ↳ `teams_url` | string | Teams API URL | +| ↳ `trees_url` | string | Trees API URL | +| ↳ `homepage` | string | Repository homepage URL | +| ↳ `size` | number | Repository size in KB | +| ↳ `stargazers_count` | number | Number of stars | +| ↳ `watchers_count` | number | Number of watchers | +| ↳ `language` | string | Primary programming language | +| ↳ `has_issues` | boolean | Whether issues are enabled | +| ↳ `has_projects` | boolean | Whether projects are enabled | +| ↳ `has_downloads` | boolean | Whether downloads are enabled | +| ↳ `has_wiki` | boolean | Whether wiki is enabled | +| ↳ `has_pages` | boolean | Whether GitHub Pages is enabled | +| ↳ `forks_count` | number | Number of forks | +| ↳ `mirror_url` | string | Mirror URL if repository is a mirror | +| ↳ `archived` | boolean | Whether the repository is archived | +| ↳ `disabled` | boolean | Whether the repository is disabled | +| ↳ `open_issues_count` | number | Number of open issues | +| ↳ `license` | object | license output from the tool | +| ↳ `key` | string | License key | +| ↳ `name` | string | License name | +| ↳ `spdx_id` | string | SPDX license identifier | +| ↳ `url` | string | License API URL | +| ↳ `node_id` | string | License node ID | +| ↳ `allow_forking` | boolean | Whether forking is allowed | +| ↳ `is_template` | boolean | Whether repository is a template | +| ↳ `topics` | array | Array of repository topics | +| ↳ `visibility` | string | Repository visibility \(public, private, internal\) | +| ↳ `forks` | number | Number of forks | +| ↳ `open_issues` | number | Number of open issues | +| ↳ `watchers` | number | Number of watchers | +| ↳ `default_branch` | string | Default branch name | +| ↳ `created_at` | string | Repository creation timestamp | +| ↳ `updated_at` | string | Repository last update timestamp | +| ↳ `pushed_at` | string | Repository last push timestamp | +| ↳ `owner` | object | owner output from the tool | +| ↳ `login` | string | Owner username | +| ↳ `id` | number | Owner ID | +| ↳ `node_id` | string | Owner node ID | +| ↳ `avatar_url` | string | Owner avatar URL | +| ↳ `gravatar_id` | string | Owner gravatar ID | +| ↳ `url` | string | Owner API URL | +| ↳ `html_url` | string | Owner profile URL | +| ↳ `followers_url` | string | Followers API URL | +| ↳ `following_url` | string | Following API URL | +| ↳ `gists_url` | string | Gists API URL | +| ↳ `starred_url` | string | Starred repositories API URL | +| ↳ `subscriptions_url` | string | Subscriptions API URL | +| ↳ `organizations_url` | string | Organizations API URL | +| ↳ `repos_url` | string | Repositories API URL | +| ↳ `events_url` | string | Events API URL | +| ↳ `received_events_url` | string | Received events API URL | +| ↳ `owner_type` | string | Owner type \(User, Organization\) | +| ↳ `site_admin` | boolean | Whether owner is a site administrator | +| `sender` | object | sender output from the tool | +| ↳ `login` | string | Username | +| ↳ `id` | number | User ID | +| ↳ `node_id` | string | User node ID | +| ↳ `avatar_url` | string | Avatar URL | +| ↳ `gravatar_id` | string | Gravatar ID | +| ↳ `url` | string | User API URL | +| ↳ `html_url` | string | Profile URL | +| ↳ `followers_url` | string | Followers API URL | +| ↳ `following_url` | string | Following API URL | +| ↳ `gists_url` | string | Gists API URL | +| ↳ `starred_url` | string | Starred repositories API URL | +| ↳ `subscriptions_url` | string | Subscriptions API URL | +| ↳ `organizations_url` | string | Organizations API URL | +| ↳ `repos_url` | string | Repositories API URL | +| ↳ `events_url` | string | Events API URL | +| ↳ `received_events_url` | string | Received events API URL | +| ↳ `user_type` | string | User type \(User, Bot, Organization\) | +| ↳ `site_admin` | boolean | Whether user is a site administrator | + + +--- + +### GitHub Webhook + +Trigger workflow from GitHub events like push, pull requests, issues, and more + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `contentType` | string | Yes | Format GitHub will use when sending the webhook payload. | +| `webhookSecret` | string | No | Validates that webhook deliveries originate from GitHub. | +| `sslVerification` | string | Yes | GitHub verifies SSL certificates when delivering webhooks. | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `ref` | string | Git reference \(e.g., refs/heads/fix/telegram-wh\) | +| `before` | string | SHA of the commit before the push | +| `after` | string | SHA of the commit after the push | +| `created` | boolean | Whether the push created the reference | +| `deleted` | boolean | Whether the push deleted the reference | +| `forced` | boolean | Whether the push was forced | +| `base_ref` | string | Base reference for the push | +| `compare` | string | URL to compare the changes | +| `repository` | object | repository output from the tool | +| ↳ `id` | number | Repository ID | +| ↳ `node_id` | string | Repository node ID | +| ↳ `name` | string | Repository name | +| ↳ `full_name` | string | Repository full name \(owner/repo\) | +| ↳ `private` | boolean | Whether the repository is private | +| ↳ `html_url` | string | Repository HTML URL | +| ↳ `fork` | boolean | Whether the repository is a fork | +| ↳ `url` | string | Repository API URL | +| ↳ `created_at` | number | Repository creation timestamp | +| ↳ `updated_at` | string | Repository last updated time | +| ↳ `pushed_at` | number | Repository last push timestamp | +| ↳ `git_url` | string | Repository git URL | +| ↳ `ssh_url` | string | Repository SSH URL | +| ↳ `clone_url` | string | Repository clone URL | +| ↳ `homepage` | string | Repository homepage URL | +| ↳ `size` | number | Repository size | +| ↳ `stargazers_count` | number | Number of stars | +| ↳ `watchers_count` | number | Number of watchers | +| ↳ `language` | string | Primary programming language | +| ↳ `forks_count` | number | Number of forks | +| ↳ `archived` | boolean | Whether the repository is archived | +| ↳ `disabled` | boolean | Whether the repository is disabled | +| ↳ `open_issues_count` | number | Number of open issues | +| ↳ `topics` | array | Repository topics | +| ↳ `visibility` | string | Repository visibility \(public, private\) | +| ↳ `forks` | number | Number of forks | +| ↳ `open_issues` | number | Number of open issues | +| ↳ `watchers` | number | Number of watchers | +| ↳ `default_branch` | string | Default branch name | +| ↳ `stargazers` | number | Number of stargazers | +| ↳ `master_branch` | string | Master branch name | +| ↳ `owner` | object | owner output from the tool | +| ↳ `name` | string | Owner name | +| ↳ `email` | string | Owner email | +| ↳ `login` | string | Owner username | +| ↳ `id` | number | Owner ID | +| ↳ `node_id` | string | Owner node ID | +| ↳ `avatar_url` | string | Owner avatar URL | +| ↳ `gravatar_id` | string | Owner gravatar ID | +| ↳ `url` | string | Owner API URL | +| ↳ `html_url` | string | Owner profile URL | +| ↳ `user_view_type` | string | User view type | +| ↳ `site_admin` | boolean | Whether the owner is a site admin | +| ↳ `license` | object | Repository license information | +| `pusher` | object | Information about who pushed the changes | +| `sender` | object | sender output from the tool | +| ↳ `login` | string | Sender username | +| ↳ `id` | number | Sender ID | +| ↳ `node_id` | string | Sender node ID | +| ↳ `avatar_url` | string | Sender avatar URL | +| ↳ `gravatar_id` | string | Sender gravatar ID | +| ↳ `url` | string | Sender API URL | +| ↳ `html_url` | string | Sender profile URL | +| ↳ `user_view_type` | string | User view type | +| ↳ `site_admin` | boolean | Whether the sender is a site admin | +| `commits` | array | Array of commit objects | +| `head_commit` | object | Head commit object | +| `event_type` | string | Type of GitHub event \(e.g., push, pull_request, issues\) | +| `action` | string | The action that was performed \(e.g., opened, closed, synchronize\) | +| `branch` | string | Branch name extracted from ref | + diff --git a/apps/docs/content/docs/en/triggers/gmail.mdx b/apps/docs/content/docs/en/triggers/gmail.mdx new file mode 100644 index 00000000000..f71569a9c1c --- /dev/null +++ b/apps/docs/content/docs/en/triggers/gmail.mdx @@ -0,0 +1,52 @@ +--- +title: Gmail +description: Available Gmail triggers for automating workflows +--- + +import { BlockInfoCard } from "@/components/ui/block-info-card" + + + +Gmail provides 1 trigger for automating workflows based on events. + +All triggers below are **polling-based** — they check for new data on a schedule rather than receiving push notifications. + +## Triggers + +### Gmail Email Trigger + +Triggers when new emails are received in Gmail (requires Gmail credentials) + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `triggerCredentials` | string | Yes | This trigger requires google email credentials to access your account. | +| `labelIds` | string | No | Choose which Gmail labels to monitor. Leave empty to monitor all emails. | +| `labelFilterBehavior` | string | Yes | Include only emails with selected labels, or exclude emails with selected labels | +| `searchQuery` | string | No | Optional Gmail search query to filter emails. Use the same format as Gmail search box \(e.g., | +| `markAsRead` | boolean | No | Automatically mark emails as read after processing | +| `includeAttachments` | boolean | No | Download and include email attachments in the trigger payload | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `email` | object | email output from the tool | +| ↳ `id` | string | Gmail message ID | +| ↳ `threadId` | string | Gmail thread ID | +| ↳ `subject` | string | Email subject line | +| ↳ `from` | string | Sender email address | +| ↳ `to` | string | Recipient email address | +| ↳ `cc` | string | CC recipients | +| ↳ `date` | string | Email date in ISO format | +| ↳ `bodyText` | string | Plain text email body | +| ↳ `bodyHtml` | string | HTML email body | +| ↳ `labels` | string | Email labels array | +| ↳ `hasAttachments` | boolean | Whether email has attachments | +| ↳ `attachments` | file[] | Array of email attachments as files \(if includeAttachments is enabled\) | +| `timestamp` | string | Event timestamp | + diff --git a/apps/docs/content/docs/en/triggers/gong.mdx b/apps/docs/content/docs/en/triggers/gong.mdx new file mode 100644 index 00000000000..1885f7ffc70 --- /dev/null +++ b/apps/docs/content/docs/en/triggers/gong.mdx @@ -0,0 +1,109 @@ +--- +title: Gong +description: Available Gong triggers for automating workflows +--- + +import { BlockInfoCard } from "@/components/ui/block-info-card" + + + +Gong provides 2 triggers for automating workflows based on events. + +## Triggers + +### Gong Call Completed + +Trigger workflow when a call is completed and processed in Gong + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `gongJwtPublicKeyPem` | string | No | Required only when your Gong rule uses **Signed JWT header**. Sim verifies RS256, `webhook_url`, and `body_sha256` per Gong. If empty, only the webhook URL path authenticates the request. | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `eventType` | string | Constant identifier for automation-rule webhooks \(`gong.automation_rule`\). Gong does not send distinct event names in the payload. | +| `callId` | string | Gong call ID \(same value as metaData.id when present\) | +| `isTest` | boolean | Whether this is a test webhook from the Gong UI | +| `callData` | json | Full call data object | +| `metaData` | object | metaData output from the tool | +| ↳ `id` | string | Gong call ID | +| ↳ `url` | string | URL to the call in Gong | +| ↳ `title` | string | Call title | +| ↳ `scheduled` | string | Scheduled start time \(ISO 8601\) | +| ↳ `started` | string | Actual start time \(ISO 8601\) | +| ↳ `duration` | number | Call duration in seconds | +| ↳ `primaryUserId` | string | Primary Gong user ID | +| ↳ `workspaceId` | string | Gong workspace ID | +| ↳ `direction` | string | Call direction \(Inbound, Outbound, etc.\) | +| ↳ `system` | string | Communication platform used \(e.g. Zoom, Teams\) | +| ↳ `scope` | string | Call scope \(Internal, External, or Unknown\) | +| ↳ `media` | string | Media type \(Video or Audio\) | +| ↳ `language` | string | Language code \(ISO-639-2B\) | +| ↳ `sdrDisposition` | string | SDR disposition classification \(when present\) | +| ↳ `clientUniqueId` | string | Call identifier from the origin recording system \(when present\) | +| ↳ `customData` | string | Custom metadata from call creation \(when present\) | +| ↳ `purpose` | string | Call purpose \(when present\) | +| ↳ `meetingUrl` | string | Web conference provider URL \(when present\) | +| ↳ `isPrivate` | boolean | Whether the call is private \(when present\) | +| ↳ `calendarEventId` | string | Calendar event identifier \(when present\) | +| `parties` | array | Array of call participants with name, email, title, and affiliation | +| `context` | array | Array of CRM context objects \(Salesforce opportunities, accounts, etc.\) | +| `trackers` | array | Keyword and smart trackers from call content \(same shape as Gong extensive-calls `content.trackers`\) | +| `topics` | array | Topic segments with durations from call content \(`content.topics`\) | +| `highlights` | array | AI-generated highlights from call content \(`content.highlights`\) | + + +--- + +### Gong Webhook + +Generic webhook trigger for all Gong events + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `gongJwtPublicKeyPem` | string | No | Required only when your Gong rule uses **Signed JWT header**. Sim verifies RS256, `webhook_url`, and `body_sha256` per Gong. If empty, only the webhook URL path authenticates the request. | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `eventType` | string | Constant identifier for automation-rule webhooks \(`gong.automation_rule`\). Gong does not send distinct event names in the payload. | +| `callId` | string | Gong call ID \(same value as metaData.id when present\) | +| `isTest` | boolean | Whether this is a test webhook from the Gong UI | +| `callData` | json | Full call data object | +| `metaData` | object | metaData output from the tool | +| ↳ `id` | string | Gong call ID | +| ↳ `url` | string | URL to the call in Gong | +| ↳ `title` | string | Call title | +| ↳ `scheduled` | string | Scheduled start time \(ISO 8601\) | +| ↳ `started` | string | Actual start time \(ISO 8601\) | +| ↳ `duration` | number | Call duration in seconds | +| ↳ `primaryUserId` | string | Primary Gong user ID | +| ↳ `workspaceId` | string | Gong workspace ID | +| ↳ `direction` | string | Call direction \(Inbound, Outbound, etc.\) | +| ↳ `system` | string | Communication platform used \(e.g. Zoom, Teams\) | +| ↳ `scope` | string | Call scope \(Internal, External, or Unknown\) | +| ↳ `media` | string | Media type \(Video or Audio\) | +| ↳ `language` | string | Language code \(ISO-639-2B\) | +| ↳ `sdrDisposition` | string | SDR disposition classification \(when present\) | +| ↳ `clientUniqueId` | string | Call identifier from the origin recording system \(when present\) | +| ↳ `customData` | string | Custom metadata from call creation \(when present\) | +| ↳ `purpose` | string | Call purpose \(when present\) | +| ↳ `meetingUrl` | string | Web conference provider URL \(when present\) | +| ↳ `isPrivate` | boolean | Whether the call is private \(when present\) | +| ↳ `calendarEventId` | string | Calendar event identifier \(when present\) | +| `parties` | array | Array of call participants with name, email, title, and affiliation | +| `context` | array | Array of CRM context objects \(Salesforce opportunities, accounts, etc.\) | +| `trackers` | array | Keyword and smart trackers from call content \(same shape as Gong extensive-calls `content.trackers`\) | +| `topics` | array | Topic segments with durations from call content \(`content.topics`\) | +| `highlights` | array | AI-generated highlights from call content \(`content.highlights`\) | + diff --git a/apps/docs/content/docs/en/triggers/google-calendar.mdx b/apps/docs/content/docs/en/triggers/google-calendar.mdx new file mode 100644 index 00000000000..0d8bd87211b --- /dev/null +++ b/apps/docs/content/docs/en/triggers/google-calendar.mdx @@ -0,0 +1,54 @@ +--- +title: Google Calendar +description: Available Google Calendar triggers for automating workflows +--- + +import { BlockInfoCard } from "@/components/ui/block-info-card" + + + +Google Calendar provides 1 trigger for automating workflows based on events. + +All triggers below are **polling-based** — they check for new data on a schedule rather than receiving push notifications. + +## Triggers + +### Google Calendar Event Trigger + +Triggers when events are created, updated, or cancelled in Google Calendar + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `triggerCredentials` | string | Yes | Connect your Google account to access Google Calendar. | +| `calendarId` | file-selector | No | The calendar to monitor for event changes. | +| `manualCalendarId` | string | No | The calendar to monitor for event changes. | +| `eventTypeFilter` | string | No | Only trigger for specific event types. Defaults to all events. | +| `searchTerm` | string | No | Optional: Filter events by text match across title, description, location, and attendees. | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `event` | object | event output from the tool | +| ↳ `id` | string | Calendar event ID | +| ↳ `status` | string | Event status \(confirmed, tentative, cancelled\) | +| ↳ `eventType` | string | Change type: "created", "updated", or "cancelled" | +| ↳ `summary` | string | Event title | +| ↳ `eventDescription` | string | Event description | +| ↳ `location` | string | Event location | +| ↳ `htmlLink` | string | Link to event in Google Calendar | +| ↳ `start` | json | Event start time | +| ↳ `end` | json | Event end time | +| ↳ `created` | string | Event creation time | +| ↳ `updated` | string | Event last updated time | +| ↳ `attendees` | json | Event attendees | +| ↳ `creator` | json | Event creator | +| ↳ `organizer` | json | Event organizer | +| `calendarId` | string | Calendar ID | +| `timestamp` | string | Event processing timestamp in ISO format | + diff --git a/apps/docs/content/docs/en/triggers/google-drive.mdx b/apps/docs/content/docs/en/triggers/google-drive.mdx new file mode 100644 index 00000000000..80105f62f4a --- /dev/null +++ b/apps/docs/content/docs/en/triggers/google-drive.mdx @@ -0,0 +1,52 @@ +--- +title: Google Drive +description: Available Google Drive triggers for automating workflows +--- + +import { BlockInfoCard } from "@/components/ui/block-info-card" + + + +Google Drive provides 1 trigger for automating workflows based on events. + +All triggers below are **polling-based** — they check for new data on a schedule rather than receiving push notifications. + +## Triggers + +### Google Drive File Trigger + +Triggers when files are created, modified, or deleted in Google Drive + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `triggerCredentials` | string | Yes | Connect your Google account to access Google Drive. | +| `folderId` | file-selector | No | Optional: The folder to monitor. Leave empty to monitor all files in Drive. | +| `manualFolderId` | string | No | Optional: The folder ID from the Google Drive URL to monitor. Leave empty to monitor all files. | +| `mimeTypeFilter` | string | No | Optional: Only trigger for specific file types. | +| `eventTypeFilter` | string | No | Only trigger for specific change types. Defaults to all changes. | +| `includeSharedDrives` | boolean | No | Include files from shared \(team\) drives. | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `file` | object | file output from the tool | +| ↳ `id` | string | Google Drive file ID | +| ↳ `name` | string | File name | +| ↳ `mimeType` | string | File MIME type | +| ↳ `modifiedTime` | string | Last modified time \(ISO\) | +| ↳ `createdTime` | string | File creation time \(ISO\) | +| ↳ `size` | string | File size in bytes | +| ↳ `webViewLink` | string | URL to view file in browser | +| ↳ `parents` | json | Parent folder IDs | +| ↳ `lastModifyingUser` | json | User who last modified the file | +| ↳ `shared` | boolean | Whether file is shared | +| ↳ `starred` | boolean | Whether file is starred | +| `eventType` | string | Change type: "created", "modified", or "deleted" | +| `timestamp` | string | Event timestamp in ISO format | + diff --git a/apps/docs/content/docs/en/triggers/google-sheets.mdx b/apps/docs/content/docs/en/triggers/google-sheets.mdx new file mode 100644 index 00000000000..eb48e512006 --- /dev/null +++ b/apps/docs/content/docs/en/triggers/google-sheets.mdx @@ -0,0 +1,46 @@ +--- +title: Google Sheets +description: Available Google Sheets triggers for automating workflows +--- + +import { BlockInfoCard } from "@/components/ui/block-info-card" + + + +Google Sheets provides 1 trigger for automating workflows based on events. + +All triggers below are **polling-based** — they check for new data on a schedule rather than receiving push notifications. + +## Triggers + +### Google Sheets New Row Trigger + +Triggers when new rows are added to a Google Sheet + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `triggerCredentials` | string | Yes | Connect your Google account to access Google Sheets. | +| `spreadsheetId` | file-selector | Yes | The spreadsheet to monitor for new rows. | +| `manualSpreadsheetId` | string | Yes | The spreadsheet to monitor for new rows. | +| `sheetName` | sheet-selector | Yes | The sheet tab to monitor for new rows. | +| `manualSheetName` | string | Yes | The sheet tab to monitor for new rows. | +| `valueRenderOption` | string | No | How values are rendered. Formatted returns display strings, Unformatted returns raw numbers/booleans, Formula returns the formula text. | +| `dateTimeRenderOption` | string | No | How dates and times are rendered. Only applies when Value Render is not | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `row` | json | Row data mapped to column headers from row 1 | +| `rawRow` | json | Raw row values as an array | +| `headers` | json | Column headers from row 1 | +| `rowNumber` | number | The 1-based row number of the new row | +| `spreadsheetId` | string | The spreadsheet ID | +| `sheetName` | string | The sheet tab name | +| `timestamp` | string | Event timestamp in ISO format | + diff --git a/apps/docs/content/docs/en/triggers/google_forms.mdx b/apps/docs/content/docs/en/triggers/google_forms.mdx new file mode 100644 index 00000000000..767d243316a --- /dev/null +++ b/apps/docs/content/docs/en/triggers/google_forms.mdx @@ -0,0 +1,41 @@ +--- +title: Google Forms +description: Available Google Forms triggers for automating workflows +--- + +import { BlockInfoCard } from "@/components/ui/block-info-card" + + + +Google Forms provides 1 trigger for automating workflows based on events. + +## Triggers + +### Google Forms Webhook + +Trigger workflow from Google Form submissions (via Apps Script forwarder) + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `token` | string | Yes | We validate requests using this secret. Send it as Authorization: Bearer <token> or a custom header. | +| `secretHeaderName` | string | No | If set, the webhook will validate this header equals your Shared Secret instead of Authorization. | +| `triggerFormId` | string | No | Optional, for clarity and matching in workflows. Not required for webhook to work. | +| `includeRawPayload` | boolean | No | Include the original payload from Apps Script in the workflow input. | +| `setupScript` | string | No | Copy this code and paste it into your Google Forms Apps Script editor | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `responseId` | string | Unique response identifier \(if available\) | +| `createTime` | string | Response creation timestamp | +| `lastSubmittedTime` | string | Last submitted timestamp | +| `formId` | string | Google Form ID | +| `answers` | object | Normalized map of question -> answer | +| `raw` | object | Original payload \(when enabled\) | + diff --git a/apps/docs/content/docs/en/triggers/grain.mdx b/apps/docs/content/docs/en/triggers/grain.mdx new file mode 100644 index 00000000000..849326f20c1 --- /dev/null +++ b/apps/docs/content/docs/en/triggers/grain.mdx @@ -0,0 +1,239 @@ +--- +title: Grain +description: Available Grain triggers for automating workflows +--- + +import { BlockInfoCard } from "@/components/ui/block-info-card" + + + +Grain provides 8 triggers for automating workflows based on events. + +## Triggers + +### Grain All Events + +Trigger on all actions (added, updated, removed) in a Grain view + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `apiKey` | string | Yes | Required to create the webhook in Grain. | +| `viewId` | string | Yes | The view determines which content type fires events \(recordings, highlights, or stories\). | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `type` | string | Event type \(e.g., recording_added\) | +| `user_id` | string | User UUID who triggered the event | +| `data` | object | Event data object \(recording, highlight, etc.\) | + + +--- + +### Grain Highlight Created + +Trigger workflow when a new highlight/clip is created in Grain + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `apiKey` | string | Yes | Required to create the webhook in Grain. | +| `viewId` | string | Yes | Required by Grain to create the webhook subscription. | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `type` | string | Event type | +| `user_id` | string | User UUID who triggered the event | +| `data` | object | data output from the tool | +| ↳ `id` | string | Highlight UUID | +| ↳ `recording_id` | string | Parent recording UUID | +| ↳ `text` | string | Highlight title/description | +| ↳ `transcript` | string | Transcript text of the clip | +| ↳ `speakers` | array | Array of speaker names | +| ↳ `timestamp` | number | Start timestamp in ms | +| ↳ `duration` | number | Duration in ms | +| ↳ `tags` | array | Array of tag strings | +| ↳ `url` | string | URL to view in Grain | +| ↳ `thumbnail_url` | string | Thumbnail URL | +| ↳ `created_datetime` | string | ISO8601 creation timestamp | + + +--- + +### Grain Highlight Updated + +Trigger workflow when a highlight/clip is updated in Grain + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `apiKey` | string | Yes | Required to create the webhook in Grain. | +| `viewId` | string | Yes | Required by Grain to create the webhook subscription. | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `type` | string | Event type | +| `user_id` | string | User UUID who triggered the event | +| `data` | object | data output from the tool | +| ↳ `id` | string | Highlight UUID | +| ↳ `recording_id` | string | Parent recording UUID | +| ↳ `text` | string | Highlight title/description | +| ↳ `transcript` | string | Transcript text of the clip | +| ↳ `speakers` | array | Array of speaker names | +| ↳ `timestamp` | number | Start timestamp in ms | +| ↳ `duration` | number | Duration in ms | +| ↳ `tags` | array | Array of tag strings | +| ↳ `url` | string | URL to view in Grain | +| ↳ `thumbnail_url` | string | Thumbnail URL | +| ↳ `created_datetime` | string | ISO8601 creation timestamp | + + +--- + +### Grain Item Added + +Trigger when a new item is added to a Grain view (recording, highlight, or story) + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `apiKey` | string | Yes | Required to create the webhook in Grain. | +| `viewId` | string | Yes | The view determines which content type fires events \(recordings, highlights, or stories\). | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `type` | string | Event type \(e.g., recording_added\) | +| `user_id` | string | User UUID who triggered the event | +| `data` | object | Event data object \(recording, highlight, etc.\) | + + +--- + +### Grain Item Updated + +Trigger when an item is updated in a Grain view (recording, highlight, or story) + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `apiKey` | string | Yes | Required to create the webhook in Grain. | +| `viewId` | string | Yes | The view determines which content type fires events \(recordings, highlights, or stories\). | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `type` | string | Event type \(e.g., recording_added\) | +| `user_id` | string | User UUID who triggered the event | +| `data` | object | Event data object \(recording, highlight, etc.\) | + + +--- + +### Grain Recording Created + +Trigger workflow when a new recording is added in Grain + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `apiKey` | string | Yes | Required to create the webhook in Grain. | +| `viewId` | string | Yes | Required by Grain to create the webhook subscription. | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `type` | string | Event type | +| `user_id` | string | User UUID who triggered the event | +| `data` | object | data output from the tool | +| ↳ `id` | string | Recording UUID | +| ↳ `title` | string | Recording title | +| ↳ `start_datetime` | string | ISO8601 start timestamp | +| ↳ `end_datetime` | string | ISO8601 end timestamp | +| ↳ `duration_ms` | number | Duration in milliseconds | +| ↳ `media_type` | string | audio, transcript, or video | +| ↳ `source` | string | Recording source \(zoom, meet, local_capture, etc.\) | +| ↳ `url` | string | URL to view in Grain | +| ↳ `thumbnail_url` | string | Thumbnail URL \(nullable\) | +| ↳ `tags` | array | Array of tag strings | +| ↳ `teams` | array | Array of team objects | +| ↳ `meeting_type` | object | Meeting type info with id, name, scope \(nullable\) | + + +--- + +### Grain Recording Updated + +Trigger workflow when a recording is updated in Grain + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `apiKey` | string | Yes | Required to create the webhook in Grain. | +| `viewId` | string | Yes | Required by Grain to create the webhook subscription. | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `type` | string | Event type | +| `user_id` | string | User UUID who triggered the event | +| `data` | object | data output from the tool | +| ↳ `id` | string | Recording UUID | +| ↳ `title` | string | Recording title | +| ↳ `start_datetime` | string | ISO8601 start timestamp | +| ↳ `end_datetime` | string | ISO8601 end timestamp | +| ↳ `duration_ms` | number | Duration in milliseconds | +| ↳ `media_type` | string | audio, transcript, or video | +| ↳ `source` | string | Recording source \(zoom, meet, local_capture, etc.\) | +| ↳ `url` | string | URL to view in Grain | +| ↳ `thumbnail_url` | string | Thumbnail URL \(nullable\) | +| ↳ `tags` | array | Array of tag strings | +| ↳ `teams` | array | Array of team objects | +| ↳ `meeting_type` | object | Meeting type info with id, name, scope \(nullable\) | + + +--- + +### Grain Story Created + +Trigger workflow when a new story is created in Grain + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `apiKey` | string | Yes | Required to create the webhook in Grain. | +| `viewId` | string | Yes | Required by Grain to create the webhook subscription. | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `type` | string | Event type | +| `user_id` | string | User UUID who triggered the event | +| `data` | object | data output from the tool | +| ↳ `id` | string | Story UUID | +| ↳ `title` | string | Story title | +| ↳ `url` | string | URL to view in Grain | +| ↳ `created_datetime` | string | ISO8601 creation timestamp | + diff --git a/apps/docs/content/docs/en/triggers/greenhouse.mdx b/apps/docs/content/docs/en/triggers/greenhouse.mdx new file mode 100644 index 00000000000..d8b55bcbbf5 --- /dev/null +++ b/apps/docs/content/docs/en/triggers/greenhouse.mdx @@ -0,0 +1,295 @@ +--- +title: Greenhouse +description: Available Greenhouse triggers for automating workflows +--- + +import { BlockInfoCard } from "@/components/ui/block-info-card" + + + +Greenhouse provides 8 triggers for automating workflows based on events. + +## Triggers + +### Greenhouse Candidate Hired + +Trigger workflow when a candidate is hired + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `secretKey` | string | No | When set, requests must include a valid Signature header \(HMAC-SHA256\). If left empty, the endpoint does not verify signatures—only use on a private URL you fully control. | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `applicationId` | number | Application id when present \(`payload.application.id` or flat `payload.application_id` on offers\) | +| `candidateId` | number | Candidate id when `payload.application.candidate.id` is present | +| `jobId` | number | Job id from `payload.job.id` or flat `payload.job_id` when present | +| `action` | string | The webhook event type \(hire_candidate\) | +| `payload` | object | payload output from the tool | +| ↳ `application` | object | application output from the tool | +| ↳ `id` | number | Application ID | +| ↳ `status` | string | Application status | +| ↳ `prospect` | boolean | Whether the applicant is a prospect | +| ↳ `applied_at` | string | When the application was submitted | +| ↳ `url` | string | Application URL in Greenhouse | +| ↳ `current_stage` | object | current_stage output from the tool | +| ↳ `id` | number | Current stage ID | +| ↳ `name` | string | Current stage name | +| ↳ `candidate` | object | candidate output from the tool | +| ↳ `id` | number | Candidate ID | +| ↳ `first_name` | string | First name | +| ↳ `last_name` | string | Last name | +| ↳ `title` | string | Current title | +| ↳ `company` | string | Current company | +| ↳ `email_addresses` | json | Email addresses | +| ↳ `phone_numbers` | json | Phone numbers | +| ↳ `recruiter` | json | Assigned recruiter | +| ↳ `coordinator` | json | Assigned coordinator | +| ↳ `jobs` | json | Associated jobs \(array\) | +| ↳ `offer` | object | offer output from the tool | +| ↳ `id` | number | Offer ID | +| ↳ `version` | number | Offer version | +| ↳ `starts_at` | string | Offer start date | +| ↳ `custom_fields` | json | Offer custom fields | +| ↳ `custom_fields` | json | Application custom fields | + + +--- + +### Greenhouse Candidate Rejected + +Trigger workflow when a candidate is rejected + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `secretKey` | string | No | When set, requests must include a valid Signature header \(HMAC-SHA256\). If left empty, the endpoint does not verify signatures—only use on a private URL you fully control. | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `applicationId` | number | Application id when present \(`payload.application.id` or flat `payload.application_id` on offers\) | +| `candidateId` | number | Candidate id when `payload.application.candidate.id` is present | +| `jobId` | number | Job id from `payload.job.id` or flat `payload.job_id` when present | +| `action` | string | The webhook event type \(reject_candidate\) | +| `payload` | object | payload output from the tool | +| ↳ `application` | object | application output from the tool | +| ↳ `id` | number | Application ID | +| ↳ `status` | string | Application status \(rejected\) | +| ↳ `prospect` | boolean | Whether the applicant is a prospect | +| ↳ `applied_at` | string | When the application was submitted | +| ↳ `rejected_at` | string | When the candidate was rejected | +| ↳ `url` | string | Application URL in Greenhouse | +| ↳ `current_stage` | object | current_stage output from the tool | +| ↳ `id` | number | Stage ID where rejected | +| ↳ `name` | string | Stage name where rejected | +| ↳ `candidate` | object | candidate output from the tool | +| ↳ `id` | number | Candidate ID | +| ↳ `first_name` | string | First name | +| ↳ `last_name` | string | Last name | +| ↳ `email_addresses` | json | Email addresses | +| ↳ `phone_numbers` | json | Phone numbers | +| ↳ `jobs` | json | Associated jobs \(array\) | +| ↳ `rejection_reason` | json | Rejection reason object with id, name, and type fields | +| ↳ `rejection_details` | json | Rejection details with custom fields | +| ↳ `custom_fields` | json | Application custom fields | + + +--- + +### Greenhouse Candidate Stage Change + +Trigger workflow when a candidate changes interview stages + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `secretKey` | string | No | When set, requests must include a valid Signature header \(HMAC-SHA256\). If left empty, the endpoint does not verify signatures—only use on a private URL you fully control. | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `applicationId` | number | Application id when present \(`payload.application.id` or flat `payload.application_id` on offers\) | +| `candidateId` | number | Candidate id when `payload.application.candidate.id` is present | +| `jobId` | number | Job id from `payload.job.id` or flat `payload.job_id` when present | +| `action` | string | The webhook event type \(candidate_stage_change\) | +| `payload` | object | payload output from the tool | +| ↳ `application` | object | application output from the tool | +| ↳ `id` | number | Application ID | +| ↳ `status` | string | Application status | +| ↳ `prospect` | boolean | Whether the applicant is a prospect | +| ↳ `applied_at` | string | When the application was submitted | +| ↳ `url` | string | Application URL in Greenhouse | +| ↳ `current_stage` | object | current_stage output from the tool | +| ↳ `id` | number | Current stage ID | +| ↳ `name` | string | Current stage name | +| ↳ `interviews` | json | Interviews in this stage | +| ↳ `candidate` | object | candidate output from the tool | +| ↳ `id` | number | Candidate ID | +| ↳ `first_name` | string | First name | +| ↳ `last_name` | string | Last name | +| ↳ `title` | string | Current title | +| ↳ `company` | string | Current company | +| ↳ `email_addresses` | json | Email addresses | +| ↳ `phone_numbers` | json | Phone numbers | +| ↳ `jobs` | json | Associated jobs \(array\) | +| ↳ `custom_fields` | json | Application custom fields | + + +--- + +### Greenhouse Job Created + +Trigger workflow when a new job is created + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `secretKey` | string | No | When set, requests must include a valid Signature header \(HMAC-SHA256\). If left empty, the endpoint does not verify signatures—only use on a private URL you fully control. | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `applicationId` | number | Application id when present \(`payload.application.id` or flat `payload.application_id` on offers\) | +| `candidateId` | number | Candidate id when `payload.application.candidate.id` is present | +| `jobId` | number | Job id from `payload.job.id` or flat `payload.job_id` when present | +| `action` | string | The webhook event type \(job_created\) | + + +--- + +### Greenhouse Job Updated + +Trigger workflow when a job is updated + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `secretKey` | string | No | When set, requests must include a valid Signature header \(HMAC-SHA256\). If left empty, the endpoint does not verify signatures—only use on a private URL you fully control. | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `applicationId` | number | Application id when present \(`payload.application.id` or flat `payload.application_id` on offers\) | +| `candidateId` | number | Candidate id when `payload.application.candidate.id` is present | +| `jobId` | number | Job id from `payload.job.id` or flat `payload.job_id` when present | +| `action` | string | The webhook event type \(job_updated\) | + + +--- + +### Greenhouse New Application + +Trigger workflow when a new application is submitted + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `secretKey` | string | No | When set, requests must include a valid Signature header \(HMAC-SHA256\). If left empty, the endpoint does not verify signatures—only use on a private URL you fully control. | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `applicationId` | number | Application id when present \(`payload.application.id` or flat `payload.application_id` on offers\) | +| `candidateId` | number | Candidate id when `payload.application.candidate.id` is present | +| `jobId` | number | Job id from `payload.job.id` or flat `payload.job_id` when present | +| `action` | string | The webhook event type \(new_candidate_application\) | +| `payload` | object | payload output from the tool | +| ↳ `application` | object | application output from the tool | +| ↳ `id` | number | Application ID | +| ↳ `status` | string | Application status | +| ↳ `prospect` | boolean | Whether the applicant is a prospect | +| ↳ `applied_at` | string | When the application was submitted | +| ↳ `url` | string | Application URL in Greenhouse | +| ↳ `current_stage` | object | current_stage output from the tool | +| ↳ `id` | number | Current stage ID | +| ↳ `name` | string | Current stage name | +| ↳ `candidate` | object | candidate output from the tool | +| ↳ `id` | number | Candidate ID | +| ↳ `first_name` | string | First name | +| ↳ `last_name` | string | Last name | +| ↳ `title` | string | Current title | +| ↳ `company` | string | Current company | +| ↳ `created_at` | string | When the candidate was created | +| ↳ `email_addresses` | json | Email addresses | +| ↳ `phone_numbers` | json | Phone numbers | +| ↳ `tags` | json | Candidate tags | +| ↳ `jobs` | json | Associated jobs \(array\) | +| ↳ `answers` | json | Application question answers | +| ↳ `attachments` | json | Application attachments | +| ↳ `custom_fields` | json | Application custom fields | + + +--- + +### Greenhouse Offer Created + +Trigger workflow when a new offer is created + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `secretKey` | string | No | When set, requests must include a valid Signature header \(HMAC-SHA256\). If left empty, the endpoint does not verify signatures—only use on a private URL you fully control. | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `applicationId` | number | Application id when present \(`payload.application.id` or flat `payload.application_id` on offers\) | +| `candidateId` | number | Candidate id when `payload.application.candidate.id` is present | +| `jobId` | number | Job id from `payload.job.id` or flat `payload.job_id` when present | +| `action` | string | The webhook event type \(offer_created\) | +| `payload` | object | payload output from the tool | +| ↳ `id` | number | Offer ID | +| ↳ `application_id` | number | Associated application ID | +| ↳ `job_id` | number | Associated job ID | +| ↳ `user_id` | number | User who created the offer | +| ↳ `version` | number | Offer version number | +| ↳ `sent_on` | string | When the offer was sent | +| ↳ `resolved_at` | string | When the offer was resolved | +| ↳ `start_date` | string | Offer start date | +| ↳ `notes` | string | Offer notes | +| ↳ `offer_status` | string | Offer status | +| ↳ `custom_fields` | json | Custom field values | + + +--- + +### Greenhouse Webhook (Endpoint Events) + +Trigger on whichever event types you select for this URL in Greenhouse. Sim does not filter deliveries for this trigger. + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `secretKey` | string | No | When set, requests must include a valid Signature header \(HMAC-SHA256\). If left empty, the endpoint does not verify signatures—only use on a private URL you fully control. | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `applicationId` | number | Application id when present \(`payload.application.id` or flat `payload.application_id` on offers\) | +| `candidateId` | number | Candidate id when `payload.application.candidate.id` is present | +| `jobId` | number | Job id from `payload.job.id` or flat `payload.job_id` when present | +| `action` | string | The webhook event type | +| `payload` | json | Full event payload | + diff --git a/apps/docs/content/docs/en/triggers/hubspot.mdx b/apps/docs/content/docs/en/triggers/hubspot.mdx new file mode 100644 index 00000000000..886f39e8e63 --- /dev/null +++ b/apps/docs/content/docs/en/triggers/hubspot.mdx @@ -0,0 +1,1144 @@ +--- +title: HubSpot +description: Available HubSpot triggers for automating workflows +--- + +import { BlockInfoCard } from "@/components/ui/block-info-card" + + + +HubSpot provides 27 triggers for automating workflows based on events. + +## Triggers + +### HubSpot Company Created + +Trigger workflow when a new company is created in HubSpot + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `clientId` | string | Yes | Found in your HubSpot app settings under Auth tab | +| `clientSecret` | string | Yes | Found in your HubSpot app settings under Auth tab | +| `appId` | string | Yes | Found in your HubSpot app settings. Used to identify your app. | +| `developerApiKey` | string | Yes | Used for making API calls to HubSpot. Found in your HubSpot app settings. | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `payload` | array | Full webhook payload array from HubSpot containing event details | +| ↳ `objectId` | number | HubSpot object ID | +| ↳ `subscriptionType` | string | Type of subscription event | +| ↳ `portalId` | number | HubSpot portal ID | +| ↳ `occurredAt` | number | Timestamp when event occurred \(ms\) | +| ↳ `attemptNumber` | number | Webhook delivery attempt number | +| ↳ `eventId` | number | Event ID | +| ↳ `changeSource` | string | Source of the change | +| ↳ `propertyName` | string | Property name \(for propertyChange events\) | +| ↳ `propertyValue` | string | New property value \(for propertyChange events\) | +| `provider` | string | Provider name \(hubspot\) | +| `providerConfig` | object | Provider configuration | +| ↳ `appId` | string | HubSpot App ID | +| ↳ `clientId` | string | HubSpot Client ID | +| ↳ `triggerId` | string | Trigger ID \(e.g., hubspot_company_created\) | +| ↳ `clientSecret` | string | HubSpot Client Secret | +| ↳ `developerApiKey` | string | HubSpot Developer API Key | +| ↳ `curlSetWebhookUrl` | string | curl command to set webhook URL | +| ↳ `curlCreateSubscription` | string | curl command to create subscription | +| ↳ `webhookUrlDisplay` | string | Webhook URL display value | +| ↳ `propertyName` | string | Optional property name filter \(for property change triggers\) | + + +--- + +### HubSpot Company Deleted + +Trigger workflow when a company is deleted in HubSpot + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `clientId` | string | Yes | Found in your HubSpot app settings under Auth tab | +| `clientSecret` | string | Yes | Found in your HubSpot app settings under Auth tab | +| `appId` | string | Yes | Found in your HubSpot app settings. Used to identify your app. | +| `developerApiKey` | string | Yes | Used for making API calls to HubSpot. Found in your HubSpot app settings. | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `payload` | array | Full webhook payload array from HubSpot containing event details | +| ↳ `objectId` | number | HubSpot object ID | +| ↳ `subscriptionType` | string | Type of subscription event | +| ↳ `portalId` | number | HubSpot portal ID | +| ↳ `occurredAt` | number | Timestamp when event occurred \(ms\) | +| ↳ `attemptNumber` | number | Webhook delivery attempt number | +| ↳ `eventId` | number | Event ID | +| ↳ `changeSource` | string | Source of the change | +| ↳ `propertyName` | string | Property name \(for propertyChange events\) | +| ↳ `propertyValue` | string | New property value \(for propertyChange events\) | +| `provider` | string | Provider name \(hubspot\) | +| `providerConfig` | object | Provider configuration | +| ↳ `appId` | string | HubSpot App ID | +| ↳ `clientId` | string | HubSpot Client ID | +| ↳ `triggerId` | string | Trigger ID \(e.g., hubspot_company_created\) | +| ↳ `clientSecret` | string | HubSpot Client Secret | +| ↳ `developerApiKey` | string | HubSpot Developer API Key | +| ↳ `curlSetWebhookUrl` | string | curl command to set webhook URL | +| ↳ `curlCreateSubscription` | string | curl command to create subscription | +| ↳ `webhookUrlDisplay` | string | Webhook URL display value | +| ↳ `propertyName` | string | Optional property name filter \(for property change triggers\) | + + +--- + +### HubSpot Company Merged + +Trigger workflow when companies are merged in HubSpot + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `clientId` | string | Yes | Found in your HubSpot app settings under Auth tab | +| `clientSecret` | string | Yes | Found in your HubSpot app settings under Auth tab | +| `appId` | string | Yes | Found in your HubSpot app settings. Used to identify your app. | +| `developerApiKey` | string | Yes | Used for making API calls to HubSpot. Found in your HubSpot app settings. | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `payload` | array | Full webhook payload array from HubSpot containing merge event details | +| ↳ `objectId` | number | HubSpot object ID \(winning/primary record\) | +| ↳ `subscriptionType` | string | Type of subscription event | +| ↳ `portalId` | number | HubSpot portal ID | +| ↳ `occurredAt` | number | Timestamp when event occurred \(ms\) | +| ↳ `attemptNumber` | number | Webhook delivery attempt number | +| ↳ `eventId` | number | Event ID | +| ↳ `changeSource` | string | Source of the change | +| ↳ `mergedObjectIds` | array | IDs of the objects that were merged into the primary record | +| `provider` | string | Provider name \(hubspot\) | +| `providerConfig` | object | Provider configuration | +| ↳ `appId` | string | HubSpot App ID | +| ↳ `clientId` | string | HubSpot Client ID | +| ↳ `triggerId` | string | Trigger ID \(e.g., hubspot_contact_merged\) | +| ↳ `clientSecret` | string | HubSpot Client Secret | +| ↳ `developerApiKey` | string | HubSpot Developer API Key | +| ↳ `curlSetWebhookUrl` | string | curl command to set webhook URL | +| ↳ `curlCreateSubscription` | string | curl command to create subscription | +| ↳ `webhookUrlDisplay` | string | Webhook URL display value | + + +--- + +### HubSpot Company Property Changed + +Trigger workflow when any property of a company is updated in HubSpot + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `clientId` | string | Yes | Found in your HubSpot app settings under Auth tab | +| `clientSecret` | string | Yes | Found in your HubSpot app settings under Auth tab | +| `appId` | string | Yes | Found in your HubSpot app settings. Used to identify your app. | +| `developerApiKey` | string | Yes | Used for making API calls to HubSpot. Found in your HubSpot app settings. | +| `propertyName` | string | No | Optional: Filter to only trigger when a specific property changes. Leave empty to trigger on any property change. | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `payload` | array | Full webhook payload array from HubSpot containing event details | +| ↳ `objectId` | number | HubSpot object ID | +| ↳ `subscriptionType` | string | Type of subscription event | +| ↳ `portalId` | number | HubSpot portal ID | +| ↳ `occurredAt` | number | Timestamp when event occurred \(ms\) | +| ↳ `attemptNumber` | number | Webhook delivery attempt number | +| ↳ `eventId` | number | Event ID | +| ↳ `changeSource` | string | Source of the change | +| ↳ `propertyName` | string | Property name \(for propertyChange events\) | +| ↳ `propertyValue` | string | New property value \(for propertyChange events\) | +| `provider` | string | Provider name \(hubspot\) | +| `providerConfig` | object | Provider configuration | +| ↳ `appId` | string | HubSpot App ID | +| ↳ `clientId` | string | HubSpot Client ID | +| ↳ `triggerId` | string | Trigger ID \(e.g., hubspot_company_created\) | +| ↳ `clientSecret` | string | HubSpot Client Secret | +| ↳ `developerApiKey` | string | HubSpot Developer API Key | +| ↳ `curlSetWebhookUrl` | string | curl command to set webhook URL | +| ↳ `curlCreateSubscription` | string | curl command to create subscription | +| ↳ `webhookUrlDisplay` | string | Webhook URL display value | +| ↳ `propertyName` | string | Optional property name filter \(for property change triggers\) | + + +--- + +### HubSpot Company Restored + +Trigger workflow when a deleted company is restored in HubSpot + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `clientId` | string | Yes | Found in your HubSpot app settings under Auth tab | +| `clientSecret` | string | Yes | Found in your HubSpot app settings under Auth tab | +| `appId` | string | Yes | Found in your HubSpot app settings. Used to identify your app. | +| `developerApiKey` | string | Yes | Used for making API calls to HubSpot. Found in your HubSpot app settings. | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `payload` | array | Full webhook payload array from HubSpot containing event details | +| ↳ `objectId` | number | HubSpot object ID | +| ↳ `subscriptionType` | string | Type of subscription event | +| ↳ `portalId` | number | HubSpot portal ID | +| ↳ `occurredAt` | number | Timestamp when event occurred \(ms\) | +| ↳ `attemptNumber` | number | Webhook delivery attempt number | +| ↳ `eventId` | number | Event ID | +| ↳ `changeSource` | string | Source of the change | +| ↳ `propertyName` | string | Property name \(for propertyChange events\) | +| ↳ `propertyValue` | string | New property value \(for propertyChange events\) | +| `provider` | string | Provider name \(hubspot\) | +| `providerConfig` | object | Provider configuration | +| ↳ `appId` | string | HubSpot App ID | +| ↳ `clientId` | string | HubSpot Client ID | +| ↳ `triggerId` | string | Trigger ID \(e.g., hubspot_company_created\) | +| ↳ `clientSecret` | string | HubSpot Client Secret | +| ↳ `developerApiKey` | string | HubSpot Developer API Key | +| ↳ `curlSetWebhookUrl` | string | curl command to set webhook URL | +| ↳ `curlCreateSubscription` | string | curl command to create subscription | +| ↳ `webhookUrlDisplay` | string | Webhook URL display value | +| ↳ `propertyName` | string | Optional property name filter \(for property change triggers\) | + + +--- + +### HubSpot Contact Created + +Trigger workflow when a new contact is created in HubSpot + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `clientId` | string | Yes | Found in your HubSpot app settings under Auth tab | +| `clientSecret` | string | Yes | Found in your HubSpot app settings under Auth tab | +| `appId` | string | Yes | Found in your HubSpot app settings. Used to identify your app. | +| `developerApiKey` | string | Yes | Used for making API calls to HubSpot. Found in your HubSpot app settings. | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `payload` | array | Full webhook payload array from HubSpot containing event details | +| ↳ `objectId` | number | HubSpot object ID | +| ↳ `subscriptionType` | string | Type of subscription event | +| ↳ `portalId` | number | HubSpot portal ID | +| ↳ `occurredAt` | number | Timestamp when event occurred \(ms\) | +| ↳ `attemptNumber` | number | Webhook delivery attempt number | +| ↳ `eventId` | number | Event ID | +| ↳ `changeSource` | string | Source of the change | +| ↳ `propertyName` | string | Property name \(for propertyChange events\) | +| ↳ `propertyValue` | string | New property value \(for propertyChange events\) | +| `provider` | string | Provider name \(hubspot\) | +| `providerConfig` | object | Provider configuration | +| ↳ `appId` | string | HubSpot App ID | +| ↳ `clientId` | string | HubSpot Client ID | +| ↳ `triggerId` | string | Trigger ID \(e.g., hubspot_company_created\) | +| ↳ `clientSecret` | string | HubSpot Client Secret | +| ↳ `developerApiKey` | string | HubSpot Developer API Key | +| ↳ `curlSetWebhookUrl` | string | curl command to set webhook URL | +| ↳ `curlCreateSubscription` | string | curl command to create subscription | +| ↳ `webhookUrlDisplay` | string | Webhook URL display value | +| ↳ `propertyName` | string | Optional property name filter \(for property change triggers\) | + + +--- + +### HubSpot Contact Deleted + +Trigger workflow when a contact is deleted in HubSpot + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `clientId` | string | Yes | Found in your HubSpot app settings under Auth tab | +| `clientSecret` | string | Yes | Found in your HubSpot app settings under Auth tab | +| `appId` | string | Yes | Found in your HubSpot app settings. Used to identify your app. | +| `developerApiKey` | string | Yes | Used for making API calls to HubSpot. Found in your HubSpot app settings. | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `payload` | array | Full webhook payload array from HubSpot containing event details | +| ↳ `objectId` | number | HubSpot object ID | +| ↳ `subscriptionType` | string | Type of subscription event | +| ↳ `portalId` | number | HubSpot portal ID | +| ↳ `occurredAt` | number | Timestamp when event occurred \(ms\) | +| ↳ `attemptNumber` | number | Webhook delivery attempt number | +| ↳ `eventId` | number | Event ID | +| ↳ `changeSource` | string | Source of the change | +| ↳ `propertyName` | string | Property name \(for propertyChange events\) | +| ↳ `propertyValue` | string | New property value \(for propertyChange events\) | +| `provider` | string | Provider name \(hubspot\) | +| `providerConfig` | object | Provider configuration | +| ↳ `appId` | string | HubSpot App ID | +| ↳ `clientId` | string | HubSpot Client ID | +| ↳ `triggerId` | string | Trigger ID \(e.g., hubspot_company_created\) | +| ↳ `clientSecret` | string | HubSpot Client Secret | +| ↳ `developerApiKey` | string | HubSpot Developer API Key | +| ↳ `curlSetWebhookUrl` | string | curl command to set webhook URL | +| ↳ `curlCreateSubscription` | string | curl command to create subscription | +| ↳ `webhookUrlDisplay` | string | Webhook URL display value | +| ↳ `propertyName` | string | Optional property name filter \(for property change triggers\) | + + +--- + +### HubSpot Contact Merged + +Trigger workflow when contacts are merged in HubSpot + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `clientId` | string | Yes | Found in your HubSpot app settings under Auth tab | +| `clientSecret` | string | Yes | Found in your HubSpot app settings under Auth tab | +| `appId` | string | Yes | Found in your HubSpot app settings. Used to identify your app. | +| `developerApiKey` | string | Yes | Used for making API calls to HubSpot. Found in your HubSpot app settings. | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `payload` | array | Full webhook payload array from HubSpot containing merge event details | +| ↳ `objectId` | number | HubSpot object ID \(winning/primary record\) | +| ↳ `subscriptionType` | string | Type of subscription event | +| ↳ `portalId` | number | HubSpot portal ID | +| ↳ `occurredAt` | number | Timestamp when event occurred \(ms\) | +| ↳ `attemptNumber` | number | Webhook delivery attempt number | +| ↳ `eventId` | number | Event ID | +| ↳ `changeSource` | string | Source of the change | +| ↳ `mergedObjectIds` | array | IDs of the objects that were merged into the primary record | +| `provider` | string | Provider name \(hubspot\) | +| `providerConfig` | object | Provider configuration | +| ↳ `appId` | string | HubSpot App ID | +| ↳ `clientId` | string | HubSpot Client ID | +| ↳ `triggerId` | string | Trigger ID \(e.g., hubspot_contact_merged\) | +| ↳ `clientSecret` | string | HubSpot Client Secret | +| ↳ `developerApiKey` | string | HubSpot Developer API Key | +| ↳ `curlSetWebhookUrl` | string | curl command to set webhook URL | +| ↳ `curlCreateSubscription` | string | curl command to create subscription | +| ↳ `webhookUrlDisplay` | string | Webhook URL display value | + + +--- + +### HubSpot Contact Privacy Deleted + +Trigger workflow when a contact is deleted for privacy compliance (GDPR, CCPA, etc.) in HubSpot + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `clientId` | string | Yes | Found in your HubSpot app settings under Auth tab | +| `clientSecret` | string | Yes | Found in your HubSpot app settings under Auth tab | +| `appId` | string | Yes | Found in your HubSpot app settings. Used to identify your app. | +| `developerApiKey` | string | Yes | Used for making API calls to HubSpot. Found in your HubSpot app settings. | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `payload` | array | Full webhook payload array from HubSpot containing event details | +| ↳ `objectId` | number | HubSpot object ID | +| ↳ `subscriptionType` | string | Type of subscription event | +| ↳ `portalId` | number | HubSpot portal ID | +| ↳ `occurredAt` | number | Timestamp when event occurred \(ms\) | +| ↳ `attemptNumber` | number | Webhook delivery attempt number | +| ↳ `eventId` | number | Event ID | +| ↳ `changeSource` | string | Source of the change | +| ↳ `propertyName` | string | Property name \(for propertyChange events\) | +| ↳ `propertyValue` | string | New property value \(for propertyChange events\) | +| `provider` | string | Provider name \(hubspot\) | +| `providerConfig` | object | Provider configuration | +| ↳ `appId` | string | HubSpot App ID | +| ↳ `clientId` | string | HubSpot Client ID | +| ↳ `triggerId` | string | Trigger ID \(e.g., hubspot_company_created\) | +| ↳ `clientSecret` | string | HubSpot Client Secret | +| ↳ `developerApiKey` | string | HubSpot Developer API Key | +| ↳ `curlSetWebhookUrl` | string | curl command to set webhook URL | +| ↳ `curlCreateSubscription` | string | curl command to create subscription | +| ↳ `webhookUrlDisplay` | string | Webhook URL display value | +| ↳ `propertyName` | string | Optional property name filter \(for property change triggers\) | + + +--- + +### HubSpot Contact Property Changed + +Trigger workflow when any property of a contact is updated in HubSpot + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `clientId` | string | Yes | Found in your HubSpot app settings under Auth tab | +| `clientSecret` | string | Yes | Found in your HubSpot app settings under Auth tab | +| `appId` | string | Yes | Found in your HubSpot app settings. Used to identify your app. | +| `developerApiKey` | string | Yes | Used for making API calls to HubSpot. Found in your HubSpot app settings. | +| `propertyName` | string | No | Optional: Filter to only trigger when a specific property changes. Leave empty to trigger on any property change. | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `payload` | array | Full webhook payload array from HubSpot containing event details | +| ↳ `objectId` | number | HubSpot object ID | +| ↳ `subscriptionType` | string | Type of subscription event | +| ↳ `portalId` | number | HubSpot portal ID | +| ↳ `occurredAt` | number | Timestamp when event occurred \(ms\) | +| ↳ `attemptNumber` | number | Webhook delivery attempt number | +| ↳ `eventId` | number | Event ID | +| ↳ `changeSource` | string | Source of the change | +| ↳ `propertyName` | string | Property name \(for propertyChange events\) | +| ↳ `propertyValue` | string | New property value \(for propertyChange events\) | +| `provider` | string | Provider name \(hubspot\) | +| `providerConfig` | object | Provider configuration | +| ↳ `appId` | string | HubSpot App ID | +| ↳ `clientId` | string | HubSpot Client ID | +| ↳ `triggerId` | string | Trigger ID \(e.g., hubspot_company_created\) | +| ↳ `clientSecret` | string | HubSpot Client Secret | +| ↳ `developerApiKey` | string | HubSpot Developer API Key | +| ↳ `curlSetWebhookUrl` | string | curl command to set webhook URL | +| ↳ `curlCreateSubscription` | string | curl command to create subscription | +| ↳ `webhookUrlDisplay` | string | Webhook URL display value | +| ↳ `propertyName` | string | Optional property name filter \(for property change triggers\) | + + +--- + +### HubSpot Contact Restored + +Trigger workflow when a deleted contact is restored in HubSpot + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `clientId` | string | Yes | Found in your HubSpot app settings under Auth tab | +| `clientSecret` | string | Yes | Found in your HubSpot app settings under Auth tab | +| `appId` | string | Yes | Found in your HubSpot app settings. Used to identify your app. | +| `developerApiKey` | string | Yes | Used for making API calls to HubSpot. Found in your HubSpot app settings. | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `payload` | array | Full webhook payload array from HubSpot containing event details | +| ↳ `objectId` | number | HubSpot object ID | +| ↳ `subscriptionType` | string | Type of subscription event | +| ↳ `portalId` | number | HubSpot portal ID | +| ↳ `occurredAt` | number | Timestamp when event occurred \(ms\) | +| ↳ `attemptNumber` | number | Webhook delivery attempt number | +| ↳ `eventId` | number | Event ID | +| ↳ `changeSource` | string | Source of the change | +| ↳ `propertyName` | string | Property name \(for propertyChange events\) | +| ↳ `propertyValue` | string | New property value \(for propertyChange events\) | +| `provider` | string | Provider name \(hubspot\) | +| `providerConfig` | object | Provider configuration | +| ↳ `appId` | string | HubSpot App ID | +| ↳ `clientId` | string | HubSpot Client ID | +| ↳ `triggerId` | string | Trigger ID \(e.g., hubspot_company_created\) | +| ↳ `clientSecret` | string | HubSpot Client Secret | +| ↳ `developerApiKey` | string | HubSpot Developer API Key | +| ↳ `curlSetWebhookUrl` | string | curl command to set webhook URL | +| ↳ `curlCreateSubscription` | string | curl command to create subscription | +| ↳ `webhookUrlDisplay` | string | Webhook URL display value | +| ↳ `propertyName` | string | Optional property name filter \(for property change triggers\) | + + +--- + +### HubSpot Conversation Creation + +Trigger workflow when a new conversation is created in HubSpot + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `clientId` | string | Yes | Found in your HubSpot app settings under Auth tab | +| `clientSecret` | string | Yes | Found in your HubSpot app settings under Auth tab | +| `appId` | string | Yes | Found in your HubSpot app settings. Used to identify your app. | +| `developerApiKey` | string | Yes | Used for making API calls to HubSpot. Found in your HubSpot app settings. | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `payload` | array | Full webhook payload array from HubSpot containing event details | +| ↳ `objectId` | number | HubSpot object ID | +| ↳ `subscriptionType` | string | Type of subscription event | +| ↳ `portalId` | number | HubSpot portal ID | +| ↳ `occurredAt` | number | Timestamp when event occurred \(ms\) | +| ↳ `attemptNumber` | number | Webhook delivery attempt number | +| ↳ `eventId` | number | Event ID | +| ↳ `changeSource` | string | Source of the change | +| ↳ `propertyName` | string | Property name \(for propertyChange events\) | +| ↳ `propertyValue` | string | New property value \(for propertyChange events\) | +| `provider` | string | Provider name \(hubspot\) | +| `providerConfig` | object | Provider configuration | +| ↳ `appId` | string | HubSpot App ID | +| ↳ `clientId` | string | HubSpot Client ID | +| ↳ `triggerId` | string | Trigger ID \(e.g., hubspot_company_created\) | +| ↳ `clientSecret` | string | HubSpot Client Secret | +| ↳ `developerApiKey` | string | HubSpot Developer API Key | +| ↳ `curlSetWebhookUrl` | string | curl command to set webhook URL | +| ↳ `curlCreateSubscription` | string | curl command to create subscription | +| ↳ `webhookUrlDisplay` | string | Webhook URL display value | +| ↳ `propertyName` | string | Optional property name filter \(for property change triggers\) | + + +--- + +### HubSpot Conversation Deletion + +Trigger workflow when a conversation is deleted in HubSpot + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `clientId` | string | Yes | Found in your HubSpot app settings under Auth tab | +| `clientSecret` | string | Yes | Found in your HubSpot app settings under Auth tab | +| `appId` | string | Yes | Found in your HubSpot app settings. Used to identify your app. | +| `developerApiKey` | string | Yes | Used for making API calls to HubSpot. Found in your HubSpot app settings. | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `payload` | array | Full webhook payload array from HubSpot containing event details | +| ↳ `objectId` | number | HubSpot object ID | +| ↳ `subscriptionType` | string | Type of subscription event | +| ↳ `portalId` | number | HubSpot portal ID | +| ↳ `occurredAt` | number | Timestamp when event occurred \(ms\) | +| ↳ `attemptNumber` | number | Webhook delivery attempt number | +| ↳ `eventId` | number | Event ID | +| ↳ `changeSource` | string | Source of the change | +| ↳ `propertyName` | string | Property name \(for propertyChange events\) | +| ↳ `propertyValue` | string | New property value \(for propertyChange events\) | +| `provider` | string | Provider name \(hubspot\) | +| `providerConfig` | object | Provider configuration | +| ↳ `appId` | string | HubSpot App ID | +| ↳ `clientId` | string | HubSpot Client ID | +| ↳ `triggerId` | string | Trigger ID \(e.g., hubspot_company_created\) | +| ↳ `clientSecret` | string | HubSpot Client Secret | +| ↳ `developerApiKey` | string | HubSpot Developer API Key | +| ↳ `curlSetWebhookUrl` | string | curl command to set webhook URL | +| ↳ `curlCreateSubscription` | string | curl command to create subscription | +| ↳ `webhookUrlDisplay` | string | Webhook URL display value | +| ↳ `propertyName` | string | Optional property name filter \(for property change triggers\) | + + +--- + +### HubSpot Conversation New Message + +Trigger workflow when a new message is added to a conversation in HubSpot + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `clientId` | string | Yes | Found in your HubSpot app settings under Auth tab | +| `clientSecret` | string | Yes | Found in your HubSpot app settings under Auth tab | +| `appId` | string | Yes | Found in your HubSpot app settings. Used to identify your app. | +| `developerApiKey` | string | Yes | Used for making API calls to HubSpot. Found in your HubSpot app settings. | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `payload` | array | Full webhook payload array from HubSpot containing event details | +| ↳ `objectId` | number | HubSpot object ID | +| ↳ `subscriptionType` | string | Type of subscription event | +| ↳ `portalId` | number | HubSpot portal ID | +| ↳ `occurredAt` | number | Timestamp when event occurred \(ms\) | +| ↳ `attemptNumber` | number | Webhook delivery attempt number | +| ↳ `eventId` | number | Event ID | +| ↳ `changeSource` | string | Source of the change | +| ↳ `propertyName` | string | Property name \(for propertyChange events\) | +| ↳ `propertyValue` | string | New property value \(for propertyChange events\) | +| `provider` | string | Provider name \(hubspot\) | +| `providerConfig` | object | Provider configuration | +| ↳ `appId` | string | HubSpot App ID | +| ↳ `clientId` | string | HubSpot Client ID | +| ↳ `triggerId` | string | Trigger ID \(e.g., hubspot_company_created\) | +| ↳ `clientSecret` | string | HubSpot Client Secret | +| ↳ `developerApiKey` | string | HubSpot Developer API Key | +| ↳ `curlSetWebhookUrl` | string | curl command to set webhook URL | +| ↳ `curlCreateSubscription` | string | curl command to create subscription | +| ↳ `webhookUrlDisplay` | string | Webhook URL display value | +| ↳ `propertyName` | string | Optional property name filter \(for property change triggers\) | + + +--- + +### HubSpot Conversation Privacy Deletion + +Trigger workflow when a conversation is deleted for privacy compliance (GDPR, CCPA, etc.) in HubSpot + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `clientId` | string | Yes | Found in your HubSpot app settings under Auth tab | +| `clientSecret` | string | Yes | Found in your HubSpot app settings under Auth tab | +| `appId` | string | Yes | Found in your HubSpot app settings. Used to identify your app. | +| `developerApiKey` | string | Yes | Used for making API calls to HubSpot. Found in your HubSpot app settings. | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `payload` | array | Full webhook payload array from HubSpot containing event details | +| ↳ `objectId` | number | HubSpot object ID | +| ↳ `subscriptionType` | string | Type of subscription event | +| ↳ `portalId` | number | HubSpot portal ID | +| ↳ `occurredAt` | number | Timestamp when event occurred \(ms\) | +| ↳ `attemptNumber` | number | Webhook delivery attempt number | +| ↳ `eventId` | number | Event ID | +| ↳ `changeSource` | string | Source of the change | +| ↳ `propertyName` | string | Property name \(for propertyChange events\) | +| ↳ `propertyValue` | string | New property value \(for propertyChange events\) | +| `provider` | string | Provider name \(hubspot\) | +| `providerConfig` | object | Provider configuration | +| ↳ `appId` | string | HubSpot App ID | +| ↳ `clientId` | string | HubSpot Client ID | +| ↳ `triggerId` | string | Trigger ID \(e.g., hubspot_company_created\) | +| ↳ `clientSecret` | string | HubSpot Client Secret | +| ↳ `developerApiKey` | string | HubSpot Developer API Key | +| ↳ `curlSetWebhookUrl` | string | curl command to set webhook URL | +| ↳ `curlCreateSubscription` | string | curl command to create subscription | +| ↳ `webhookUrlDisplay` | string | Webhook URL display value | +| ↳ `propertyName` | string | Optional property name filter \(for property change triggers\) | + + +--- + +### HubSpot Conversation Property Changed + +Trigger workflow when any property of a conversation is updated in HubSpot + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `clientId` | string | Yes | Found in your HubSpot app settings under Auth tab | +| `clientSecret` | string | Yes | Found in your HubSpot app settings under Auth tab | +| `appId` | string | Yes | Found in your HubSpot app settings. Used to identify your app. | +| `developerApiKey` | string | Yes | Used for making API calls to HubSpot. Found in your HubSpot app settings. | +| `propertyName` | string | No | Optional: Filter to only trigger when a specific property changes. Leave empty to trigger on any property change. | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `payload` | array | Full webhook payload array from HubSpot containing event details | +| ↳ `objectId` | number | HubSpot object ID | +| ↳ `subscriptionType` | string | Type of subscription event | +| ↳ `portalId` | number | HubSpot portal ID | +| ↳ `occurredAt` | number | Timestamp when event occurred \(ms\) | +| ↳ `attemptNumber` | number | Webhook delivery attempt number | +| ↳ `eventId` | number | Event ID | +| ↳ `changeSource` | string | Source of the change | +| ↳ `propertyName` | string | Property name \(for propertyChange events\) | +| ↳ `propertyValue` | string | New property value \(for propertyChange events\) | +| `provider` | string | Provider name \(hubspot\) | +| `providerConfig` | object | Provider configuration | +| ↳ `appId` | string | HubSpot App ID | +| ↳ `clientId` | string | HubSpot Client ID | +| ↳ `triggerId` | string | Trigger ID \(e.g., hubspot_company_created\) | +| ↳ `clientSecret` | string | HubSpot Client Secret | +| ↳ `developerApiKey` | string | HubSpot Developer API Key | +| ↳ `curlSetWebhookUrl` | string | curl command to set webhook URL | +| ↳ `curlCreateSubscription` | string | curl command to create subscription | +| ↳ `webhookUrlDisplay` | string | Webhook URL display value | +| ↳ `propertyName` | string | Optional property name filter \(for property change triggers\) | + + +--- + +### HubSpot Deal Created + +Trigger workflow when a new deal is created in HubSpot + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `clientId` | string | Yes | Found in your HubSpot app settings under Auth tab | +| `clientSecret` | string | Yes | Found in your HubSpot app settings under Auth tab | +| `appId` | string | Yes | Found in your HubSpot app settings. Used to identify your app. | +| `developerApiKey` | string | Yes | Used for making API calls to HubSpot. Found in your HubSpot app settings. | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `payload` | array | Full webhook payload array from HubSpot containing event details | +| ↳ `objectId` | number | HubSpot object ID | +| ↳ `subscriptionType` | string | Type of subscription event | +| ↳ `portalId` | number | HubSpot portal ID | +| ↳ `occurredAt` | number | Timestamp when event occurred \(ms\) | +| ↳ `attemptNumber` | number | Webhook delivery attempt number | +| ↳ `eventId` | number | Event ID | +| ↳ `changeSource` | string | Source of the change | +| ↳ `propertyName` | string | Property name \(for propertyChange events\) | +| ↳ `propertyValue` | string | New property value \(for propertyChange events\) | +| `provider` | string | Provider name \(hubspot\) | +| `providerConfig` | object | Provider configuration | +| ↳ `appId` | string | HubSpot App ID | +| ↳ `clientId` | string | HubSpot Client ID | +| ↳ `triggerId` | string | Trigger ID \(e.g., hubspot_company_created\) | +| ↳ `clientSecret` | string | HubSpot Client Secret | +| ↳ `developerApiKey` | string | HubSpot Developer API Key | +| ↳ `curlSetWebhookUrl` | string | curl command to set webhook URL | +| ↳ `curlCreateSubscription` | string | curl command to create subscription | +| ↳ `webhookUrlDisplay` | string | Webhook URL display value | +| ↳ `propertyName` | string | Optional property name filter \(for property change triggers\) | + + +--- + +### HubSpot Deal Deleted + +Trigger workflow when a deal is deleted in HubSpot + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `clientId` | string | Yes | Found in your HubSpot app settings under Auth tab | +| `clientSecret` | string | Yes | Found in your HubSpot app settings under Auth tab | +| `appId` | string | Yes | Found in your HubSpot app settings. Used to identify your app. | +| `developerApiKey` | string | Yes | Used for making API calls to HubSpot. Found in your HubSpot app settings. | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `payload` | array | Full webhook payload array from HubSpot containing event details | +| ↳ `objectId` | number | HubSpot object ID | +| ↳ `subscriptionType` | string | Type of subscription event | +| ↳ `portalId` | number | HubSpot portal ID | +| ↳ `occurredAt` | number | Timestamp when event occurred \(ms\) | +| ↳ `attemptNumber` | number | Webhook delivery attempt number | +| ↳ `eventId` | number | Event ID | +| ↳ `changeSource` | string | Source of the change | +| ↳ `propertyName` | string | Property name \(for propertyChange events\) | +| ↳ `propertyValue` | string | New property value \(for propertyChange events\) | +| `provider` | string | Provider name \(hubspot\) | +| `providerConfig` | object | Provider configuration | +| ↳ `appId` | string | HubSpot App ID | +| ↳ `clientId` | string | HubSpot Client ID | +| ↳ `triggerId` | string | Trigger ID \(e.g., hubspot_company_created\) | +| ↳ `clientSecret` | string | HubSpot Client Secret | +| ↳ `developerApiKey` | string | HubSpot Developer API Key | +| ↳ `curlSetWebhookUrl` | string | curl command to set webhook URL | +| ↳ `curlCreateSubscription` | string | curl command to create subscription | +| ↳ `webhookUrlDisplay` | string | Webhook URL display value | +| ↳ `propertyName` | string | Optional property name filter \(for property change triggers\) | + + +--- + +### HubSpot Deal Merged + +Trigger workflow when deals are merged in HubSpot + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `clientId` | string | Yes | Found in your HubSpot app settings under Auth tab | +| `clientSecret` | string | Yes | Found in your HubSpot app settings under Auth tab | +| `appId` | string | Yes | Found in your HubSpot app settings. Used to identify your app. | +| `developerApiKey` | string | Yes | Used for making API calls to HubSpot. Found in your HubSpot app settings. | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `payload` | array | Full webhook payload array from HubSpot containing merge event details | +| ↳ `objectId` | number | HubSpot object ID \(winning/primary record\) | +| ↳ `subscriptionType` | string | Type of subscription event | +| ↳ `portalId` | number | HubSpot portal ID | +| ↳ `occurredAt` | number | Timestamp when event occurred \(ms\) | +| ↳ `attemptNumber` | number | Webhook delivery attempt number | +| ↳ `eventId` | number | Event ID | +| ↳ `changeSource` | string | Source of the change | +| ↳ `mergedObjectIds` | array | IDs of the objects that were merged into the primary record | +| `provider` | string | Provider name \(hubspot\) | +| `providerConfig` | object | Provider configuration | +| ↳ `appId` | string | HubSpot App ID | +| ↳ `clientId` | string | HubSpot Client ID | +| ↳ `triggerId` | string | Trigger ID \(e.g., hubspot_contact_merged\) | +| ↳ `clientSecret` | string | HubSpot Client Secret | +| ↳ `developerApiKey` | string | HubSpot Developer API Key | +| ↳ `curlSetWebhookUrl` | string | curl command to set webhook URL | +| ↳ `curlCreateSubscription` | string | curl command to create subscription | +| ↳ `webhookUrlDisplay` | string | Webhook URL display value | + + +--- + +### HubSpot Deal Property Changed + +Trigger workflow when any property of a deal is updated in HubSpot + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `clientId` | string | Yes | Found in your HubSpot app settings under Auth tab | +| `clientSecret` | string | Yes | Found in your HubSpot app settings under Auth tab | +| `appId` | string | Yes | Found in your HubSpot app settings. Used to identify your app. | +| `developerApiKey` | string | Yes | Used for making API calls to HubSpot. Found in your HubSpot app settings. | +| `propertyName` | string | No | Optional: Filter to only trigger when a specific property changes. Leave empty to trigger on any property change. | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `payload` | array | Full webhook payload array from HubSpot containing event details | +| ↳ `objectId` | number | HubSpot object ID | +| ↳ `subscriptionType` | string | Type of subscription event | +| ↳ `portalId` | number | HubSpot portal ID | +| ↳ `occurredAt` | number | Timestamp when event occurred \(ms\) | +| ↳ `attemptNumber` | number | Webhook delivery attempt number | +| ↳ `eventId` | number | Event ID | +| ↳ `changeSource` | string | Source of the change | +| ↳ `propertyName` | string | Property name \(for propertyChange events\) | +| ↳ `propertyValue` | string | New property value \(for propertyChange events\) | +| `provider` | string | Provider name \(hubspot\) | +| `providerConfig` | object | Provider configuration | +| ↳ `appId` | string | HubSpot App ID | +| ↳ `clientId` | string | HubSpot Client ID | +| ↳ `triggerId` | string | Trigger ID \(e.g., hubspot_company_created\) | +| ↳ `clientSecret` | string | HubSpot Client Secret | +| ↳ `developerApiKey` | string | HubSpot Developer API Key | +| ↳ `curlSetWebhookUrl` | string | curl command to set webhook URL | +| ↳ `curlCreateSubscription` | string | curl command to create subscription | +| ↳ `webhookUrlDisplay` | string | Webhook URL display value | +| ↳ `propertyName` | string | Optional property name filter \(for property change triggers\) | + + +--- + +### HubSpot Deal Restored + +Trigger workflow when a deleted deal is restored in HubSpot + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `clientId` | string | Yes | Found in your HubSpot app settings under Auth tab | +| `clientSecret` | string | Yes | Found in your HubSpot app settings under Auth tab | +| `appId` | string | Yes | Found in your HubSpot app settings. Used to identify your app. | +| `developerApiKey` | string | Yes | Used for making API calls to HubSpot. Found in your HubSpot app settings. | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `payload` | array | Full webhook payload array from HubSpot containing event details | +| ↳ `objectId` | number | HubSpot object ID | +| ↳ `subscriptionType` | string | Type of subscription event | +| ↳ `portalId` | number | HubSpot portal ID | +| ↳ `occurredAt` | number | Timestamp when event occurred \(ms\) | +| ↳ `attemptNumber` | number | Webhook delivery attempt number | +| ↳ `eventId` | number | Event ID | +| ↳ `changeSource` | string | Source of the change | +| ↳ `propertyName` | string | Property name \(for propertyChange events\) | +| ↳ `propertyValue` | string | New property value \(for propertyChange events\) | +| `provider` | string | Provider name \(hubspot\) | +| `providerConfig` | object | Provider configuration | +| ↳ `appId` | string | HubSpot App ID | +| ↳ `clientId` | string | HubSpot Client ID | +| ↳ `triggerId` | string | Trigger ID \(e.g., hubspot_company_created\) | +| ↳ `clientSecret` | string | HubSpot Client Secret | +| ↳ `developerApiKey` | string | HubSpot Developer API Key | +| ↳ `curlSetWebhookUrl` | string | curl command to set webhook URL | +| ↳ `curlCreateSubscription` | string | curl command to create subscription | +| ↳ `webhookUrlDisplay` | string | Webhook URL display value | +| ↳ `propertyName` | string | Optional property name filter \(for property change triggers\) | + + +--- + +### HubSpot Ticket Created + +Trigger workflow when a new ticket is created in HubSpot + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `clientId` | string | Yes | Found in your HubSpot app settings under Auth tab | +| `clientSecret` | string | Yes | Found in your HubSpot app settings under Auth tab | +| `appId` | string | Yes | Found in your HubSpot app settings. Used to identify your app. | +| `developerApiKey` | string | Yes | Used for making API calls to HubSpot. Found in your HubSpot app settings. | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `payload` | array | Full webhook payload array from HubSpot containing event details | +| ↳ `objectId` | number | HubSpot object ID | +| ↳ `subscriptionType` | string | Type of subscription event | +| ↳ `portalId` | number | HubSpot portal ID | +| ↳ `occurredAt` | number | Timestamp when event occurred \(ms\) | +| ↳ `attemptNumber` | number | Webhook delivery attempt number | +| ↳ `eventId` | number | Event ID | +| ↳ `changeSource` | string | Source of the change | +| ↳ `propertyName` | string | Property name \(for propertyChange events\) | +| ↳ `propertyValue` | string | New property value \(for propertyChange events\) | +| `provider` | string | Provider name \(hubspot\) | +| `providerConfig` | object | Provider configuration | +| ↳ `appId` | string | HubSpot App ID | +| ↳ `clientId` | string | HubSpot Client ID | +| ↳ `triggerId` | string | Trigger ID \(e.g., hubspot_company_created\) | +| ↳ `clientSecret` | string | HubSpot Client Secret | +| ↳ `developerApiKey` | string | HubSpot Developer API Key | +| ↳ `curlSetWebhookUrl` | string | curl command to set webhook URL | +| ↳ `curlCreateSubscription` | string | curl command to create subscription | +| ↳ `webhookUrlDisplay` | string | Webhook URL display value | +| ↳ `propertyName` | string | Optional property name filter \(for property change triggers\) | + + +--- + +### HubSpot Ticket Deleted + +Trigger workflow when a ticket is deleted in HubSpot + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `clientId` | string | Yes | Found in your HubSpot app settings under Auth tab | +| `clientSecret` | string | Yes | Found in your HubSpot app settings under Auth tab | +| `appId` | string | Yes | Found in your HubSpot app settings. Used to identify your app. | +| `developerApiKey` | string | Yes | Used for making API calls to HubSpot. Found in your HubSpot app settings. | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `payload` | array | Full webhook payload array from HubSpot containing event details | +| ↳ `objectId` | number | HubSpot object ID | +| ↳ `subscriptionType` | string | Type of subscription event | +| ↳ `portalId` | number | HubSpot portal ID | +| ↳ `occurredAt` | number | Timestamp when event occurred \(ms\) | +| ↳ `attemptNumber` | number | Webhook delivery attempt number | +| ↳ `eventId` | number | Event ID | +| ↳ `changeSource` | string | Source of the change | +| ↳ `propertyName` | string | Property name \(for propertyChange events\) | +| ↳ `propertyValue` | string | New property value \(for propertyChange events\) | +| `provider` | string | Provider name \(hubspot\) | +| `providerConfig` | object | Provider configuration | +| ↳ `appId` | string | HubSpot App ID | +| ↳ `clientId` | string | HubSpot Client ID | +| ↳ `triggerId` | string | Trigger ID \(e.g., hubspot_company_created\) | +| ↳ `clientSecret` | string | HubSpot Client Secret | +| ↳ `developerApiKey` | string | HubSpot Developer API Key | +| ↳ `curlSetWebhookUrl` | string | curl command to set webhook URL | +| ↳ `curlCreateSubscription` | string | curl command to create subscription | +| ↳ `webhookUrlDisplay` | string | Webhook URL display value | +| ↳ `propertyName` | string | Optional property name filter \(for property change triggers\) | + + +--- + +### HubSpot Ticket Merged + +Trigger workflow when tickets are merged in HubSpot + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `clientId` | string | Yes | Found in your HubSpot app settings under Auth tab | +| `clientSecret` | string | Yes | Found in your HubSpot app settings under Auth tab | +| `appId` | string | Yes | Found in your HubSpot app settings. Used to identify your app. | +| `developerApiKey` | string | Yes | Used for making API calls to HubSpot. Found in your HubSpot app settings. | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `payload` | array | Full webhook payload array from HubSpot containing merge event details | +| ↳ `objectId` | number | HubSpot object ID \(winning/primary record\) | +| ↳ `subscriptionType` | string | Type of subscription event | +| ↳ `portalId` | number | HubSpot portal ID | +| ↳ `occurredAt` | number | Timestamp when event occurred \(ms\) | +| ↳ `attemptNumber` | number | Webhook delivery attempt number | +| ↳ `eventId` | number | Event ID | +| ↳ `changeSource` | string | Source of the change | +| ↳ `mergedObjectIds` | array | IDs of the objects that were merged into the primary record | +| `provider` | string | Provider name \(hubspot\) | +| `providerConfig` | object | Provider configuration | +| ↳ `appId` | string | HubSpot App ID | +| ↳ `clientId` | string | HubSpot Client ID | +| ↳ `triggerId` | string | Trigger ID \(e.g., hubspot_contact_merged\) | +| ↳ `clientSecret` | string | HubSpot Client Secret | +| ↳ `developerApiKey` | string | HubSpot Developer API Key | +| ↳ `curlSetWebhookUrl` | string | curl command to set webhook URL | +| ↳ `curlCreateSubscription` | string | curl command to create subscription | +| ↳ `webhookUrlDisplay` | string | Webhook URL display value | + + +--- + +### HubSpot Ticket Property Changed + +Trigger workflow when any property of a ticket is updated in HubSpot + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `clientId` | string | Yes | Found in your HubSpot app settings under Auth tab | +| `clientSecret` | string | Yes | Found in your HubSpot app settings under Auth tab | +| `appId` | string | Yes | Found in your HubSpot app settings. Used to identify your app. | +| `developerApiKey` | string | Yes | Used for making API calls to HubSpot. Found in your HubSpot app settings. | +| `propertyName` | string | No | Optional: Filter to only trigger when a specific property changes. Leave empty to trigger on any property change. | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `payload` | array | Full webhook payload array from HubSpot containing event details | +| ↳ `objectId` | number | HubSpot object ID | +| ↳ `subscriptionType` | string | Type of subscription event | +| ↳ `portalId` | number | HubSpot portal ID | +| ↳ `occurredAt` | number | Timestamp when event occurred \(ms\) | +| ↳ `attemptNumber` | number | Webhook delivery attempt number | +| ↳ `eventId` | number | Event ID | +| ↳ `changeSource` | string | Source of the change | +| ↳ `propertyName` | string | Property name \(for propertyChange events\) | +| ↳ `propertyValue` | string | New property value \(for propertyChange events\) | +| `provider` | string | Provider name \(hubspot\) | +| `providerConfig` | object | Provider configuration | +| ↳ `appId` | string | HubSpot App ID | +| ↳ `clientId` | string | HubSpot Client ID | +| ↳ `triggerId` | string | Trigger ID \(e.g., hubspot_company_created\) | +| ↳ `clientSecret` | string | HubSpot Client Secret | +| ↳ `developerApiKey` | string | HubSpot Developer API Key | +| ↳ `curlSetWebhookUrl` | string | curl command to set webhook URL | +| ↳ `curlCreateSubscription` | string | curl command to create subscription | +| ↳ `webhookUrlDisplay` | string | Webhook URL display value | +| ↳ `propertyName` | string | Optional property name filter \(for property change triggers\) | + + +--- + +### HubSpot Ticket Restored + +Trigger workflow when a deleted ticket is restored in HubSpot + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `clientId` | string | Yes | Found in your HubSpot app settings under Auth tab | +| `clientSecret` | string | Yes | Found in your HubSpot app settings under Auth tab | +| `appId` | string | Yes | Found in your HubSpot app settings. Used to identify your app. | +| `developerApiKey` | string | Yes | Used for making API calls to HubSpot. Found in your HubSpot app settings. | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `payload` | array | Full webhook payload array from HubSpot containing event details | +| ↳ `objectId` | number | HubSpot object ID | +| ↳ `subscriptionType` | string | Type of subscription event | +| ↳ `portalId` | number | HubSpot portal ID | +| ↳ `occurredAt` | number | Timestamp when event occurred \(ms\) | +| ↳ `attemptNumber` | number | Webhook delivery attempt number | +| ↳ `eventId` | number | Event ID | +| ↳ `changeSource` | string | Source of the change | +| ↳ `propertyName` | string | Property name \(for propertyChange events\) | +| ↳ `propertyValue` | string | New property value \(for propertyChange events\) | +| `provider` | string | Provider name \(hubspot\) | +| `providerConfig` | object | Provider configuration | +| ↳ `appId` | string | HubSpot App ID | +| ↳ `clientId` | string | HubSpot Client ID | +| ↳ `triggerId` | string | Trigger ID \(e.g., hubspot_company_created\) | +| ↳ `clientSecret` | string | HubSpot Client Secret | +| ↳ `developerApiKey` | string | HubSpot Developer API Key | +| ↳ `curlSetWebhookUrl` | string | curl command to set webhook URL | +| ↳ `curlCreateSubscription` | string | curl command to create subscription | +| ↳ `webhookUrlDisplay` | string | Webhook URL display value | +| ↳ `propertyName` | string | Optional property name filter \(for property change triggers\) | + + +--- + +### HubSpot Webhook (All Events) + +Trigger workflow on any HubSpot webhook event + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `clientId` | string | Yes | Found in your HubSpot app settings under Auth tab | +| `clientSecret` | string | Yes | Found in your HubSpot app settings under Auth tab | +| `appId` | string | Yes | Found in your HubSpot app settings. Used to identify your app. | +| `developerApiKey` | string | Yes | Used for making API calls to HubSpot. Found in your HubSpot app settings. | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `payload` | array | Full webhook payload array from HubSpot containing event details | +| ↳ `objectId` | number | HubSpot object ID | +| ↳ `subscriptionType` | string | Type of subscription event | +| ↳ `portalId` | number | HubSpot portal ID | +| ↳ `occurredAt` | number | Timestamp when event occurred \(ms\) | +| ↳ `attemptNumber` | number | Webhook delivery attempt number | +| ↳ `eventId` | number | Event ID | +| ↳ `changeSource` | string | Source of the change | +| ↳ `propertyName` | string | Property name \(for propertyChange events\) | +| ↳ `propertyValue` | string | New property value \(for propertyChange events\) | +| `provider` | string | Provider name \(hubspot\) | +| `providerConfig` | object | Provider configuration | +| ↳ `appId` | string | HubSpot App ID | +| ↳ `clientId` | string | HubSpot Client ID | +| ↳ `triggerId` | string | Trigger ID \(e.g., hubspot_company_created\) | +| ↳ `clientSecret` | string | HubSpot Client Secret | +| ↳ `developerApiKey` | string | HubSpot Developer API Key | +| ↳ `curlSetWebhookUrl` | string | curl command to set webhook URL | +| ↳ `curlCreateSubscription` | string | curl command to create subscription | +| ↳ `webhookUrlDisplay` | string | Webhook URL display value | +| ↳ `propertyName` | string | Optional property name filter \(for property change triggers\) | + diff --git a/apps/docs/content/docs/en/triggers/imap.mdx b/apps/docs/content/docs/en/triggers/imap.mdx new file mode 100644 index 00000000000..9ef6e2fb07c --- /dev/null +++ b/apps/docs/content/docs/en/triggers/imap.mdx @@ -0,0 +1,54 @@ +--- +title: IMAP +description: Available IMAP triggers for automating workflows +--- + +import { BlockInfoCard } from "@/components/ui/block-info-card" + + + +IMAP provides 1 trigger for automating workflows based on events. + +All triggers below are **polling-based** — they check for new data on a schedule rather than receiving push notifications. + +## Triggers + +### IMAP Email Trigger + +Triggers when new emails are received via IMAP (works with any email provider) + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `host` | string | Yes | IMAP server hostname \(e.g., imap.gmail.com, outlook.office365.com\) | +| `port` | string | Yes | IMAP port \(993 for SSL/TLS, 143 for STARTTLS\) | +| `secure` | boolean | No | Enable SSL/TLS encryption \(recommended for port 993\) | +| `username` | string | Yes | Email address or username for authentication | +| `password` | string | Yes | Password or app-specific password \(for Gmail, use an App Password\) | +| `mailbox` | string | No | Choose which mailbox/folder\(s\) to monitor for new emails. Leave empty to monitor INBOX. | +| `searchCriteria` | string | No | ImapFlow search criteria as JSON object. Default: unseen messages only. | +| `markAsRead` | boolean | No | Automatically mark emails as read \(SEEN\) after processing | +| `includeAttachments` | boolean | No | Download and include email attachments in the trigger payload | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `email` | object | email output from the tool | +| ↳ `messageId` | string | RFC Message-ID header | +| ↳ `subject` | string | Email subject line | +| ↳ `from` | string | Sender email address | +| ↳ `to` | string | Recipient email address | +| ↳ `cc` | string | CC recipients | +| ↳ `date` | string | Email date in ISO format | +| ↳ `bodyText` | string | Plain text email body | +| ↳ `bodyHtml` | string | HTML email body | +| ↳ `mailbox` | string | Mailbox/folder where email was received | +| ↳ `hasAttachments` | boolean | Whether email has attachments | +| ↳ `attachments` | file[] | Array of email attachments as files \(if includeAttachments is enabled\) | +| `timestamp` | string | Event timestamp | + diff --git a/apps/docs/content/docs/en/triggers/intercom.mdx b/apps/docs/content/docs/en/triggers/intercom.mdx new file mode 100644 index 00000000000..e377f21adbe --- /dev/null +++ b/apps/docs/content/docs/en/triggers/intercom.mdx @@ -0,0 +1,163 @@ +--- +title: Intercom +description: Available Intercom triggers for automating workflows +--- + +import { BlockInfoCard } from "@/components/ui/block-info-card" + + + +Intercom provides 6 triggers for automating workflows based on events. + +## Triggers + +### Intercom Contact Created + +Trigger workflow when a new lead is created in Intercom + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `webhookSecret` | string | No | Your app | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `topic` | string | The webhook topic \(e.g., conversation.user.created\) | +| `id` | string | Unique notification ID | +| `app_id` | string | Your Intercom app ID | +| `created_at` | number | Unix timestamp when the event occurred | +| `delivery_attempts` | number | Number of delivery attempts for this notification | +| `first_sent_at` | number | Unix timestamp of first delivery attempt | +| `data` | json | data output from the tool | + + +--- + +### Intercom Conversation Closed + +Trigger workflow when a conversation is closed in Intercom + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `webhookSecret` | string | No | Your app | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `topic` | string | The webhook topic \(e.g., conversation.user.created\) | +| `id` | string | Unique notification ID | +| `app_id` | string | Your Intercom app ID | +| `created_at` | number | Unix timestamp when the event occurred | +| `delivery_attempts` | number | Number of delivery attempts for this notification | +| `first_sent_at` | number | Unix timestamp of first delivery attempt | +| `data` | json | data output from the tool | + + +--- + +### Intercom Conversation Created + +Trigger workflow when a new conversation is created in Intercom + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `webhookSecret` | string | No | Your app | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `topic` | string | The webhook topic \(e.g., conversation.user.created\) | +| `id` | string | Unique notification ID | +| `app_id` | string | Your Intercom app ID | +| `created_at` | number | Unix timestamp when the event occurred | +| `delivery_attempts` | number | Number of delivery attempts for this notification | +| `first_sent_at` | number | Unix timestamp of first delivery attempt | +| `data` | json | data output from the tool | + + +--- + +### Intercom Conversation Reply + +Trigger workflow when someone replies to an Intercom conversation + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `webhookSecret` | string | No | Your app | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `topic` | string | The webhook topic \(e.g., conversation.user.created\) | +| `id` | string | Unique notification ID | +| `app_id` | string | Your Intercom app ID | +| `created_at` | number | Unix timestamp when the event occurred | +| `delivery_attempts` | number | Number of delivery attempts for this notification | +| `first_sent_at` | number | Unix timestamp of first delivery attempt | +| `data` | json | data output from the tool | + + +--- + +### Intercom User Created + +Trigger workflow when a new user is created in Intercom + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `webhookSecret` | string | No | Your app | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `topic` | string | The webhook topic \(e.g., conversation.user.created\) | +| `id` | string | Unique notification ID | +| `app_id` | string | Your Intercom app ID | +| `created_at` | number | Unix timestamp when the event occurred | +| `delivery_attempts` | number | Number of delivery attempts for this notification | +| `first_sent_at` | number | Unix timestamp of first delivery attempt | +| `data` | json | data output from the tool | + + +--- + +### Intercom Webhook (All Events) + +Trigger workflow on any Intercom webhook event + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `webhookSecret` | string | No | Your app | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `topic` | string | The webhook topic \(e.g., conversation.user.created\) | +| `id` | string | Unique notification ID | +| `app_id` | string | Your Intercom app ID | +| `created_at` | number | Unix timestamp when the event occurred | +| `delivery_attempts` | number | Number of delivery attempts for this notification | +| `first_sent_at` | number | Unix timestamp of first delivery attempt | +| `data` | json | data output from the tool | + diff --git a/apps/docs/content/docs/en/triggers/jira.mdx b/apps/docs/content/docs/en/triggers/jira.mdx new file mode 100644 index 00000000000..08ac88bc82f --- /dev/null +++ b/apps/docs/content/docs/en/triggers/jira.mdx @@ -0,0 +1,392 @@ +--- +title: Jira +description: Available Jira triggers for automating workflows +--- + +import { BlockInfoCard } from "@/components/ui/block-info-card" + + + +Jira provides 6 triggers for automating workflows based on events. + +## Triggers + +### Jira Issue Commented + +Trigger workflow when a comment is added to a Jira issue + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `webhookSecret` | string | No | Optional secret to validate webhook deliveries from Jira using HMAC signature | +| `jqlFilter` | string | No | Filter which issue comments trigger this workflow using JQL | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `webhookEvent` | string | The webhook event type \(e.g., jira:issue_created, comment_created, worklog_created\) | +| `timestamp` | number | Timestamp of the webhook event | +| `issue` | object | issue output from the tool | +| ↳ `id` | string | Jira issue ID | +| ↳ `key` | string | Jira issue key \(e.g., PROJ-123\) | +| ↳ `self` | string | REST API URL for this issue | +| ↳ `fields` | object | fields output from the tool | +| ↳ `votes` | json | Votes on this issue | +| ↳ `labels` | array | Array of labels applied to this issue | +| ↳ `status` | object | status output from the tool | +| ↳ `name` | string | Status name | +| ↳ `id` | string | Status ID | +| ↳ `statusCategory` | json | Status category information | +| ↳ `created` | string | Issue creation date \(ISO format\) | +| ↳ `creator` | object | creator output from the tool | +| ↳ `displayName` | string | Creator display name | +| ↳ `accountId` | string | Creator account ID | +| ↳ `emailAddress` | string | Creator email address | +| ↳ `duedate` | string | Due date for the issue | +| ↳ `project` | object | project output from the tool | +| ↳ `key` | string | Project key | +| ↳ `name` | string | Project name | +| ↳ `id` | string | Project ID | +| ↳ `summary` | string | Issue summary/title | +| ↳ `updated` | string | Last updated date \(ISO format\) | +| ↳ `watches` | json | Watchers information | +| ↳ `assignee` | object | assignee output from the tool | +| ↳ `displayName` | string | Assignee display name | +| ↳ `accountId` | string | Assignee account ID | +| ↳ `emailAddress` | string | Assignee email address | +| ↳ `priority` | object | priority output from the tool | +| ↳ `name` | string | Priority name | +| ↳ `id` | string | Priority ID | +| ↳ `progress` | json | Progress tracking information | +| ↳ `reporter` | object | reporter output from the tool | +| ↳ `displayName` | string | Reporter display name | +| ↳ `accountId` | string | Reporter account ID | +| ↳ `emailAddress` | string | Reporter email address | +| ↳ `security` | string | Security level | +| ↳ `subtasks` | array | Array of subtask objects | +| ↳ `versions` | array | Array of affected versions | +| ↳ `issuetype` | object | issuetype output from the tool | +| ↳ `name` | string | Issue type name | +| ↳ `id` | string | Issue type ID | +| `comment` | object | comment output from the tool | +| ↳ `id` | string | Comment ID | +| ↳ `body` | string | Comment text/body | +| ↳ `author` | object | author output from the tool | +| ↳ `displayName` | string | Comment author display name | +| ↳ `accountId` | string | Comment author account ID | +| ↳ `emailAddress` | string | Comment author email address | +| ↳ `created` | string | Comment creation date \(ISO format\) | +| ↳ `updated` | string | Comment last updated date \(ISO format\) | + + +--- + +### Jira Issue Created + +Trigger workflow when a new issue is created in Jira + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `webhookSecret` | string | No | Optional secret to validate webhook deliveries from Jira using HMAC signature | +| `jqlFilter` | string | No | Filter which issues trigger this workflow using JQL \(Jira Query Language\) | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `webhookEvent` | string | The webhook event type \(e.g., jira:issue_created, comment_created, worklog_created\) | +| `timestamp` | number | Timestamp of the webhook event | +| `issue` | object | issue output from the tool | +| ↳ `id` | string | Jira issue ID | +| ↳ `key` | string | Jira issue key \(e.g., PROJ-123\) | +| ↳ `self` | string | REST API URL for this issue | +| ↳ `fields` | object | fields output from the tool | +| ↳ `votes` | json | Votes on this issue | +| ↳ `labels` | array | Array of labels applied to this issue | +| ↳ `status` | object | status output from the tool | +| ↳ `name` | string | Status name | +| ↳ `id` | string | Status ID | +| ↳ `statusCategory` | json | Status category information | +| ↳ `created` | string | Issue creation date \(ISO format\) | +| ↳ `creator` | object | creator output from the tool | +| ↳ `displayName` | string | Creator display name | +| ↳ `accountId` | string | Creator account ID | +| ↳ `emailAddress` | string | Creator email address | +| ↳ `duedate` | string | Due date for the issue | +| ↳ `project` | object | project output from the tool | +| ↳ `key` | string | Project key | +| ↳ `name` | string | Project name | +| ↳ `id` | string | Project ID | +| ↳ `summary` | string | Issue summary/title | +| ↳ `updated` | string | Last updated date \(ISO format\) | +| ↳ `watches` | json | Watchers information | +| ↳ `assignee` | object | assignee output from the tool | +| ↳ `displayName` | string | Assignee display name | +| ↳ `accountId` | string | Assignee account ID | +| ↳ `emailAddress` | string | Assignee email address | +| ↳ `priority` | object | priority output from the tool | +| ↳ `name` | string | Priority name | +| ↳ `id` | string | Priority ID | +| ↳ `progress` | json | Progress tracking information | +| ↳ `reporter` | object | reporter output from the tool | +| ↳ `displayName` | string | Reporter display name | +| ↳ `accountId` | string | Reporter account ID | +| ↳ `emailAddress` | string | Reporter email address | +| ↳ `security` | string | Security level | +| ↳ `subtasks` | array | Array of subtask objects | +| ↳ `versions` | array | Array of affected versions | +| ↳ `issuetype` | object | issuetype output from the tool | +| ↳ `name` | string | Issue type name | +| ↳ `id` | string | Issue type ID | +| `issue_event_type_name` | string | Issue event type name from Jira \(only present in issue events\) | + + +--- + +### Jira Issue Deleted + +Trigger workflow when an issue is deleted in Jira + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `webhookSecret` | string | No | Optional secret to validate webhook deliveries from Jira using HMAC signature | +| `jqlFilter` | string | No | Filter which issue deletions trigger this workflow using JQL | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `webhookEvent` | string | The webhook event type \(e.g., jira:issue_created, comment_created, worklog_created\) | +| `timestamp` | number | Timestamp of the webhook event | +| `issue` | object | issue output from the tool | +| ↳ `id` | string | Jira issue ID | +| ↳ `key` | string | Jira issue key \(e.g., PROJ-123\) | +| ↳ `self` | string | REST API URL for this issue | +| ↳ `fields` | object | fields output from the tool | +| ↳ `votes` | json | Votes on this issue | +| ↳ `labels` | array | Array of labels applied to this issue | +| ↳ `status` | object | status output from the tool | +| ↳ `name` | string | Status name | +| ↳ `id` | string | Status ID | +| ↳ `statusCategory` | json | Status category information | +| ↳ `created` | string | Issue creation date \(ISO format\) | +| ↳ `creator` | object | creator output from the tool | +| ↳ `displayName` | string | Creator display name | +| ↳ `accountId` | string | Creator account ID | +| ↳ `emailAddress` | string | Creator email address | +| ↳ `duedate` | string | Due date for the issue | +| ↳ `project` | object | project output from the tool | +| ↳ `key` | string | Project key | +| ↳ `name` | string | Project name | +| ↳ `id` | string | Project ID | +| ↳ `summary` | string | Issue summary/title | +| ↳ `updated` | string | Last updated date \(ISO format\) | +| ↳ `watches` | json | Watchers information | +| ↳ `assignee` | object | assignee output from the tool | +| ↳ `displayName` | string | Assignee display name | +| ↳ `accountId` | string | Assignee account ID | +| ↳ `emailAddress` | string | Assignee email address | +| ↳ `priority` | object | priority output from the tool | +| ↳ `name` | string | Priority name | +| ↳ `id` | string | Priority ID | +| ↳ `progress` | json | Progress tracking information | +| ↳ `reporter` | object | reporter output from the tool | +| ↳ `displayName` | string | Reporter display name | +| ↳ `accountId` | string | Reporter account ID | +| ↳ `emailAddress` | string | Reporter email address | +| ↳ `security` | string | Security level | +| ↳ `subtasks` | array | Array of subtask objects | +| ↳ `versions` | array | Array of affected versions | +| ↳ `issuetype` | object | issuetype output from the tool | +| ↳ `name` | string | Issue type name | +| ↳ `id` | string | Issue type ID | +| `issue_event_type_name` | string | Issue event type name from Jira \(only present in issue events\) | + + +--- + +### Jira Issue Updated + +Trigger workflow when an issue is updated in Jira + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `webhookSecret` | string | No | Optional secret to validate webhook deliveries from Jira using HMAC signature | +| `jqlFilter` | string | No | Filter which issue updates trigger this workflow using JQL | +| `fieldFilters` | string | No | Comma-separated list of fields to monitor. Only trigger when these fields change. | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `webhookEvent` | string | The webhook event type \(e.g., jira:issue_created, comment_created, worklog_created\) | +| `timestamp` | number | Timestamp of the webhook event | +| `issue` | object | issue output from the tool | +| ↳ `id` | string | Jira issue ID | +| ↳ `key` | string | Jira issue key \(e.g., PROJ-123\) | +| ↳ `self` | string | REST API URL for this issue | +| ↳ `fields` | object | fields output from the tool | +| ↳ `votes` | json | Votes on this issue | +| ↳ `labels` | array | Array of labels applied to this issue | +| ↳ `status` | object | status output from the tool | +| ↳ `name` | string | Status name | +| ↳ `id` | string | Status ID | +| ↳ `statusCategory` | json | Status category information | +| ↳ `created` | string | Issue creation date \(ISO format\) | +| ↳ `creator` | object | creator output from the tool | +| ↳ `displayName` | string | Creator display name | +| ↳ `accountId` | string | Creator account ID | +| ↳ `emailAddress` | string | Creator email address | +| ↳ `duedate` | string | Due date for the issue | +| ↳ `project` | object | project output from the tool | +| ↳ `key` | string | Project key | +| ↳ `name` | string | Project name | +| ↳ `id` | string | Project ID | +| ↳ `summary` | string | Issue summary/title | +| ↳ `updated` | string | Last updated date \(ISO format\) | +| ↳ `watches` | json | Watchers information | +| ↳ `assignee` | object | assignee output from the tool | +| ↳ `displayName` | string | Assignee display name | +| ↳ `accountId` | string | Assignee account ID | +| ↳ `emailAddress` | string | Assignee email address | +| ↳ `priority` | object | priority output from the tool | +| ↳ `name` | string | Priority name | +| ↳ `id` | string | Priority ID | +| ↳ `progress` | json | Progress tracking information | +| ↳ `reporter` | object | reporter output from the tool | +| ↳ `displayName` | string | Reporter display name | +| ↳ `accountId` | string | Reporter account ID | +| ↳ `emailAddress` | string | Reporter email address | +| ↳ `security` | string | Security level | +| ↳ `subtasks` | array | Array of subtask objects | +| ↳ `versions` | array | Array of affected versions | +| ↳ `issuetype` | object | issuetype output from the tool | +| ↳ `name` | string | Issue type name | +| ↳ `id` | string | Issue type ID | +| `issue_event_type_name` | string | Issue event type name from Jira \(only present in issue events\) | +| `changelog` | object | changelog output from the tool | +| ↳ `id` | string | Changelog ID | + + +--- + +### Jira Webhook (All Events) + +Trigger workflow on any Jira webhook event + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `webhookSecret` | string | No | Optional secret to validate webhook deliveries from Jira using HMAC signature | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `changelog` | object | changelog output from the tool | +| ↳ `id` | string | Changelog ID | +| `comment` | object | comment output from the tool | +| ↳ `id` | string | Comment ID | +| ↳ `body` | string | Comment text/body | +| ↳ `author` | object | author output from the tool | +| ↳ `displayName` | string | Comment author display name | +| ↳ `accountId` | string | Comment author account ID | +| ↳ `emailAddress` | string | Comment author email address | +| ↳ `created` | string | Comment creation date \(ISO format\) | +| ↳ `updated` | string | Comment last updated date \(ISO format\) | +| `worklog` | object | worklog output from the tool | +| ↳ `id` | string | Worklog entry ID | +| ↳ `author` | object | author output from the tool | +| ↳ `displayName` | string | Worklog author display name | +| ↳ `accountId` | string | Worklog author account ID | +| ↳ `emailAddress` | string | Worklog author email address | +| ↳ `timeSpent` | string | Time spent \(e.g., "2h 30m"\) | +| ↳ `timeSpentSeconds` | number | Time spent in seconds | +| ↳ `comment` | string | Worklog comment/description | +| ↳ `started` | string | When the work was started \(ISO format\) | + + +--- + +### Jira Worklog Created + +Trigger workflow when time is logged on a Jira issue + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `webhookSecret` | string | No | Optional secret to validate webhook deliveries from Jira using HMAC signature | +| `jqlFilter` | string | No | Filter which worklog entries trigger this workflow using JQL | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `webhookEvent` | string | The webhook event type \(e.g., jira:issue_created, comment_created, worklog_created\) | +| `timestamp` | number | Timestamp of the webhook event | +| `issue` | object | issue output from the tool | +| ↳ `id` | string | Jira issue ID | +| ↳ `key` | string | Jira issue key \(e.g., PROJ-123\) | +| ↳ `self` | string | REST API URL for this issue | +| ↳ `fields` | object | fields output from the tool | +| ↳ `votes` | json | Votes on this issue | +| ↳ `labels` | array | Array of labels applied to this issue | +| ↳ `status` | object | status output from the tool | +| ↳ `name` | string | Status name | +| ↳ `id` | string | Status ID | +| ↳ `statusCategory` | json | Status category information | +| ↳ `created` | string | Issue creation date \(ISO format\) | +| ↳ `creator` | object | creator output from the tool | +| ↳ `displayName` | string | Creator display name | +| ↳ `accountId` | string | Creator account ID | +| ↳ `emailAddress` | string | Creator email address | +| ↳ `duedate` | string | Due date for the issue | +| ↳ `project` | object | project output from the tool | +| ↳ `key` | string | Project key | +| ↳ `name` | string | Project name | +| ↳ `id` | string | Project ID | +| ↳ `summary` | string | Issue summary/title | +| ↳ `updated` | string | Last updated date \(ISO format\) | +| ↳ `watches` | json | Watchers information | +| ↳ `assignee` | object | assignee output from the tool | +| ↳ `displayName` | string | Assignee display name | +| ↳ `accountId` | string | Assignee account ID | +| ↳ `emailAddress` | string | Assignee email address | +| ↳ `priority` | object | priority output from the tool | +| ↳ `name` | string | Priority name | +| ↳ `id` | string | Priority ID | +| ↳ `progress` | json | Progress tracking information | +| ↳ `reporter` | object | reporter output from the tool | +| ↳ `displayName` | string | Reporter display name | +| ↳ `accountId` | string | Reporter account ID | +| ↳ `emailAddress` | string | Reporter email address | +| ↳ `security` | string | Security level | +| ↳ `subtasks` | array | Array of subtask objects | +| ↳ `versions` | array | Array of affected versions | +| ↳ `issuetype` | object | issuetype output from the tool | +| ↳ `name` | string | Issue type name | +| ↳ `id` | string | Issue type ID | +| `worklog` | object | worklog output from the tool | +| ↳ `id` | string | Worklog entry ID | +| ↳ `author` | object | author output from the tool | +| ↳ `displayName` | string | Worklog author display name | +| ↳ `accountId` | string | Worklog author account ID | +| ↳ `emailAddress` | string | Worklog author email address | +| ↳ `timeSpent` | string | Time spent \(e.g., "2h 30m"\) | +| ↳ `timeSpentSeconds` | number | Time spent in seconds | +| ↳ `comment` | string | Worklog comment/description | +| ↳ `started` | string | When the work was started \(ISO format\) | + diff --git a/apps/docs/content/docs/en/triggers/lemlist.mdx b/apps/docs/content/docs/en/triggers/lemlist.mdx new file mode 100644 index 00000000000..1af50a5d6d0 --- /dev/null +++ b/apps/docs/content/docs/en/triggers/lemlist.mdx @@ -0,0 +1,366 @@ +--- +title: Lemlist +description: Available Lemlist triggers for automating workflows +--- + +import { BlockInfoCard } from "@/components/ui/block-info-card" + + + +Lemlist provides 9 triggers for automating workflows based on events. + +## Triggers + +### Lemlist Email Bounced + +Trigger workflow when an email bounces + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `apiKey` | string | Yes | Required to create the webhook in Lemlist. | +| `campaignId` | string | No | Optionally scope the webhook to a specific campaign | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `_id` | string | Unique activity identifier | +| `type` | string | Activity type \(e.g., emailsSent, emailsReplied\) | +| `createdAt` | string | Activity creation timestamp \(ISO 8601\) | +| `teamId` | string | Lemlist team identifier | +| `leadId` | string | Lead identifier \(only present for campaign activities\) | +| `campaignId` | string | Campaign identifier \(only present for campaign activities\) | +| `campaignName` | string | Campaign name \(only present for campaign activities\) | +| `email` | string | Lead email address | +| `firstName` | string | Lead first name | +| `lastName` | string | Lead last name | +| `companyName` | string | Lead company name | +| `linkedinUrl` | string | Lead LinkedIn profile URL | +| `sequenceId` | string | Sequence identifier | +| `sequenceStep` | number | Current step in the sequence \(0-indexed\) | +| `totalSequenceStep` | number | Total number of steps in the sequence | +| `isFirst` | boolean | Whether this is the first activity of this type for this step | +| `sendUserId` | string | Sender user identifier | +| `sendUserEmail` | string | Sender email address | +| `sendUserName` | string | Sender display name | +| `messageId` | string | Email message ID that bounced | +| `errorMessage` | string | Bounce error message | + + +--- + +### Lemlist Email Clicked + +Trigger workflow when a lead clicks a link in an email + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `apiKey` | string | Yes | Required to create the webhook in Lemlist. | +| `campaignId` | string | No | Optionally scope the webhook to a specific campaign | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `_id` | string | Unique activity identifier | +| `type` | string | Activity type \(e.g., emailsSent, emailsReplied\) | +| `createdAt` | string | Activity creation timestamp \(ISO 8601\) | +| `teamId` | string | Lemlist team identifier | +| `leadId` | string | Lead identifier \(only present for campaign activities\) | +| `campaignId` | string | Campaign identifier \(only present for campaign activities\) | +| `campaignName` | string | Campaign name \(only present for campaign activities\) | +| `email` | string | Lead email address | +| `firstName` | string | Lead first name | +| `lastName` | string | Lead last name | +| `companyName` | string | Lead company name | +| `linkedinUrl` | string | Lead LinkedIn profile URL | +| `sequenceId` | string | Sequence identifier | +| `sequenceStep` | number | Current step in the sequence \(0-indexed\) | +| `totalSequenceStep` | number | Total number of steps in the sequence | +| `isFirst` | boolean | Whether this is the first activity of this type for this step | +| `sendUserId` | string | Sender user identifier | +| `sendUserEmail` | string | Sender email address | +| `sendUserName` | string | Sender display name | +| `messageId` | string | Email message ID containing the clicked link | +| `clickedUrl` | string | URL that was clicked | + + +--- + +### Lemlist Email Opened + +Trigger workflow when a lead opens an email + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `apiKey` | string | Yes | Required to create the webhook in Lemlist. | +| `campaignId` | string | No | Optionally scope the webhook to a specific campaign | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `_id` | string | Unique activity identifier | +| `type` | string | Activity type \(e.g., emailsSent, emailsReplied\) | +| `createdAt` | string | Activity creation timestamp \(ISO 8601\) | +| `teamId` | string | Lemlist team identifier | +| `leadId` | string | Lead identifier \(only present for campaign activities\) | +| `campaignId` | string | Campaign identifier \(only present for campaign activities\) | +| `campaignName` | string | Campaign name \(only present for campaign activities\) | +| `email` | string | Lead email address | +| `firstName` | string | Lead first name | +| `lastName` | string | Lead last name | +| `companyName` | string | Lead company name | +| `linkedinUrl` | string | Lead LinkedIn profile URL | +| `sequenceId` | string | Sequence identifier | +| `sequenceStep` | number | Current step in the sequence \(0-indexed\) | +| `totalSequenceStep` | number | Total number of steps in the sequence | +| `isFirst` | boolean | Whether this is the first activity of this type for this step | +| `sendUserId` | string | Sender user identifier | +| `sendUserEmail` | string | Sender email address | +| `sendUserName` | string | Sender display name | +| `messageId` | string | Email message ID that was opened | + + +--- + +### Lemlist Email Replied + +Trigger workflow when a lead replies to an email + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `apiKey` | string | Yes | Required to create the webhook in Lemlist. | +| `campaignId` | string | No | Optionally scope the webhook to a specific campaign | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `_id` | string | Unique activity identifier | +| `type` | string | Activity type \(e.g., emailsSent, emailsReplied\) | +| `createdAt` | string | Activity creation timestamp \(ISO 8601\) | +| `teamId` | string | Lemlist team identifier | +| `leadId` | string | Lead identifier \(only present for campaign activities\) | +| `campaignId` | string | Campaign identifier \(only present for campaign activities\) | +| `campaignName` | string | Campaign name \(only present for campaign activities\) | +| `email` | string | Lead email address | +| `firstName` | string | Lead first name | +| `lastName` | string | Lead last name | +| `companyName` | string | Lead company name | +| `linkedinUrl` | string | Lead LinkedIn profile URL | +| `sequenceId` | string | Sequence identifier | +| `sequenceStep` | number | Current step in the sequence \(0-indexed\) | +| `totalSequenceStep` | number | Total number of steps in the sequence | +| `isFirst` | boolean | Whether this is the first activity of this type for this step | +| `sendUserId` | string | Sender user identifier | +| `sendUserEmail` | string | Sender email address | +| `sendUserName` | string | Sender display name | +| `subject` | string | Email subject line | +| `text` | string | Email body content \(HTML\) | +| `messageId` | string | Email message ID \(RFC 2822 format\) | +| `emailId` | string | Lemlist email identifier | + + +--- + +### Lemlist Email Sent + +Trigger workflow when an email is sent + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `apiKey` | string | Yes | Required to create the webhook in Lemlist. | +| `campaignId` | string | No | Optionally scope the webhook to a specific campaign | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `_id` | string | Unique activity identifier | +| `type` | string | Activity type \(e.g., emailsSent, emailsReplied\) | +| `createdAt` | string | Activity creation timestamp \(ISO 8601\) | +| `teamId` | string | Lemlist team identifier | +| `leadId` | string | Lead identifier \(only present for campaign activities\) | +| `campaignId` | string | Campaign identifier \(only present for campaign activities\) | +| `campaignName` | string | Campaign name \(only present for campaign activities\) | +| `email` | string | Lead email address | +| `firstName` | string | Lead first name | +| `lastName` | string | Lead last name | +| `companyName` | string | Lead company name | +| `linkedinUrl` | string | Lead LinkedIn profile URL | +| `sequenceId` | string | Sequence identifier | +| `sequenceStep` | number | Current step in the sequence \(0-indexed\) | +| `totalSequenceStep` | number | Total number of steps in the sequence | +| `isFirst` | boolean | Whether this is the first activity of this type for this step | +| `sendUserId` | string | Sender user identifier | +| `sendUserEmail` | string | Sender email address | +| `sendUserName` | string | Sender display name | +| `subject` | string | Email subject line | +| `text` | string | Email body content \(HTML\) | +| `messageId` | string | Email message ID \(RFC 2822 format\) | +| `emailId` | string | Lemlist email identifier | + + +--- + +### Lemlist Lead Interested + +Trigger workflow when a lead is marked as interested + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `apiKey` | string | Yes | Required to create the webhook in Lemlist. | +| `campaignId` | string | No | Optionally scope the webhook to a specific campaign | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `_id` | string | Unique activity identifier | +| `type` | string | Activity type \(e.g., emailsSent, emailsReplied\) | +| `createdAt` | string | Activity creation timestamp \(ISO 8601\) | +| `teamId` | string | Lemlist team identifier | +| `leadId` | string | Lead identifier \(only present for campaign activities\) | +| `campaignId` | string | Campaign identifier \(only present for campaign activities\) | +| `campaignName` | string | Campaign name \(only present for campaign activities\) | +| `email` | string | Lead email address | +| `firstName` | string | Lead first name | +| `lastName` | string | Lead last name | +| `companyName` | string | Lead company name | +| `linkedinUrl` | string | Lead LinkedIn profile URL | +| `sequenceId` | string | Sequence identifier | +| `sequenceStep` | number | Current step in the sequence \(0-indexed\) | +| `totalSequenceStep` | number | Total number of steps in the sequence | +| `isFirst` | boolean | Whether this is the first activity of this type for this step | + + +--- + +### Lemlist Lead Not Interested + +Trigger workflow when a lead is marked as not interested + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `apiKey` | string | Yes | Required to create the webhook in Lemlist. | +| `campaignId` | string | No | Optionally scope the webhook to a specific campaign | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `_id` | string | Unique activity identifier | +| `type` | string | Activity type \(e.g., emailsSent, emailsReplied\) | +| `createdAt` | string | Activity creation timestamp \(ISO 8601\) | +| `teamId` | string | Lemlist team identifier | +| `leadId` | string | Lead identifier \(only present for campaign activities\) | +| `campaignId` | string | Campaign identifier \(only present for campaign activities\) | +| `campaignName` | string | Campaign name \(only present for campaign activities\) | +| `email` | string | Lead email address | +| `firstName` | string | Lead first name | +| `lastName` | string | Lead last name | +| `companyName` | string | Lead company name | +| `linkedinUrl` | string | Lead LinkedIn profile URL | +| `sequenceId` | string | Sequence identifier | +| `sequenceStep` | number | Current step in the sequence \(0-indexed\) | +| `totalSequenceStep` | number | Total number of steps in the sequence | +| `isFirst` | boolean | Whether this is the first activity of this type for this step | + + +--- + +### Lemlist LinkedIn Replied + +Trigger workflow when a lead replies to a LinkedIn message + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `apiKey` | string | Yes | Required to create the webhook in Lemlist. | +| `campaignId` | string | No | Optionally scope the webhook to a specific campaign | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `_id` | string | Unique activity identifier | +| `type` | string | Activity type \(e.g., emailsSent, emailsReplied\) | +| `createdAt` | string | Activity creation timestamp \(ISO 8601\) | +| `teamId` | string | Lemlist team identifier | +| `leadId` | string | Lead identifier \(only present for campaign activities\) | +| `campaignId` | string | Campaign identifier \(only present for campaign activities\) | +| `campaignName` | string | Campaign name \(only present for campaign activities\) | +| `email` | string | Lead email address | +| `firstName` | string | Lead first name | +| `lastName` | string | Lead last name | +| `companyName` | string | Lead company name | +| `linkedinUrl` | string | Lead LinkedIn profile URL | +| `sequenceId` | string | Sequence identifier | +| `sequenceStep` | number | Current step in the sequence \(0-indexed\) | +| `totalSequenceStep` | number | Total number of steps in the sequence | +| `isFirst` | boolean | Whether this is the first activity of this type for this step | +| `text` | string | LinkedIn message content | + + +--- + +### Lemlist Webhook (All Events) + +Trigger workflow on any Lemlist webhook event + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `apiKey` | string | Yes | Required to create the webhook in Lemlist. | +| `campaignId` | string | No | Optionally scope the webhook to a specific campaign | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `_id` | string | Unique activity identifier | +| `type` | string | Activity type \(e.g., emailsSent, emailsReplied\) | +| `createdAt` | string | Activity creation timestamp \(ISO 8601\) | +| `teamId` | string | Lemlist team identifier | +| `leadId` | string | Lead identifier \(only present for campaign activities\) | +| `campaignId` | string | Campaign identifier \(only present for campaign activities\) | +| `campaignName` | string | Campaign name \(only present for campaign activities\) | +| `email` | string | Lead email address | +| `firstName` | string | Lead first name | +| `lastName` | string | Lead last name | +| `companyName` | string | Lead company name | +| `linkedinUrl` | string | Lead LinkedIn profile URL | +| `sequenceId` | string | Sequence identifier | +| `sequenceStep` | number | Current step in the sequence \(0-indexed\) | +| `totalSequenceStep` | number | Total number of steps in the sequence | +| `isFirst` | boolean | Whether this is the first activity of this type for this step | +| `sendUserId` | string | Sender user identifier | +| `sendUserEmail` | string | Sender email address | +| `sendUserName` | string | Sender display name | +| `subject` | string | Email subject line | +| `text` | string | Email body content \(HTML\) | +| `messageId` | string | Email message ID \(RFC 2822 format\) | +| `emailId` | string | Lemlist email identifier | +| `clickedUrl` | string | URL that was clicked \(for emailsClicked events\) | +| `errorMessage` | string | Error message \(for bounce/failed events\) | + diff --git a/apps/docs/content/docs/en/triggers/linear.mdx b/apps/docs/content/docs/en/triggers/linear.mdx new file mode 100644 index 00000000000..6d9e41d807e --- /dev/null +++ b/apps/docs/content/docs/en/triggers/linear.mdx @@ -0,0 +1,703 @@ +--- +title: Linear +description: Available Linear triggers for automating workflows +--- + +import { BlockInfoCard } from "@/components/ui/block-info-card" + + + +Linear provides 15 triggers for automating workflows based on events. + +## Triggers + +### Linear Comment Created + +Trigger workflow when a new comment is created in Linear + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `apiKey` | string | Yes | API Key | +| `teamId` | string | No | Team ID | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `action` | string | Action performed \(create, update, remove\) | +| `type` | string | Entity type \(Comment\) | +| `webhookId` | string | Webhook ID | +| `webhookTimestamp` | number | Webhook timestamp \(milliseconds\) | +| `organizationId` | string | Organization ID | +| `createdAt` | string | Event creation timestamp | +| `url` | string | URL of the subject entity in Linear \(top-level webhook payload\) | +| `data` | object | data output from the tool | +| ↳ `id` | string | Comment ID | +| ↳ `body` | string | Comment body text | +| ↳ `edited` | boolean | Whether the comment body has been edited \(Linear webhook payload field\) | +| ↳ `url` | string | Comment URL | +| ↳ `issueId` | string | Issue ID this comment belongs to | +| ↳ `userId` | string | User ID of the comment author | +| ↳ `editedAt` | string | Last edited timestamp | +| ↳ `createdAt` | string | Comment creation timestamp | +| ↳ `updatedAt` | string | Comment last update timestamp | +| ↳ `archivedAt` | string | Archived timestamp | +| ↳ `resolvedAt` | string | Resolved timestamp \(for comment threads\) | +| ↳ `parent` | object | Parent comment object \(if this is a reply\) | +| ↳ `reactionData` | object | Reaction data for the comment | +| `updatedFrom` | object | Previous values for changed fields \(only present on update\) | + + +--- + +### Linear Comment Updated + +Trigger workflow when a comment is updated in Linear + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `apiKey` | string | Yes | API Key | +| `teamId` | string | No | Team ID | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `action` | string | Action performed \(create, update, remove\) | +| `type` | string | Entity type \(Comment\) | +| `webhookId` | string | Webhook ID | +| `webhookTimestamp` | number | Webhook timestamp \(milliseconds\) | +| `organizationId` | string | Organization ID | +| `createdAt` | string | Event creation timestamp | +| `url` | string | URL of the subject entity in Linear \(top-level webhook payload\) | +| `data` | object | data output from the tool | +| ↳ `id` | string | Comment ID | +| ↳ `body` | string | Comment body text | +| ↳ `edited` | boolean | Whether the comment body has been edited \(Linear webhook payload field\) | +| ↳ `url` | string | Comment URL | +| ↳ `issueId` | string | Issue ID this comment belongs to | +| ↳ `userId` | string | User ID of the comment author | +| ↳ `editedAt` | string | Last edited timestamp | +| ↳ `createdAt` | string | Comment creation timestamp | +| ↳ `updatedAt` | string | Comment last update timestamp | +| ↳ `archivedAt` | string | Archived timestamp | +| ↳ `resolvedAt` | string | Resolved timestamp \(for comment threads\) | +| ↳ `parent` | object | Parent comment object \(if this is a reply\) | +| ↳ `reactionData` | object | Reaction data for the comment | +| `updatedFrom` | object | Previous values for changed fields \(only present on update\) | + + +--- + +### Linear Customer Request Created + +Trigger workflow when a new customer request is created in Linear + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `apiKey` | string | Yes | API Key | +| `teamId` | string | No | Team ID | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `action` | string | Action performed \(create, update, remove\) | +| `type` | string | Entity type \(CustomerNeed\) | +| `webhookId` | string | Webhook ID | +| `webhookTimestamp` | number | Webhook timestamp \(milliseconds\) | +| `organizationId` | string | Organization ID | +| `createdAt` | string | Event creation timestamp | +| `url` | string | URL of the subject entity in Linear \(top-level webhook payload\) | +| `data` | object | data output from the tool | +| ↳ `id` | string | Customer request ID | +| ↳ `body` | string | Request body content \(Markdown\) | +| ↳ `priority` | number | Request priority \(0 = Not important, 1 = Important\) | +| ↳ `customerId` | string | Customer ID | +| ↳ `issueId` | string | Linked issue ID | +| ↳ `projectId` | string | Associated project ID | +| ↳ `creatorId` | string | Creator user ID | +| ↳ `url` | string | Customer request URL | +| ↳ `createdAt` | string | Request creation timestamp | +| ↳ `updatedAt` | string | Request last update timestamp | +| ↳ `archivedAt` | string | Archived timestamp | +| `updatedFrom` | object | Previous values for changed fields \(only present on update\) | + + +--- + +### Linear Customer Request Updated + +Trigger workflow when a customer request is updated in Linear + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `apiKey` | string | Yes | API Key | +| `teamId` | string | No | Team ID | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `action` | string | Action performed \(create, update, remove\) | +| `type` | string | Entity type \(CustomerNeed\) | +| `webhookId` | string | Webhook ID | +| `webhookTimestamp` | number | Webhook timestamp \(milliseconds\) | +| `organizationId` | string | Organization ID | +| `createdAt` | string | Event creation timestamp | +| `url` | string | URL of the subject entity in Linear \(top-level webhook payload\) | +| `data` | object | data output from the tool | +| ↳ `id` | string | Customer request ID | +| ↳ `body` | string | Request body content \(Markdown\) | +| ↳ `priority` | number | Request priority \(0 = Not important, 1 = Important\) | +| ↳ `customerId` | string | Customer ID | +| ↳ `issueId` | string | Linked issue ID | +| ↳ `projectId` | string | Associated project ID | +| ↳ `creatorId` | string | Creator user ID | +| ↳ `url` | string | Customer request URL | +| ↳ `createdAt` | string | Request creation timestamp | +| ↳ `updatedAt` | string | Request last update timestamp | +| ↳ `archivedAt` | string | Archived timestamp | +| `updatedFrom` | object | Previous values for changed fields \(only present on update\) | + + +--- + +### Linear Cycle Created + +Trigger workflow when a new cycle is created in Linear + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `apiKey` | string | Yes | API Key | +| `teamId` | string | No | Team ID | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `action` | string | Action performed \(create, update, remove\) | +| `type` | string | Entity type \(Cycle\) | +| `webhookId` | string | Webhook ID | +| `webhookTimestamp` | number | Webhook timestamp \(milliseconds\) | +| `organizationId` | string | Organization ID | +| `createdAt` | string | Event creation timestamp | +| `url` | string | URL of the subject entity in Linear \(top-level webhook payload\) | +| `data` | object | data output from the tool | +| ↳ `id` | string | Cycle ID | +| ↳ `number` | number | Cycle number | +| ↳ `name` | string | Cycle name | +| ↳ `description` | string | Cycle description | +| ↳ `teamId` | string | Team ID | +| ↳ `startsAt` | string | Cycle start date | +| ↳ `endsAt` | string | Cycle end date | +| ↳ `completedAt` | string | Completed timestamp | +| ↳ `archivedAt` | string | Archived timestamp | +| ↳ `autoArchivedAt` | string | Auto-archived timestamp | +| ↳ `createdAt` | string | Cycle creation timestamp | +| ↳ `updatedAt` | string | Cycle last update timestamp | +| ↳ `progress` | number | Cycle progress \(0-1\) | +| ↳ `scopeHistory` | array | History of scope changes | +| ↳ `completedScopeHistory` | array | History of completed scope | +| ↳ `inProgressScopeHistory` | array | History of in-progress scope | +| `updatedFrom` | object | Previous values for changed fields \(only present on update\) | + + +--- + +### Linear Cycle Updated + +Trigger workflow when a cycle is updated in Linear + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `apiKey` | string | Yes | API Key | +| `teamId` | string | No | Team ID | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `action` | string | Action performed \(create, update, remove\) | +| `type` | string | Entity type \(Cycle\) | +| `webhookId` | string | Webhook ID | +| `webhookTimestamp` | number | Webhook timestamp \(milliseconds\) | +| `organizationId` | string | Organization ID | +| `createdAt` | string | Event creation timestamp | +| `url` | string | URL of the subject entity in Linear \(top-level webhook payload\) | +| `data` | object | data output from the tool | +| ↳ `id` | string | Cycle ID | +| ↳ `number` | number | Cycle number | +| ↳ `name` | string | Cycle name | +| ↳ `description` | string | Cycle description | +| ↳ `teamId` | string | Team ID | +| ↳ `startsAt` | string | Cycle start date | +| ↳ `endsAt` | string | Cycle end date | +| ↳ `completedAt` | string | Completed timestamp | +| ↳ `archivedAt` | string | Archived timestamp | +| ↳ `autoArchivedAt` | string | Auto-archived timestamp | +| ↳ `createdAt` | string | Cycle creation timestamp | +| ↳ `updatedAt` | string | Cycle last update timestamp | +| ↳ `progress` | number | Cycle progress \(0-1\) | +| ↳ `scopeHistory` | array | History of scope changes | +| ↳ `completedScopeHistory` | array | History of completed scope | +| ↳ `inProgressScopeHistory` | array | History of in-progress scope | +| `updatedFrom` | object | Previous values for changed fields \(only present on update\) | + + +--- + +### Linear Issue Created + +Trigger workflow when a new issue is created in Linear + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `apiKey` | string | Yes | API Key | +| `teamId` | string | No | Team ID | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `action` | string | Action performed \(create, update, remove\) | +| `type` | string | Entity type \(Issue\) | +| `webhookId` | string | Webhook ID | +| `webhookTimestamp` | number | Webhook timestamp \(milliseconds\) | +| `organizationId` | string | Organization ID | +| `createdAt` | string | Event creation timestamp | +| `url` | string | URL of the subject entity in Linear \(top-level webhook payload\) | +| `data` | object | data output from the tool | +| ↳ `id` | string | Issue ID | +| ↳ `title` | string | Issue title | +| ↳ `description` | string | Issue description | +| ↳ `identifier` | string | Issue identifier \(e.g., ENG-123\) | +| ↳ `number` | number | Issue number | +| ↳ `priority` | number | Issue priority \(0 = None, 1 = Urgent, 2 = High, 3 = Medium, 4 = Low\) | +| ↳ `estimate` | number | Issue estimate | +| ↳ `sortOrder` | number | Issue sort order | +| ↳ `teamId` | string | Team ID | +| ↳ `stateId` | string | Workflow state ID | +| ↳ `assigneeId` | string | Assignee user ID | +| ↳ `creatorId` | string | Creator user ID | +| ↳ `projectId` | string | Project ID | +| ↳ `cycleId` | string | Cycle ID | +| ↳ `parentId` | string | Parent issue ID \(for sub-issues\) | +| ↳ `labelIds` | array | Array of label IDs | +| ↳ `subscriberIds` | array | Array of subscriber user IDs | +| ↳ `url` | string | Issue URL | +| ↳ `branchName` | string | Git branch name | +| ↳ `customerTicketCount` | number | Number of customer tickets | +| ↳ `dueDate` | string | Issue due date | +| ↳ `snoozedUntilAt` | string | Snoozed until timestamp | +| ↳ `archivedAt` | string | Archived timestamp | +| ↳ `canceledAt` | string | Canceled timestamp | +| ↳ `completedAt` | string | Completed timestamp | +| ↳ `startedAt` | string | Started timestamp | +| ↳ `triagedAt` | string | Triaged timestamp | +| ↳ `createdAt` | string | Issue creation timestamp | +| ↳ `updatedAt` | string | Issue last update timestamp | +| ↳ `autoArchivedAt` | string | Auto-archived timestamp | +| ↳ `autoClosedAt` | string | Auto-closed timestamp | +| ↳ `previousIdentifiers` | array | Array of previous issue identifiers \(when an issue is moved between teams\) | +| ↳ `integrationSourceType` | string | Integration source type \(if created from an integration\) | +| ↳ `slaStartedAt` | string | SLA timer started timestamp | +| ↳ `slaBreachesAt` | string | SLA breach timestamp | +| `updatedFrom` | object | Previous values for changed fields \(only present on update\) | + + +--- + +### Linear Issue Removed + +Trigger workflow when an issue is removed/deleted in Linear + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `apiKey` | string | Yes | API Key | +| `teamId` | string | No | Team ID | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `action` | string | Action performed \(create, update, remove\) | +| `type` | string | Entity type \(Issue\) | +| `webhookId` | string | Webhook ID | +| `webhookTimestamp` | number | Webhook timestamp \(milliseconds\) | +| `organizationId` | string | Organization ID | +| `createdAt` | string | Event creation timestamp | +| `url` | string | URL of the subject entity in Linear \(top-level webhook payload\) | +| `data` | object | data output from the tool | +| ↳ `id` | string | Issue ID | +| ↳ `title` | string | Issue title | +| ↳ `description` | string | Issue description | +| ↳ `identifier` | string | Issue identifier \(e.g., ENG-123\) | +| ↳ `number` | number | Issue number | +| ↳ `priority` | number | Issue priority \(0 = None, 1 = Urgent, 2 = High, 3 = Medium, 4 = Low\) | +| ↳ `estimate` | number | Issue estimate | +| ↳ `sortOrder` | number | Issue sort order | +| ↳ `teamId` | string | Team ID | +| ↳ `stateId` | string | Workflow state ID | +| ↳ `assigneeId` | string | Assignee user ID | +| ↳ `creatorId` | string | Creator user ID | +| ↳ `projectId` | string | Project ID | +| ↳ `cycleId` | string | Cycle ID | +| ↳ `parentId` | string | Parent issue ID \(for sub-issues\) | +| ↳ `labelIds` | array | Array of label IDs | +| ↳ `subscriberIds` | array | Array of subscriber user IDs | +| ↳ `url` | string | Issue URL | +| ↳ `branchName` | string | Git branch name | +| ↳ `customerTicketCount` | number | Number of customer tickets | +| ↳ `dueDate` | string | Issue due date | +| ↳ `snoozedUntilAt` | string | Snoozed until timestamp | +| ↳ `archivedAt` | string | Archived timestamp | +| ↳ `canceledAt` | string | Canceled timestamp | +| ↳ `completedAt` | string | Completed timestamp | +| ↳ `startedAt` | string | Started timestamp | +| ↳ `triagedAt` | string | Triaged timestamp | +| ↳ `createdAt` | string | Issue creation timestamp | +| ↳ `updatedAt` | string | Issue last update timestamp | +| ↳ `autoArchivedAt` | string | Auto-archived timestamp | +| ↳ `autoClosedAt` | string | Auto-closed timestamp | +| ↳ `previousIdentifiers` | array | Array of previous issue identifiers \(when an issue is moved between teams\) | +| ↳ `integrationSourceType` | string | Integration source type \(if created from an integration\) | +| ↳ `slaStartedAt` | string | SLA timer started timestamp | +| ↳ `slaBreachesAt` | string | SLA breach timestamp | +| `updatedFrom` | object | Previous values for changed fields \(only present on update\) | + + +--- + +### Linear Issue Updated + +Trigger workflow when an issue is updated in Linear + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `apiKey` | string | Yes | API Key | +| `teamId` | string | No | Team ID | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `action` | string | Action performed \(create, update, remove\) | +| `type` | string | Entity type \(Issue\) | +| `webhookId` | string | Webhook ID | +| `webhookTimestamp` | number | Webhook timestamp \(milliseconds\) | +| `organizationId` | string | Organization ID | +| `createdAt` | string | Event creation timestamp | +| `url` | string | URL of the subject entity in Linear \(top-level webhook payload\) | +| `data` | object | data output from the tool | +| ↳ `id` | string | Issue ID | +| ↳ `title` | string | Issue title | +| ↳ `description` | string | Issue description | +| ↳ `identifier` | string | Issue identifier \(e.g., ENG-123\) | +| ↳ `number` | number | Issue number | +| ↳ `priority` | number | Issue priority \(0 = None, 1 = Urgent, 2 = High, 3 = Medium, 4 = Low\) | +| ↳ `estimate` | number | Issue estimate | +| ↳ `sortOrder` | number | Issue sort order | +| ↳ `teamId` | string | Team ID | +| ↳ `stateId` | string | Workflow state ID | +| ↳ `assigneeId` | string | Assignee user ID | +| ↳ `creatorId` | string | Creator user ID | +| ↳ `projectId` | string | Project ID | +| ↳ `cycleId` | string | Cycle ID | +| ↳ `parentId` | string | Parent issue ID \(for sub-issues\) | +| ↳ `labelIds` | array | Array of label IDs | +| ↳ `subscriberIds` | array | Array of subscriber user IDs | +| ↳ `url` | string | Issue URL | +| ↳ `branchName` | string | Git branch name | +| ↳ `customerTicketCount` | number | Number of customer tickets | +| ↳ `dueDate` | string | Issue due date | +| ↳ `snoozedUntilAt` | string | Snoozed until timestamp | +| ↳ `archivedAt` | string | Archived timestamp | +| ↳ `canceledAt` | string | Canceled timestamp | +| ↳ `completedAt` | string | Completed timestamp | +| ↳ `startedAt` | string | Started timestamp | +| ↳ `triagedAt` | string | Triaged timestamp | +| ↳ `createdAt` | string | Issue creation timestamp | +| ↳ `updatedAt` | string | Issue last update timestamp | +| ↳ `autoArchivedAt` | string | Auto-archived timestamp | +| ↳ `autoClosedAt` | string | Auto-closed timestamp | +| ↳ `previousIdentifiers` | array | Array of previous issue identifiers \(when an issue is moved between teams\) | +| ↳ `integrationSourceType` | string | Integration source type \(if created from an integration\) | +| ↳ `slaStartedAt` | string | SLA timer started timestamp | +| ↳ `slaBreachesAt` | string | SLA breach timestamp | +| `updatedFrom` | object | Previous values for changed fields \(only present on update\) | + + +--- + +### Linear Label Created + +Trigger workflow when a new label is created in Linear + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `apiKey` | string | Yes | API Key | +| `teamId` | string | No | Team ID | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `action` | string | Action performed \(create, update, remove\) | +| `type` | string | Entity type \(IssueLabel\) | +| `webhookId` | string | Webhook ID | +| `webhookTimestamp` | number | Webhook timestamp \(milliseconds\) | +| `organizationId` | string | Organization ID | +| `createdAt` | string | Event creation timestamp | +| `url` | string | URL of the subject entity in Linear \(top-level webhook payload\) | +| `data` | object | data output from the tool | +| ↳ `id` | string | Label ID | +| ↳ `name` | string | Label name | +| ↳ `description` | string | Label description | +| ↳ `color` | string | Label color \(hex code\) | +| ↳ `organizationId` | string | Organization ID | +| ↳ `teamId` | string | Team ID \(if team-specific label\) | +| ↳ `creatorId` | string | Creator user ID | +| ↳ `isGroup` | boolean | Whether this is a label group | +| ↳ `parentId` | string | Parent label ID \(for nested labels\) | +| ↳ `archivedAt` | string | Archived timestamp | +| ↳ `createdAt` | string | Label creation timestamp | +| ↳ `updatedAt` | string | Label last update timestamp | +| `updatedFrom` | object | Previous values for changed fields \(only present on update\) | + + +--- + +### Linear Label Updated + +Trigger workflow when a label is updated in Linear + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `apiKey` | string | Yes | API Key | +| `teamId` | string | No | Team ID | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `action` | string | Action performed \(create, update, remove\) | +| `type` | string | Entity type \(IssueLabel\) | +| `webhookId` | string | Webhook ID | +| `webhookTimestamp` | number | Webhook timestamp \(milliseconds\) | +| `organizationId` | string | Organization ID | +| `createdAt` | string | Event creation timestamp | +| `url` | string | URL of the subject entity in Linear \(top-level webhook payload\) | +| `data` | object | data output from the tool | +| ↳ `id` | string | Label ID | +| ↳ `name` | string | Label name | +| ↳ `description` | string | Label description | +| ↳ `color` | string | Label color \(hex code\) | +| ↳ `organizationId` | string | Organization ID | +| ↳ `teamId` | string | Team ID \(if team-specific label\) | +| ↳ `creatorId` | string | Creator user ID | +| ↳ `isGroup` | boolean | Whether this is a label group | +| ↳ `parentId` | string | Parent label ID \(for nested labels\) | +| ↳ `archivedAt` | string | Archived timestamp | +| ↳ `createdAt` | string | Label creation timestamp | +| ↳ `updatedAt` | string | Label last update timestamp | +| `updatedFrom` | object | Previous values for changed fields \(only present on update\) | + + +--- + +### Linear Project Created + +Trigger workflow when a new project is created in Linear + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `apiKey` | string | Yes | API Key | +| `teamId` | string | No | Team ID | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `action` | string | Action performed \(create, update, remove\) | +| `type` | string | Entity type \(Project\) | +| `webhookId` | string | Webhook ID | +| `webhookTimestamp` | number | Webhook timestamp \(milliseconds\) | +| `organizationId` | string | Organization ID | +| `createdAt` | string | Event creation timestamp | +| `url` | string | URL of the subject entity in Linear \(top-level webhook payload\) | +| `data` | object | data output from the tool | +| ↳ `id` | string | Project ID | +| ↳ `name` | string | Project name | +| ↳ `description` | string | Project description | +| ↳ `icon` | string | Project icon | +| ↳ `color` | string | Project color | +| ↳ `state` | string | Project state \(planned, started, completed, canceled, backlog\) | +| ↳ `slugId` | string | Project slug ID | +| ↳ `url` | string | Project URL | +| ↳ `leadId` | string | Project lead user ID | +| ↳ `creatorId` | string | Creator user ID | +| ↳ `memberIds` | array | Array of member user IDs | +| ↳ `teamIds` | array | Array of team IDs | +| ↳ `priority` | number | Project priority | +| ↳ `sortOrder` | number | Project sort order | +| ↳ `startDate` | string | Project start date | +| ↳ `targetDate` | string | Project target date | +| ↳ `startedAt` | string | Started timestamp | +| ↳ `completedAt` | string | Completed timestamp | +| ↳ `canceledAt` | string | Canceled timestamp | +| ↳ `archivedAt` | string | Archived timestamp | +| ↳ `createdAt` | string | Project creation timestamp | +| ↳ `updatedAt` | string | Project last update timestamp | +| ↳ `progress` | number | Project progress \(0-1\) | +| ↳ `scope` | number | Project scope estimate | +| ↳ `statusId` | string | Project status ID | +| ↳ `bodyData` | object | Project body data \(rich text content\) | +| `updatedFrom` | object | Previous values for changed fields \(only present on update\) | + + +--- + +### Linear Project Update Created + +Trigger workflow when a new project update is posted in Linear + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `apiKey` | string | Yes | API Key | +| `teamId` | string | No | Team ID | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `action` | string | Action performed \(create, update, remove\) | +| `type` | string | Entity type \(ProjectUpdate\) | +| `webhookId` | string | Webhook ID | +| `webhookTimestamp` | number | Webhook timestamp \(milliseconds\) | +| `organizationId` | string | Organization ID | +| `createdAt` | string | Event creation timestamp | +| `url` | string | URL of the subject entity in Linear \(top-level webhook payload\) | +| `data` | object | data output from the tool | +| ↳ `id` | string | Project update ID | +| ↳ `body` | string | Update body content | +| ↳ `url` | string | Project update URL | +| ↳ `projectId` | string | Project ID | +| ↳ `userId` | string | User ID of the author | +| ↳ `health` | string | Project health \(onTrack, atRisk, offTrack\) | +| ↳ `editedAt` | string | Last edited timestamp | +| ↳ `createdAt` | string | Update creation timestamp | +| ↳ `updatedAt` | string | Update last update timestamp | +| `updatedFrom` | object | Previous values for changed fields \(only present on update\) | + + +--- + +### Linear Project Updated + +Trigger workflow when a project is updated in Linear + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `apiKey` | string | Yes | API Key | +| `teamId` | string | No | Team ID | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `action` | string | Action performed \(create, update, remove\) | +| `type` | string | Entity type \(Project\) | +| `webhookId` | string | Webhook ID | +| `webhookTimestamp` | number | Webhook timestamp \(milliseconds\) | +| `organizationId` | string | Organization ID | +| `createdAt` | string | Event creation timestamp | +| `url` | string | URL of the subject entity in Linear \(top-level webhook payload\) | +| `data` | object | data output from the tool | +| ↳ `id` | string | Project ID | +| ↳ `name` | string | Project name | +| ↳ `description` | string | Project description | +| ↳ `icon` | string | Project icon | +| ↳ `color` | string | Project color | +| ↳ `state` | string | Project state \(planned, started, completed, canceled, backlog\) | +| ↳ `slugId` | string | Project slug ID | +| ↳ `url` | string | Project URL | +| ↳ `leadId` | string | Project lead user ID | +| ↳ `creatorId` | string | Creator user ID | +| ↳ `memberIds` | array | Array of member user IDs | +| ↳ `teamIds` | array | Array of team IDs | +| ↳ `priority` | number | Project priority | +| ↳ `sortOrder` | number | Project sort order | +| ↳ `startDate` | string | Project start date | +| ↳ `targetDate` | string | Project target date | +| ↳ `startedAt` | string | Started timestamp | +| ↳ `completedAt` | string | Completed timestamp | +| ↳ `canceledAt` | string | Canceled timestamp | +| ↳ `archivedAt` | string | Archived timestamp | +| ↳ `createdAt` | string | Project creation timestamp | +| ↳ `updatedAt` | string | Project last update timestamp | +| ↳ `progress` | number | Project progress \(0-1\) | +| ↳ `scope` | number | Project scope estimate | +| ↳ `statusId` | string | Project status ID | +| ↳ `bodyData` | object | Project body data \(rich text content\) | +| `updatedFrom` | object | Previous values for changed fields \(only present on update\) | + + +--- + +### Linear Webhook + +Trigger workflow from Linear events you select when creating the webhook in Linear (not guaranteed to be every model or event type). + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `apiKey` | string | Yes | API Key | +| `teamId` | string | No | Team ID | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `action` | string | Action performed \(create, update, remove\) | +| `type` | string | Entity type \(Issue, Comment, Project, Cycle, IssueLabel, ProjectUpdate, etc.\) | +| `webhookId` | string | Webhook ID | +| `webhookTimestamp` | number | Webhook timestamp \(milliseconds\) | +| `organizationId` | string | Organization ID | +| `createdAt` | string | Event creation timestamp | +| `url` | string | URL of the subject entity in Linear \(top-level webhook payload\) | +| `data` | object | Complete entity data object | +| `updatedFrom` | object | Previous values for changed fields \(only present on update\) | + diff --git a/apps/docs/content/docs/en/triggers/meta.json b/apps/docs/content/docs/en/triggers/meta.json index 47b2a08968f..d04467626b1 100644 --- a/apps/docs/content/docs/en/triggers/meta.json +++ b/apps/docs/content/docs/en/triggers/meta.json @@ -1,3 +1,48 @@ { - "pages": ["index", "start", "schedule", "webhook", "rss"] + "pages": [ + "index", + "start", + "schedule", + "webhook", + "rss", + "airtable", + "ashby", + "attio", + "calcom", + "calendly", + "circleback", + "confluence", + "fathom", + "fireflies", + "github", + "gmail", + "gong", + "google-calendar", + "google-drive", + "google-sheets", + "google_forms", + "grain", + "greenhouse", + "hubspot", + "imap", + "intercom", + "jira", + "lemlist", + "linear", + "microsoft-teams", + "notion", + "outlook", + "resend", + "salesforce", + "servicenow", + "slack", + "stripe", + "telegram", + "twilio_voice", + "typeform", + "vercel", + "webflow", + "whatsapp", + "zoom" + ] } diff --git a/apps/docs/content/docs/en/triggers/microsoft-teams.mdx b/apps/docs/content/docs/en/triggers/microsoft-teams.mdx new file mode 100644 index 00000000000..4bef68927b1 --- /dev/null +++ b/apps/docs/content/docs/en/triggers/microsoft-teams.mdx @@ -0,0 +1,92 @@ +--- +title: Microsoft Teams +description: Available Microsoft Teams triggers for automating workflows +--- + +import { BlockInfoCard } from "@/components/ui/block-info-card" + + + +Microsoft Teams provides 2 triggers for automating workflows based on events. + +## Triggers + +### Microsoft Teams Channel + +Trigger workflow from Microsoft Teams channel messages via outgoing webhooks + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `hmacSecret` | string | Yes | The security token provided by Teams when creating an outgoing webhook. Used to verify request authenticity. | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `from` | object | from output from the tool | +| ↳ `id` | string | Sender ID | +| ↳ `name` | string | Sender name | +| ↳ `aadObjectId` | string | AAD Object ID | +| `message` | object | message output from the tool | +| ↳ `raw` | object | raw output from the tool | +| ↳ `attachments` | json | Array of attachments | +| ↳ `channelData` | object | channelData output from the tool | +| ↳ `team` | object | team output from the tool | +| ↳ `id` | string | Team ID | +| ↳ `tenant` | object | tenant output from the tool | +| ↳ `id` | string | Tenant ID | +| ↳ `channel` | object | channel output from the tool | +| ↳ `id` | string | Channel ID | +| ↳ `teamsTeamId` | string | Teams team ID | +| ↳ `teamsChannelId` | string | Teams channel ID | +| ↳ `conversation` | object | conversation output from the tool | +| ↳ `id` | string | Composite conversation ID | +| ↳ `name` | string | Conversation name \(nullable\) | +| ↳ `isGroup` | boolean | Is group conversation | +| ↳ `tenantId` | string | Tenant ID | +| ↳ `aadObjectId` | string | AAD Object ID \(nullable\) | +| ↳ `conversationType` | string | Conversation type \(channel\) | +| ↳ `text` | string | Message text content | +| ↳ `messageType` | string | Message type | +| ↳ `channelId` | string | Channel ID \(msteams\) | +| ↳ `timestamp` | string | Timestamp | +| `activity` | object | Activity payload | +| `conversation` | object | conversation output from the tool | +| ↳ `id` | string | Composite conversation ID | +| ↳ `name` | string | Conversation name \(nullable\) | +| ↳ `isGroup` | boolean | Is group conversation | +| ↳ `tenantId` | string | Tenant ID | +| ↳ `aadObjectId` | string | AAD Object ID \(nullable\) | +| ↳ `conversationType` | string | Conversation type \(channel\) | + + +--- + +### Microsoft Teams Chat + +Trigger workflow from new messages in Microsoft Teams chats via Microsoft Graph subscriptions + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `triggerCredentials` | string | Yes | This trigger requires microsoft teams credentials to access your account. | +| `triggerChatId` | string | Yes | The ID of the Teams chat to monitor | +| `includeAttachments` | boolean | No | Fetch hosted contents and upload to storage | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `message_id` | string | Message ID | +| `chat_id` | string | Chat ID | +| `from_name` | string | Sender display name | +| `text` | string | Message body \(HTML or text\) | +| `created_at` | string | Message timestamp | +| `attachments` | file[] | Uploaded attachments as files | + diff --git a/apps/docs/content/docs/en/triggers/notion.mdx b/apps/docs/content/docs/en/triggers/notion.mdx new file mode 100644 index 00000000000..552a1e77fb1 --- /dev/null +++ b/apps/docs/content/docs/en/triggers/notion.mdx @@ -0,0 +1,331 @@ +--- +title: Notion +description: Available Notion triggers for automating workflows +--- + +import { BlockInfoCard } from "@/components/ui/block-info-card" + + + +Notion provides 9 triggers for automating workflows based on events. + +## Triggers + +### Notion Comment Created + +Trigger workflow when a comment or suggested edit is added in Notion + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `webhookSecret` | string | No | The verification_token sent by Notion during webhook setup. This same token is used to verify X-Notion-Signature HMAC headers on all subsequent webhook deliveries. | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `id` | string | Webhook event ID | +| `type` | string | Event type \(e.g., page.created, database.schema_updated\) | +| `timestamp` | string | ISO 8601 timestamp of the event | +| `api_version` | string | Notion API version included with the event | +| `workspace_id` | string | Workspace ID where the event occurred | +| `workspace_name` | string | Workspace name | +| `subscription_id` | string | Webhook subscription ID | +| `integration_id` | string | Integration ID that received the event | +| `attempt_number` | number | Delivery attempt number \(1-8 per Notion retries\) | +| `accessible_by` | array | Users and bots with access to the entity \(`id` + `type` per object\); `type` is `person` or `bot`. Omitted on some deliveries \(treat as empty\). | +| `authors` | array | Actors who triggered the event \(`id` + `type` per object\); `type` is `person`, `bot`, or `agent` per Notion | +| `entity` | object | entity output from the tool | +| ↳ `id` | string | Comment ID | +| ↳ `entity_type` | string | Entity type \(comment\) | +| `data` | object | data output from the tool | +| ↳ `page_id` | string | Page ID that owns the comment thread | +| ↳ `parent` | object | parent output from the tool | +| ↳ `id` | string | Parent page or block ID | +| ↳ `parent_type` | string | Parent type \(page or block\) | + + +--- + +### Notion Database Created + +Trigger workflow when a new database is created in Notion + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `webhookSecret` | string | No | The verification_token sent by Notion during webhook setup. This same token is used to verify X-Notion-Signature HMAC headers on all subsequent webhook deliveries. | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `id` | string | Webhook event ID | +| `type` | string | Event type \(e.g., page.created, database.schema_updated\) | +| `timestamp` | string | ISO 8601 timestamp of the event | +| `api_version` | string | Notion API version included with the event | +| `workspace_id` | string | Workspace ID where the event occurred | +| `workspace_name` | string | Workspace name | +| `subscription_id` | string | Webhook subscription ID | +| `integration_id` | string | Integration ID that received the event | +| `attempt_number` | number | Delivery attempt number \(1-8 per Notion retries\) | +| `accessible_by` | array | Users and bots with access to the entity \(`id` + `type` per object\); `type` is `person` or `bot`. Omitted on some deliveries \(treat as empty\). | +| `authors` | array | Actors who triggered the event \(`id` + `type` per object\); `type` is `person`, `bot`, or `agent` per Notion | +| `data` | object | data output from the tool | +| ↳ `updated_blocks` | array | Blocks updated as part of the event, when provided by Notion | +| ↳ `updated_properties` | array | Database properties updated as part of the event, when provided by Notion | +| ↳ `parent` | object | parent output from the tool | +| ↳ `id` | string | Parent page, database, workspace, or space ID | +| ↳ `parent_type` | string | Parent type: `page`, `database`, `workspace`, or `space` | + + +--- + +### Notion Database Deleted + +Trigger workflow when a database is deleted in Notion + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `webhookSecret` | string | No | The verification_token sent by Notion during webhook setup. This same token is used to verify X-Notion-Signature HMAC headers on all subsequent webhook deliveries. | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `id` | string | Webhook event ID | +| `type` | string | Event type \(e.g., page.created, database.schema_updated\) | +| `timestamp` | string | ISO 8601 timestamp of the event | +| `api_version` | string | Notion API version included with the event | +| `workspace_id` | string | Workspace ID where the event occurred | +| `workspace_name` | string | Workspace name | +| `subscription_id` | string | Webhook subscription ID | +| `integration_id` | string | Integration ID that received the event | +| `attempt_number` | number | Delivery attempt number \(1-8 per Notion retries\) | +| `accessible_by` | array | Users and bots with access to the entity \(`id` + `type` per object\); `type` is `person` or `bot`. Omitted on some deliveries \(treat as empty\). | +| `authors` | array | Actors who triggered the event \(`id` + `type` per object\); `type` is `person`, `bot`, or `agent` per Notion | +| `data` | object | data output from the tool | +| ↳ `updated_blocks` | array | Blocks updated as part of the event, when provided by Notion | +| ↳ `updated_properties` | array | Database properties updated as part of the event, when provided by Notion | +| ↳ `parent` | object | parent output from the tool | +| ↳ `id` | string | Parent page, database, workspace, or space ID | +| ↳ `parent_type` | string | Parent type: `page`, `database`, `workspace`, or `space` | + + +--- + +### Notion Database Schema Updated + +Trigger workflow when a database schema is modified in Notion + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `webhookSecret` | string | No | The verification_token sent by Notion during webhook setup. This same token is used to verify X-Notion-Signature HMAC headers on all subsequent webhook deliveries. | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `id` | string | Webhook event ID | +| `type` | string | Event type \(e.g., page.created, database.schema_updated\) | +| `timestamp` | string | ISO 8601 timestamp of the event | +| `api_version` | string | Notion API version included with the event | +| `workspace_id` | string | Workspace ID where the event occurred | +| `workspace_name` | string | Workspace name | +| `subscription_id` | string | Webhook subscription ID | +| `integration_id` | string | Integration ID that received the event | +| `attempt_number` | number | Delivery attempt number \(1-8 per Notion retries\) | +| `accessible_by` | array | Users and bots with access to the entity \(`id` + `type` per object\); `type` is `person` or `bot`. Omitted on some deliveries \(treat as empty\). | +| `authors` | array | Actors who triggered the event \(`id` + `type` per object\); `type` is `person`, `bot`, or `agent` per Notion | +| `data` | object | data output from the tool | +| ↳ `updated_blocks` | array | Blocks updated as part of the event, when provided by Notion | +| ↳ `updated_properties` | array | Database properties updated as part of the event, when provided by Notion | +| ↳ `parent` | object | parent output from the tool | +| ↳ `id` | string | Parent page, database, workspace, or space ID | +| ↳ `parent_type` | string | Parent type: `page`, `database`, `workspace`, or `space` | + + +--- + +### Notion Page Content Updated + +Trigger workflow when page content is changed in Notion + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `webhookSecret` | string | No | The verification_token sent by Notion during webhook setup. This same token is used to verify X-Notion-Signature HMAC headers on all subsequent webhook deliveries. | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `id` | string | Webhook event ID | +| `type` | string | Event type \(e.g., page.created, database.schema_updated\) | +| `timestamp` | string | ISO 8601 timestamp of the event | +| `api_version` | string | Notion API version included with the event | +| `workspace_id` | string | Workspace ID where the event occurred | +| `workspace_name` | string | Workspace name | +| `subscription_id` | string | Webhook subscription ID | +| `integration_id` | string | Integration ID that received the event | +| `attempt_number` | number | Delivery attempt number \(1-8 per Notion retries\) | +| `accessible_by` | array | Users and bots with access to the entity \(`id` + `type` per object\); `type` is `person` or `bot`. Omitted on some deliveries \(treat as empty\). | +| `authors` | array | Actors who triggered the event \(`id` + `type` per object\); `type` is `person`, `bot`, or `agent` per Notion | +| `data` | object | data output from the tool | +| ↳ `updated_blocks` | array | Blocks updated as part of the event, when provided by Notion | +| ↳ `updated_properties` | array | Property IDs updated as part of the event, when provided by Notion | +| ↳ `parent` | object | parent output from the tool | +| ↳ `id` | string | Parent page, database, workspace \(space\), or block ID | +| ↳ `parent_type` | string | Parent type: `page`, `database`, `block`, `workspace`, or `space` | + + +--- + +### Notion Page Created + +Trigger workflow when a new page is created in Notion + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `webhookSecret` | string | No | The verification_token sent by Notion during webhook setup. This same token is used to verify X-Notion-Signature HMAC headers on all subsequent webhook deliveries. | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `id` | string | Webhook event ID | +| `type` | string | Event type \(e.g., page.created, database.schema_updated\) | +| `timestamp` | string | ISO 8601 timestamp of the event | +| `api_version` | string | Notion API version included with the event | +| `workspace_id` | string | Workspace ID where the event occurred | +| `workspace_name` | string | Workspace name | +| `subscription_id` | string | Webhook subscription ID | +| `integration_id` | string | Integration ID that received the event | +| `attempt_number` | number | Delivery attempt number \(1-8 per Notion retries\) | +| `accessible_by` | array | Users and bots with access to the entity \(`id` + `type` per object\); `type` is `person` or `bot`. Omitted on some deliveries \(treat as empty\). | +| `authors` | array | Actors who triggered the event \(`id` + `type` per object\); `type` is `person`, `bot`, or `agent` per Notion | +| `data` | object | data output from the tool | +| ↳ `updated_blocks` | array | Blocks updated as part of the event, when provided by Notion | +| ↳ `updated_properties` | array | Property IDs updated as part of the event, when provided by Notion | +| ↳ `parent` | object | parent output from the tool | +| ↳ `id` | string | Parent page, database, workspace \(space\), or block ID | +| ↳ `parent_type` | string | Parent type: `page`, `database`, `block`, `workspace`, or `space` | + + +--- + +### Notion Page Deleted + +Trigger workflow when a page is deleted in Notion + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `webhookSecret` | string | No | The verification_token sent by Notion during webhook setup. This same token is used to verify X-Notion-Signature HMAC headers on all subsequent webhook deliveries. | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `id` | string | Webhook event ID | +| `type` | string | Event type \(e.g., page.created, database.schema_updated\) | +| `timestamp` | string | ISO 8601 timestamp of the event | +| `api_version` | string | Notion API version included with the event | +| `workspace_id` | string | Workspace ID where the event occurred | +| `workspace_name` | string | Workspace name | +| `subscription_id` | string | Webhook subscription ID | +| `integration_id` | string | Integration ID that received the event | +| `attempt_number` | number | Delivery attempt number \(1-8 per Notion retries\) | +| `accessible_by` | array | Users and bots with access to the entity \(`id` + `type` per object\); `type` is `person` or `bot`. Omitted on some deliveries \(treat as empty\). | +| `authors` | array | Actors who triggered the event \(`id` + `type` per object\); `type` is `person`, `bot`, or `agent` per Notion | +| `data` | object | data output from the tool | +| ↳ `updated_blocks` | array | Blocks updated as part of the event, when provided by Notion | +| ↳ `updated_properties` | array | Property IDs updated as part of the event, when provided by Notion | +| ↳ `parent` | object | parent output from the tool | +| ↳ `id` | string | Parent page, database, workspace \(space\), or block ID | +| ↳ `parent_type` | string | Parent type: `page`, `database`, `block`, `workspace`, or `space` | + + +--- + +### Notion Page Properties Updated + +Trigger workflow when page properties are modified in Notion + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `webhookSecret` | string | No | The verification_token sent by Notion during webhook setup. This same token is used to verify X-Notion-Signature HMAC headers on all subsequent webhook deliveries. | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `id` | string | Webhook event ID | +| `type` | string | Event type \(e.g., page.created, database.schema_updated\) | +| `timestamp` | string | ISO 8601 timestamp of the event | +| `api_version` | string | Notion API version included with the event | +| `workspace_id` | string | Workspace ID where the event occurred | +| `workspace_name` | string | Workspace name | +| `subscription_id` | string | Webhook subscription ID | +| `integration_id` | string | Integration ID that received the event | +| `attempt_number` | number | Delivery attempt number \(1-8 per Notion retries\) | +| `accessible_by` | array | Users and bots with access to the entity \(`id` + `type` per object\); `type` is `person` or `bot`. Omitted on some deliveries \(treat as empty\). | +| `authors` | array | Actors who triggered the event \(`id` + `type` per object\); `type` is `person`, `bot`, or `agent` per Notion | +| `data` | object | data output from the tool | +| ↳ `updated_blocks` | array | Blocks updated as part of the event, when provided by Notion | +| ↳ `updated_properties` | array | Property IDs updated as part of the event, when provided by Notion | +| ↳ `parent` | object | parent output from the tool | +| ↳ `id` | string | Parent page, database, workspace \(space\), or block ID | +| ↳ `parent_type` | string | Parent type: `page`, `database`, `block`, `workspace`, or `space` | + + +--- + +### Notion Webhook (All Events) + +Trigger workflow on any Notion webhook event + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `webhookSecret` | string | No | The verification_token sent by Notion during webhook setup. This same token is used to verify X-Notion-Signature HMAC headers on all subsequent webhook deliveries. | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `id` | string | Webhook event ID | +| `type` | string | Event type \(e.g., page.created, database.schema_updated\) | +| `timestamp` | string | ISO 8601 timestamp of the event | +| `api_version` | string | Notion API version included with the event | +| `workspace_id` | string | Workspace ID where the event occurred | +| `workspace_name` | string | Workspace name | +| `subscription_id` | string | Webhook subscription ID | +| `integration_id` | string | Integration ID that received the event | +| `attempt_number` | number | Delivery attempt number \(1-8 per Notion retries\) | +| `accessible_by` | array | Users and bots with access to the entity \(`id` + `type` per object\); `type` is `person` or `bot`. Omitted on some deliveries \(treat as empty\). | +| `authors` | array | Actors who triggered the event \(`id` + `type` per object\); `type` is `person`, `bot`, or `agent` per Notion | +| `data` | object | data output from the tool | +| ↳ `parent` | object | parent output from the tool | +| ↳ `id` | string | Parent entity ID, when provided by Notion | +| ↳ `parent_type` | string | Parent type \(`page`, `database`, `block`, `workspace`, `space`, …\), when present | +| ↳ `page_id` | string | Page ID related to the event, when present | +| ↳ `updated_blocks` | array | Blocks updated as part of the event, when provided by Notion | +| ↳ `updated_properties` | array | Updated properties included with the event, when provided by Notion | + diff --git a/apps/docs/content/docs/en/triggers/outlook.mdx b/apps/docs/content/docs/en/triggers/outlook.mdx new file mode 100644 index 00000000000..42f1f9a54fe --- /dev/null +++ b/apps/docs/content/docs/en/triggers/outlook.mdx @@ -0,0 +1,54 @@ +--- +title: Outlook +description: Available Outlook triggers for automating workflows +--- + +import { BlockInfoCard } from "@/components/ui/block-info-card" + + + +Outlook provides 1 trigger for automating workflows based on events. + +All triggers below are **polling-based** — they check for new data on a schedule rather than receiving push notifications. + +## Triggers + +### Outlook Email Trigger + +Triggers when new emails are received in Outlook (requires Microsoft credentials) + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `triggerCredentials` | string | Yes | This trigger requires outlook credentials to access your account. | +| `folderIds` | string | No | Choose which Outlook folders to monitor. Leave empty to monitor all emails. | +| `folderFilterBehavior` | string | Yes | Include only emails from selected folders, or exclude emails from selected folders | +| `markAsRead` | boolean | No | Automatically mark emails as read after processing | +| `includeAttachments` | boolean | No | Download and include email attachments in the trigger payload | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `email` | object | email output from the tool | +| ↳ `id` | string | Outlook message ID | +| ↳ `conversationId` | string | Outlook conversation ID | +| ↳ `subject` | string | Email subject line | +| ↳ `from` | string | Sender email address | +| ↳ `to` | string | Recipient email address | +| ↳ `cc` | string | CC recipients | +| ↳ `date` | string | Email date in ISO format | +| ↳ `bodyText` | string | Plain text email body | +| ↳ `bodyHtml` | string | HTML email body | +| ↳ `hasAttachments` | boolean | Whether email has attachments | +| ↳ `attachments` | file[] | Array of email attachments as files \(if includeAttachments is enabled\) | +| ↳ `isRead` | boolean | Whether email is read | +| ↳ `folderId` | string | Outlook folder ID where email is located | +| ↳ `messageId` | string | Message ID for threading | +| ↳ `threadId` | string | Thread ID for conversation threading | +| `timestamp` | string | Event timestamp | + diff --git a/apps/docs/content/docs/en/triggers/resend.mdx b/apps/docs/content/docs/en/triggers/resend.mdx new file mode 100644 index 00000000000..630640b03bc --- /dev/null +++ b/apps/docs/content/docs/en/triggers/resend.mdx @@ -0,0 +1,259 @@ +--- +title: Resend +description: Available Resend triggers for automating workflows +--- + +import { BlockInfoCard } from "@/components/ui/block-info-card" + + + +Resend provides 8 triggers for automating workflows based on events. + +## Triggers + +### Resend Email Bounced + +Trigger workflow when an email bounces + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `apiKey` | string | Yes | Required to create the webhook in Resend. | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `type` | string | Event type \(e.g., email.sent, email.delivered\) | +| `created_at` | string | Webhook event creation timestamp \(ISO 8601\), top-level `created_at` | +| `data_created_at` | string | Email record timestamp from payload `data.created_at` \(ISO 8601\), when present — distinct from top-level `created_at` | +| `email_id` | string | Unique email identifier | +| `broadcast_id` | string | Broadcast ID associated with the email, when sent as part of a broadcast | +| `template_id` | string | Template ID used to send the email, when applicable | +| `tags` | json | Tag key/value metadata attached to the email \(payload `data.tags`\) | +| `from` | string | Sender email address | +| `subject` | string | Email subject line | +| `to` | json | Array of recipient email addresses | +| `data` | json | Raw event `data` from Resend \(shape varies by event type: email, contact, domain, etc.\) | +| `bounceType` | string | Bounce type \(e.g., Permanent\) | +| `bounceSubType` | string | Bounce sub-type \(e.g., Suppressed\) | +| `bounceMessage` | string | Bounce error message | + + +--- + +### Resend Email Clicked + +Trigger workflow when a link in an email is clicked + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `apiKey` | string | Yes | Required to create the webhook in Resend. | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `type` | string | Event type \(e.g., email.sent, email.delivered\) | +| `created_at` | string | Webhook event creation timestamp \(ISO 8601\), top-level `created_at` | +| `data_created_at` | string | Email record timestamp from payload `data.created_at` \(ISO 8601\), when present — distinct from top-level `created_at` | +| `email_id` | string | Unique email identifier | +| `broadcast_id` | string | Broadcast ID associated with the email, when sent as part of a broadcast | +| `template_id` | string | Template ID used to send the email, when applicable | +| `tags` | json | Tag key/value metadata attached to the email \(payload `data.tags`\) | +| `from` | string | Sender email address | +| `subject` | string | Email subject line | +| `to` | json | Array of recipient email addresses | +| `data` | json | Raw event `data` from Resend \(shape varies by event type: email, contact, domain, etc.\) | +| `clickIpAddress` | string | IP address of the click | +| `clickLink` | string | URL that was clicked | +| `clickTimestamp` | string | Click timestamp \(ISO 8601\) | +| `clickUserAgent` | string | Browser user agent string | + + +--- + +### Resend Email Complained + +Trigger workflow when an email is marked as spam + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `apiKey` | string | Yes | Required to create the webhook in Resend. | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `type` | string | Event type \(e.g., email.sent, email.delivered\) | +| `created_at` | string | Webhook event creation timestamp \(ISO 8601\), top-level `created_at` | +| `data_created_at` | string | Email record timestamp from payload `data.created_at` \(ISO 8601\), when present — distinct from top-level `created_at` | +| `email_id` | string | Unique email identifier | +| `broadcast_id` | string | Broadcast ID associated with the email, when sent as part of a broadcast | +| `template_id` | string | Template ID used to send the email, when applicable | +| `tags` | json | Tag key/value metadata attached to the email \(payload `data.tags`\) | +| `from` | string | Sender email address | +| `subject` | string | Email subject line | +| `to` | json | Array of recipient email addresses | +| `data` | json | Raw event `data` from Resend \(shape varies by event type: email, contact, domain, etc.\) | + + +--- + +### Resend Email Delivered + +Trigger workflow when an email is delivered + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `apiKey` | string | Yes | Required to create the webhook in Resend. | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `type` | string | Event type \(e.g., email.sent, email.delivered\) | +| `created_at` | string | Webhook event creation timestamp \(ISO 8601\), top-level `created_at` | +| `data_created_at` | string | Email record timestamp from payload `data.created_at` \(ISO 8601\), when present — distinct from top-level `created_at` | +| `email_id` | string | Unique email identifier | +| `broadcast_id` | string | Broadcast ID associated with the email, when sent as part of a broadcast | +| `template_id` | string | Template ID used to send the email, when applicable | +| `tags` | json | Tag key/value metadata attached to the email \(payload `data.tags`\) | +| `from` | string | Sender email address | +| `subject` | string | Email subject line | +| `to` | json | Array of recipient email addresses | +| `data` | json | Raw event `data` from Resend \(shape varies by event type: email, contact, domain, etc.\) | + + +--- + +### Resend Email Failed + +Trigger workflow when an email fails to send + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `apiKey` | string | Yes | Required to create the webhook in Resend. | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `type` | string | Event type \(e.g., email.sent, email.delivered\) | +| `created_at` | string | Webhook event creation timestamp \(ISO 8601\), top-level `created_at` | +| `data_created_at` | string | Email record timestamp from payload `data.created_at` \(ISO 8601\), when present — distinct from top-level `created_at` | +| `email_id` | string | Unique email identifier | +| `broadcast_id` | string | Broadcast ID associated with the email, when sent as part of a broadcast | +| `template_id` | string | Template ID used to send the email, when applicable | +| `tags` | json | Tag key/value metadata attached to the email \(payload `data.tags`\) | +| `from` | string | Sender email address | +| `subject` | string | Email subject line | +| `to` | json | Array of recipient email addresses | +| `data` | json | Raw event `data` from Resend \(shape varies by event type: email, contact, domain, etc.\) | + + +--- + +### Resend Email Opened + +Trigger workflow when an email is opened + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `apiKey` | string | Yes | Required to create the webhook in Resend. | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `type` | string | Event type \(e.g., email.sent, email.delivered\) | +| `created_at` | string | Webhook event creation timestamp \(ISO 8601\), top-level `created_at` | +| `data_created_at` | string | Email record timestamp from payload `data.created_at` \(ISO 8601\), when present — distinct from top-level `created_at` | +| `email_id` | string | Unique email identifier | +| `broadcast_id` | string | Broadcast ID associated with the email, when sent as part of a broadcast | +| `template_id` | string | Template ID used to send the email, when applicable | +| `tags` | json | Tag key/value metadata attached to the email \(payload `data.tags`\) | +| `from` | string | Sender email address | +| `subject` | string | Email subject line | +| `to` | json | Array of recipient email addresses | +| `data` | json | Raw event `data` from Resend \(shape varies by event type: email, contact, domain, etc.\) | + + +--- + +### Resend Email Sent + +Trigger workflow when an email is sent + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `apiKey` | string | Yes | Required to create the webhook in Resend. | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `type` | string | Event type \(e.g., email.sent, email.delivered\) | +| `created_at` | string | Webhook event creation timestamp \(ISO 8601\), top-level `created_at` | +| `data_created_at` | string | Email record timestamp from payload `data.created_at` \(ISO 8601\), when present — distinct from top-level `created_at` | +| `email_id` | string | Unique email identifier | +| `broadcast_id` | string | Broadcast ID associated with the email, when sent as part of a broadcast | +| `template_id` | string | Template ID used to send the email, when applicable | +| `tags` | json | Tag key/value metadata attached to the email \(payload `data.tags`\) | +| `from` | string | Sender email address | +| `subject` | string | Email subject line | +| `to` | json | Array of recipient email addresses | +| `data` | json | Raw event `data` from Resend \(shape varies by event type: email, contact, domain, etc.\) | + + +--- + +### Resend Webhook (All Events) + +Trigger on Resend webhook events we subscribe to (email lifecycle, contacts, domains—see Resend docs). Flattened email fields may be null for non-email events; use data for the full payload. + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `apiKey` | string | Yes | Required to create the webhook in Resend. | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `type` | string | Event type \(e.g., email.sent, email.delivered\) | +| `created_at` | string | Webhook event creation timestamp \(ISO 8601\), top-level `created_at` | +| `data_created_at` | string | Email record timestamp from payload `data.created_at` \(ISO 8601\), when present — distinct from top-level `created_at` | +| `email_id` | string | Unique email identifier | +| `broadcast_id` | string | Broadcast ID associated with the email, when sent as part of a broadcast | +| `template_id` | string | Template ID used to send the email, when applicable | +| `tags` | json | Tag key/value metadata attached to the email \(payload `data.tags`\) | +| `from` | string | Sender email address | +| `subject` | string | Email subject line | +| `to` | json | Array of recipient email addresses | +| `data` | json | Raw event `data` from Resend \(shape varies by event type: email, contact, domain, etc.\) | +| `bounceType` | string | Bounce type \(e.g., Permanent\) | +| `bounceSubType` | string | Bounce sub-type \(e.g., Suppressed\) | +| `bounceMessage` | string | Bounce error message | +| `clickIpAddress` | string | IP address of the click | +| `clickLink` | string | URL that was clicked | +| `clickTimestamp` | string | Click timestamp \(ISO 8601\) | +| `clickUserAgent` | string | Browser user agent string | + diff --git a/apps/docs/content/docs/en/triggers/salesforce.mdx b/apps/docs/content/docs/en/triggers/salesforce.mdx new file mode 100644 index 00000000000..bd228cf073b --- /dev/null +++ b/apps/docs/content/docs/en/triggers/salesforce.mdx @@ -0,0 +1,208 @@ +--- +title: Salesforce +description: Available Salesforce triggers for automating workflows +--- + +import { BlockInfoCard } from "@/components/ui/block-info-card" + + + +Salesforce provides 6 triggers for automating workflows based on events. + +## Triggers + +### Salesforce Case Status Changed + +Trigger workflow when a case status changes + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `webhookSecret` | string | Yes | Required. Use the same value in your Salesforce HTTP Callout as Bearer token or X-Sim-Webhook-Secret. | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `eventType` | string | The type of event | +| `simEventType` | string | Optional alias from the payload \(`simEventType`\). Empty when only `eventType` is sent. | +| `objectType` | string | Salesforce object type \(Case\) | +| `recordId` | string | Case ID | +| `timestamp` | string | When the event occurred \(ISO 8601\) | +| `record` | object | record output from the tool | +| ↳ `Id` | string | Case ID | +| ↳ `Subject` | string | Case subject | +| ↳ `Status` | string | Current case status | +| ↳ `Priority` | string | Case priority | +| ↳ `CaseNumber` | string | Case number | +| ↳ `AccountId` | string | Related Account ID | +| ↳ `ContactId` | string | Related Contact ID | +| ↳ `OwnerId` | string | Case owner ID | +| `previousStatus` | string | Previous case status | +| `newStatus` | string | New case status | +| `payload` | json | Full webhook payload | + + +--- + +### Salesforce Opportunity Stage Changed + +Trigger workflow when an opportunity stage changes + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `webhookSecret` | string | Yes | Required. Use the same value in your Salesforce HTTP Callout as Bearer token or X-Sim-Webhook-Secret. | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `eventType` | string | The type of event | +| `simEventType` | string | Optional alias from the payload \(`simEventType`\). Empty when only `eventType` is sent. | +| `objectType` | string | Salesforce object type \(Opportunity\) | +| `recordId` | string | Opportunity ID | +| `timestamp` | string | When the event occurred \(ISO 8601\) | +| `record` | object | record output from the tool | +| ↳ `Id` | string | Opportunity ID | +| ↳ `Name` | string | Opportunity name | +| ↳ `StageName` | string | Current stage name | +| ↳ `Amount` | string | Deal amount | +| ↳ `CloseDate` | string | Expected close date | +| ↳ `Probability` | string | Win probability | +| ↳ `AccountId` | string | Related Account ID \(standard Opportunity field\) | +| ↳ `OwnerId` | string | Opportunity owner ID | +| `previousStage` | string | Previous stage name | +| `newStage` | string | New stage name | +| `payload` | json | Full webhook payload | + + +--- + +### Salesforce Record Created + +Trigger workflow when a Salesforce record is created + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `webhookSecret` | string | Yes | Required. Use the same value in your Salesforce HTTP Callout as Bearer token or X-Sim-Webhook-Secret. | +| `objectType` | string | No | When set, the payload must include matching object type metadata \(for example objectType, sobjectType, or attributes.type\) or the event is rejected. | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `eventType` | string | The type of event \(e.g., created, updated, deleted\) | +| `simEventType` | string | Optional alias from the payload \(`simEventType`\). Empty when only `eventType` is sent. | +| `objectType` | string | Salesforce object type \(e.g., Account, Contact, Lead\) | +| `recordId` | string | ID of the affected record | +| `timestamp` | string | When the event occurred \(ISO 8601\) | +| `record` | object | record output from the tool | +| ↳ `Id` | string | Record ID | +| ↳ `Name` | string | Record name | +| ↳ `CreatedDate` | string | Record creation date | +| ↳ `LastModifiedDate` | string | Last modification date | +| ↳ `OwnerId` | string | Record owner ID \(standard field when sent in the Flow body\) | +| ↳ `SystemModstamp` | string | System modstamp from the record \(ISO 8601\) when included in the payload | +| `changedFields` | json | Fields that were changed \(for update events\) | +| `payload` | json | Full webhook payload | + + +--- + +### Salesforce Record Deleted + +Trigger workflow when a Salesforce record is deleted + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `webhookSecret` | string | Yes | Required. Use the same value in your Salesforce HTTP Callout as Bearer token or X-Sim-Webhook-Secret. | +| `objectType` | string | No | When set, the payload must include matching object type metadata \(for example objectType, sobjectType, or attributes.type\) or the event is rejected. | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `eventType` | string | The type of event \(e.g., created, updated, deleted\) | +| `simEventType` | string | Optional alias from the payload \(`simEventType`\). Empty when only `eventType` is sent. | +| `objectType` | string | Salesforce object type \(e.g., Account, Contact, Lead\) | +| `recordId` | string | ID of the affected record | +| `timestamp` | string | When the event occurred \(ISO 8601\) | +| `record` | object | record output from the tool | +| ↳ `Id` | string | Record ID | +| ↳ `Name` | string | Record name | +| ↳ `CreatedDate` | string | Record creation date | +| ↳ `LastModifiedDate` | string | Last modification date | +| ↳ `OwnerId` | string | Record owner ID \(standard field when sent in the Flow body\) | +| ↳ `SystemModstamp` | string | System modstamp from the record \(ISO 8601\) when included in the payload | +| `changedFields` | json | Fields that were changed \(for update events\) | +| `payload` | json | Full webhook payload | + + +--- + +### Salesforce Record Updated + +Trigger workflow when a Salesforce record is updated + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `webhookSecret` | string | Yes | Required. Use the same value in your Salesforce HTTP Callout as Bearer token or X-Sim-Webhook-Secret. | +| `objectType` | string | No | When set, the payload must include matching object type metadata \(for example objectType, sobjectType, or attributes.type\) or the event is rejected. | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `eventType` | string | The type of event \(e.g., created, updated, deleted\) | +| `simEventType` | string | Optional alias from the payload \(`simEventType`\). Empty when only `eventType` is sent. | +| `objectType` | string | Salesforce object type \(e.g., Account, Contact, Lead\) | +| `recordId` | string | ID of the affected record | +| `timestamp` | string | When the event occurred \(ISO 8601\) | +| `record` | object | record output from the tool | +| ↳ `Id` | string | Record ID | +| ↳ `Name` | string | Record name | +| ↳ `CreatedDate` | string | Record creation date | +| ↳ `LastModifiedDate` | string | Last modification date | +| ↳ `OwnerId` | string | Record owner ID \(standard field when sent in the Flow body\) | +| ↳ `SystemModstamp` | string | System modstamp from the record \(ISO 8601\) when included in the payload | +| `changedFields` | json | Fields that were changed \(for update events\) | +| `payload` | json | Full webhook payload | + + +--- + +### Salesforce Webhook (All Events) + +Trigger workflow on any Salesforce webhook event + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `webhookSecret` | string | Yes | Required. Use the same value in your Salesforce HTTP Callout as Bearer token or X-Sim-Webhook-Secret. | +| `objectType` | string | No | When set, the payload must include matching object type metadata \(for example objectType, sobjectType, or attributes.type\) or the event is rejected. | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `eventType` | string | The type of event | +| `simEventType` | string | Optional alias from the payload \(`simEventType`\). Empty when only `eventType` is sent. | +| `objectType` | string | Salesforce object type | +| `recordId` | string | ID of the affected record | +| `timestamp` | string | When the event occurred \(ISO 8601\) | +| `record` | json | Full record data | +| `payload` | json | Full webhook payload | + diff --git a/apps/docs/content/docs/en/triggers/servicenow.mdx b/apps/docs/content/docs/en/triggers/servicenow.mdx new file mode 100644 index 00000000000..9e9060e4b3d --- /dev/null +++ b/apps/docs/content/docs/en/triggers/servicenow.mdx @@ -0,0 +1,210 @@ +--- +title: ServiceNow +description: Available ServiceNow triggers for automating workflows +--- + +import { BlockInfoCard } from "@/components/ui/block-info-card" + + + +ServiceNow provides 5 triggers for automating workflows based on events. + +## Triggers + +### ServiceNow Change Request Created + +Trigger workflow when a new change request is created in ServiceNow + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `webhookSecret` | string | Yes | Required. Use the same value in your ServiceNow Business Rule as Bearer token or X-Sim-Webhook-Secret. | +| `tableName` | string | No | Optionally filter to a specific ServiceNow table | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `sysId` | string | Unique system ID of the record | +| `number` | string | Record number \(e.g., INC0010001, CHG0010001\) | +| `tableName` | string | ServiceNow table name | +| `shortDescription` | string | Short description of the record | +| `description` | string | Full description of the record | +| `state` | string | Current state of the record | +| `priority` | string | Priority level \(1=Critical, 2=High, 3=Moderate, 4=Low, 5=Planning\) | +| `assignedTo` | string | User assigned to this record | +| `assignmentGroup` | string | Group assigned to this record | +| `createdBy` | string | User who created the record | +| `createdOn` | string | When the record was created \(ISO 8601\) | +| `updatedBy` | string | User who last updated the record | +| `updatedOn` | string | When the record was last updated \(ISO 8601\) | +| `type` | string | Change type \(Normal, Standard, Emergency\) | +| `risk` | string | Risk level of the change | +| `impact` | string | Impact level of the change | +| `approval` | string | Approval status | +| `startDate` | string | Planned start date | +| `endDate` | string | Planned end date | +| `category` | string | Change category | +| `record` | json | Full change request record data | + + +--- + +### ServiceNow Change Request Updated + +Trigger workflow when a change request is updated in ServiceNow + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `webhookSecret` | string | Yes | Required. Use the same value in your ServiceNow Business Rule as Bearer token or X-Sim-Webhook-Secret. | +| `tableName` | string | No | Optionally filter to a specific ServiceNow table | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `sysId` | string | Unique system ID of the record | +| `number` | string | Record number \(e.g., INC0010001, CHG0010001\) | +| `tableName` | string | ServiceNow table name | +| `shortDescription` | string | Short description of the record | +| `description` | string | Full description of the record | +| `state` | string | Current state of the record | +| `priority` | string | Priority level \(1=Critical, 2=High, 3=Moderate, 4=Low, 5=Planning\) | +| `assignedTo` | string | User assigned to this record | +| `assignmentGroup` | string | Group assigned to this record | +| `createdBy` | string | User who created the record | +| `createdOn` | string | When the record was created \(ISO 8601\) | +| `updatedBy` | string | User who last updated the record | +| `updatedOn` | string | When the record was last updated \(ISO 8601\) | +| `type` | string | Change type \(Normal, Standard, Emergency\) | +| `risk` | string | Risk level of the change | +| `impact` | string | Impact level of the change | +| `approval` | string | Approval status | +| `startDate` | string | Planned start date | +| `endDate` | string | Planned end date | +| `category` | string | Change category | +| `record` | json | Full change request record data | + + +--- + +### ServiceNow Incident Created + +Trigger workflow when a new incident is created in ServiceNow + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `webhookSecret` | string | Yes | Required. Use the same value in your ServiceNow Business Rule as Bearer token or X-Sim-Webhook-Secret. | +| `tableName` | string | No | Optionally filter to a specific ServiceNow table | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `sysId` | string | Unique system ID of the record | +| `number` | string | Record number \(e.g., INC0010001, CHG0010001\) | +| `tableName` | string | ServiceNow table name | +| `shortDescription` | string | Short description of the record | +| `description` | string | Full description of the record | +| `state` | string | Current state of the record | +| `priority` | string | Priority level \(1=Critical, 2=High, 3=Moderate, 4=Low, 5=Planning\) | +| `assignedTo` | string | User assigned to this record | +| `assignmentGroup` | string | Group assigned to this record | +| `createdBy` | string | User who created the record | +| `createdOn` | string | When the record was created \(ISO 8601\) | +| `updatedBy` | string | User who last updated the record | +| `updatedOn` | string | When the record was last updated \(ISO 8601\) | +| `urgency` | string | Urgency level \(1=High, 2=Medium, 3=Low\) | +| `impact` | string | Impact level \(1=High, 2=Medium, 3=Low\) | +| `category` | string | Incident category | +| `subcategory` | string | Incident subcategory | +| `caller` | string | Caller/requester of the incident | +| `resolvedBy` | string | User who resolved the incident | +| `resolvedAt` | string | When the incident was resolved | +| `closeNotes` | string | Notes added when the incident was closed | +| `record` | json | Full incident record data | + + +--- + +### ServiceNow Incident Updated + +Trigger workflow when an incident is updated in ServiceNow + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `webhookSecret` | string | Yes | Required. Use the same value in your ServiceNow Business Rule as Bearer token or X-Sim-Webhook-Secret. | +| `tableName` | string | No | Optionally filter to a specific ServiceNow table | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `sysId` | string | Unique system ID of the record | +| `number` | string | Record number \(e.g., INC0010001, CHG0010001\) | +| `tableName` | string | ServiceNow table name | +| `shortDescription` | string | Short description of the record | +| `description` | string | Full description of the record | +| `state` | string | Current state of the record | +| `priority` | string | Priority level \(1=Critical, 2=High, 3=Moderate, 4=Low, 5=Planning\) | +| `assignedTo` | string | User assigned to this record | +| `assignmentGroup` | string | Group assigned to this record | +| `createdBy` | string | User who created the record | +| `createdOn` | string | When the record was created \(ISO 8601\) | +| `updatedBy` | string | User who last updated the record | +| `updatedOn` | string | When the record was last updated \(ISO 8601\) | +| `urgency` | string | Urgency level \(1=High, 2=Medium, 3=Low\) | +| `impact` | string | Impact level \(1=High, 2=Medium, 3=Low\) | +| `category` | string | Incident category | +| `subcategory` | string | Incident subcategory | +| `caller` | string | Caller/requester of the incident | +| `resolvedBy` | string | User who resolved the incident | +| `resolvedAt` | string | When the incident was resolved | +| `closeNotes` | string | Notes added when the incident was closed | +| `record` | json | Full incident record data | + + +--- + +### ServiceNow Webhook (All Events) + +Trigger workflow on any ServiceNow webhook event + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `webhookSecret` | string | Yes | Required. Use the same value in your ServiceNow Business Rule as Bearer token or X-Sim-Webhook-Secret. | +| `tableName` | string | No | Optionally filter to a specific ServiceNow table | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `sysId` | string | Unique system ID of the record | +| `number` | string | Record number \(e.g., INC0010001, CHG0010001\) | +| `tableName` | string | ServiceNow table name | +| `shortDescription` | string | Short description of the record | +| `description` | string | Full description of the record | +| `state` | string | Current state of the record | +| `priority` | string | Priority level \(1=Critical, 2=High, 3=Moderate, 4=Low, 5=Planning\) | +| `assignedTo` | string | User assigned to this record | +| `assignmentGroup` | string | Group assigned to this record | +| `createdBy` | string | User who created the record | +| `createdOn` | string | When the record was created \(ISO 8601\) | +| `updatedBy` | string | User who last updated the record | +| `updatedOn` | string | When the record was last updated \(ISO 8601\) | +| `eventType` | string | The type of event that triggered this workflow \(e.g., insert, update, delete\) | +| `category` | string | Record category | +| `record` | json | Full record data from the webhook payload | + diff --git a/apps/docs/content/docs/en/triggers/slack.mdx b/apps/docs/content/docs/en/triggers/slack.mdx new file mode 100644 index 00000000000..cdffda257ac --- /dev/null +++ b/apps/docs/content/docs/en/triggers/slack.mdx @@ -0,0 +1,51 @@ +--- +title: Slack +description: Available Slack triggers for automating workflows +--- + +import { BlockInfoCard } from "@/components/ui/block-info-card" + + + +Slack provides 1 trigger for automating workflows based on events. + +## Triggers + +### Slack Webhook + +Trigger workflow from Slack events like mentions, messages, and reactions + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `signingSecret` | string | Yes | The signing secret from your Slack app to validate request authenticity. | +| `botToken` | string | No | The bot token from your Slack app. Required for downloading files attached to messages. | +| `includeFiles` | boolean | No | Download and include file attachments from messages. Requires a bot token with files:read scope. | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `event` | object | Slack event data | +| ↳ `event_type` | string | Type of Slack event \(e.g., app_mention, message\) | +| ↳ `subtype` | string | Message subtype \(e.g., channel_join, channel_leave, bot_message, file_share\). Null for regular user messages | +| ↳ `channel` | string | Slack channel ID where the event occurred | +| ↳ `channel_name` | string | Human-readable channel name | +| ↳ `channel_type` | string | Type of channel \(e.g., channel, group, im, mpim\). Useful for distinguishing DMs from public channels | +| ↳ `user` | string | User ID who triggered the event | +| ↳ `user_name` | string | Username who triggered the event | +| ↳ `bot_id` | string | Bot ID if the message was sent by a bot. Null for human users | +| ↳ `text` | string | Message text content | +| ↳ `timestamp` | string | Message timestamp from the triggering event | +| ↳ `thread_ts` | string | Parent thread timestamp \(if message is in a thread\) | +| ↳ `team_id` | string | Slack workspace/team ID | +| ↳ `event_id` | string | Unique event identifier | +| ↳ `reaction` | string | Emoji reaction name \(e.g., thumbsup\). Present for reaction_added/reaction_removed events | +| ↳ `item_user` | string | User ID of the original message author. Present for reaction_added/reaction_removed events | +| ↳ `hasFiles` | boolean | Whether the message has file attachments | +| ↳ `files` | file[] | File attachments downloaded from the message \(if includeFiles is enabled and bot token is provided\) | + diff --git a/apps/docs/content/docs/en/triggers/stripe.mdx b/apps/docs/content/docs/en/triggers/stripe.mdx new file mode 100644 index 00000000000..4d3763b81fc --- /dev/null +++ b/apps/docs/content/docs/en/triggers/stripe.mdx @@ -0,0 +1,41 @@ +--- +title: Stripe +description: Available Stripe triggers for automating workflows +--- + +import { BlockInfoCard } from "@/components/ui/block-info-card" + + + +Stripe provides 1 trigger for automating workflows based on events. + +## Triggers + +### Stripe Webhook + +Triggers when Stripe events occur (payments, subscriptions, invoices, etc.) + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `eventTypes` | string | No | Select specific Stripe events to filter. Leave empty to receive all events from Stripe. | +| `webhookSecret` | string | No | Your webhook signing secret from Stripe Dashboard. Used to verify webhook authenticity. | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `id` | string | Unique identifier for the event | +| `type` | string | Event type \(e.g., payment_intent.succeeded, customer.created, invoice.paid\) | +| `object` | string | Always "event" | +| `api_version` | string | Stripe API version used to render the event | +| `created` | number | Unix timestamp when the event was created | +| `data` | json | Event data containing the affected Stripe object. Structure varies by event type - access via data.object for the resource \(PaymentIntent, Customer, Invoice, etc.\) | +| `livemode` | boolean | Whether this event occurred in live mode \(true\) or test mode \(false\) | +| `pending_webhooks` | number | Number of webhooks yet to be delivered for this event | +| `request` | json | Information about the API request that triggered this event \(id, idempotency_key\) | + diff --git a/apps/docs/content/docs/en/triggers/telegram.mdx b/apps/docs/content/docs/en/triggers/telegram.mdx new file mode 100644 index 00000000000..5447bf20792 --- /dev/null +++ b/apps/docs/content/docs/en/triggers/telegram.mdx @@ -0,0 +1,65 @@ +--- +title: Telegram +description: Available Telegram triggers for automating workflows +--- + +import { BlockInfoCard } from "@/components/ui/block-info-card" + + + +Telegram provides 1 trigger for automating workflows based on events. + +## Triggers + +### Telegram Webhook + +Trigger workflow from Telegram bot messages and events + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `botToken` | string | Yes | Your Telegram Bot Token from BotFather | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `message` | object | Telegram message data | +| ↳ `id` | number | Telegram message ID | +| ↳ `text` | string | Message text content \(if present\) | +| ↳ `date` | number | Date the message was sent \(Unix timestamp\) | +| ↳ `messageType` | string | Detected content type: text, photo, document, audio, video, voice, sticker, location, contact, poll | +| ↳ `raw` | object | Raw Telegram message object | +| ↳ `message_id` | number | Original Telegram message_id | +| ↳ `date` | number | Original Telegram message date \(Unix timestamp\) | +| ↳ `text` | string | Original Telegram text \(if present\) | +| ↳ `caption` | string | Original Telegram caption \(if present\) | +| ↳ `chat` | object | Chat information | +| ↳ `id` | number | Chat identifier | +| ↳ `username` | string | Chat username \(if available\) | +| ↳ `first_name` | string | First name \(for private chats\) | +| ↳ `last_name` | string | Last name \(for private chats\) | +| ↳ `title` | string | Chat title \(for groups/channels\) | +| ↳ `from` | object | Sender information | +| ↳ `id` | number | Sender user ID | +| ↳ `is_bot` | boolean | Whether the sender is a bot | +| ↳ `first_name` | string | Sender first name | +| ↳ `last_name` | string | Sender last name | +| ↳ `username` | string | Sender username | +| ↳ `language_code` | string | Sender language code \(if available\) | +| ↳ `reply_to_message` | object | Original message being replied to | +| ↳ `entities` | array | Message entities \(mentions, hashtags, URLs, etc.\) | +| `sender` | object | Sender information | +| ↳ `id` | number | Sender user ID | +| ↳ `username` | string | Sender username \(if available\) | +| ↳ `firstName` | string | Sender first name | +| ↳ `lastName` | string | Sender last name | +| ↳ `languageCode` | string | Sender language code \(if available\) | +| ↳ `isBot` | boolean | Whether the sender is a bot | +| `updateId` | number | Update ID for this webhook delivery | +| `updateType` | string | Type of update: message, edited_message, channel_post, edited_channel_post, unknown | + diff --git a/apps/docs/content/docs/en/triggers/twilio_voice.mdx b/apps/docs/content/docs/en/triggers/twilio_voice.mdx new file mode 100644 index 00000000000..9522006aaa1 --- /dev/null +++ b/apps/docs/content/docs/en/triggers/twilio_voice.mdx @@ -0,0 +1,66 @@ +--- +title: Twilio Voice +description: Available Twilio Voice triggers for automating workflows +--- + +import { BlockInfoCard } from "@/components/ui/block-info-card" + + + +Twilio Voice provides 1 trigger for automating workflows based on events. + +## Triggers + +### Twilio Voice Webhook + +Trigger workflow when phone calls are received via Twilio Voice + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `accountSid` | string | Yes | Your Twilio Account SID from the Twilio Console | +| `authToken` | string | Yes | Your Twilio Auth Token for webhook signature verification | +| `twimlResponse` | string | No | TwiML instructions to return immediately to Twilio. Use square brackets instead of angle brackets \(e.g., \[Response\] instead of <Response>\). This controls what happens when the call comes in \(e.g., play a message, record, gather input\). Your workflow will execute in the background. | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `callSid` | string | Unique identifier for this call | +| `accountSid` | string | Twilio Account SID | +| `from` | string | Caller's phone number \(E.164 format\) | +| `to` | string | Recipient phone number \(your Twilio number\) | +| `callStatus` | string | Status of the call \(queued, ringing, in-progress, completed, etc.\) | +| `direction` | string | Call direction: inbound or outbound | +| `apiVersion` | string | Twilio API version | +| `callerName` | string | Caller ID name if available | +| `forwardedFrom` | string | Phone number that forwarded this call | +| `digits` | string | DTMF digits entered by caller \(from <Gather>\) | +| `speechResult` | string | Speech recognition result \(if using <Gather> with speech\) | +| `recordingUrl` | string | URL of call recording if available | +| `recordingSid` | string | Recording SID if available | +| `called` | string | Phone number that was called \(same as "to"\) | +| `caller` | string | Phone number of the caller \(same as "from"\) | +| `toCity` | string | City of the called number | +| `toState` | string | State/province of the called number | +| `toZip` | string | Zip/postal code of the called number | +| `toCountry` | string | Country of the called number | +| `fromCity` | string | City of the caller | +| `fromState` | string | State/province of the caller | +| `fromZip` | string | Zip/postal code of the caller | +| `fromCountry` | string | Country of the caller | +| `calledCity` | string | City of the called number \(same as toCity\) | +| `calledState` | string | State of the called number \(same as toState\) | +| `calledZip` | string | Zip code of the called number \(same as toZip\) | +| `calledCountry` | string | Country of the called number \(same as toCountry\) | +| `callerCity` | string | City of the caller \(same as fromCity\) | +| `callerState` | string | State of the caller \(same as fromState\) | +| `callerZip` | string | Zip code of the caller \(same as fromZip\) | +| `callerCountry` | string | Country of the caller \(same as fromCountry\) | +| `callToken` | string | Twilio call token for authentication | +| `raw` | string | Complete raw webhook payload from Twilio as JSON string | + diff --git a/apps/docs/content/docs/en/triggers/typeform.mdx b/apps/docs/content/docs/en/triggers/typeform.mdx new file mode 100644 index 00000000000..e6fdae33b00 --- /dev/null +++ b/apps/docs/content/docs/en/triggers/typeform.mdx @@ -0,0 +1,78 @@ +--- +title: Typeform +description: Available Typeform triggers for automating workflows +--- + +import { BlockInfoCard } from "@/components/ui/block-info-card" + + + +Typeform provides 1 trigger for automating workflows based on events. + +## Triggers + +### Typeform Webhook + +Trigger workflow when a Typeform submission is received + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `formId` | string | Yes | The unique identifier for your Typeform. Find it in the form URL or form settings. | +| `apiKey` | string | Yes | Required to automatically register the webhook with Typeform. Get yours at https://admin.typeform.com/account#/section/tokens | +| `secret` | string | No | A secret string used to verify webhook authenticity. Highly recommended for security. Generate a secure random string \(min 20 characters recommended\). | +| `includeDefinition` | boolean | No | Include the complete form structure \(questions, fields, endings\) in your workflow variables. Note: Typeform always sends this data, but enabling this makes it accessible in your workflow. | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `event_id` | string | Unique identifier for this webhook event | +| `event_type` | string | Type of event \(always "form_response" for form submissions\) | +| `form_id` | string | Typeform form identifier | +| `token` | string | Unique response/submission identifier | +| `submitted_at` | string | ISO timestamp when the form was submitted | +| `landed_at` | string | ISO timestamp when the user first landed on the form | +| `calculated` | object | Calculated values from the form | +| ↳ `score` | number | Calculated score value | +| `variables` | array | Array of dynamic variables | +| ↳ `key` | string | Variable key | +| ↳ `number` | number | Numeric value \(if type is number\) | +| ↳ `text` | string | Text value \(if type is text\) | +| `hidden` | object | Hidden fields passed to the form \(e.g., UTM parameters\) | +| `answers` | array | Array of respondent answers \(only includes answered questions\) | +| ↳ `text` | string | Text answer value | +| ↳ `email` | string | Email answer value | +| ↳ `number` | number | Number answer value | +| ↳ `boolean` | boolean | Boolean answer value | +| ↳ `date` | string | Date answer value \(ISO format\) | +| ↳ `url` | string | URL answer value | +| ↳ `file_url` | string | File URL answer value | +| ↳ `choice` | object | Single choice answer | +| ↳ `id` | string | Choice ID | +| ↳ `ref` | string | Choice reference | +| ↳ `label` | string | Choice label | +| ↳ `choices` | object | Multiple choices answer | +| ↳ `ids` | array | Array of choice IDs | +| ↳ `refs` | array | Array of choice refs | +| ↳ `labels` | array | Array of choice labels | +| ↳ `field` | object | Field reference | +| ↳ `id` | string | Field ID | +| ↳ `ref` | string | Field reference | +| `definition` | object | Form definition \(only included when "Include Form Definition" is enabled\) | +| ↳ `id` | string | Form ID | +| ↳ `title` | string | Form title | +| ↳ `fields` | array | Array of form fields | +| ↳ `id` | string | Field ID | +| ↳ `ref` | string | Field reference | +| ↳ `title` | string | Field title | +| ↳ `endings` | array | Array of form endings | +| `ending` | object | Ending screen information | +| ↳ `id` | string | Ending screen ID | +| ↳ `ref` | string | Ending screen reference | +| `raw` | object | Complete original webhook payload from Typeform | + diff --git a/apps/docs/content/docs/en/triggers/vercel.mdx b/apps/docs/content/docs/en/triggers/vercel.mdx new file mode 100644 index 00000000000..bf96dcadbeb --- /dev/null +++ b/apps/docs/content/docs/en/triggers/vercel.mdx @@ -0,0 +1,356 @@ +--- +title: Vercel +description: Available Vercel triggers for automating workflows +--- + +import { BlockInfoCard } from "@/components/ui/block-info-card" + + + +Vercel provides 8 triggers for automating workflows based on events. + +## Triggers + +### Vercel Deployment Canceled + +Trigger workflow when a deployment is canceled + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `apiKey` | string | Yes | Required to create the webhook in Vercel. | +| `teamId` | string | No | Scope webhook to a specific team | +| `filterProjectIds` | string | No | Limit webhook to specific projects | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `type` | string | Event type \(e.g., deployment.created\) | +| `id` | string | Unique webhook delivery ID \(string\) | +| `createdAt` | number | Event timestamp in milliseconds | +| `region` | string | Region where the event occurred | +| `payload` | json | Raw event payload from Vercel | +| `links` | object | links output from the tool | +| ↳ `deployment` | string | Vercel Dashboard URL for the deployment | +| ↳ `project` | string | Vercel Dashboard URL for the project | +| `regions` | json | Regions associated with the deployment \(array\), when provided by Vercel | +| `deployment` | object | deployment output from the tool | +| ↳ `id` | string | Deployment ID | +| ↳ `url` | string | Deployment URL | +| ↳ `name` | string | Deployment name | +| ↳ `meta` | json | Deployment metadata map \(e.g. Git metadata\), per Vercel Webhooks API | +| `project` | object | project output from the tool | +| ↳ `id` | string | Project ID | +| ↳ `name` | string | Project name | +| `team` | object | team output from the tool | +| ↳ `id` | string | Team ID | +| `user` | object | user output from the tool | +| ↳ `id` | string | User ID | +| `target` | string | Deployment target \(production, staging, or preview\) | +| `plan` | string | Account plan type | +| `domain` | object | domain output from the tool | +| ↳ `name` | string | Domain name | +| ↳ `delegated` | boolean | Whether the domain was delegated/shared when present on the payload | + + +--- + +### Vercel Deployment Created + +Trigger workflow when a new deployment is created + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `apiKey` | string | Yes | Required to create the webhook in Vercel. | +| `teamId` | string | No | Scope webhook to a specific team | +| `filterProjectIds` | string | No | Limit webhook to specific projects | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `type` | string | Event type \(e.g., deployment.created\) | +| `id` | string | Unique webhook delivery ID \(string\) | +| `createdAt` | number | Event timestamp in milliseconds | +| `region` | string | Region where the event occurred | +| `payload` | json | Raw event payload from Vercel | +| `links` | object | links output from the tool | +| ↳ `deployment` | string | Vercel Dashboard URL for the deployment | +| ↳ `project` | string | Vercel Dashboard URL for the project | +| `regions` | json | Regions associated with the deployment \(array\), when provided by Vercel | +| `deployment` | object | deployment output from the tool | +| ↳ `id` | string | Deployment ID | +| ↳ `url` | string | Deployment URL | +| ↳ `name` | string | Deployment name | +| ↳ `meta` | json | Deployment metadata map \(e.g. Git metadata\), per Vercel Webhooks API | +| `project` | object | project output from the tool | +| ↳ `id` | string | Project ID | +| ↳ `name` | string | Project name | +| `team` | object | team output from the tool | +| ↳ `id` | string | Team ID | +| `user` | object | user output from the tool | +| ↳ `id` | string | User ID | +| `target` | string | Deployment target \(production, staging, or preview\) | +| `plan` | string | Account plan type | +| `domain` | object | domain output from the tool | +| ↳ `name` | string | Domain name | +| ↳ `delegated` | boolean | Whether the domain was delegated/shared when present on the payload | + + +--- + +### Vercel Deployment Error + +Trigger workflow when a deployment fails + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `apiKey` | string | Yes | Required to create the webhook in Vercel. | +| `teamId` | string | No | Scope webhook to a specific team | +| `filterProjectIds` | string | No | Limit webhook to specific projects | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `type` | string | Event type \(e.g., deployment.created\) | +| `id` | string | Unique webhook delivery ID \(string\) | +| `createdAt` | number | Event timestamp in milliseconds | +| `region` | string | Region where the event occurred | +| `payload` | json | Raw event payload from Vercel | +| `links` | object | links output from the tool | +| ↳ `deployment` | string | Vercel Dashboard URL for the deployment | +| ↳ `project` | string | Vercel Dashboard URL for the project | +| `regions` | json | Regions associated with the deployment \(array\), when provided by Vercel | +| `deployment` | object | deployment output from the tool | +| ↳ `id` | string | Deployment ID | +| ↳ `url` | string | Deployment URL | +| ↳ `name` | string | Deployment name | +| ↳ `meta` | json | Deployment metadata map \(e.g. Git metadata\), per Vercel Webhooks API | +| `project` | object | project output from the tool | +| ↳ `id` | string | Project ID | +| ↳ `name` | string | Project name | +| `team` | object | team output from the tool | +| ↳ `id` | string | Team ID | +| `user` | object | user output from the tool | +| ↳ `id` | string | User ID | +| `target` | string | Deployment target \(production, staging, or preview\) | +| `plan` | string | Account plan type | +| `domain` | object | domain output from the tool | +| ↳ `name` | string | Domain name | +| ↳ `delegated` | boolean | Whether the domain was delegated/shared when present on the payload | + + +--- + +### Vercel Deployment Ready + +Trigger workflow when a deployment is ready to serve traffic + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `apiKey` | string | Yes | Required to create the webhook in Vercel. | +| `teamId` | string | No | Scope webhook to a specific team | +| `filterProjectIds` | string | No | Limit webhook to specific projects | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `type` | string | Event type \(e.g., deployment.created\) | +| `id` | string | Unique webhook delivery ID \(string\) | +| `createdAt` | number | Event timestamp in milliseconds | +| `region` | string | Region where the event occurred | +| `payload` | json | Raw event payload from Vercel | +| `links` | object | links output from the tool | +| ↳ `deployment` | string | Vercel Dashboard URL for the deployment | +| ↳ `project` | string | Vercel Dashboard URL for the project | +| `regions` | json | Regions associated with the deployment \(array\), when provided by Vercel | +| `deployment` | object | deployment output from the tool | +| ↳ `id` | string | Deployment ID | +| ↳ `url` | string | Deployment URL | +| ↳ `name` | string | Deployment name | +| ↳ `meta` | json | Deployment metadata map \(e.g. Git metadata\), per Vercel Webhooks API | +| `project` | object | project output from the tool | +| ↳ `id` | string | Project ID | +| ↳ `name` | string | Project name | +| `team` | object | team output from the tool | +| ↳ `id` | string | Team ID | +| `user` | object | user output from the tool | +| ↳ `id` | string | User ID | +| `target` | string | Deployment target \(production, staging, or preview\) | +| `plan` | string | Account plan type | +| `domain` | object | domain output from the tool | +| ↳ `name` | string | Domain name | +| ↳ `delegated` | boolean | Whether the domain was delegated/shared when present on the payload | + + +--- + +### Vercel Domain Created + +Trigger workflow when a domain is created + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `apiKey` | string | Yes | Required to create the webhook in Vercel. | +| `teamId` | string | No | Scope webhook to a specific team | +| `filterProjectIds` | string | No | Limit webhook to specific projects | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `type` | string | Event type \(e.g., deployment.created\) | +| `id` | string | Unique webhook delivery ID \(string\) | +| `createdAt` | number | Event timestamp in milliseconds | +| `region` | string | Region where the event occurred | +| `payload` | json | Raw event payload from Vercel | +| `links` | object | links output from the tool | +| ↳ `deployment` | string | Vercel Dashboard URL for the deployment | +| ↳ `project` | string | Vercel Dashboard URL for the project | +| `regions` | json | Regions associated with the deployment \(array\), when provided by Vercel | +| `deployment` | object | deployment output from the tool | +| ↳ `id` | string | Deployment ID | +| ↳ `url` | string | Deployment URL | +| ↳ `name` | string | Deployment name | +| ↳ `meta` | json | Deployment metadata map \(e.g. Git metadata\), per Vercel Webhooks API | +| `domain` | object | domain output from the tool | +| ↳ `name` | string | Domain name | +| ↳ `delegated` | boolean | Whether the domain was delegated/shared \(domain.created\), per Vercel Webhooks API | +| `project` | object | project output from the tool | +| ↳ `id` | string | Project ID | +| `team` | object | team output from the tool | +| ↳ `id` | string | Team ID | +| `user` | object | user output from the tool | +| ↳ `id` | string | User ID | + + +--- + +### Vercel Project Created + +Trigger workflow when a new project is created + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `apiKey` | string | Yes | Required to create the webhook in Vercel. | +| `teamId` | string | No | Scope webhook to a specific team | +| `filterProjectIds` | string | No | Limit webhook to specific projects | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `type` | string | Event type \(e.g., deployment.created\) | +| `id` | string | Unique webhook delivery ID \(string\) | +| `createdAt` | number | Event timestamp in milliseconds | +| `region` | string | Region where the event occurred | +| `payload` | json | Raw event payload from Vercel | +| `links` | object | links output from the tool | +| ↳ `deployment` | string | Vercel Dashboard URL for the deployment | +| ↳ `project` | string | Vercel Dashboard URL for the project | +| `regions` | json | Regions associated with the deployment \(array\), when provided by Vercel | +| `deployment` | object | deployment output from the tool | +| ↳ `id` | string | Deployment ID | +| ↳ `url` | string | Deployment URL | +| ↳ `name` | string | Deployment name | +| ↳ `meta` | json | Deployment metadata map \(e.g. Git metadata\), per Vercel Webhooks API | +| `project` | object | project output from the tool | +| ↳ `id` | string | Project ID | +| ↳ `name` | string | Project name | +| `team` | object | team output from the tool | +| ↳ `id` | string | Team ID | +| `user` | object | user output from the tool | +| ↳ `id` | string | User ID | + + +--- + +### Vercel Project Removed + +Trigger workflow when a project is removed + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `apiKey` | string | Yes | Required to create the webhook in Vercel. | +| `teamId` | string | No | Scope webhook to a specific team | +| `filterProjectIds` | string | No | Limit webhook to specific projects | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `type` | string | Event type \(e.g., deployment.created\) | +| `id` | string | Unique webhook delivery ID \(string\) | +| `createdAt` | number | Event timestamp in milliseconds | +| `region` | string | Region where the event occurred | +| `payload` | json | Raw event payload from Vercel | +| `links` | object | links output from the tool | +| ↳ `deployment` | string | Vercel Dashboard URL for the deployment | +| ↳ `project` | string | Vercel Dashboard URL for the project | +| `regions` | json | Regions associated with the deployment \(array\), when provided by Vercel | +| `deployment` | object | deployment output from the tool | +| ↳ `id` | string | Deployment ID | +| ↳ `url` | string | Deployment URL | +| ↳ `name` | string | Deployment name | +| ↳ `meta` | json | Deployment metadata map \(e.g. Git metadata\), per Vercel Webhooks API | +| `project` | object | project output from the tool | +| ↳ `id` | string | Project ID | +| ↳ `name` | string | Project name | +| `team` | object | team output from the tool | +| ↳ `id` | string | Team ID | +| `user` | object | user output from the tool | +| ↳ `id` | string | User ID | + + +--- + +### Vercel Webhook (Common Events) + +Trigger on a curated set of common Vercel events (deployments, projects, domains, edge config). Pick a specific trigger to listen to one event type only. + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `apiKey` | string | Yes | Required to create the webhook in Vercel. | +| `teamId` | string | No | Scope webhook to a specific team | +| `filterProjectIds` | string | No | Limit webhook to specific projects | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `type` | string | Event type \(e.g., deployment.created\) | +| `id` | string | Unique webhook delivery ID \(string\) | +| `createdAt` | number | Event timestamp in milliseconds | +| `region` | string | Region where the event occurred | +| `links` | object | links output from the tool | +| ↳ `deployment` | string | Vercel Dashboard URL for the deployment | +| ↳ `project` | string | Vercel Dashboard URL for the project | +| `regions` | json | Regions associated with the deployment \(array\), when provided by Vercel | +| `deployment` | object | deployment output from the tool | +| ↳ `id` | string | Deployment ID | +| ↳ `url` | string | Deployment URL | +| ↳ `name` | string | Deployment name | +| ↳ `meta` | json | Deployment metadata map \(e.g. Git metadata\), per Vercel Webhooks API | +| `payload` | json | Full event payload | + diff --git a/apps/docs/content/docs/en/triggers/webflow.mdx b/apps/docs/content/docs/en/triggers/webflow.mdx new file mode 100644 index 00000000000..c72b6f49577 --- /dev/null +++ b/apps/docs/content/docs/en/triggers/webflow.mdx @@ -0,0 +1,131 @@ +--- +title: Webflow +description: Available Webflow triggers for automating workflows +--- + +import { BlockInfoCard } from "@/components/ui/block-info-card" + + + +Webflow provides 4 triggers for automating workflows based on events. + +## Triggers + +### Collection Item Changed + +Trigger workflow when an item is updated in a Webflow CMS collection (requires Webflow credentials) + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `triggerCredentials` | string | Yes | This trigger requires webflow credentials to access your account. | +| `triggerSiteId` | string | Yes | The Webflow site to monitor | +| `triggerCollectionId` | string | No | Optionally filter to monitor only a specific collection | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `siteId` | string | The site ID where the event occurred | +| `collectionId` | string | The collection ID where the item was changed | +| `payload` | object | payload output from the tool | +| ↳ `id` | string | The ID of the changed item | +| ↳ `cmsLocaleId` | string | CMS locale ID | +| ↳ `lastPublished` | string | Last published timestamp | +| ↳ `lastUpdated` | string | Last updated timestamp | +| ↳ `createdOn` | string | Timestamp when the item was created | +| ↳ `isArchived` | boolean | Whether the item is archived | +| ↳ `isDraft` | boolean | Whether the item is a draft | +| ↳ `fieldData` | object | The updated field data of the item | + + +--- + +### Collection Item Created + +Trigger workflow when a new item is created in a Webflow CMS collection (requires Webflow credentials) + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `triggerCredentials` | string | Yes | This trigger requires webflow credentials to access your account. | +| `triggerSiteId` | string | Yes | The Webflow site to monitor | +| `triggerCollectionId` | string | No | Optionally filter to monitor only a specific collection | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `siteId` | string | The site ID where the event occurred | +| `collectionId` | string | The collection ID where the item was created | +| `payload` | object | payload output from the tool | +| ↳ `id` | string | The ID of the created item | +| ↳ `cmsLocaleId` | string | CMS locale ID | +| ↳ `lastPublished` | string | Last published timestamp | +| ↳ `lastUpdated` | string | Last updated timestamp | +| ↳ `createdOn` | string | Timestamp when the item was created | +| ↳ `isArchived` | boolean | Whether the item is archived | +| ↳ `isDraft` | boolean | Whether the item is a draft | +| ↳ `fieldData` | object | The field data of the item | + + +--- + +### Collection Item Deleted + +Trigger workflow when an item is deleted from a Webflow CMS collection (requires Webflow credentials) + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `triggerCredentials` | string | Yes | This trigger requires webflow credentials to access your account. | +| `triggerSiteId` | string | Yes | The Webflow site to monitor | +| `triggerCollectionId` | string | No | Optionally filter to monitor only a specific collection | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `siteId` | string | The site ID where the event occurred | +| `collectionId` | string | The collection ID where the item was deleted | +| `payload` | object | payload output from the tool | +| ↳ `id` | string | The ID of the deleted item | +| ↳ `deletedOn` | string | Timestamp when the item was deleted | + + +--- + +### Form Submission + +Trigger workflow when a form is submitted on a Webflow site (requires Webflow credentials) + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `triggerCredentials` | string | Yes | This trigger requires webflow credentials to access your account. | +| `triggerSiteId` | string | Yes | The Webflow site to monitor | +| `formName` | string | No | The name of the specific form to monitor \(optional - leave empty for all forms\) | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `siteId` | string | The site ID where the form was submitted | +| `formId` | string | The form ID | +| `name` | string | The name of the form | +| `id` | string | The unique ID of the form submission | +| `submittedAt` | string | Timestamp when the form was submitted | +| `data` | object | The form submission field data \(keys are field names, values are submitted data\) | +| `schema` | array | Form schema describing each field | +| ↳ `fieldName` | string | Name of the form field | +| ↳ `fieldType` | string | Type of input \(e.g., FormTextInput, FormEmail\) | +| ↳ `fieldElementId` | string | Unique identifier for the form element \(UUID\) | +| `formElementId` | string | The form element ID | + diff --git a/apps/docs/content/docs/en/triggers/whatsapp.mdx b/apps/docs/content/docs/en/triggers/whatsapp.mdx new file mode 100644 index 00000000000..e6a1122a244 --- /dev/null +++ b/apps/docs/content/docs/en/triggers/whatsapp.mdx @@ -0,0 +1,49 @@ +--- +title: WhatsApp +description: Available WhatsApp triggers for automating workflows +--- + +import { BlockInfoCard } from "@/components/ui/block-info-card" + + + +WhatsApp provides 1 trigger for automating workflows based on events. + +## Triggers + +### WhatsApp Webhook + +Trigger workflow from WhatsApp incoming messages and message status webhooks + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `verificationToken` | string | Yes | Enter any secure token here. You | +| `appSecret` | string | Yes | Required for WhatsApp POST signature verification. Sim uses it to validate the X-Hub-Signature-256 header on every webhook delivery. | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `eventType` | string | Webhook classification such as incoming_message, message_status, or mixed | +| `messageId` | string | First WhatsApp message identifier \(wamid\) found in the webhook batch | +| `from` | string | Sender phone number from the first incoming message in the batch | +| `recipientId` | string | Recipient phone number from the first status update in the batch | +| `phoneNumberId` | string | Business phone number ID from the first message or status item in the batch | +| `displayPhoneNumber` | string | Business display phone number from the first message or status item in the batch | +| `text` | string | Text body from the first incoming text message in the batch | +| `timestamp` | string | Timestamp from the first message or status item in the batch | +| `messageType` | string | Type of the first incoming message in the batch \(text, image, system, etc.\) | +| `status` | string | First outgoing message status in the batch, such as sent, delivered, read, or failed | +| `contact` | json | First sender contact in the batch \(wa_id, profile.name\) | +| `webhookContacts` | json | All sender contact profiles from the webhook batch | +| `messages` | json | All incoming message objects from the webhook batch, flattened across entries/changes | +| `statuses` | json | All message status objects from the webhook batch, flattened across entries/changes | +| `conversation` | json | Conversation metadata from the first status update in the batch \(id, expiration_timestamp, origin.type\) | +| `pricing` | json | Pricing metadata from the first status update in the batch \(billable, pricing_model, category\) | +| `raw` | json | Complete structured webhook payload from WhatsApp | + diff --git a/apps/docs/content/docs/en/triggers/zoom.mdx b/apps/docs/content/docs/en/triggers/zoom.mdx new file mode 100644 index 00000000000..64175a96c34 --- /dev/null +++ b/apps/docs/content/docs/en/triggers/zoom.mdx @@ -0,0 +1,149 @@ +--- +title: Zoom +description: Available Zoom triggers for automating workflows +--- + +import { BlockInfoCard } from "@/components/ui/block-info-card" + + + +Zoom provides 6 triggers for automating workflows based on events. + +## Triggers + +### Zoom Meeting Ended + +Trigger workflow when a Zoom meeting ends + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `secretToken` | string | Yes | Found in your Zoom app | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `event` | string | The webhook event type \(e.g., meeting.started\) | +| `event_ts` | number | Unix timestamp in milliseconds when the event occurred | +| `payload` | object | payload output from the tool | +| ↳ `account_id` | string | Zoom account ID | +| ↳ `object` | object | Meeting details \(shape aligns with Zoom Meetings webhook object fields\) | + + +--- + +### Zoom Meeting Started + +Trigger workflow when a Zoom meeting starts + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `secretToken` | string | Yes | Found in your Zoom app | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `event` | string | The webhook event type \(e.g., meeting.started\) | +| `event_ts` | number | Unix timestamp in milliseconds when the event occurred | +| `payload` | object | payload output from the tool | +| ↳ `account_id` | string | Zoom account ID | +| ↳ `object` | object | Meeting details \(shape aligns with Zoom Meetings webhook object fields\) | + + +--- + +### Zoom Participant Joined + +Trigger workflow when a participant joins a Zoom meeting + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `secretToken` | string | Yes | Found in your Zoom app | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `event` | string | The webhook event type \(e.g., meeting.participant_joined\) | +| `event_ts` | number | Unix timestamp in milliseconds when the event occurred | +| `payload` | object | payload output from the tool | +| ↳ `account_id` | string | Zoom account ID | +| ↳ `object` | object | Meeting and participant details | + + +--- + +### Zoom Participant Left + +Trigger workflow when a participant leaves a Zoom meeting + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `secretToken` | string | Yes | Found in your Zoom app | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `event` | string | The webhook event type \(e.g., meeting.participant_joined\) | +| `event_ts` | number | Unix timestamp in milliseconds when the event occurred | +| `payload` | object | payload output from the tool | +| ↳ `account_id` | string | Zoom account ID | +| ↳ `object` | object | Meeting and participant details | + + +--- + +### Zoom Recording Completed + +Trigger workflow when a Zoom cloud recording is completed + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `secretToken` | string | Yes | Found in your Zoom app | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `event` | string | The webhook event type \(recording.completed\) | +| `event_ts` | number | Unix timestamp in milliseconds when the event occurred | +| `payload` | object | payload output from the tool | +| ↳ `account_id` | string | Zoom account ID | +| ↳ `object` | object | Cloud recording details \(aligns with Zoom cloud recording objects\) | + + +--- + +### Zoom Webhook (All Events) + +Trigger workflow on any Zoom webhook event + +#### Configuration + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `secretToken` | string | Yes | Found in your Zoom app | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `event` | string | The webhook event type \(e.g., meeting.started, recording.completed\) | +| `event_ts` | number | Unix timestamp in milliseconds when the event occurred | +| `payload` | json | Complete webhook payload \(structure varies by event type\) | + diff --git a/apps/docs/content/docs/en/variables/index.mdx b/apps/docs/content/docs/en/variables/index.mdx new file mode 100644 index 00000000000..0596e08a75c --- /dev/null +++ b/apps/docs/content/docs/en/variables/index.mdx @@ -0,0 +1,90 @@ +--- +title: Variables +--- + +import { Callout } from 'fumadocs-ui/components/callout' +import { Card, Cards } from 'fumadocs-ui/components/card' +import { FAQ } from '@/components/ui/faq' + +Sim has two systems for injecting dynamic values into your workflows: **workflow variables** for in-run state and **environment variables** for secrets and configuration. + +## Variable Syntax at a Glance + +| Syntax | What it references | Example | +|--------|-------------------|---------| +| `` | Workflow variable | `` | +| `` | Nested property | `` | +| `` | Block output | `` | +| `` | Loop iteration (inside loop) | `` | +| `` | Parallel instance (inside parallel) | `` | +| `{{KEY}}` | Environment variable | `{{OPENAI_API_KEY}}` | + +Type `<` in any block text field to open the variable picker and browse available references. + +## Workflow Variables + +Workflow variables are a global store that any block can read or update during execution. They're defined in the **Variables** panel in the sidebar and support text, numbers, booleans, objects, and arrays. + +Key behaviors: +- **Global scope**: Accessible from any block in the workflow +- **Run-scoped persistence**: Changes during a run are visible to subsequent blocks, but each new execution resets variables to their initial values +- **Nested access**: Use dot notation for object properties (``) +- **Updated via the Variables block**: Use the [Variables block](/blocks/variables) to modify variable values mid-workflow + + + Full guide on creating, accessing, and updating workflow variables + + +## Environment Variables + +Environment variables store sensitive values like API keys, tokens, and configuration that should never appear in logs or be visible in the workflow canvas. + +### Creating Environment Variables + +1. Go to **Settings** in your workspace +2. Open the **Secrets** tab +3. Click **Add** and enter a key-value pair + +### Personal vs. Workspace + +| Scope | Visibility | Use case | +|-------|-----------|----------| +| **Workspace** | All workspace members | Shared API keys, team configuration | +| **Personal** | Only you | Your personal tokens, dev credentials | + +When both a workspace and personal variable share the same key, the workspace value takes precedence. + +### Using Environment Variables + +Reference them with double curly braces in any block field: + +``` +{{API_KEY}} +``` + + + Environment variable names must start with a letter or underscore and contain only letters, numbers, and underscores (e.g., `MY_API_KEY`). + + +### Environment Variables vs. Credentials + +| | Environment Variables | Credentials | +|--|----------------------|-------------| +| **Format** | Key-value string pairs | OAuth tokens, API keys with provider context | +| **Syntax** | `{{KEY}}` | Selected via dropdown in block config | +| **Best for** | Custom API keys, configuration values, feature flags | OAuth services (Slack, GitHub, Google), managed connections | +| **Management** | Settings → Secrets | Settings → Credentials | + +Use environment variables when you have a raw API key or config value. Use [credentials](/credentials) when connecting to a service that needs OAuth or managed token refresh. + +## Name Conflicts + +If a workflow variable and a block output share the same name, Sim resolves the reference in a fixed priority order: loop and parallel context first, then workflow variables, then environment variables, then block outputs. To avoid confusion, use distinct names for your variables and blocks. + + syntax. Environment variables store sensitive configuration like API keys using {{KEY}} syntax. They never appear in logs and are managed at the workspace or personal level." }, + { question: "Can I use environment variables in the Function block?", answer: "Yes. Use the double curly brace syntax {{KEY}} directly in your code. The value is substituted before execution, so the actual secret never appears in logs or outputs." }, + { question: "How do I share an API key with my team?", answer: "Create a workspace-scoped environment variable in Settings → Secrets. All workspace members will be able to use it in their workflows via {{KEY}} syntax." }, + { question: "What happens if a variable name has spaces or mixed case?", answer: "Variable resolution is case-insensitive and ignores spaces. A variable named 'My Counter' can be referenced as or . However, using consistent naming (like camelCase) is recommended." }, + { question: "Can I reference environment variables in the Agent system prompt?", answer: "Yes. You can use {{KEY}} syntax in any text field, including system prompts, to inject environment variable values." }, +]} /> diff --git a/apps/docs/content/docs/en/variables/meta.json b/apps/docs/content/docs/en/variables/meta.json new file mode 100644 index 00000000000..00b2a1dc9e0 --- /dev/null +++ b/apps/docs/content/docs/en/variables/meta.json @@ -0,0 +1,5 @@ +{ + "title": "Variables", + "pages": ["index", "workflow-variables"], + "defaultOpen": false +} diff --git a/apps/docs/content/docs/en/variables/workflow-variables.mdx b/apps/docs/content/docs/en/variables/workflow-variables.mdx index f196f1d81c6..0cf4aa56613 100644 --- a/apps/docs/content/docs/en/variables/workflow-variables.mdx +++ b/apps/docs/content/docs/en/variables/workflow-variables.mdx @@ -5,6 +5,7 @@ title: Workflow Variables import { Callout } from 'fumadocs-ui/components/callout' import { Step, Steps } from 'fumadocs-ui/components/steps' import { Tab, Tabs } from 'fumadocs-ui/components/tabs' +import { Image } from '@/components/ui/image' import { Video } from '@/components/ui/video' import { FAQ } from '@/components/ui/faq' @@ -42,11 +43,33 @@ The Variables feature serves as a central data store for your workflow, enabling ## Creating Variables -You can create and manage variables from the Variables panel in the sidebar. Each variable has: +To open the Variables panel, click **⋯ → Variables** in the top-right of the workflow editor. + +
+ Opening the Variables panel from the toolbar menu +
+ +Each variable has: - **Name**: A unique identifier used to reference the variable -- **Value**: The data stored in the variable (supports various data types) -- **Description** (optional): A note explaining the variable's purpose +- **Type**: The data type (Plain, Number, Boolean, Object, Array) +- **Value**: The data stored in the variable + +
+ Variables panel with a number variable +
## Accessing Variables @@ -69,12 +92,12 @@ Variables can be accessed from any block in your workflow using the variable dro Variables in Sim can store various types of data: - + ``` "Hello, World!" ``` -

Text variables store strings of characters. They're useful for storing messages, names, and other text data.

+

Plain variables store strings of characters. They're useful for storing messages, names, and other text data.

``` diff --git a/apps/docs/next.config.ts b/apps/docs/next.config.ts index af723788898..f3a1aad5d89 100644 --- a/apps/docs/next.config.ts +++ b/apps/docs/next.config.ts @@ -5,6 +5,9 @@ const withMDX = createMDX() const config: NextConfig = { reactStrictMode: true, + images: { + unoptimized: true, + }, experimental: { webpackMemoryOptimizations: true, webpackBuildWorker: true, diff --git a/apps/docs/public/static/api-deployment/api-info.png b/apps/docs/public/static/api-deployment/api-info.png new file mode 100644 index 0000000000000000000000000000000000000000..9a88b089aeee91137f55639b962a7f2323fb4e3f GIT binary patch literal 181035 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

I@3Ioj}KLCr1v+cJJ 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

JF7~^?U`GnZdDN2S?w@+DYH8w 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

N#176iV{ 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 XB589!1X(=+zpoEJxbQywZb9vDxL#XZ literal 0 HcmV?d00001 diff --git a/apps/docs/public/static/api-deployment/api-select-outputs.png b/apps/docs/public/static/api-deployment/api-select-outputs.png new file mode 100644 index 0000000000000000000000000000000000000000..24267bcd8f1eae475a98cb41b97de0b13e45fcee GIT binary patch literal 252282 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 ul*P%{wM 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 P5aEP;?rl2z2IN@uW}U|Kjc$!EPam2wy2c%L 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 literal 0 HcmV?d00001 diff --git a/apps/docs/public/static/api-deployment/api-tab.png b/apps/docs/public/static/api-deployment/api-tab.png new file mode 100644 index 0000000000000000000000000000000000000000..bf6f3bb2316b42be578483599ce5566723a18138 GIT binary patch literal 250816 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 z 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℘g?E)^4V)?G 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


MYF}Ja&0a$dnsk7K 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 Y6Y@35$!S@_eDJ5QYpC-`>)56L0T1BNZU6uP literal 0 HcmV?d00001 diff --git a/apps/docs/public/static/api-deployment/api-update-button.png b/apps/docs/public/static/api-deployment/api-update-button.png new file mode 100644 index 0000000000000000000000000000000000000000..d0faef49abfd54d44130d238e9aab76335bc8639 GIT binary patch literal 14583 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 literal 0 HcmV?d00001 diff --git a/apps/docs/public/static/api-deployment/api-versions-menu.png b/apps/docs/public/static/api-deployment/api-versions-menu.png new file mode 100644 index 0000000000000000000000000000000000000000..ff1483263264f537734471ba73372e1eef718368 GIT binary patch literal 68209 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 literal 0 HcmV?d00001 diff --git a/apps/docs/public/static/api-deployment/api-versions.png b/apps/docs/public/static/api-deployment/api-versions.png new file mode 100644 index 0000000000000000000000000000000000000000..595091daf37a19d19527101e087b53439c0fe2a9 GIT binary patch literal 220686 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 z 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 Wac6cjw%_p@IJ7SrhqRw(T>b|_zYyC1 literal 0 HcmV?d00001 diff --git a/apps/docs/public/static/blocks/custom-tool-schema.png b/apps/docs/public/static/blocks/custom-tool-schema.png new file mode 100644 index 0000000000000000000000000000000000000000..ef005eeaefd75959c5df86353ccad93b47c51dcc GIT binary patch literal 128137 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%0A3FW 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 literal 0 HcmV?d00001 diff --git a/apps/docs/public/static/blocks/function-python.png b/apps/docs/public/static/blocks/function-python.png new file mode 100644 index 0000000000000000000000000000000000000000..2a610dedabc01d75a5d1de16d74e628de9b65faa GIT binary patch literal 44444 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

lrw{Dlf7 z-szmT>8s-&7dd~swvS$gsq31UGutm><6!F7223Zw7Q%0|m}~cQAPVE-uMhnIBUWHf zZIp{{75M5X>*lzpX)2Z{Vyw@J8BwJBb%Ox9-zwwyVN?*Bdidama5Sl59^<9y;$m*J z9tH8LMXZ*=NfrM@NB~EFK0kY}B@r}&t8@$qj>T{8MRqp{?vUtY95WI(jl5;$&MUTk zAKTEn!ZFktmcIjp!PO;&%7T;x#&s#u!pojmh0vy|>#;qYHZujKx`8e@li@TwOntU) z#zf`3Z?R~BrJ8W-sBpMezwQy_L}y_ODR+pBK?%?P3Uwjj1_5{p8%Dtmu!`Zv2Nw7D zC0~A23NAA3oL^?8yR*p53D9)z5wtE0f@ghxe+V0oyvGe3-he za;u&}3#-zTPB=@SY0Cw}LpIk8E7!7+_krH)?i_^=p79gMChEK$^6IxHf*RoFQO(Pf zsk{&GIiz3uS+iM;3d2W`|M*3XL0H89rk(_fwPC#Hmn0snKBkNyt891Rvn-0nNR@2h{?w~`L8{Zz#n z+qA-p#4LFK#%#w2O(q@3@aSsF5LfgCgcRk`sPv~X)ftJ?z{i>-qLVUS!{i*N|yO6 z-8!)z+m>oe_3`HIeV#(PtiX$zh3<)QYlAG$EiSyz3*z3huHn92lWO2FNnWU0D5aOS zF8ULFiEJ61+B%o}7t*H9sT4naeQfWYhq;dJ-c_(CJ_&vNRezJvEdN2rYe(;rb`K>H zyRjjc4#Kfbn?U_dJ6n&0v!4J0aD|1dTo`7*1oPPmtmKkut5(&VqF~ccG=G>`VqD4?l@H%a*aMXu@azskDBo*^L@J=rV`_FT+Qnh_I>(E!hyg&m z9;`nB*`p<}3r7H`SW^on(BMjHhgMAyK=CL>Cc^FtlNdyf#kIKDtI_LAW|!ZhU@gK# z(7`$JaeRzA0DUiGFg^qdSN>CtqSGLa-P4>?K#R>w1yCRJ#CZf1V-P|IMX`WC|DWkI z@_5tlPRu;cJZpI3nwdHT7HMKQ~S zux5DcBF0VrkNz^ub{i=M_7fPSN=Bb!AVoAdMYN*nKuj4@I(6J6rJP3sxgFJryY0SbE@^5=6a z2-lxt5HqQG@K_HWm&=OqR~$)=f}Q6@8Z5ql?A8wZ2#hZ5p#+$pL_AaqEwemo9Sw~h ze*3=w0Fd`{^s@-2(!6U|>0!0;65B^s&GFNTVi8W zuL5{8)qb19&u5rRgss?N5{0)FNd_@vCVwlE;sAj5HstknWWSO16kW-~X0u{r{eT-k9O_sN9kL zA4wMyCkr^6u)e*mb3_(~CNC=CefwLMCjr1D%cRi$Bra!D*8eFIl%QpN>NE=uigAgG zb@^L!Nc#a$WwPvDAcp;;rsse#gFpO2|D($PH#f>&30Y#KYn}~U@|*R_Yo1l~YyL6K z>(IgU>SB&Y2ia1ZglrCA@y9K+P@DV)>As##E$$Tj%q)hZUhw+jE&!w5EpG8afSgBP|VT+gjJ{vE%`OD0P= zfLjwT&v}b0-CDLm!WXMF$JNs*a{|+=aB9C^V_;KNJ{{jY-m($8#K9vAcR+gRz@{DB zW-j^kLm546S;iT{@CKtRAw@9tq52v=^f~~wKf72( z0XsMzQ}q_!{w&oLDF2{kABHzqH))ba0f%PZ;zhHGhED$o?9`5_xZh?lmezEdM!A?S zq!3MOneMk>M5$JW-|ZY_BaC4TRIK)!URS4yzN&XNWFB8Od#mwM<7FAe5N7rv`^rFd z(f+3o<@CmUTZSdj!##F{&uQ1t_eCFHi-RWitciOFJtwd>^=Y?2`>1l3*c_A386w3mFf^+oz1}MWzPAB zLolH7@~lUkdSq5@Sz8gDO0FC+j(!(HpyRb}YD*Df9&4aoSQ2#AAX(w;Ydpo2vTOes zlofRC+h8>~V$TF5L@yI-8}rfO;hw;u2(k6ypz9jp>$9bMGQz)J-9SPmv8fG-asY_I&+(M;h%9Jj+C7MLYaX!$Q-c9crm@e7@98L%Q_ko9zHoe zP1R+eFJb8{o6V8VW;Jv5G?n)!PMavJ?BiUS?qAe%y2@47v=7KDC>cypG>`?wO)|WC(Jk zXdXw&5JM5Xb<%l17`iN~wrdrI@gO*Yj?%tB7Ab?>Uw;nBT^OsX#-#CBtNi>V3>XL+ zp1B}Gk3TQ|OR;8Q^KG`VFw?IO$W-Td77ZwB4wULv4mlvC!8+YZdbe)0DgPxTt&jJh z{$dx%VVq9)>q;$1sfu6K#+j1$h-)Fj6PzuR`ZesiZu2E)%vl$+YqPg03b#@FmybDg zU%b)-Df5=({~zrAWmJ^k7e5ROf+7eQgftf29TK8|ba#nJcXta2$e?tmbVpEwjefHV=vp;)JPHv`kk^ntZPqWze znAzN6>XsK=XKqMUi(cfYLjmFP{^Uom&yoa$i9Ds$Q->^{I}nt|1g&kdq(mG6Sx)Jk z3-4v(*Wb8HbLjPml$c3#)|JB-`0bQ2t}EpreJFSq{j$>8i{r@h_zacqXjsV#pI0h-?iLnUj{kB9Q+^N&T#G|M0O)R0*}>5r*-Q#Ab4utISf zq*FEna9Dml=$oHVThrCwO&UFfAMGxC#vR*rwVFHYf*So3ka}1nRu%#J7FYFCE!jPa zNOHJ~oJjIv3n4H-qTW~uW-8`Vb3|d1MRLqcuIeGLkJL@v#QB1`947J2?Qe>MYBOzj z6RjafWzAqi!nbe<97*Q+R1V`X+r)Ehevn8hj=fq6&=yZ7ACM}LM+UKawS=shC4{p= zii^c*?;9nncC$84gS^e=m{BAy>=cHeo~s6y4i6hg=ur(s06|v^+#(Ro!0SP7i}|KJ zOrsHOOgM$hn4!(Z88ULA@nmX?l1)zt&`96{RncTaZt9L2;+=$mXaY6Yf5fhbG_n|xGIyiH5A08E{(<1=} zFe$Y2?V)hpcx$<8V&(-%Td25x=U;xKFK;S6URuQ_I^R|7ykv`BI}Qk5&rAG^zl4?* zN6qay(~&cFJX2Sa6EBL;B5!5KVV+0Xx_mseyOy0LF)u6k{lhq2H+5~Pza0zen};~4 z$1Cq+4L&4)M#{h0g)NzELMgV6OHZy=ruc-WB}6BkwKG^uel1{+#BYQ8K6H*OH`twmfIngb&IikM|KBnMtkN${Tieu86$JFN!H*#Rkd_J`pZ?M^0uS&AzwJZqZR#%sD z#DDV3@8k=uuwkSR=@b)WsbD|V;0&R0CeXW4J2Rc?&`Dojt!OX*WcxW1E^^+VrQsyb zr~W4N1!}(*N_>8k#KH7gH7P^d3##)rOua zko?}POg}3YI<5|(A(yd+(9@C|V^(8A3)4pkI~~XbLd8OD7$pr+x#6is_g$~5kL}x` zv}tzW=r&6T5>cjo0+(6iX5s7w8MlHobb}_%S>K%-w#AZ&Hc&DsurYuzW{0psFN1Le8;B=mNX#;;V&Y8W(`+PSYnXL7CHJZ;0uqNis z#;aZhuoT(Fh%1dKIUdVwFHl|73E|ZhT4z@8Ns1hQs4ZnsR^~%g`w6^zvf8?z|F!3hU?B~dGT7e8c}2$G|3lrKkLahS*n>fEgaX+#YHLjgG%tD$e+&(MS?$%iQ6 zypyx^sMr>|O5;gxHwE|Qqn zFXv^e86NkM-X~R~D$*(Npoj3k$^P)ootcsRS-FPv6ZMzkyw4L2kywj2R7 z2p>VAwJIh9K!T4M-6!WOb6Aqr4*fdD-K$rR@#AFlQX}!A4so34>QvhnmDP z8H?Y{s|dLj!B9FFl>J@(X5=!xaXCSegAHG+QnGF9E~D{w%pzycs#~g#P5om$DDbrA zBlxi3_i%WByM%Fmp&Z;9F>IC}%~WB{PPfsme8MPFNVNpb22SDX1Xv;t>l&Nn@M0pkM&mr8ym|K-IA$oEW~+lzokz6J z%_vLAV#I&h`ko|X;#xYso5n0zHFq3O$i@{gmv3fjK13}Q=4b2?xKa~y@tK^BpRv4)#Z|dUpq!`BKT6WBZam5VS_q0RdIv5b%xL3dnAvtb&7%&D!fpBKi{)!da^e-rgO6`FPJW15Rq>qql9*%mDK>DIF9-;F$% zQQsUlo6DbS%ZybDv0Qui97d|JWi~RQ8x`_OLx&G>HDmNNaZoUIG4G-G9>X&^)2>e9 zw9JGjJImviWzHUFnJHhE?}w1jV^00-h@Q$44{!7Z35L--O$!uTzqa?D*}5oA0Gb4z zuT|eQGOO9|Pj+Q5NX5ccH_0VO_(&fEf-Ug<14YfGo&Xxpbv1#TW%2o>s-amSH{i;1 znav}MTfpC)UMq)F?#^s2zRAvEew@bKs6Bdc2PCC|Wh$|i{aQ9#-`}c~rD!WFB|x!! zH?8DeFly*MY}ykEPoC(^%So<3njz0d>aTf^WDfezpgioAMFZM=H2OJuc5Qh+hRoa| zZfgpGP{rXkrYs^F5enVXRc}X4@(2tKRQOXO`T2`x(n|}Pe!7Y~J|-l^n5!Px3kQUt z^Y~oz9yJ|41_Lc3)`oQsTjg4Zfzmq>6;U*K6}(eU zDz2OL%U@0TgUvzZigY&b^vbtX2YJa2vmVo(_l|Fj_$}U`Fbp#rbd+~g_EMRTC)rF^ znaNZLlsa0ZzcJ+JRduVc(rOzw;4{%|*1XYZfd&7mY8&TBUIICOxuQwBCb~N+Sc1xI z`_^P>op;`lw0>ECw3N*3?lomu2D?@)Rkh$YkJTSh>_MCA6y@1QHqAC$?G^TLyD);& z!`R@^XN3(0C|@4@Kd$N2@&n$GdqG4}O`Mj9x$)4rLa6w*qIVRE*x-2QlS2*y z4DK>t7#1GN#v9#uGp{%}L{lfGq^`iI%WZDP+$5)FIj&tcXiZ}}^JAm@YdPNQqWk1U zT5>RP<1XgfJtEN!?GewkwT;)_Lsix1QW>l7H;lXD)N~_Ig zzNfTC$~$iMP(-c7%c|t{y%5je5vrLtdZwMMrCd>%M74O?`WYZrtS9dSqTF|L)@Pjc zxx|p#?t82H1B1f^-D&F^t_?lDhSwccRKqUgRDpM*Np@AMA*I8r#gh;<^zg?0P(3EvH1x@E2KFd5wN2QhVo7CY@<(d354X_67)e zc}e;gZ9q&+$rQ|F1ft@)kkQ;Ud9K&mza6PR!K*qgDt7jZOyz5(5GXBIhs(qx>nr14 zT3hX-DV$wmQr{FZ9>2*>ay^K-Z8O>*aXYeEcX(MCcB?=SKLN7!EjakVmWH zCr$dF>(uBbe9!qfC@%#JKHCXI71#cZ`tsSg{QLl(Ns1~r`1d|z03UYE-@o-wETW%* z$p0FoKcDlj0MazxzJ>MQAbwL(15n<<-)o{;U=1qVu>O!CFr+ z{^6TwSohF?AMp?T0iRQh1IxrjiT-cBuVB2pa_JcTeHoq1l{rl!eE(;zP`T0q|y@qKAdqE%gNapP}M0f6gKplyy{Ugyjs#UL2Ex##GNpXvIqBy z25MgeUiWV;16_39`wdly=oJ~eTh-YOC4EJ41)6j;%Jd`5)@RY=2QQ_V&w>{E6|mrs zWYc|)R}IThALp{n&dmiJaveSGpZ|kyr+fx2=NN^-mZ zo^}JRQow?LRz*RGyO@KNg`9WN?%9kVU|ZuB-GB7oHof(N7R9`#`UOJO9LfAX;yKOx zbXor)^6Fsmt%lRGr~ebccc8+~*W~U0yYgS&;8Kb6Ie~tr`m2B}>|Z4@Qv+J9zQK>c z{iietS)hETvjqR`JZ(_;QLg3*@%Rfd0*_e$MQJDDYybc9kXV$qP<$bqp?sxjB#NZi zaCR_pm)-5ZP1*)F1vzDNuGATbQpWc8_70D|0G-Jh#YG+*iU|8>bSQ!RMRQIl_=kaP@1ArEIeei5S1dqG< zZ^1Ev#F_Ke=@s4>fqEa@OTnvwj2M%@eY6};=;%#hz|bgdZk~}#U~55P3i5_B@hr|4 zfbcpwbAC`eM6M4g(havCN*sOy!Gtf0WnQp7ga%lkhUB>gX0es$$7{cYKoAhn)cAZ^7r{WTxSEn^wudVzy4FF%B6*;0~iwj%u4Ar>{5drwvsMe^-1w;dj}FYgrQAREDqC=w7!htKdq0){f`S)37a0u_ z?^MnXPfV;q_~zfDr8<2jG5umb0_sQ(0HiduN38FbIr#E}Cy0-|gr(RM<36R>d7;SZ z5@gmfaor~!+Q)PFzGLCg*N>`=M)h3fJn%iv$48r%m=iku6#0a=zucXEmH5u6w_@Js z=R+!z&poY|#$F&)6ws$OndaFEBBaCZ2!igX$RSI$t1aFpJiAUCl%1mq^QiVj(I*$a zlG&1{C)44}iTnNvq;k6R!6E5^@X^ocGnkJT2;yBq&nkt};$#&6SZ{F2{fBXUJqmx; z!2!H(US5ZvFOa#su#SK;>VcT@Nq`aXybN(Rv#-JkD>64MiBzsssbKtEmL9h zX2VvKP4n47_}Ne#C=lsZaI`FRhwYDqGl$&quE-i6s(*|flzk)wyuT*OdFW!C&hfG4 z7>Z2~K-}K3hra^?;O4^byukh}{lzGas}1d4JA06RlHJg86JWmDh+1h)RmJsBD){W& z1q4d(Udl6wStw6Ec=3eycDTX2HmAx_eb0JS&#)7zw;Pqc!l-VD_9>0YMlt??BA_I^ zgkmD+B|Mf`JU^MafC4;ofoPouwB~FAI|<%Ex*RAmR2uxFxF-(Tw(gx^YNFbQ4FOnek9L)?*X|=K26Yqp6k?N({_aIM^K-F z0;FcVi$8x<9Kc%uM0sBMJbJAg&-t~^UlVezrSgoO0>)za0)nQ@PBuAM-6!e%d__{E zP=|Hs(O7rT$RO7T%k8MRj*rHi1dyb!aaZJ^Jvl+z#eyYS&xK1boiT4T)Bn5 z_{OmQllH<>zT8{#*dT&BYG?KNaA&X{B!;GR9unrSE-Ak2P*53F$&(*0Ar8Lt)*