Store a reusable value once and reference it from any step in any flow
Project Variables are named values, scoped to a single project, that you can reference from any step in any flow. Use them for things you’d otherwise paste into a dozen steps: an API key, a webhook URL, a Slack channel ID, a feature flag.Unlike step output, a variable’s value isn’t tied to a single flow run. It stays the same until you change it, and it stays out of your flow’s steps, so rotating a key means editing it once instead of hunting through every flow that uses it.
If you’re storing credentials for a specific piece (Slack, Stripe, Google Sheets, etc.), create a connection for that piece instead. Variables are for plain values you want to reuse, not for piece authentication.
Insert {{variables['NAME']}} into any step input. The easiest way is from the Data Selector: open the Variables tab and click the variable you want, it’s inserted at your cursor automatically.You can also copy a variable’s reference from the Variables page: open the row’s menu and click Copy reference.
A variable’s value is encrypted at rest and never displayed in the variables list or the edit dialog. To change it, open the variable and click Rotate value, then enter the new value.Members with write access (Editor or Admin) can retrieve the plaintext through the reveal endpoint (POST /v1/variables/:id/reveal) with their signed-in session. API keys cannot reveal a value. On platforms with audit logs enabled, each reveal is recorded as a VARIABLE_VALUE_REVEALED event.
Deleting a variable doesn’t touch the flows that reference it. Any step still referencing {{variables['NAME']}} will fail at runtime the next time it runs.
Before deleting a variable, search your flows for its reference and remove or replace those steps first.
Use the Variables API with a platform API key to create, list, update, and delete variables in any project of your platform. This is how you store per-tenant secrets when you embed Activepieces.
Reading and writing variables are separate permissions (READ_VARIABLE, WRITE_VARIABLE) tied to your project role, same as any other resource. A member with read-only access can use existing variables in flows but can’t create, edit, or delete them.
{"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":""},"feedback":{"edits":true,"issues":true,"agentFeedback":true,"thumbs":true},"entitlements":{"AI_CHAT":{"status":"DISABLED"},"WEB_MCP":{"status":"DISABLED"},"NARRATION":{"status":"DISABLED"}},"buildId":"6af5dd320b3858d5ef25d52b","clientVersion":"0.0.4124","searchFilterCounts":[{"language":"default","tag":"API Reference","count":81},{"language":"default","tag":"Endpoints","count":78},{"language":"default","tag":"Enterprise Control","count":75},{"language":"default","tag":"Guides","count":74},{"language":"default","tag":"Get Started","count":71},{"language":"default","tag":"Install Activepieces","count":51},{"language":"default","tag":"Audit Logs","count":44},{"language":"default","tag":"About","count":42},{"language":"default","tag":"Observability","count":41},{"language":"default","tag":"Build Pieces","count":40}]},"assistantConfig":{"enableStarterQuestions":true,"deflection":{"enabled":true,"email":"[email protected]","showHelpButton":true}},"basePath":"/docs","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[],"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}],"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;box-sizing:border-box;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 *::before,.pp *::after{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{display:flex;align-items:center;height:36px;border:1px solid var(--pp-border);border-radius:6px;padding:0 10px;font-size:14px;color:var(--pp-fg);background:var(--pp-bg)}.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-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;font-weight:500;border-radius:999px;padding:2px 6px 2px 9px}.pp-chip .pp-x{color:var(--pp-primary);opacity:.7;font-size:13px}.pp-chips{display:flex;flex-wrap:wrap;gap:6px;align-items:center;min-height:40px;border:1px solid var(--pp-border);border-radius:6px;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);border:1px solid var(--pp-border);border-radius:6px;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% / 0.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-toolbar{display:flex;align-items:center;gap:2px;padding:5px 6px;border-bottom:1px solid var(--pp-border);background:#fcfcfd}.pp-rt-btn{display:flex;align-items:center;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% / 0.05)}.pp-rcard .pp-ic{width:28px;height:28px;border-radius:6px;background:var(--pp-soft);display:flex;align-items:center;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;align-items:center;border:1px solid var(--pp-border);border-radius:6px;overflow:hidden;height:36px}.pp-stepper button{width:34px;height:100%;border:none;background:var(--pp-bg);color:var(--pp-fg);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% / 0.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{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{display:flex;align-items:center;gap:6px;margin:10px 12px;border:1px solid var(--pp-border);border-radius:9px;padding:8px 12px;width:fit-content;color:var(--pp-primary);font-size:13px;font-weight:600}.pp-fb-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid var(--pp-border);border-radius:14px;padding:11px 14px;margin-top:10px}.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-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{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-rcard .pp-ic{color:#c9c8d2}.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;box-sizing:border-box;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 *::before,.vr *::after{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{font-size:13px;font-weight:600;margin-bottom:12px}.vr-marker-label{position:absolute;top:0;transform:translateX(-50%);font-size:13px;font-weight:600;white-space:nowrap;transition:left 120ms ease}.vr-labels,.vr-bars{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:transparent;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-tick{position:absolute;top:0;padding-top:12px;transform:translateX(-50%);font-size:12px;color:var(--vr-muted);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;font-size:12px;color:var(--vr-muted)}.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":"flows/project-variables","slug":"/flows/project-variables","pageMetadata":{"title":"Project Variables","icon":"brackets-curly","description":"Store a reusable value once and reference it from any step in any flow","href":"/flows/project-variables"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Store a reusable value once and reference it from any step in any flow\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,ol:`ol`,p:`p`,strong:`strong`,..._provideComponents(),...props.components},{Heading,OptimizedImage,Tip,Warning}=_components;if(!Heading)_missingMdxReference(`Heading`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);if(!Tip)_missingMdxReference(`Tip`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`Project Variables are named values, scoped to a single project, that you can reference from any step in any flow. Use them for things you’d otherwise paste into a dozen steps: an API key, a webhook URL, a Slack channel ID, a feature flag.`}),`\n`,_jsx(_components.p,{children:`Unlike step output, a variable’s value isn’t tied to a single flow run. It stays the same until you change it, and it stays out of your flow’s steps, so rotating a key means editing it once instead of hunting through every flow that uses it.`}),`\n`,_jsx(Tip,{children:_jsx(_components.p,{children:`If you’re storing credentials for a specific piece (Slack, Stripe, Google Sheets, etc.), create a connection for that piece instead. Variables are for plain values you want to reuse, not for piece authentication.`})}),`\n`,_jsx(Heading,{level:`2`,id:`creating-a-variable`,children:`Creating a variable`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`Go to `,_jsx(_components.strong,{children:`Variables`}),` in the left sidebar, or open the `,_jsx(_components.strong,{children:`Variables`}),` tab in a step’s Data Selector while editing a flow.`]}),`\n`,_jsxs(_components.li,{children:[`Click `,_jsx(_components.strong,{children:`New variable`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`Enter a `,_jsx(_components.strong,{children:`Name`}),`. Names can only contain letters, numbers, and underscores (e.g. `,_jsx(_components.code,{children:`STRIPE_PROD`}),`, `,_jsx(_components.code,{children:`SLACK_CHANNEL_ID`}),`).`]}),`\n`,_jsxs(_components.li,{children:[`Enter the `,_jsx(_components.strong,{children:`Value`}),` and click `,_jsx(_components.strong,{children:`Create`}),`.`]}),`\n`]}),`\n`,_jsx(OptimizedImage,{src:`https://mintcdn.com/activepieces/o_Bw8pIaWCsuFQYY/resources/screenshots/project-variables/new-variable-dialog.png?fit=max\u0026auto=format\u0026n=o_Bw8pIaWCsuFQYY\u0026q=85\u0026s=9a2bff91692055250fd9198a4837a15c`,alt:`Creating a project variable`,\"data-og-width\":`1280`,width:`1280`,\"data-og-height\":`577`,height:`577`,\"data-path\":`resources/screenshots/project-variables/new-variable-dialog.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/activepieces/o_Bw8pIaWCsuFQYY/resources/screenshots/project-variables/new-variable-dialog.png?w=280\u0026fit=max\u0026auto=format\u0026n=o_Bw8pIaWCsuFQYY\u0026q=85\u0026s=127fac9f7f13d842e693a592acdaacaf 280w, https://mintcdn.com/activepieces/o_Bw8pIaWCsuFQYY/resources/screenshots/project-variables/new-variable-dialog.png?w=560\u0026fit=max\u0026auto=format\u0026n=o_Bw8pIaWCsuFQYY\u0026q=85\u0026s=d52bc09eeb3bc40f43ea2c5140b325a5 560w, https://mintcdn.com/activepieces/o_Bw8pIaWCsuFQYY/resources/screenshots/project-variables/new-variable-dialog.png?w=840\u0026fit=max\u0026auto=format\u0026n=o_Bw8pIaWCsuFQYY\u0026q=85\u0026s=68b990b4eb2c5a303ea9d57e01550d4c 840w, https://mintcdn.com/activepieces/o_Bw8pIaWCsuFQYY/resources/screenshots/project-variables/new-variable-dialog.png?w=1100\u0026fit=max\u0026auto=format\u0026n=o_Bw8pIaWCsuFQYY\u0026q=85\u0026s=5a378ba95677232b095d1077c6ec06e6 1100w, https://mintcdn.com/activepieces/o_Bw8pIaWCsuFQYY/resources/screenshots/project-variables/new-variable-dialog.png?w=1650\u0026fit=max\u0026auto=format\u0026n=o_Bw8pIaWCsuFQYY\u0026q=85\u0026s=136ff69eedef403616a40623ea7f1358 1650w, https://mintcdn.com/activepieces/o_Bw8pIaWCsuFQYY/resources/screenshots/project-variables/new-variable-dialog.png?w=2500\u0026fit=max\u0026auto=format\u0026n=o_Bw8pIaWCsuFQYY\u0026q=85\u0026s=c35dcdd70613be51d55f84652861d6e2 2500w`}),`\n`,_jsx(Heading,{level:`2`,id:`referencing-a-variable-in-a-flow`,children:`Referencing a variable in a flow`}),`\n`,_jsxs(_components.p,{children:[`Insert `,_jsx(_components.code,{children:`{{variables['NAME']}}`}),` into any step input. The easiest way is from the Data Selector: open the `,_jsx(_components.strong,{children:`Variables`}),` tab and click the variable you want, it’s inserted at your cursor automatically.`]}),`\n`,_jsx(OptimizedImage,{src:`https://mintcdn.com/activepieces/Dhz0g00bGK6cNUcW/resources/screenshots/project-variables/data-selector-variables-tab.png?fit=max\u0026auto=format\u0026n=Dhz0g00bGK6cNUcW\u0026q=85\u0026s=93450560de1cce3034d2e083b9e4f7fc`,alt:`Inserting a variable from the Data Selector`,\"data-og-width\":`1280`,width:`1280`,\"data-og-height\":`577`,height:`577`,\"data-path\":`resources/screenshots/project-variables/data-selector-variables-tab.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/activepieces/Dhz0g00bGK6cNUcW/resources/screenshots/project-variables/data-selector-variables-tab.png?w=280\u0026fit=max\u0026auto=format\u0026n=Dhz0g00bGK6cNUcW\u0026q=85\u0026s=f7d31c9a2c003da8a2f659254fc21621 280w, https://mintcdn.com/activepieces/Dhz0g00bGK6cNUcW/resources/screenshots/project-variables/data-selector-variables-tab.png?w=560\u0026fit=max\u0026auto=format\u0026n=Dhz0g00bGK6cNUcW\u0026q=85\u0026s=b5471c61e37c1064ddb85ef493f23349 560w, https://mintcdn.com/activepieces/Dhz0g00bGK6cNUcW/resources/screenshots/project-variables/data-selector-variables-tab.png?w=840\u0026fit=max\u0026auto=format\u0026n=Dhz0g00bGK6cNUcW\u0026q=85\u0026s=9bc42a881156f8465a1c366ac18725c3 840w, https://mintcdn.com/activepieces/Dhz0g00bGK6cNUcW/resources/screenshots/project-variables/data-selector-variables-tab.png?w=1100\u0026fit=max\u0026auto=format\u0026n=Dhz0g00bGK6cNUcW\u0026q=85\u0026s=86f17e445f52c4305fafaa527955292d 1100w, https://mintcdn.com/activepieces/Dhz0g00bGK6cNUcW/resources/screenshots/project-variables/data-selector-variables-tab.png?w=1650\u0026fit=max\u0026auto=format\u0026n=Dhz0g00bGK6cNUcW\u0026q=85\u0026s=6cf8c87a28e772ab2b77ddd844fb46e1 1650w, https://mintcdn.com/activepieces/Dhz0g00bGK6cNUcW/resources/screenshots/project-variables/data-selector-variables-tab.png?w=2500\u0026fit=max\u0026auto=format\u0026n=Dhz0g00bGK6cNUcW\u0026q=85\u0026s=05d6f5de61a58c7410a5d96a70abd989 2500w`}),`\n`,_jsxs(_components.p,{children:[`You can also copy a variable’s reference from the Variables page: open the row’s menu and click `,_jsx(_components.strong,{children:`Copy reference`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`rotating-a-value`,children:`Rotating a value`}),`\n`,_jsxs(_components.p,{children:[`A variable’s value is encrypted at rest and never displayed in the variables list or the edit dialog. To change it, open the variable and click `,_jsx(_components.strong,{children:`Rotate value`}),`, then enter the new value.`]}),`\n`,_jsxs(_components.p,{children:[`Members with write access (Editor or Admin) can retrieve the plaintext through the reveal endpoint (`,_jsx(_components.code,{children:`POST /v1/variables/:id/reveal`}),`) with their signed-in session. API keys cannot reveal a value. On platforms with audit logs enabled, each reveal is recorded as a `,_jsx(_components.code,{children:`VARIABLE_VALUE_REVEALED`}),` event.`]}),`\n`,_jsx(Heading,{level:`2`,id:`deleting-a-variable`,children:`Deleting a variable`}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[`Deleting a variable doesn’t touch the flows that reference it. Any step still referencing `,_jsx(_components.code,{children:`{{variables['NAME']}}`}),` will fail at runtime the next time it runs.`]})}),`\n`,_jsx(_components.p,{children:`Before deleting a variable, search your flows for its reference and remove or replace those steps first.`}),`\n`,_jsx(Heading,{level:`2`,id:`managing-variables-from-your-backend`,children:`Managing variables from your backend`}),`\n`,_jsxs(_components.p,{children:[`Use the `,_jsx(_components.a,{href:`/endpoints/variables/schema`,children:`Variables API`}),` with a platform API key to create, list, update, and delete variables in any project of your platform. This is how you store per-tenant secrets when you embed Activepieces.`]}),`\n`,_jsx(Heading,{level:`2`,id:`permissions`,children:`Permissions`}),`\n`,_jsxs(_components.p,{children:[`Reading and writing variables are separate permissions (`,_jsx(_components.code,{children:`READ_VARIABLE`}),`, `,_jsx(_components.code,{children:`WRITE_VARIABLE`}),`) tied to your project role, same as any other resource. A member with read-only access can use existing variables in flows but can’t create, edit, or delete them.`]})]})}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":"Project Variables","icon":"brackets-curly","description":"Store a reusable value once and reference it from any step in any flow","href":"/flows/project-variables"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Creating a variable","slug":"creating-a-variable","depth":2,"children":[]},{"title":"Referencing a variable in a flow","slug":"referencing-a-variable-in-a-flow","depth":2,"children":[]},{"title":"Rotating a value","slug":"rotating-a-value","depth":2,"children":[]},{"title":"Deleting a variable","slug":"deleting-a-variable","depth":2,"children":[]},{"title":"Managing variables from your backend","slug":"managing-variables-from-your-backend","depth":2,"children":[]},{"title":"Permissions","slug":"permissions","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"activepieces","siteName":"Activepieces","title":"Project Variables - Activepieces","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-06T13:52:00.286Z","originalFileLocation":"flows/project-variables.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=\"description\" content=\"Store a reusable value once and reference it from any step in any flow\">\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=\"Project Variables - Activepieces\">\u003cmeta data-mint-head property=\"og:description\" content=\"Store a reusable value once and reference it from any step in any flow\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Activepieces\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://www.activepieces.com/docs/flows/project-variables\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://activepieces.mintlify.site/docs/_mintlify/api/og/v2?division=Flows\u0026amp;title=Project+Variables\u0026amp;description=Store+a+reusable+value+once+and+reference+it+from+any+step+in+any+flow\u0026amp;theme=dfb81ba8f2fd7cb079f80ce8\u0026amp;signature=abe0d0525c89797a646c8700992ac3c70039ec10bdc34ece816bc30194e769d0\">\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=\"Project Variables - Activepieces\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Store a reusable value once and reference it from any step in any flow\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://activepieces.mintlify.site/docs/_mintlify/api/og/v2?division=Flows\u0026amp;title=Project+Variables\u0026amp;description=Store+a+reusable+value+once+and+reference+it+from+any+step+in+any+flow\u0026amp;theme=dfb81ba8f2fd7cb079f80ce8\u0026amp;signature=abe0d0525c89797a646c8700992ac3c70039ec10bdc34ece816bc30194e769d0\">\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/flows/project-variables\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/docs/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/docs/flows/project-variables.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/flows/project-variables#webpage\",\"url\":\"https://www.activepieces.com/docs/flows/project-variables\",\"name\":\"Project Variables\",\"description\":\"Store a reusable value once and reference it from any step in any flow\",\"dateModified\":\"2026-10-06T13:52:00.286Z\",\"isPartOf\":{\"@id\":\"https://www.activepieces.com/docs#website\"},\"breadcrumb\":{\"@id\":\"https://www.activepieces.com/docs/flows/project-variables#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://www.activepieces.com/docs/flows/project-variables#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Flows\",\"item\":\"https://www.activepieces.com/docs/flows/building-flows\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Project Variables\",\"item\":\"https://www.activepieces.com/docs/flows/project-variables\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://www.activepieces.com/docs/flows/project-variables#article\",\"headline\":\"Project Variables\",\"name\":\"Project Variables\",\"description\":\"Store a reusable value once and reference it from any step in any flow\",\"url\":\"https://www.activepieces.com/docs/flows/project-variables\",\"mainEntityOfPage\":{\"@id\":\"https://www.activepieces.com/docs/flows/project-variables#webpage\"},\"dateModified\":\"2026-10-06T13:52:00.286Z\",\"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\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Activepieces\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/docs/flows/project-variables.md","siteName":"Activepieces","nav":{"global":{},"tabs":[{"tab":"Get Started","groups":[{"group":"Overview","pages":[{"sidebarTitle":"Welcome","title":"Welcome to Activepieces","icon":"hand-wave","href":"/overview/welcome"}]},{"group":"Agents","pages":[{"title":"Agents","sidebarTitle":"Overview","icon":"robot","href":"/agents/overview"},{"title":"Create an agent","sidebarTitle":"Create an agent","icon":"pen","href":"/agents/create"},{"title":"Manage an agent","sidebarTitle":"Manage an agent","icon":"folder-tree","href":"/agents/manage"},{"title":"Agent Tools","sidebarTitle":"Agent Tools","icon":"wrench","href":"/agents/tools"},{"title":"Agent Knowledge","sidebarTitle":"Agent Knowledge","icon":"book","href":"/agents/knowledge"},{"title":"Agents in Flows","sidebarTitle":"Agents in Flows","icon":"sitemap","href":"/agents/in-flows"}]},{"group":"Flows","pages":[{"title":"Building Flows","icon":"hammer","href":"/flows/building-flows"},{"title":"AI Router","icon":"shuffle","href":"/flows/ai-router"},{"title":"Passing Data","icon":"wand-sparkles","href":"/flows/passing-data"},{"title":"Data Manipulation","icon":"function","href":"/flows/using-formulas"},{"title":"Data Manipulation Functions","icon":"book","description":"Every data manipulation function, grouped by category","href":"/flows/formula-reference"},{"title":"Project Variables","icon":"brackets-curly","href":"/flows/project-variables"},{"title":"Publishing Flows","icon":"bolt","description":"Make your flow work by publishing your updates","href":"/flows/publishing-flows"},{"title":"Flow Approvals","icon":"shield-check","href":"/flows/flow-approvals"},{"title":"Debugging Runs","icon":"bug","href":"/flows/debugging-runs"},{"title":"Managing Memory in Your Flows","sidebarTitle":"Managing Memory","icon":"brain-circuit","href":"/flows/managing-memory"},{"title":"Managing Queues","icon":"clock","href":"/flows/managing-queues"},{"title":"Version History","icon":"clock","href":"/flows/versioning"},{"title":"Template Library","icon":{"name":"puzzle","style":"regular","library":"fontawesome"},"href":"/flows/template-library"},{"title":"Builder Canvas Controls","icon":"gamepad-alt","href":"/flows/canvas-controls"}]},{"group":"Tables","pages":[{"title":"Tables","sidebarTitle":"Overview","icon":"table","href":"/tables/overview"},{"title":"Fields and records","sidebarTitle":"Fields and records","icon":"table-columns","href":"/tables/fields"},{"title":"Using tables in flows","sidebarTitle":"Use in flows","icon":"sitemap","href":"/tables/in-flows"},{"title":"Using tables with agents","sidebarTitle":"Use with agents","icon":"robot","href":"/tables/with-agents"},{"title":"Import and export","sidebarTitle":"Import and export","icon":"file-csv","href":"/tables/import-export"}]},{"group":"Build with AI","pages":[{"title":"Build with Chat","sidebarTitle":"Chat","icon":"message","href":"/ai/chat"},{"title":"MCP Server","icon":"plug","href":"/mcp/overview"}]},{"group":"About","pages":[{"title":"i18n Translations","icon":"language","href":"/about/i18n"},{"title":"Changelog","icon":"code-commit","href":"/about/changelog"},{"title":"License","icon":"file-contract","href":"/about/license"},{"group":"Company Handbook","icon":"book","pages":[{"group":"Handbook","pages":[{"title":"Activepieces Handbook","icon":"book","href":"/handbook/overview"},{"title":"Teams","icon":"cube","href":"/handbook/team"}]},{"group":"Hiring","icon":"user","pages":[{"title":"Our Hiring Process","icon":"user-plus","href":"/handbook/hiring/hiring"},{"title":"Our Roles \u0026 Levels","icon":"layer-group","href":"/handbook/hiring/levels"},{"title":"Our Team Structure","icon":"users","href":"/handbook/hiring/team"},{"title":"Our Compensation","icon":"money-bill-wave","href":"/handbook/hiring/compensation"}]},{"group":"Customer Support","icon":"hero","pages":[{"title":"Overview","icon":"cube","href":"/handbook/customer-support/overview"},{"title":"Tone \u0026 Communication","icon":"comments","href":"/handbook/customer-support/tone"},{"title":"How to use Pylon","icon":"hexagon","href":"/handbook/customer-support/pylon"},{"title":"How to handle Requests","icon":"ticket","href":"/handbook/customer-support/handle-requests"}]},{"group":"Engineering Onboarding","icon":"code","pages":[{"title":"Overview","icon":"code","href":"/handbook/engineering/overview"},{"title":"Onboarding Check List","icon":"lightbulb","href":"/handbook/engineering/onboarding/onboarding-check-list"},{"title":"Engineering Workflow","icon":"lightbulb","href":"/handbook/engineering/onboarding/how-we-work"},{"title":"On-Call","icon":"phone","href":"/handbook/engineering/onboarding/on-call"},{"title":"Handling Downtime","icon":"turn-down","href":"/handbook/engineering/onboarding/downtime-incident"},{"title":"Stack \u0026 Tools","icon":"hammer","href":"/handbook/engineering/onboarding/stack"},{"title":"Release Cycle","icon":"clock","href":"/handbook/engineering/onboarding/release-cycle"}]},{"group":"Engineering Playbooks","icon":"code","pages":[{"title":"Run Enterprise Edition","icon":"building","href":"/handbook/engineering/playbooks/run-ee"},{"title":"Building for Self-Hosting","icon":"server","href":"/handbook/engineering/playbooks/building-for-self-hosting"},{"title":"Setup BetterStack","icon":"bell-ring","href":"/handbook/engineering/playbooks/setup-betterstack"},{"title":"Releases \u0026 Deployment","icon":"flask","href":"/handbook/engineering/playbooks/releases"},{"title":"Canary Deployment","icon":"bird","href":"/handbook/engineering/playbooks/canary-deployment"},{"title":"BullMQ Prometheus Metrics","icon":"chart-line","href":"/handbook/engineering/playbooks/queue-metrics"},{"title":"Alerts","icon":"bell","href":"/handbook/engineering/playbooks/alerts"},{"title":"Cloud Infrastructure","icon":"server","href":"/handbook/engineering/playbooks/infrastructure"},{"title":"Database Migrations","icon":"database","href":"/handbook/engineering/playbooks/database-migration"},{"title":"Structured Logging","icon":"list-tree","href":"/handbook/engineering/playbooks/structured-logging"},{"title":"Security Advisory Response","icon":"shield-halved","href":"/handbook/engineering/playbooks/security-advisory-response"},{"title":"Feature Announcement","icon":"bullhorn","href":"/handbook/engineering/playbooks/product-announcement"},{"title":"Frontend Best Practices","icon":"lightbulb","href":"/handbook/engineering/playbooks/frontend-best-practices"},{"title":"E2E Tests","icon":"clipboard-list","href":"/handbook/engineering/playbooks/e2e-tests"},{"title":"Testing Strategy","icon":"shield-check","href":"/handbook/engineering/playbooks/testing-strategy"},{"title":"Connect Claude to Chrome","icon":"link","href":"/handbook/engineering/playbooks/connect-claude-to-chrome"},{"title":"AI Engineering Guide","icon":"wand-magic-sparkles","href":"/handbook/engineering/playbooks/ai-engineering-guide"},{"title":"PR Review SLA \u0026 Code Owners","icon":"user-check","href":"/handbook/engineering/playbooks/pr-review-sla"},{"group":"Postmortems","icon":"triangle-exclamation","pages":[{"title":"Delay Step Infinite Loop — Mar 19, 2026","href":"/handbook/engineering/postmortems/2026-03-19-redis-and-delay-overload"},{"title":"Redis QueueEvents Overload — Mar 20, 2026","href":"/handbook/engineering/postmortems/2026-03-redis-queue-events-overload"},{"title":"Infrastructure Upgrade — Mar 16–17, 2026","href":"/handbook/engineering/postmortems/2026-03-16-infrastructure-upgrade"}]}]},{"group":"Product","icon":"tool","pages":[{"title":"Interface Design","icon":"palette","href":"/handbook/product/interface-design"}]}]}]}]},{"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","pages":[{"title":"Build Pieces","href":"/build-pieces/building-pieces/overview"}]},{"tab":"Embed SDK","pages":[{"title":"Embed SDK","href":"/embedding/overview"}]},{"tab":"API Reference","pages":[{"title":"API Reference","href":"/endpoints/overview"}]}]},"basePath":"","title":"Project Variables - Activepieces","buildId":"dpl_FGqRJUoJWfds4SqdfFGJ2v1vVNSs","deploymentId":"dpl_FGqRJUoJWfds4SqdfFGJ2v1vVNSs","dynamics":["a74be98ba7"],"chunks":["zoom-image-lightbox-w91LmHWE.js","lightbox-handle-r17bVUz3.js"]}