{"id":"notification-orchestration","slug":"notification-orchestration","name":"Multi-channel notification orchestration","shortName":"Multi-channel notification orchestration","problemStatement":"Route email/SMS/push/Slack with preferences and templates.","whenNotTopPick":"Single channel — talk to Resend/Twilio directly.","categoryIds":["cat-comms"],"depotPickProviderId":"courier","depotPickRationale":"dx + capability orchestration.","runnersUpIds":["novu","knock","twilio","resend","onesignal","ably","customer-io","bird","svix"],"weights":{"capabilityFit":0.25,"pricePerformance":0.18,"latencyReliability":0.15,"developerDx":0.15,"privacyPosture":0.1,"lockInRisk":0.07,"maturity":0.1},"methodologyNotes":"dx + capability orchestration.","tags":["notification"],"depth":{"whenNotToUse":{"text":"Single channel — talk to Resend/Twilio directly.","source":"editorial `whenNotTopPick` (data/jtbds.json)"},"whenNotToUseReason":null,"runnerUp":{"providerId":"novu","name":"Novu","overallForJob":8.22,"pickOverallForJob":8.09,"beatsPickOn":["pricePerformance","privacyPosture","lockInRisk"],"source":"first resolvable entry of the job's editorially ranked `runnersUpIds`; scores are stored job-weighted scores"},"runnerUpReason":null,"lockIn":{"pickLockInRisk":5,"runnerUpLockInRisk":2.8,"scale":"0–10 stored curated estimate; higher = more lock-in (worse)","pickExitSignals":[],"runnerUpExitSignals":["open source (provider tag `oss`)","self-hostable (provider tag `self-host`)"],"pickNotes":[],"selfHostFallback":[],"migration":"Runner-up Novu has lower stored lock-in risk (2.8 vs 5, 0–10, higher = more lock-in).","migrationReason":null,"derivedFrom":"stored lockInRisk scores, provider tags (oss, self-host, openai-compat, open-models), free rows that list this job, and verbatim provider notes. No migration guide was invented."}},"freshness":{"pick":{"score":{"asOf":"2026-09-14","ageDays":44,"stale":true,"staleAfterDays":30,"reason":null},"lastReviewed":{"asOf":"2026-09-14","ageDays":44,"stale":true,"staleAfterDays":30,"reason":null},"sourceCheck":{"checkedAt":"2026-10-27","sourceUrls":1,"sourcesReachable":1,"pricingRows":0,"pricingRowsReconfirmed":0,"note":"A source re-check confirms the page is reachable and, for pricing rows, that the stored amount and SKU name appear on it. It does not re-derive or change the score.","reason":null}}},"depotPick":{"id":"courier","slug":"courier","name":"Courier","tagline":"Use when your agent/product notifies across many channels with preferences. Skip if you only send email.","overall":8.09},"runnersUp":[{"id":"novu","slug":"novu","name":"Novu","tagline":"OSS-friendly Courier/Knock alternative. Pick when you want self-host or run-based economics; Knock for agent…","overall":8.22},{"id":"knock","slug":"knock","name":"Knock","tagline":"Best agent-native notification fabric (toolkit + human-in-the-loop). Courier remains Depot orchestration…","overall":8.22},{"id":"twilio","slug":"twilio","name":"Twilio","tagline":"Default when agents need SMS/voice globally. For email-only, don't drag Twilio in.","overall":8.26},{"id":"resend","slug":"resend","name":"Resend","tagline":"Depot default for app/agent transactional email. Migrate to Postmark/SendGrid only for specific…","overall":8.57},{"id":"onesignal","slug":"onesignal","name":"OneSignal","tagline":"Push-first notify peer with pinned Free/$19 Growth card (Round 9 high). Prefer Knock/Courier when agents…","overall":8.09},{"id":"ably","slug":"ably","name":"Ably","tagline":"Depot pick for realtime agent↔user channels (token streaming, presence, multiplayer agent UIs). Not a…","overall":8.29},{"id":"customer-io","slug":"customer-io","name":"Customer.io","tagline":"Best when agents need behavioral messaging + txn in one vendor. Prefer Resend for pure transactional DX…","overall":8.15},{"id":"bird","slug":"bird","name":"Bird (ex-MessageBird)","tagline":"WhatsApp/SMS peer especially for EU (ex-MessageBird). Twilio remains default SMS/voice toolkit; Bird when…","overall":7.88},{"id":"svix","slug":"svix","name":"Svix","tagline":"Depot pick for outbound-webhooks. Use Hookdeck when the job is inbound event gateway/debugging; Courier/Knock…","overall":8.52}]}