Automated reports and alerts that tell us something is wrong before a customer does.Every alert below except the AI chat alerts ends up in Box. Box groups repeats of the same alert into one issue by fingerprint and starts a Claude agent only for a new issue, or for a resolved one that comes back. The agent investigates, files the Linear ticket for the team that owns the cause, and opens a pull request when the fix is small. Resolve the Box issue once its fix has shipped, and never ignore one: an ignored issue never starts an agent again.
Runs that run out of memory end with status MEMORY_LIMIT_EXCEEDED. They are not failed queue jobs, so queue alerts never see them. This report surfaces them so we can reach out with a fix (bigger dedicated workers, flow optimization) before the customer escalates.
Runs: as a daily cron job on the DevOps machine, reading the read-only Postgres replica and storing one row per platform per day in ClickHouse.
Who: enterprise Cloud platforms only, every platform with at least one OOM run the previous day.
Where: one Box signal per day (enterprise-oom-<day>), listing each platform by id with OOM runs, flows affected and OOM rate. The agent finds why each platform runs out of memory from the replica and the OOM history, decides whether it is the customer’s flow design or a platform or piece bug, and posts a short summary to Discord. Nothing is sent on a quiet day.
Customer data: platform, project and flow names go only into a private artifact for the Activepieces org. The Linear ticket, pull requests and the Discord summary carry platform ids and the artifact link.
History: the Enterprise OOM Tracker dashboard in HyperDX shows trends and every past day’s report.
If it stops: a Betterstack heartbeat alerts when the daily job has not run.
ClickStack (HyperDX) alerts on the production logs, all sending to the Box Inbox webhook. Each one fires separately per group, so each failing error signature or struggling host sends its own alert.
Alert
Fires when
Checked every
Grouped by
Queue job failure
a workerJobs job logs job.failed
15 min
error signature
Worker RSS high
a worker’s memory passes 950 MB (the container is killed at about 1 GB)
15 min
worker host
App RSS high
an app server’s memory passes 3,500 MB
15 min
app host
Worker event-loop wedged
a worker’s event-loop delay (p99) passes 90 s
5 min
worker host
App event-loop wedged
an app server’s event-loop delay (p99) passes 5 s
5 min
app host
Where: the HyperDX alerts page. Each alert’s message links to the matching log search.
Memory and event-loop data comes from the system.snapshot event every process logs once a minute.
Two ClickStack alerts owned by the AI team (AI-20) post to the #ai-team Discord channel instead of Box: Failed chat turns per hour (fires at 8 or more) and Avg input tokens per chat turn, checked daily (fires above 750k, about 1.25 times normal).
The Benchmark GitHub Actions workflow (.github/workflows/benchmark.yml) runs every night at 03:00 UTC, once per worker shape (shared and dedicated).
Results: each scheduled run stores one row per shape in ClickHouse. The Nightly Benchmark dashboard in HyperDX charts throughput, latency, queue wait and worker resources over time.
Regression alert:benchmark/detect-regression.mjs compares the run with the median of the last 14 runs and, when a metric is more than 5% worse on 2 runs in a row, sends a signal to Box’s Errors API, which starts a Claude agent to find the culprit commit. The signal carries its own investigation prompt and the trailing runs with their SHAs. It stays silent until a shape has 3 runs of history.
Pipeline alert: on scheduled runs only, when anything in the job fails, its last step sends a bench-pipeline-<shape> signal to Box so an agent reads the failed logs.
Dedup: Box groups signals by fingerprint (bench-regression-<shape>, bench-pipeline-<shape>), so a regression that persists starts one agent, not one per night. Resolve the Box issue once the fix has shipped. An accepted regression stays open until the 14-run baseline absorbs it (about 7 nights), then gets resolved; resolving earlier reopens it and starts a new agent. Never ignore a bench issue: ignored issues never start an agent, so that shape would go silent for good.
Manual runs (workflow_dispatch) skip the ClickHouse writes and both Box signal steps. A green manual run does not prove these steps work. Check the next scheduled run after changing them or their secrets.
{"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":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","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":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"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":"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":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","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}],"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":"handbook/engineering/playbooks/alerts","slug":"/handbook/engineering/playbooks/alerts","pageMetadata":{"title":"Alerts","icon":"bell","description":null,"href":"/handbook/engineering/playbooks/alerts"},"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`,p:`p`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{Heading,Table,Warning}=_components;if(!Heading)_missingMdxReference(`Heading`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`Automated reports and alerts that tell us something is wrong before a customer does.`}),`\n`,_jsxs(_components.p,{children:[`Every alert below except the AI chat alerts ends up in `,_jsx(_components.strong,{children:`Box`}),`. Box groups repeats of the same alert into one issue by fingerprint and starts a Claude agent only for a new issue, or for a resolved one that comes back. The agent investigates, files the Linear ticket for the team that owns the cause, and opens a pull request when the fix is small. Resolve the Box issue once its fix has shipped, and never ignore one: an ignored issue never starts an agent again.`]}),`\n`,_jsx(Heading,{level:`2`,id:`enterprise-oom-report`,children:`Enterprise OOM Report`}),`\n`,_jsxs(_components.p,{children:[`Runs that run out of memory end with status `,_jsx(_components.code,{children:`MEMORY_LIMIT_EXCEEDED`}),`. They are not failed queue jobs, so queue alerts never see them. This report surfaces them so we can reach out with a fix (bigger dedicated workers, flow optimization) before the customer escalates.`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Runs:`}),` as a daily cron job on the DevOps machine, reading the read-only Postgres replica and storing one row per platform per day in ClickHouse.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Who:`}),` enterprise Cloud platforms only, every platform with at least one OOM run the previous day.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Where:`}),` one Box signal per day (`,_jsx(_components.code,{children:`enterprise-oom-\u003cday>`}),`), listing each platform by id with OOM runs, flows affected and OOM rate. The agent finds why each platform runs out of memory from the replica and the OOM history, decides whether it is the customer’s flow design or a platform or piece bug, and posts a short summary to Discord. Nothing is sent on a quiet day.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Customer data:`}),` platform, project and flow names go only into a private artifact for the Activepieces org. The Linear ticket, pull requests and the Discord summary carry platform ids and the artifact link.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`History:`}),` the `,_jsx(_components.strong,{children:`Enterprise OOM Tracker`}),` dashboard in HyperDX shows trends and every past day’s report.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`If it stops:`}),` a Betterstack heartbeat alerts when the daily job has not run.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`queue-and-host-alerts`,children:`Queue and Host Alerts`}),`\n`,_jsxs(_components.p,{children:[`ClickStack (HyperDX) alerts on the production logs, all sending to the `,_jsx(_components.strong,{children:`Box Inbox`}),` webhook. Each one fires separately per group, so each failing error signature or struggling host sends its own alert.`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Alert`}),_jsx(_components.th,{children:`Fires when`}),_jsx(_components.th,{children:`Checked every`}),_jsx(_components.th,{children:`Grouped by`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Queue job failure`}),_jsxs(_components.td,{children:[`a `,_jsx(_components.code,{children:`workerJobs`}),` job logs `,_jsx(_components.code,{children:`job.failed`})]}),_jsx(_components.td,{\"data-numeric\":`true`,children:`15 min`}),_jsx(_components.td,{children:`error signature`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Worker RSS high`}),_jsx(_components.td,{children:`a worker’s memory passes 950 MB (the container is killed at about 1 GB)`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`15 min`}),_jsx(_components.td,{children:`worker host`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`App RSS high`}),_jsx(_components.td,{children:`an app server’s memory passes 3,500 MB`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`15 min`}),_jsx(_components.td,{children:`app host`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Worker event-loop wedged`}),_jsx(_components.td,{children:`a worker’s event-loop delay (p99) passes 90 s`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`5 min`}),_jsx(_components.td,{children:`worker host`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`App event-loop wedged`}),_jsx(_components.td,{children:`an app server’s event-loop delay (p99) passes 5 s`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`5 min`}),_jsx(_components.td,{children:`app host`})]})]})]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Where:`}),` the `,_jsx(_components.a,{href:`https://hyperdx.clickhouse.cloud/alerts`,children:`HyperDX alerts page`}),`. Each alert’s message links to the matching log search.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Memory and event-loop data`}),` comes from the `,_jsx(_components.code,{children:`system.snapshot`}),` event every process logs once a minute.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`ai-chat-alerts`,children:`AI Chat Alerts`}),`\n`,_jsxs(_components.p,{children:[`Two ClickStack alerts owned by the AI team (AI-20) post to the `,_jsx(_components.code,{children:`#ai-team`}),` Discord channel instead of Box: `,_jsx(_components.strong,{children:`Failed chat turns per hour`}),` (fires at 8 or more) and `,_jsx(_components.strong,{children:`Avg input tokens per chat turn`}),`, checked daily (fires above 750k, about 1.25 times normal).`]}),`\n`,_jsx(Heading,{level:`2`,id:`nightly-benchmark`,children:`Nightly Benchmark`}),`\n`,_jsxs(_components.p,{children:[`The `,_jsx(_components.code,{children:`Benchmark`}),` GitHub Actions workflow (`,_jsx(_components.code,{children:`.github/workflows/benchmark.yml`}),`) runs every night at 03:00 UTC, once per worker shape (`,_jsx(_components.code,{children:`shared`}),` and `,_jsx(_components.code,{children:`dedicated`}),`).`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Results:`}),` each scheduled run stores one row per shape in ClickHouse. The `,_jsx(_components.strong,{children:`Nightly Benchmark`}),` dashboard in HyperDX charts throughput, latency, queue wait and worker resources over time.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Regression alert:`}),` `,_jsx(_components.code,{children:`benchmark/detect-regression.mjs`}),` compares the run with the median of the last 14 runs and, when a metric is more than 5% worse on 2 runs in a row, sends a signal to Box’s Errors API, which starts a Claude agent to find the culprit commit. The signal carries its own investigation prompt and the trailing runs with their SHAs. It stays silent until a shape has 3 runs of history.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Pipeline alert:`}),` on scheduled runs only, when anything in the job fails, its last step sends a `,_jsx(_components.code,{children:`bench-pipeline-\u003cshape>`}),` signal to Box so an agent reads the failed logs.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Dedup:`}),` Box groups signals by fingerprint (`,_jsx(_components.code,{children:`bench-regression-\u003cshape>`}),`, `,_jsx(_components.code,{children:`bench-pipeline-\u003cshape>`}),`), so a regression that persists starts one agent, not one per night. Resolve the Box issue once the fix has shipped. An accepted regression stays open until the 14-run baseline absorbs it (about 7 nights), then gets resolved; resolving earlier reopens it and starts a new agent. Never ignore a bench issue: ignored issues never start an agent, so that shape would go silent for good.`]}),`\n`]}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[`Manual runs (`,_jsx(_components.code,{children:`workflow_dispatch`}),`) skip the ClickHouse writes and both Box signal steps. A green manual run does not prove these steps work. Check the next scheduled run after changing them or their secrets.`]})})]})}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":"Alerts","icon":"bell","description":null,"href":"/handbook/engineering/playbooks/alerts"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Enterprise OOM Report","slug":"enterprise-oom-report","depth":2,"children":[]},{"title":"Queue and Host Alerts","slug":"queue-and-host-alerts","depth":2,"children":[]},{"title":"AI Chat Alerts","slug":"ai-chat-alerts","depth":2,"children":[]},{"title":"Nightly Benchmark","slug":"nightly-benchmark","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"activepieces","siteName":"Activepieces","title":"Alerts - Activepieces","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-11T13:10:12.286Z","originalFileLocation":"handbook/engineering/playbooks/alerts.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=\"Alerts - Activepieces\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Activepieces\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://www.activepieces.com/docs/handbook/engineering/playbooks/alerts\">\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=Engineering+Playbooks\u0026amp;title=Alerts\u0026amp;theme=dfb81ba8f2fd7cb079f80ce8\u0026amp;signature=8ffdbdbb9b57e7b1688f62d48b804a559d877328bc4436040d13a23e1ed38df3\">\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=\"Alerts - Activepieces\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://activepieces.mintlify.site/docs/_mintlify/api/og/v2?division=Engineering+Playbooks\u0026amp;title=Alerts\u0026amp;theme=dfb81ba8f2fd7cb079f80ce8\u0026amp;signature=8ffdbdbb9b57e7b1688f62d48b804a559d877328bc4436040d13a23e1ed38df3\">\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/handbook/engineering/playbooks/alerts\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/docs/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/docs/handbook/engineering/playbooks/alerts.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/handbook/engineering/playbooks/alerts#webpage\",\"url\":\"https://www.activepieces.com/docs/handbook/engineering/playbooks/alerts\",\"name\":\"Alerts\",\"dateModified\":\"2026-11-11T13:10:12.286Z\",\"isPartOf\":{\"@id\":\"https://www.activepieces.com/docs#website\"},\"breadcrumb\":{\"@id\":\"https://www.activepieces.com/docs/handbook/engineering/playbooks/alerts#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://www.activepieces.com/docs/handbook/engineering/playbooks/alerts#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"About\",\"item\":\"https://www.activepieces.com/docs/about/i18n\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Company Handbook\",\"item\":\"https://www.activepieces.com/docs/handbook/overview\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Engineering Playbooks\",\"item\":\"https://www.activepieces.com/docs/handbook/engineering/playbooks/run-ee\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Alerts\",\"item\":\"https://www.activepieces.com/docs/handbook/engineering/playbooks/alerts\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://www.activepieces.com/docs/handbook/engineering/playbooks/alerts#article\",\"headline\":\"Alerts\",\"name\":\"Alerts\",\"url\":\"https://www.activepieces.com/docs/handbook/engineering/playbooks/alerts\",\"mainEntityOfPage\":{\"@id\":\"https://www.activepieces.com/docs/handbook/engineering/playbooks/alerts#webpage\"},\"dateModified\":\"2026-11-11T13:10:12.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/handbook/engineering/playbooks/alerts.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","href":"/flows/formula-reference"},{"title":"Project Variables","icon":"brackets-curly","href":"/flows/project-variables"},{"title":"Publishing Flows","icon":"bolt","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","description":null,"href":"/handbook/engineering/playbooks/queue-metrics"},{"title":"Alerts","icon":"bell","href":"/handbook/engineering/playbooks/alerts"},{"title":"Cloud Infrastructure","icon":"server","description":null,"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":"Alerts - Activepieces","buildId":"dpl_FGqRJUoJWfds4SqdfFGJ2v1vVNSs","deploymentId":"dpl_FGqRJUoJWfds4SqdfFGJ2v1vVNSs","dynamics":[],"chunks":[]}