export const createNewIssue = createTrigger({ auth: PieceAuth | undefined name: string, // Unique name across the piece. displayName: string, // Display name on the interface. description: string, // Description for the action sampleData: null, type: TriggerStrategy.WEBHOOK | TriggerStrategy.POLLING | TriggerStrategy.APP_WEBHOOK, props: {}; // Required properties from the user. // Set up the trigger. See "When the hooks run" below. onEnable: (ctx) => {}, // Tear the trigger down. See "When the hooks run" below. onDisable: (ctx) => {}, // Trigger implementation, It takes context as parameter. // should returns an array of payload, each payload considered run: async run(ctx): unknown[] => {}})
It’s important to note that the run method returns an array. The reason for
this is that a single polling can contain multiple triggers, so each item in
the array will trigger the flow to run.
Republishes a running flow with the same piece, piece version, trigger and inputs
nothing, keeps polling on the same schedule
old onDisable, then new onEnable, both with isRepublish: true
Republishes a running flow with the same trigger and inputs on a newer piece version
new onEnable with isRepublish: true (the old onDisable is skipped)
old onDisable, then new onEnable, both with isRepublish: true
Republishes a running flow with a different trigger or changed inputs
old onDisable, then new onEnable
old onDisable, then new onEnable
A failing onDisable is logged and ignored, so the flow still turns off. A failing onEnable fails the publish or the turn-on.
A patch upgrade in the builder (e.g. 0.5.1 → 0.5.3) keeps the trigger’s inputs. A minor or major upgrade resets them to the new version’s defaults. Which row applies depends on the inputs that get published: if they match the running flow, context.isRepublish is still true; if they differ, the trigger starts fresh. Don’t rely on an upgrade to clear stored state.
context.isRepublish is true only in the rows that say so. Use it to keep stored state that is still valid, rather than starting fresh. See Polling Trigger → Republishing a running flow.
A polling trigger’s onDisable still runs when the flow is turned off or deleted, but not on an upgrade, because the trigger keeps running. If onEnable creates something outside the store, save its id in the store and, when context.isRepublish is true and the id exists, reuse it instead of creating another. If the trigger needs to register and unregister with every version, make it a webhook trigger: those run both hooks on every republish.
test runs when the user loads sample data in the builder, and run runs on every poll or incoming event. Neither is part of turning the flow on or off.
The Context object contains multiple helpful pieces of information and tools that can be useful while developing.
// Store: A simple, lightweight key-value store that is helpful when you are developing triggers that persist between runs, used to store information like the last polling date.await context.store.put('_lastFetchedDate', new Date());const lastFetchedData = await context.store.get('_lastFetchedDate', new Date());// Webhook URL: A unique, auto-generated URL that will trigger the flow. Useful when you need to develop a trigger based on webhooks.context.webhookUrl;// Payload: Contains information about the HTTP request sent by the third party. It has three properties: status, headers, and body.context.payload;// PropsValue: Contains the information filled by the user in defined properties.context.propsValue;
App Webhooks (Not Supported)Certain services, such as Slack and Square, only support webhooks at the developer app level.
This means that all authorized users for the app will be sent to the same endpoint. While this technique will be supported soon, for now, a workaround is to perform polling on the endpoint.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Activepieces","colors":{"primary":"#9675FF","light":"#9675FF","dark":"#9675FF"},"logo":{"light":"https://mintcdn.com/activepieces/fJ5Tlm8YTN5F2Mlz/resources/logo/light.svg?fit=max\u0026auto=format\u0026n=fJ5Tlm8YTN5F2Mlz\u0026q=85\u0026s=45ca3c4c50e981e74952921edc9a9fa2","dark":"https://mintcdn.com/activepieces/fJ5Tlm8YTN5F2Mlz/resources/logo/dark.svg?fit=max\u0026auto=format\u0026n=fJ5Tlm8YTN5F2Mlz\u0026q=85\u0026s=19d53837418091737fc386a2863fe6b0","href":"https://www.activepieces.com"},"favicon":"https://mintcdn.com/activepieces/fJ5Tlm8YTN5F2Mlz/favicon.svg?fit=max\u0026auto=format\u0026n=fJ5Tlm8YTN5F2Mlz\u0026q=85\u0026s=3974767b9f13bd8747287d75de7a1204","api":{"openapi":["openapi.json"]},"background":{"color":{"light":"#ffffff","dark":"#090d0d"}},"navbar":{"links":[{"href":"https://github.com/activepieces/activepieces","label":"GitHub"},{"href":"https://www.activepieces.com/pieces","label":"Pieces"}],"primary":{"type":"button","label":"Sign Up","href":"https://cloud.activepieces.com/sign-up"}},"footer":{"socials":{"x":"https://x.com/activepieces","github":"https://github.com/activepieces/activepieces","linkedin":"https://linkedin.com/company/activepieces"}},"styling":{"latex":false},"navigation":{"global":{},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"activepieces","hasAudioNarration":false,"actualSubdomain":"activepieces","customDomains":["www.activepieces.com"],"gitSource":{"type":"github","owner":"activepieces","repo":"activepieces","deployBranch":"main","contentDirectory":"docs","mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae0e3926505632478d8e54d","collectionId":"57e22fe8-091d-4cf8-91d4-e833bca610f3","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae0e3926505632478d8e54d"},"feedback":{"edits":true,"issues":true,"agentFeedback":true,"thumbs":true},"entitlements":{"AI_CHAT":{"status":"DISABLED"},"WEB_MCP":{"status":"DISABLED"},"NARRATION":{"status":"DISABLED"}},"buildId":"6ae0e3926505632478d8e54d","clientVersion":"0.0.3990","searchFilterCounts":[{"language":"default","tag":"Get Started","count":69},{"language":"default","tag":"API Reference","count":63},{"language":"default","tag":"Endpoints","count":60},{"language":"default","tag":"Enterprise Control","count":55},{"language":"default","tag":"Guides","count":54},{"language":"default","tag":"Install Activepieces","count":51},{"language":"default","tag":"About","count":42},{"language":"default","tag":"Build Pieces","count":40},{"language":"default","tag":"Company Handbook","count":39},{"language":"default","tag":"Audit Logs","count":25}]},"assistantConfig":{"enableStarterQuestions":true,"deflection":{"enabled":true,"email":"[email protected]","showHelpButton":true}},"basePath":"/docs","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-v7-file-tree","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"per-site-search-delta","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-private-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-nav-generations","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-agent-model-picker","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"starterQuestions":[{"_id":"69df3ea534438eefba3c55ed","deploymentId":"636f0b1d59792292a7e133be","questionText":"what is Activepieces's hiring process ?","status":"active","generatedBy":"manual","createdAt":"2026-04-15T07:30:45.300Z","updatedAt":"2026-04-15T07:30:45.300Z","__v":0},{"_id":"69df3e4d34438eefba3c51ae","deploymentId":"636f0b1d59792292a7e133be","questionText":"How to self-host Activepieces ?","status":"active","generatedBy":"manual","createdAt":"2026-04-15T07:29:17.523Z","updatedAt":"2026-04-15T07:30:56.547Z","__v":0},{"_id":"69df3e2d34438eefba3c4f73","deploymentId":"636f0b1d59792292a7e133be","questionText":"How do I create a new piece ?","status":"active","generatedBy":"manual","createdAt":"2026-04-15T07:28:45.786Z","updatedAt":"2026-04-15T07:30:50.754Z","__v":0}],"isAtlas":false,"googleFontsInlined":false},"customCss":[{"filePath":"custom.css","content":".pp{--pp-primary:hsl(257 74% 57%);--pp-primary-wash:hsl(257 74% 57% / 0.10);--pp-fg:#171717;--pp-muted:#737373;--pp-faint:#a3a3a3;--pp-border:#e5e5e5;--pp-soft:#f5f5f5;--pp-bg:#ffffff;--pp-switch-off:#d4d4d4;border:1px solid var(--pp-border);border-radius:12px;background:var(--pp-bg);padding:18px 16px;margin:12px 0 20px;font-family:\"Inter\",-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif;font-size:14px;line-height:1.5;color:var(--pp-fg);max-width:560px}.pp,.pp *,.pp ::after,.pp ::before{box-sizing:border-box}.pp-field{display:flex;flex-direction:column;gap:6px}.pp-label{display:flex;align-items:center;gap:4px;font-size:14px;font-weight:500;color:var(--pp-fg);margin:0}.pp-req{color:hsl(350 89% 60%)}.pp-desc{font-size:12px;color:var(--pp-muted)}.pp-input,.pp-stepper button{background:var(--pp-bg);color:var(--pp-fg)}.pp-input{display:flex;align-items:center;height:36px;border:1px solid var(--pp-border);border-radius:6px;padding:0 10px;font-size:14px}.pp-input.pp-ph{color:var(--pp-faint)}.pp-textarea{min-height:76px;align-items:flex-start;padding:8px 10px}.pp-select{justify-content:space-between}.pp-caret{width:8px;height:8px;border-right:1.5px solid var(--pp-faint);border-bottom:1.5px solid var(--pp-faint);transform:rotate(45deg);margin-top:-3px;flex:none}.pp-switch{width:34px;height:20px;border-radius:999px;background:var(--pp-primary);position:relative;flex:none}.pp-switch::after{content:\"\";position:absolute;top:2px;left:16px;width:16px;height:16px;border-radius:50%;background:#fff;transition:left .15s ease}.pp-switch.pp-off{background:var(--pp-switch-off)}.pp-switch.pp-off::after{left:2px}.pp-switch-row{display:flex;align-items:center;gap:10px}.pp-chip,.pp-switch-row .pp-t{font-size:14px;font-weight:500}.pp-switch-row .pp-d{font-size:12px;color:var(--pp-muted)}.pp-chip{display:inline-flex;align-items:center;gap:5px;background:var(--pp-primary-wash);color:var(--pp-primary);font-size:12.5px;border-radius:999px;padding:2px 6px 2px 9px}.pp-chip .pp-x{color:var(--pp-primary);opacity:.7;font-size:13px}.pp-chips,.pp-code{border:1px solid var(--pp-border);border-radius:6px}.pp-chips{display:flex;flex-wrap:wrap;gap:6px;align-items:center;min-height:40px;padding:6px 8px}.pp-chips .pp-ph{color:var(--pp-faint);font-size:14px}.pp-code{font-family:ui-monospace,\"SF Mono\",Menlo,Consolas,\"Liberation Mono\",monospace;font-size:12.5px;line-height:1.6;background:var(--pp-soft);padding:10px 12px;color:#3f3f46;white-space:pre;overflow-x:auto}.pp-key{color:hsl(257 74% 45%)}.pp-str{color:hsl(160 84% 30%)}.pp-kv{display:grid;grid-template-columns:1fr 1fr 24px;gap:6px;align-items:center}.pp-kv.pp-one{grid-template-columns:1fr 24px}.pp-iconbtn{display:flex;align-items:center;justify-content:center;width:24px;height:24px;color:var(--pp-faint)}.pp-add{color:var(--pp-primary);font-size:13px;font-weight:600;display:inline-flex;align-items:center;gap:5px;margin-top:8px}.pp-list{display:flex;flex-direction:column;gap:6px}.pp-swatch{width:28px;height:28px;border-radius:6px;border:1px solid var(--pp-border);flex:none;background:hsl(257 74% 57%)}.pp-row{display:flex;align-items:center;gap:8px}.pp-item{border:1px solid var(--pp-border);border-radius:8px;padding:12px;display:flex;flex-direction:column;gap:10px;position:relative}.pp-item .pp-rm{position:absolute;top:8px;right:8px;color:var(--pp-faint)}.pp-note{border:1px solid hsl(257 74% 57%/.18);background:var(--pp-primary-wash);border-radius:8px;padding:12px 14px;font-size:13.5px;line-height:1.5;color:#3f3f46}.pp-note strong{display:block;margin-bottom:2px;color:var(--pp-fg)}.pp-rt{border:1px solid var(--pp-border);border-radius:6px;overflow:hidden}.pp-rt-btn,.pp-rt-toolbar{display:flex;align-items:center}.pp-rt-toolbar{gap:2px;padding:5px 6px;border-bottom:1px solid var(--pp-border);background:#fcfcfd}.pp-rt-btn{justify-content:center;width:26px;height:26px;border-radius:5px;font-size:13px;color:#52525b}.pp-rt-btn.pp-b{font-weight:800}.pp-rt-btn.pp-i{font-style:italic;font-family:Georgia,serif}.pp-rt-btn.pp-u{text-decoration:underline}.pp-rt-sep{width:1px;height:16px;background:var(--pp-border);margin:0 3px}.pp-rt-body{padding:10px 12px;font-size:14px;line-height:1.6;min-height:60px}.pp-mention{background:var(--pp-primary-wash);color:var(--pp-primary);border-radius:5px;padding:1px 5px;font-size:13px;font-weight:500}.pp-cards{display:flex;gap:8px;flex-wrap:wrap}.pp-rcard{flex:1 1 0;min-width:120px;display:flex;align-items:center;gap:10px;border:1px solid var(--pp-border);border-radius:8px;padding:11px 12px}.pp-rcard.pp-sel{border-color:var(--pp-primary);background:hsl(257 74% 57%/.05)}.pp-rcard .pp-ic,.pp-stepper{align-items:center;border-radius:6px}.pp-rcard .pp-ic{width:28px;height:28px;background:var(--pp-soft);display:flex;justify-content:center;color:#52525b;flex:none;font-family:ui-monospace,\"SF Mono\",Menlo,Consolas,\"Liberation Mono\",monospace;font-size:12px}.pp-rcard.pp-sel .pp-ic{background:var(--pp-primary-wash);color:var(--pp-primary)}.pp-rcard .pp-t{font-size:13.5px;font-weight:600}.pp-rcard .pp-d{font-size:11.5px;color:var(--pp-muted)}.pp-stepper{display:inline-flex;border:1px solid var(--pp-border);overflow:hidden;height:36px}.pp-stepper button{width:34px;height:100%;border:0;font-size:16px;border-right:1px solid var(--pp-border);cursor:pointer}.pp-stepper button:last-child{border-right:none;border-left:1px solid var(--pp-border)}.pp-stepper .pp-val{width:46px;text-align:center;font-size:14px;font-variant-numeric:tabular-nums}.pp-stepper-row{display:flex;align-items:center;justify-content:space-between}.pp-reveal{border:1px solid var(--pp-border);background:#fafafa;border-radius:8px;padding:12px 13px}.pp-reveal .pp-divider{margin-top:12px;padding-top:12px;border-top:1px dashed var(--pp-border)}.pp-presets{display:flex;gap:6px;flex-wrap:wrap}.pp-pill{border:1px solid var(--pp-border);border-radius:999px;padding:4px 12px;font-size:13px;color:var(--pp-muted)}.pp-pill.pp-sel{border-color:var(--pp-primary);background:hsl(257 74% 57%/.05);color:var(--pp-primary);font-weight:600}.pp-daterow{display:flex;align-items:flex-end;gap:8px;margin-top:10px}.pp-daterow .pp-col{flex:1}.pp-daterow .pp-cl{font-size:11px;color:var(--pp-muted);margin-bottom:3px}.pp-tabs{display:flex;background:var(--pp-soft);border-radius:8px;padding:3px;gap:2px}.pp-tab{flex:1;text-align:center;font-size:13px;font-weight:500;padding:6px 0;border-radius:6px;color:var(--pp-muted)}.pp-tab.pp-sel{background:var(--pp-bg);color:var(--pp-fg);font-weight:600;box-shadow:0 1px 2px rgba(0,0,0,.06)}.pp-twoup{display:grid;grid-template-columns:1fr 1fr;gap:10px}.pp-fb{border:1px solid var(--pp-border);border-radius:14px;overflow:hidden}.pp-fb-row{display:flex;align-items:center;gap:10px;padding:11px 12px;border-bottom:1px solid #f0f0f0}.pp-fb-badge,.pp-fb-foot .pp-ic{width:28px;height:28px;border-radius:8px;background:var(--pp-primary-wash);color:var(--pp-primary);display:flex;align-items:center;justify-content:center;flex:none}.pp-fb-lbl{width:72px;flex:none;font-size:13.5px;font-weight:600}.pp-fb-ctrl{flex:1;min-width:0}.pp-fb-x{color:var(--pp-faint);flex:none}.pp-fb-add,.pp-fb-foot{display:flex;align-items:center;border:1px solid var(--pp-border)}.pp-fb-add{gap:6px;margin:10px 12px;border-radius:9px;padding:8px 12px;width:fit-content;color:var(--pp-primary);font-size:13px;font-weight:600}.pp-fb-foot{justify-content:space-between;gap:12px;border-radius:14px;padding:11px 14px;margin-top:10px}.pp-fb-foot .pp-t{font-size:13.5px;font-weight:600}.pp-fb-foot .pp-s{font-size:11.5px;color:var(--pp-muted)}.pp .pp-i{display:inline-block;width:15px;height:15px;flex:none;background-color:currentColor;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;-webkit-mask-size:contain;mask-size:contain}.pp .pp-i-cal{-webkit-mask-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Crect x='3' y='4' width='18' height='18' rx='2'/%3E%3Cpath d='M16 2v4M8 2v4M3 10h18'/%3E%3C/svg%3E\");mask-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Crect x='3' y='4' width='18' height='18' rx='2'/%3E%3Cpath d='M16 2v4M8 2v4M3 10h18'/%3E%3C/svg%3E\")}.pp .pp-i-clip{-webkit-mask-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Cpath d='M21.44 11.05l-9.19 9.19a5 5 0 0 1-7.07-7.07l9.19-9.19a3 3 0 0 1 4.24 4.24l-9.2 9.19a1 1 0 0 1-1.41-1.41l8.48-8.49'/%3E%3C/svg%3E\");mask-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Cpath d='M21.44 11.05l-9.19 9.19a5 5 0 0 1-7.07-7.07l9.19-9.19a3 3 0 0 1 4.24 4.24l-9.2 9.19a1 1 0 0 1-1.41-1.41l8.48-8.49'/%3E%3C/svg%3E\")}.pp .pp-i-search{-webkit-mask-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m21 21-4.3-4.3'/%3E%3C/svg%3E\");mask-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m21 21-4.3-4.3'/%3E%3C/svg%3E\")}.pp .pp-i-link{-webkit-mask-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Cpath d='M10 13a5 5 0 0 0 7 0l3-3a5 5 0 0 0-7-7l-1 1'/%3E%3Cpath d='M14 11a5 5 0 0 0-7 0l-3 3a5 5 0 0 0 7 7l1-1'/%3E%3C/svg%3E\");mask-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Cpath d='M10 13a5 5 0 0 0 7 0l3-3a5 5 0 0 0-7-7l-1 1'/%3E%3Cpath d='M14 11a5 5 0 0 0-7 0l-3 3a5 5 0 0 0 7 7l1-1'/%3E%3C/svg%3E\")}.pp .pp-i-user{-webkit-mask-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Cpath d='M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='12' cy='7' r='4'/%3E%3C/svg%3E\");mask-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Cpath d='M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='12' cy='7' r='4'/%3E%3C/svg%3E\")}.pp .pp-i-sliders{-webkit-mask-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Cline x1='4' y1='6' x2='20' y2='6'/%3E%3Cline x1='7' y1='12' x2='17' y2='12'/%3E%3Cline x1='10' y1='18' x2='14' y2='18'/%3E%3C/svg%3E\");mask-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Cline x1='4' y1='6' x2='20' y2='6'/%3E%3Cline x1='7' y1='12' x2='17' y2='12'/%3E%3Cline x1='10' y1='18' x2='14' y2='18'/%3E%3C/svg%3E\")}.dark .pp{--pp-fg:#e8e8ea;--pp-muted:#9a9aa5;--pp-faint:#6b6b74;--pp-border:#2d2d34;--pp-soft:#26262c;--pp-bg:#1b1b20;--pp-switch-off:#3f3f46;--pp-primary:hsl(257 82% 72%);--pp-primary-wash:hsl(257 74% 62% / 0.22)}.dark .pp .pp-code,.dark .pp .pp-note,.dark .pp .pp-rcard .pp-ic{color:#c9c8d2}.dark .pp .pp-key{color:hsl(257 82% 76%)}.dark .pp .pp-str{color:hsl(160 60% 62%)}.dark .pp .pp-rt-btn{color:#a1a1aa}.dark .pp .pp-rt-toolbar{background:#232329}.dark .pp .pp-reveal{background:#202026}.dark .pp .pp-fb-row{border-bottom-color:#2d2d34}.vr{--vr-accent:#9675FF;--vr-accent-fg:#ffffff;--vr-marker:#171717;--vr-fg:#171717;--vr-muted:#737373;--vr-border:#e5e5e5;--vr-bg:#ffffff;border:1px solid var(--vr-border);border-radius:12px;background:var(--vr-bg);padding:20px 16px 16px;margin:16px 0 24px;font-family:\"Inter\",-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif;font-size:14px;line-height:1.5;color:var(--vr-fg)}.vr,.vr *,.vr ::after,.vr ::before{box-sizing:border-box}.vr-intro{margin-bottom:20px;font-size:13px;color:var(--vr-muted)}.vr-row{display:grid;grid-template-columns:200px 1fr;gap:12px}.vr-lane{position:relative;margin:0 24px 0 0}.vr-head,.vr-marker-label{font-size:13px;font-weight:600}.vr-head{margin-bottom:12px}.vr-marker-label{position:absolute;top:0;transform:translateX(-50%);white-space:nowrap;transition:left 120ms ease}.vr-bars,.vr-labels{display:flex;flex-direction:column;gap:10px;padding:8px 0 16px}.vr-label{display:flex;align-items:center;justify-content:space-between;gap:12px;height:30px}.vr-name{font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}.vr-status{font-size:12px;font-weight:600}.vr-status-on{color:var(--vr-accent)}.vr-status-off{color:var(--vr-muted)}.vr-track{position:relative;height:30px}.vr-bar{position:absolute;top:0;bottom:0;display:flex;align-items:center;padding:0 10px;border-radius:6px;font-size:13px;white-space:nowrap;font-variant-numeric:tabular-nums;transition:background-color 150ms ease,color 150ms ease,border-color 150ms ease}.vr-bar-on{background:var(--vr-accent);color:var(--vr-accent-fg);border:1px solid var(--vr-accent)}.vr-bar-off{background:0 0;color:var(--vr-fg);border:1.5px dashed var(--vr-muted)}.vr-bar-short .vr-bar-text{position:absolute;right:calc(100% + 8px);color:var(--vr-fg)}.vr-marker{position:absolute;top:0;bottom:0;width:2px;margin-left:-1px;z-index:1;background:var(--vr-marker);pointer-events:none;transition:left 120ms ease}.vr-axis{position:relative;height:28px;border-top:1px solid var(--vr-muted)}.vr-axis-caption,.vr-tick{font-size:12px;color:var(--vr-muted)}.vr-tick{position:absolute;top:0;padding-top:12px;transform:translateX(-50%);white-space:nowrap}.vr-tick::before{content:\"\";position:absolute;top:0;left:50%;width:1px;height:6px;background:var(--vr-muted)}.vr-axis-caption{margin-top:4px;text-align:right}.vr-control{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:16px;margin-top:16px;cursor:pointer}.vr-control-label{font-weight:600}.vr-control-value{font-weight:600;min-width:56px;text-align:right}.vr-slider{width:100%;margin:0;accent-color:var(--vr-accent);cursor:pointer}@media (max-width:520px){.vr-row{grid-template-columns:112px 1fr;gap:8px}.vr-label{flex-direction:column;align-items:flex-start;justify-content:center;gap:0;height:36px;line-height:1.2}.vr-name{font-size:12px}.vr-track{height:36px}.vr-lane{margin-right:16px}.vr-bar{font-size:0;padding:0}.vr-tick:nth-child(even){display:none}.vr-control{grid-template-columns:1fr auto}.vr-control-label{grid-column:1/-1}}.dark .vr{--vr-accent:#9675FF;--vr-accent-fg:#ffffff;--vr-marker:#e8e8ea;--vr-fg:#e8e8ea;--vr-muted:#9a9aa5;--vr-border:#2d2d34;--vr-bg:#1b1b20}"}],"page":{"pagePath":"build-pieces/piece-reference/triggers/overview","slug":"/build-pieces/piece-reference/triggers/overview","pageMetadata":{"title":"Overview","description":null,"href":"/build-pieces/piece-reference/triggers/overview"},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Heading,Table,Tip}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Tip)_missingMdxReference(`Tip`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`This tutorial explains three techniques for creating triggers:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`Polling`}),`: Periodically call endpoints to check for changes.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`Webhooks`}),`: Listen to user events through a single URL.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`App Webhooks (Subscriptions)`}),`: Use a developer app (using OAuth2) to receive all authorized user events at a single URL (Not Supported).`]}),`\n`]}),`\n`,_jsx(_components.p,{children:`to create new trigger run following command,`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`npm`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` run`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` cli`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` triggers`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` create`})]}),`\n`]})})}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`Piece Folder Name`}),`: This is the name associated with the folder where the trigger resides. It helps organize and categorize triggers within the piece.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`Trigger Display Name`}),`: The name users see in the interface, conveying the trigger’s purpose clearly.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`Trigger Description`}),`: A brief, informative text in the UI, guiding users about the trigger’s function and purpose.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`Trigger Technique`}),`: Specifies the trigger type - either polling or webhook.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`1`,id:`trigger-structure`,children:`Trigger Structure`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`18`,language:`typescript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`typescript`,children:_jsxs(_components.code,{language:`typescript`,numberOfLines:`18`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`export`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` createNewIssue`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` createTrigger`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`({`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` auth:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` PieceAuth`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` |`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` undefined`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`string`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// Unique name across the piece.`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` displayName:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` string`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// Display name on the interface.`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`\tdescription:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` string`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// Description for the action`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` sampleData:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` null`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` type:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` TriggerStrategy`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:`WEBHOOK`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` |`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` TriggerStrategy`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:`POLLING`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` |`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` TriggerStrategy`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:`APP_WEBHOOK`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` props:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {}; `}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// Required properties from the user.`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` // Set up the trigger. See \"When the hooks run\" below.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`\tonEnable`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: (`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`ctx`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`=>`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {},`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` // Tear the trigger down. See \"When the hooks run\" below.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`\tonDisable`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` (`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`ctx`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`=>`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {},`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` // Trigger implementation, It takes context as parameter.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` // should returns an array of payload, each payload considered`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` run:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` async`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` run`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`ctx`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:` unknown`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`[] `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`=>`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {}`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`})`})}),`\n`]})})}),`\n`,_jsx(Tip,{children:_jsxs(_components.p,{children:[`It’s important to note that the `,_jsx(_components.code,{children:`run`}),` method returns an array. The reason for\nthis is that a single polling can contain multiple triggers, so each item in\nthe array will trigger the flow to run.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`when-the-hooks-run`,children:`When the hooks run`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`What the user does`}),_jsx(_components.th,{children:`Polling trigger`}),_jsx(_components.th,{children:`Webhook / app webhook trigger`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Turns the flow on`}),_jsxs(_components.td,{children:[`new `,_jsx(_components.code,{children:`onEnable`})]}),_jsxs(_components.td,{children:[`new `,_jsx(_components.code,{children:`onEnable`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Turns the flow off, or deletes it`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`onDisable`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`onDisable`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Publishes a flow that is off, turning it on`}),_jsxs(_components.td,{children:[`new `,_jsx(_components.code,{children:`onEnable`})]}),_jsxs(_components.td,{children:[`new `,_jsx(_components.code,{children:`onEnable`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Republishes a running flow with the same piece, piece version, trigger and inputs`}),_jsx(_components.td,{children:`nothing, keeps polling on the same schedule`}),_jsxs(_components.td,{children:[`old `,_jsx(_components.code,{children:`onDisable`}),`, then new `,_jsx(_components.code,{children:`onEnable`}),`, both with `,_jsx(_components.code,{children:`isRepublish: true`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Republishes a running flow with the same trigger and inputs on a newer piece version`}),_jsxs(_components.td,{children:[`new `,_jsx(_components.code,{children:`onEnable`}),` with `,_jsx(_components.code,{children:`isRepublish: true`}),` (the old `,_jsx(_components.code,{children:`onDisable`}),` is skipped)`]}),_jsxs(_components.td,{children:[`old `,_jsx(_components.code,{children:`onDisable`}),`, then new `,_jsx(_components.code,{children:`onEnable`}),`, both with `,_jsx(_components.code,{children:`isRepublish: true`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Republishes a running flow with a different trigger or changed inputs`}),_jsxs(_components.td,{children:[`old `,_jsx(_components.code,{children:`onDisable`}),`, then new `,_jsx(_components.code,{children:`onEnable`})]}),_jsxs(_components.td,{children:[`old `,_jsx(_components.code,{children:`onDisable`}),`, then new `,_jsx(_components.code,{children:`onEnable`})]})]})]})]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`A failing `,_jsx(_components.code,{children:`onDisable`}),` is logged and ignored, so the flow still turns off. A failing `,_jsx(_components.code,{children:`onEnable`}),` fails the publish or the turn-on.`]}),`\n`,_jsxs(_components.li,{children:[`A patch upgrade in the builder (e.g. 0.5.1 → 0.5.3) keeps the trigger’s inputs. A minor or major upgrade resets them to the new version’s defaults. Which row applies depends on the inputs that get published: if they match the running flow, `,_jsx(_components.code,{children:`context.isRepublish`}),` is still `,_jsx(_components.code,{children:`true`}),`; if they differ, the trigger starts fresh. Don’t rely on an upgrade to clear stored state.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`context.isRepublish`}),` is `,_jsx(_components.code,{children:`true`}),` only in the rows that say so. Use it to keep stored state that is still valid, rather than starting fresh. See `,_jsx(_components.a,{href:`/build-pieces/piece-reference/triggers/polling-trigger#republishing-a-running-flow`,children:`Polling Trigger → Republishing a running flow`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`A polling trigger’s `,_jsx(_components.code,{children:`onDisable`}),` still runs when the flow is turned off or deleted, but not on an upgrade, because the trigger keeps running. If `,_jsx(_components.code,{children:`onEnable`}),` creates something outside the store, save its id in the store and, when `,_jsx(_components.code,{children:`context.isRepublish`}),` is `,_jsx(_components.code,{children:`true`}),` and the id exists, reuse it instead of creating another. If the trigger needs to register and unregister with every version, make it a webhook trigger: those run both hooks on every republish.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`test`}),` runs when the user loads sample data in the builder, and `,_jsx(_components.code,{children:`run`}),` runs on every poll or incoming event. Neither is part of turning the flow on or off.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`context-object`,children:`Context Object`}),`\n`,_jsx(_components.p,{children:`The Context object contains multiple helpful pieces of information and tools that can be useful while developing.`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`12`,language:`typescript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`typescript`,children:_jsxs(_components.code,{language:`typescript`,numberOfLines:`12`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// Store: A simple, lightweight key-value store that is helpful when you are developing triggers that persist between runs, used to store information like the last polling date.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`await`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` context`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`store`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`put`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'_lastFetchedDate'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`new`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` Date`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`());`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` lastFetchedData`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` await`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` context`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`store`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`get`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'_lastFetchedDate'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`new`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` Date`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`());`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// Webhook URL: A unique, auto-generated URL that will trigger the flow. Useful when you need to develop a trigger based on webhooks.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`context`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`webhookUrl`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// Payload: Contains information about the HTTP request sent by the third party. It has three properties: status, headers, and body.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`context`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`payload`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// PropsValue: Contains the information filled by the user in defined properties.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`context`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`propsValue`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`]})})}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`App Webhooks (Not Supported)`})}),`\n`,_jsxs(_components.p,{children:[`Certain services, such as `,_jsx(_components.code,{children:`Slack`}),` and `,_jsx(_components.code,{children:`Square`}),`, only support webhooks at the developer app level.\nThis means that all authorized users for the app will be sent to the same endpoint. While this technique will be supported soon, for now, a workaround is to perform polling on the endpoint.`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Overview","description":null,"href":"/build-pieces/piece-reference/triggers/overview"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Trigger Structure","slug":"trigger-structure","depth":1,"children":[]},{"title":"When the hooks run","slug":"when-the-hooks-run","depth":2,"children":[]},{"title":"Context Object","slug":"context-object","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"activepieces","siteName":"Activepieces","title":"Overview - Activepieces","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-27T17:47:06.371Z","originalFileLocation":"build-pieces/piece-reference/triggers/overview.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"application-name\" content=\"Activepieces\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/activepieces/p9XH-af1QM0u3PKd/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/docs/mintlify-assets/_mintlify/favicons/activepieces/p9XH-af1QM0u3PKd/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/activepieces/p9XH-af1QM0u3PKd/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/activepieces/p9XH-af1QM0u3PKd/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/activepieces/p9XH-af1QM0u3PKd/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/activepieces/p9XH-af1QM0u3PKd/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/activepieces/p9XH-af1QM0u3PKd/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/activepieces/p9XH-af1QM0u3PKd/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/activepieces/p9XH-af1QM0u3PKd/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Overview - Activepieces\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Activepieces\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://www.activepieces.com/docs/build-pieces/piece-reference/triggers/overview\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://activepieces.mintlify.app/_mintlify/api/og/v2?division=Triggers\u0026amp;title=Overview\u0026amp;theme=4762f02fd8bc74d552ceb2c7\u0026amp;signature=f41753d9a6495322b84c339d231a25e917ad239c21acb5b874adf66e5c18379d\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Overview - Activepieces\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://activepieces.mintlify.app/_mintlify/api/og/v2?division=Triggers\u0026amp;title=Overview\u0026amp;theme=4762f02fd8bc74d552ceb2c7\u0026amp;signature=f41753d9a6495322b84c339d231a25e917ad239c21acb5b874adf66e5c18379d\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/docs/mintlify-assets/_mintlify/favicons/activepieces/p9XH-af1QM0u3PKd/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Activepieces\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#9675FF\">\u003clink data-mint-head rel=\"canonical\" href=\"https://www.activepieces.com/docs/build-pieces/piece-reference/triggers/overview\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/docs/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/docs/build-pieces/piece-reference/triggers/overview.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://www.activepieces.com/#organization\",\"name\":\"Activepieces\",\"url\":\"https://www.activepieces.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/activepieces/fJ5Tlm8YTN5F2Mlz/resources/logo/light.svg?fit=max\u0026auto=format\u0026n=fJ5Tlm8YTN5F2Mlz\u0026q=85\u0026s=45ca3c4c50e981e74952921edc9a9fa2\"}},{\"@type\":\"WebSite\",\"@id\":\"https://www.activepieces.com/docs#website\",\"name\":\"Activepieces\",\"url\":\"https://www.activepieces.com/docs\",\"publisher\":{\"@id\":\"https://www.activepieces.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://www.activepieces.com/docs/build-pieces/piece-reference/triggers/overview#webpage\",\"url\":\"https://www.activepieces.com/docs/build-pieces/piece-reference/triggers/overview\",\"name\":\"Overview\",\"dateModified\":\"2026-10-27T17:47:06.371Z\",\"isPartOf\":{\"@id\":\"https://www.activepieces.com/docs#website\"},\"breadcrumb\":{\"@id\":\"https://www.activepieces.com/docs/build-pieces/piece-reference/triggers/overview#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://www.activepieces.com/docs/build-pieces/piece-reference/triggers/overview#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Piece Reference\",\"item\":\"https://www.activepieces.com/docs/build-pieces/piece-reference/authentication\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Overview\",\"item\":\"https://www.activepieces.com/docs/build-pieces/piece-reference/triggers/overview\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://www.activepieces.com/docs/build-pieces/piece-reference/triggers/overview#article\",\"headline\":\"Overview\",\"name\":\"Overview\",\"url\":\"https://www.activepieces.com/docs/build-pieces/piece-reference/triggers/overview\",\"mainEntityOfPage\":{\"@id\":\"https://www.activepieces.com/docs/build-pieces/piece-reference/triggers/overview#webpage\"},\"dateModified\":\"2026-10-27T17:47:06.371Z\",\"publisher\":{\"@id\":\"https://www.activepieces.com/#organization\"},\"isPartOf\":{\"@id\":\"https://www.activepieces.com/docs#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Activepieces\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Activepieces","nav":{"global":{},"tabs":[{"tab":"Get Started","pages":[{"title":"Get Started","href":"/overview/welcome"}]},{"tab":"Install Activepieces","pages":[{"title":"Install Activepieces","href":"/install/overview"}]},{"tab":"Enterprise Control","icon":"crown","pages":[{"title":"Enterprise Control","href":"/admin-guide/overview"}]},{"tab":"Build Pieces","groups":[{"group":"Build a Piece","pages":[{"title":"Overview","icon":"hand-wave","href":"/build-pieces/building-pieces/overview"},{"title":"Build Pieces with AI Using the Piece Builder Skill","sidebarTitle":"Build with AI (Recommended)","icon":"wand-magic-sparkles","href":"/build-pieces/building-pieces/build-with-ai"},{"group":"Build Manually","icon":"hammer","pages":[{"title":"Start Building","icon":"hammer","href":"/build-pieces/building-pieces/start-building"},{"title":"Fork Repository","icon":"circle-1","href":"/build-pieces/building-pieces/setup-fork"},{"title":"Development setup","icon":"circle-2","href":"/build-pieces/building-pieces/development-setup"},{"title":"Create Piece Definition","icon":"circle-3","href":"/build-pieces/building-pieces/piece-definition"},{"title":"Add Piece Authentication","icon":"circle-4","href":"/build-pieces/building-pieces/piece-authentication"},{"title":"Create Action","icon":"circle-5","href":"/build-pieces/building-pieces/create-action"},{"title":"Create Trigger","icon":"circle-6","href":"/build-pieces/building-pieces/create-trigger"}]},{"group":"Sharing Pieces","icon":"share","pages":[{"title":"Overview","href":"/build-pieces/sharing-pieces/overview"},{"title":"Contribute","href":"/build-pieces/sharing-pieces/contribute"},{"title":"Community (Public NPM)","href":"/build-pieces/sharing-pieces/community"},{"title":"Private","href":"/build-pieces/sharing-pieces/private"}]}]},{"group":"Piece Reference","pages":[{"title":"Piece Auth","description":"Learn about piece authentication","icon":"key","href":"/build-pieces/piece-reference/authentication"},{"group":"Triggers","icon":"bolt","pages":[{"title":"Overview","href":"/build-pieces/piece-reference/triggers/overview"},{"title":"Polling Trigger","description":"Periodically call endpoints to check for changes","href":"/build-pieces/piece-reference/triggers/polling-trigger"},{"title":"Webhook Trigger","href":"/build-pieces/piece-reference/triggers/webhook-trigger"}]},{"title":"Props","icon":"input-pipe","href":"/build-pieces/piece-reference/properties"},{"title":"Props Validation","icon":"magnifying-glass","href":"/build-pieces/piece-reference/properties-validation"},{"title":"Flow Control","icon":"Joystick","href":"/build-pieces/piece-reference/flow-control"},{"title":"Persistent Storage","icon":"database","href":"/build-pieces/piece-reference/persistent-storage"},{"title":"Files","icon":"file","href":"/build-pieces/piece-reference/files"},{"title":"Large File Streaming","icon":"water","href":"/build-pieces/piece-reference/large-file-streaming"},{"title":"External Libraries","icon":"npm","href":"/build-pieces/piece-reference/external-libraries"},{"title":"Piece versioning","icon":"code-compare","href":"/build-pieces/piece-reference/piece-versioning"},{"title":"Piece Examples","icon":"brackets-curly","href":"/build-pieces/piece-reference/examples"},{"title":"Enable Custom API Calls","icon":"webhook","href":"/build-pieces/piece-reference/custom-api-calls"},{"title":"Output Schema","icon":"table-list","href":"/build-pieces/piece-reference/output-schema"},{"title":"AI Metadata","icon":"robot","href":"/build-pieces/piece-reference/ai-metadata"},{"title":"Piece i18n","icon":"globe","href":"/build-pieces/piece-reference/i18n"}]},{"group":"Misc","pages":[{"title":"Build Custom Pieces","icon":"box","href":"/build-pieces/misc/build-piece"},{"title":"Bundling Pieces","icon":"cube","href":"/build-pieces/misc/bundling-pieces"},{"title":"Publish Custom Pieces","icon":"upload","href":"/build-pieces/misc/publish-piece"},{"title":"Custom Pieces CI/CD","icon":"hammer","href":"/build-pieces/misc/pieces-ci-cd"},{"title":"Migrate from Nx to Turbo","icon":"rotate","href":"/build-pieces/misc/migrate-nx-to-turbo"},{"title":"Migrate Pieces to Self-Contained Bundles","icon":"boxes-stacked","href":"/build-pieces/misc/migrate-pieces-to-bundles"},{"title":"Setup Private Fork","icon":"code-branch","href":"/build-pieces/misc/private-fork"},{"title":"Testing Pieces","icon":"flask-vial","href":"/build-pieces/misc/testing-pieces"},{"title":"Dev Containers","icon":"docker","href":"/build-pieces/misc/dev-container"},{"title":"GitHub Codespaces","icon":"github","href":"/build-pieces/misc/codespaces"}]}]},{"tab":"Embed SDK","pages":[{"title":"Embed SDK","href":"/embedding/overview"}]},{"tab":"API Reference","pages":[{"title":"API Reference","href":"/endpoints/overview"}]}]},"title":"Overview - Activepieces","buildId":"dpl_3rfzHPCtRhDFBbetXZ3oLkN5tjmA","deploymentId":"dpl_3rfzHPCtRhDFBbetXZ3oLkN5tjmA","dynamics":[],"chunks":[]}