Workflowsreplaces RoutinesInternal · strategy review · July 2026all example data fictional

One noun replaces two. Slack's model, finished.

The team asked for automation a Slack user can translate on sight. So we adopt Slack's Workflow Builder model wholesale — triggers, steps, forms, variables, buttons, branches — and finish it where Slack's version is documented to break. Routines don't compete with Workflows; they become one trigger type. A Routine was always a workflow that starts on a schedule.

trigger→ steps→ checkpoint→ run→ verified
The engine already agrees

platform-definition.md §7: Routine (= playbook in code = workflow in the data model). The durable, journaled engine — replay-on-resume, restart-surviving approvals — is complete and named a defensible IP pillar (§4). This rename aligns the UI with the code, not against it. Zero engine work. The build is an authoring surface — which is exactly what Slack's Workflow Builder is.

The source material

How Slack's Workflow Builder actually works.

Faithfully, before we improve anything. A Slack workflow is one trigger plus up to 100 sequential steps, built in a no-code canvas, published to a workspace. This section is the part a Slack-fluent teammate should be able to nod along to.

choose 1 trigger→ add ≤100 steps→ connect apps→ publish→ runs · activity log
Trigger 1/7

From a link

A shareable button; only works clicked inside Slack.

Trigger 2/7

From a webhook

External events start the workflow with a payload.

Trigger 3/7

On a schedule

Dates, times, cadences.

Trigger 4/7

Message is posted

Keyword match — in one chosen channel.

Trigger 5/7

Person joins channel

Fires per join, per channel.

Trigger 6/7

Emoji reaction used

A specific emoji, in a specific channel.

Trigger 7/7

List item updated

Fires when a Slack List changes; optionally per field.

Plus

Connector triggers

Third-party events — a Salesforce record updates, a GitHub issue opens.

Steps · category 1

Slack steps

Send a message, send a form, add to channel, delay, set variables. Available to everyone.

Steps · category 2

Connector steps

~70+ apps — Google Sheets "Add to spreadsheet," Zoom "Create a meeting." App approval may apply.

Steps · category 3

Custom steps

Org-specific actions a developer builds with the Deno Slack SDK and deploys via CLI.

MachineryWhat it does
FormsCollect structured input from the person who ran the workflow.
VariablesData flows step to step — "insert a variable" anywhere downstream (who triggered it, form answers, connector output).
ButtonsPause the workflow until clicked. Custom text and color, single-click mode, restrict-to-people, expiration dates.
BranchesConditional paths — up to 15 conditions per branch.
AI step"Generate AI Response" — a plain-language prompt plus attached knowledge sources (channels, canvases, lists, files). Writes text: summaries, translations, drafts. Slack also generates whole workflows from a description.
GovernanceWorkflow managers (edit, unpublish, delete) · publish flow · who can find, use, copy · admin dashboard of published workflows · in-app activity logs.
PricingPaid plans only. Workflows with custom functions or 2+ connector steps are "premium" — usage-billed past a monthly run allotment.
slack.com/help · Build a workflow slack.com/help · Workflow Builder FAQ slack.com/blog · AI steps in Workflow Builder slack.com/help · Connectors for Workflow Builder
The gaps

Twelve places the builder breaks down.

These aren't our opinions — they're the documented complaints of reviewers, and the exact feature list of WorkflowBuddy, a third-party project that exists only to patch Workflow Builder's holes. Each gap gets an ID; the rest of this document answers them by name.

IDGapConsequence
G1No step-level testingThe only way to test a workflow is to run it — live, against real channels and real tools.
G2One trigger per workflowThe same five steps behind a schedule and a button = two workflows to keep in sync.
G3Single-channel scopeChannel-scoped triggers bind to one channel. Ten channels = ten copies.
G4<100 connectorsZapier has thousands. If the app isn't on the list, the workflow ends at a webhook.
G5No loops"For each client…" cannot be said. Steps are duplicated per item, by hand.
G6Weak failure handlingA failed step ends the run. No retries, no resume, notifications are thin.
G7Logs aren't exportableActivity is viewable in-app only — nothing for audits or debugging offline.
G8No versioningEditing a published workflow is destructive. In-flight runs and pending buttons can be orphaned.
G9Coarse delaysDelays tick in minutes; "wait until they reply" doesn't exist.
G10One-way onlyWorkflows push outward. Nothing watches the other system and syncs back.
G11Complexity cliffEasy at 4 steps, unmanageable at 40 — a flat list with no abstraction.
G12Premium billing surprisesAdd a second connector step and the workflow silently changes billing class.
github.com/happybara-io/WorkflowBuddy xray.tech · Slack Workflows review coolfiresolutions.com · Workflow Builder critique unito.io · Workflow Builder review
Rosetta

Every Slack word, translated.

The rule: keep Slack's name unless our surface genuinely differs. A Slack admin should be able to rebuild their workflows here without learning a new language — and notice, term by term, where ours goes further.

Slack saysai.com saysWhat changes
WorkflowWorkflowSame noun, deliberately. One trigger becomes up to five. G2
Workflow BuilderThe BuilderSame canvas — but describing the workflow in English is the primary door in.
ChannelRoomTriggers can watch one Room, several, or the whole workspace. G3
Slack stepsWorkspace stepsSame set — plus Wait (until a condition) and Loop. G5 G9
Connector stepsConnector stepsSame idea, honest count: 13 connectors today vs Slack's ~70+. G4
Custom steps Deno SDK + CLIApp stepsBuilt by describing a Skill in chat — App Builder, no SDK, no deploy, no paid gate.
"Generate AI Response"Agent stepSlack's AI writes text. Our agent acts — tools, connectors, a budget, and success checks, verified by the maker/checker. G4 G10
ButtonCheckpointSame pause, different guarantee: journaled, survives restarts and edits, expiry escalates instead of vanishing. G8
FormFormUnchanged.
VariableVariableUnchanged — {{client.name}} flows step to step.
Branch ≤15 conditionsBranchUnchanged, no condition cap worth advertising.
(no equivalent)Test runReads execute, external writes are stubbed — see exactly what would have been sent. G1
Activity logRun historyPer-run status, checkpoint decisions, verified strips — and it exports. G7
Workflow managerWorkflow managerUnchanged. Publish flow, find/use/copy permissions — unchanged.
Premium workflow(retired)No billing classes. Runs meter against pooled credits, estimated before they run. G12
Slack Connect use(out of scope)Cross-workspace workflows are not in this pass; installable templates are the nearest story.
product-spec.html · glossaryplatform-definition.md §4 · §7slack.com/help · Build a workflow
The real thing

Slack's actual UI, next to ours.

Product screenshots from Slack's own pages — the Builder as it actually looks and navigates — each paired with the ai.com equivalent. Read the left side as the muscle memory we inherit, the right side as what changes. All Slack imagery © Slack / Salesforce, cited for internal comparison.

Slack · how you get there
sidebar · More→ Automations→ Workflow Builder · its own window→ publish · share a link

Workflows live in an app-level surface, one modal window deep. Runs speak as a bot; activity stays inside the Builder; the workflow is a place you visit.

ai.com · how you get there
any chat→ "build a workflow" · compiled plan in-thread→ canvas · publish→ runs in Rooms · checkpoints in DM

No separate surface to find. The Builder is a conversation that compiles to a contract; runs, checkpoints, and history come to you where you already are.

PAIR 1Starting one — English in, then what?

Both products now open with a sentence. The difference is what the sentence buys you: Slack drafts a workflow, then drops you back into form-based editing. Here the compiled plan is the interface — steps, sources, checkpoint, test run, all before anything real happens.

Slack · Workflow Builder
Slack Workflow Builder window titled 'Send a weekly standup message' with an AI prompt field reading 'What do you want to automate?' filled with 'Remind my team to post their updates every Monday at 9:00am.' and a Finish Up button
"What do you want to automate?" — AI generation sits at the top of a new workflow. After it drafts, you edit each step through config panels, and the trigger stays singular. © Slack · slack.com/features/workflow-automation
ai.com · the Builder
Every Monday, pull last week's Jira activity per client, draft an update email for each, and send after I approve.
Here's the plan — 5 steps, one checkpoint:
1 · Pull last week's activity · Jira 2 · Summarize per client · Agent step 3 · Draft 6 updates · Gmail 4 · Send to each contact · checkpoint 5 · File replies, close the run
The compiled plan is the contract. Same English door — but the answer is an editable, testable plan with the checkpoint already placed, in the chat you were in.
PAIR 2The step catalog — what you can bolt on.

Slack's "Discover workflow steps" panel is genuinely good IA: search, collections, quick steps, then apps. We keep the shape and change the contents — two of our four categories don't exist there.

Slack · Workflow Builder
Slack's Discover workflow steps panel showing a searchable left rail (Canvas, Channels, Forms, Lists, Messages, Users, Utilities, Slack AI, Asana, Giphy, Github, Google Calendar), collection cards for Sales, Meetings and Customer Support, and quick steps including Generate AI response
The step picker: Slack features first, then connectors, then "Generate AI response" as a quick step. Custom steps appear here only after a developer builds and deploys them with the Deno SDK. © Slack · slack.com/blog
ai.com · the Builder
Workspace steps · = Slack steps Send messageAsk with a formBranchWait · until a conditionLoop · for each
Connector steps · 13 today JiraGmailSheets…
Agent steps · no Slack equivalent Agent · a sub-goal with tools, budget, checks
App steps · = custom steps, no SDK Describe a Skill in chat · App Builder builds it
Same picker IA, four categories. The cyan chips are the ones Slack's catalog can't offer: waits with conditions, loops, an agent that acts, and custom steps without a developer.
PAIR 3The AI step — writing vs doing.

This is the sharpest single difference, visible in the config panels themselves. Slack's AI step takes instructions and sources and returns text. Our Agent step takes a sub-goal and returns verified work.

Slack · "Generate AI response"
Slack's Generate AI response step configuration with an Instructions rich-text field reading 'Summarize the latest updates from each project channel', Sources listing channels #proj-beacon and #proj-atlas plus files, and a Preview prompt response button
Instructions + sources → a message. Prompt, attach channels and files, preview, save. Powerful for summaries and translations; it cannot touch a tool, wait for a reply, or verify itself. © Slack · slack.com/blog · AI steps
ai.com · Agent step
2
Agent · summarize per client for each clienttools: Jira read · budget: 40 credits · check: every client covered
Agent
·
Agent · chase overdue invoices in Xerono Xero connector exists — the agent acts anyway, then reports
Agent
Result verified by the maker/checker — not the agent's word.
A sub-goal, not a prompt. Tools, a budget, success checks — and the maker/checker verifies the result before the run continues. This is also the honest answer to their 70-connector lead.
PAIR 4The canvas — logic you can see.

Slack's canvas is clean and we deliberately keep its reading rhythm: condition pills, variable chips in blue, step cards in a column. Three things are missing from theirs — a loop, an actor, and a pause that survives.

Slack · Workflow Builder
Slack Workflow Builder canvas for a PTO Request workflow showing a branch condition 'Name of the button clicked is Approve', steps to add a thumbs-up reaction, send a message to the person who submitted the form, and create a calendar event, with a Publish button
Branching, variables, buttons — real and good. The {} pills are variables; the condition routes on a button click. But the button is the whole approval story: edit the workflow or let it expire, and the pause is gone. © Slack · slack.com/features/workflow-automation
ai.com · the Builder canvas
3
Branch · anything shipped this week?else: skip the client, stay quiet
Workspace
3a
Draft update email · Gmailuses {{client.summary}} · {{client.contact}}
Connector
4
Checkpoint — send 6 emailsjournaled · survives restart & edits · expiry escalates
Checkpoint
Same grammar, stronger pause. Variables and branches read identically — a Slack admin loses nothing. The checkpoint is the Button rebuilt on the journal.
PAIR 5Starting it — where the workflow lives.

In Slack, distribution is a button: paste the workflow's link in a channel or pin it in a canvas, and it only works clicked inside Slack. Ours also answers to a sentence.

Slack · link trigger in a canvas
A Slack canvas titled 'Welcome to #help-it!' with an embedded 'Submit IT request' workflow card and a green Start Workflow button
"Start Workflow." The link trigger embedded in a canvas — Slack's best distribution move, and the one users actually see. One trigger per workflow; the button is dead outside Slack. © Slack · slack.com/features/workflow-automation
ai.com · triggers on one workflow
SCHEDULE Mondays 8:00 ASKED IN CHAT "run the client report" LINK OR BUTTON Rooms · DMs · Command Center + 2 more available
@mika run the client report for Acme now
Running — one-off, outside the schedule. Checkpoint before anything sends.
The button, plus a sentence. Up to five triggers on the same workflow — the schedule, the button, and "when asked in chat," which is the door Slack doesn't have.
Watch out: these are Slack's marketing captures — the everyday Builder has more chrome and more modals than the screenshots admit, and our right-hand panels are mocks, not shipped UI. The comparison is honest about models, not about polish we haven't built.
slack.com/features/workflow-automationslack.com/blog · new Workflow Builder · AI stepsproduct-spec.html · T4.2
The noun flip

Routine retires; Workflow takes the chair.

The ratified glossary says Routine (deprecated synonyms: playbook · workflow). This document reverses that row — because the team wants Slack translatability, and because the code was never on the glossary's side: the data model has called these workflows all along.

WordFate
RoutineRetired. A Routine becomes "a workflow with a schedule trigger." One release of dual labeling — "Workflows, formerly Routines" — then the old noun goes. The rail-playbooks testids finally die with it.
runSurvives unchanged. Still the metered unit and the history unit. Run 142 keeps its number.
checkpointSurvives — and gains a job. It is the official translation of Slack's Button.
verified done · verified stripSurvives untouched.
test runSurvives. Canonical over "dry run."
workflow · playbookThe glossary row inverts: Workflow (deprecated synonyms: routine · playbook).
Migration mechanics

Zero engine work — the engine's data model is already workflow (platform-definition.md §7). Existing Routines auto-render as schedule-triggered workflows; run history, checkpoint decisions, and verified strips carry over byte for byte. The cost is editorial: a same-day sweep of product-spec.html (glossary, T4.2, T5-E2), pricing.html (Free card, Team bullet), roadmap-deck.html, and roadmap-content.md.

Watch out: the glossary was ratified weeks ago; flipping it costs credibility. This needs a logged decision with a date and an owner — not a silent edit — or the docs will contradict each other by Friday.
product-spec.html · glossary "Routine"platform-definition.md §7 vocabularyroadmap-content.md · ratified vocabulary
Specification

The ai.com Workflow, defined.

A Workflow is up to 5 triggers, up to 100 sequential steps, and at least one checkpoint before anything external — the policy line the engine already enforces: external steps can never drop below one checkpoint unless workspace policy allows. Steps run in order; variables flow forward; runs are journaled end to end.

Eight triggers. Seven are Slack's, translated.

ai.com triggerSlack ancestorDelta
On a scheduleOn a scheduleAbsorbs Routines entirely. Scheduled in plain language — "every Monday 8:00."
From a link or buttonFrom a linkWorks in Rooms, DMs, and the Command Center — not one channel. G3
When asked in chatnone — ours alone@agent "run the client report now." The conversational door Slack doesn't have.
When a message is postedMessage posted (keyword)Keywords across one Room, several, or all. G3
When a person joinsPerson joins channelA Room or the workspace — onboarding workflows in one place.
When a reaction is usedEmoji reactionKept 1:1 for translatability.
From a webhookFrom a webhookInbound payloads are auto-clamped to a minimal tool profile before they touch anything. §4
When a Connector event firesList updated + connector triggersAbsorbs both Slack concepts. 13 connectors; events where each supports them.

Up to five triggers attach to one workflow G2 — the Monday report can run on its schedule, on demand from chat, and from a webhook, without existing three times.

Four step categories. Slack's three, plus the one they can't build.

Category 1 · = Slack steps

Workspace steps

Send a message · Ask with a form · Add to Room · Update Room · Set variables · Branch · Wait — minutes to months, or until a condition G9 · Loop over a list G5

Category 2 · = Connector steps

Connector steps

The 13 connectors' actions — Jira, Gmail, Sheets, and the rest. Honest number: Slack has ~70+. The Agent step is how we live with that. G4

Category 3 · outgrows "Generate AI Response"

Agent steps

Hand the agent a sub-goal with tools, a budget, and success checks. It acts in systems with no dedicated connector, watches for replies, syncs both ways — and the maker/checker verifies the result. G4 G10

Category 4 · = Custom steps

App steps

Slack needs a developer, the Deno SDK, and a CLI deploy. Here you describe a Skill in chat and App Builder builds it. No SDK, no paid gate.

Cross-cutting · the Checkpoint

The translated Button: custom text, restrict-to-people, expiry — but the decision is journaled. It survives a restart, survives an edit to the workflow, and expiry escalates to the owner instead of silently vanishing. Verbs are the house verbs: Allow once · Allow always · Deny.

platform-definition.md §4 · approval(), clamps, journalproduct-spec.html · T4.2
Authoring

Describe it; get a plan you can argue with.

Slack added AI generation to a form-first builder. We invert it: English is the front door, and the compiled plan is the contract — steps, sources, and checkpoints visible before the first run, editable on a canvas any Slack admin will recognize. This is spec T4.2, finished, wearing Slack's vocabulary.

describe in English→ compiled plan · the contract→ edit on the canvas→ test run · sends stubbed→ publish
New Workflow draft — not yet published
SCHEDULE Mondays 8:00 ASKED IN CHAT "run the client report" + add trigger
Every Monday, pull last week's Jira activity per client, draft an update email for each, and send after I approve.
mika
Here's the plan — 5 steps, one checkpoint:
1 · Pull last week's activity — 6 projects · Jira 2 · Summarize per client · Agent step 3 · Draft 6 updates · Gmail 4 · Send to each contact · checkpoint — needs you 5 · File replies, close the run
Before it runs
Test run first? External sends are stubbed — you'll see exactly what would go out.
The compiled plan is the contract — now with more than one way in. Two triggers on one workflow; Slack would need two workflows kept in sync by hand.
monday client report the Builder · canvas view
Triggers Schedule · Mon 8:00 Asked in chat Message posted Webhook Connector event
1
Pull last week's activity · Jiraoutputs {{projects}} · 6 found
Connector
2
Summarize per client for each clientreads {{projects}} · writes {{client.summary}}
Agent
3
Branch · anything shipped this week?two paths · else: skip the client, stay quiet
Workspace
3a
Draft update email · Gmailuses {{client.summary}} · {{client.contact}}
Connector
4
Checkpoint — send 6 emailsneeds a person · journaled · survives restart & edits
Checkpoint
5
File replies, close the runverified by the maker/checker
Workspace
Slack's canvas, three additions: a loop, an agent, and a checkpoint that survives a restart. Everything else — variables, branches, step cards — reads exactly as a Slack admin expects.
product-spec.html · T4.2-S1/S2/S3
Runtime

Runs you can trust while you're not looking.

This is where the finished engine stops being an implementation detail and becomes the pitch. The engine is durable and journaled — closer to Temporal than to an agent loop. Every promise below is a property it already has.

G6 answered

Failure isn't fatal.

A failed step retries, pauses, DMs the owner, and resumes from the journal. Slack's run just ends.

G8 answered

Edits don't orphan runs.

In-flight runs finish on the version they started on. Pending checkpoints survive the edit.

G7 answered

History is evidence.

Per-run status, checkpoint decisions, verified strips — exportable, because audits happen outside the app.

Workflow · monday client report run history
Run 142 — 6 sent, verifiedcheckpoint: approved by @maya · 8:31 · evidence attached
Mon 8:24
Run 141 — 6 sent, verifiedcheckpoint: approved by @maya · 8:12
Mon 8:09
Run 140 — went quietnothing shipped that week — no drafts, no digest, no noise
Mon 8:02
Run 139 — failed at step 3, recoveredGmail timeout · retried ×2 · resumed from journal · owner notified · finished 8:41
Mon 8:05
Export log · CSVevery run carries the workflow version it ran on
Run 139 is the sales pitch: the failure Slack shows you as a dead run is a recovered one here — and the owner heard about it without asking.
mika · DM needs you
mika
6 drafts are ready for this week's client updates. Nothing sends until you approve.
Checkpoint
Send 6 update emails to client contacts via Gmail?
Workflow · monday client report · run 142 · waiting 4 min
Slack pauses on a Button and loses it if the workflow is edited or the button expires. This decision is journaled — it survives a restart, and expiry escalates instead of vanishing.
platform-definition.md §4 · journal, approval()product-spec.html · T3.1 verified strip · INV-6 provenance
Simulator

Build one; watch it run in both worlds.

Compose a workflow — triggers, steps, Rooms, a failure if you like — and watch the same automation run as Slack would run it and as we would. The argument makes itself; you just pick the steps.

Triggers · pick up to 3
Steps · tap to add, up to 8
Your plan
Rooms this serves
6
Failure Run mode
Slack · Workflow Builder
ai.com · Workflows

Watch out: this simulator assumes multi-trigger and loops ship — the journal supports them; the authoring layer does not exist yet. And the Slack lane is worst-case: a disciplined Slack admin can consolidate some triggers behind webhooks.
Governance and price

Who can build, who can run, what it costs.

Governance copies Slack outright — it's the part they got right. Pricing does not: there is no premium workflow class here. One meter, visible before the run.

Copied from Slack

Workflow managers

Edit, unpublish, delete. The builder is manager by default; managers add managers. Drafts are private until published.

Copied from Slack

Publish & permissions

Who can find and run it, who can copy it. An admin dashboard lists every published workflow in the workspace.

Ours · T5-E2

Templates

A proven workflow, installable by another team — checkpoints intact, secrets never included. The Library ships a CEO digest, a manager digest, an onboarding flow.

TierWorkflowsThe meter
Free · $03 Connectors · 3 Workflows (word-swap of the ratified card — a five-trigger workflow counts as one)Metered daily agent allowance · checkpoint on everything external
Team · $25/seatAll Connectors · unlimited Workflows · Rooms, Calls, VaultPooled workspace credits (≈$8/seat included) · a run is the unit · estimates before runs · admin spend caps
Command · $60/seatEverything in TeamSSO, SCIM, audit export — self-serve

The anti-G12 stance, spelled out: every step type is available on every paid tier. Adding a second connector step never changes a workflow's billing class — it just meters more runs against the pool, and the estimate says so before the run.

Watch out: Agent steps make run cost genuinely variable. The estimate-before-run promise is what keeps this from rebuilding Slack's premium surprise with extra steps — if estimates are bad, we shipped the same trap with better copy.
pricing.html · Architecture B card, runs meterproduct-spec.html · T5-E2
The verdict

Twelve gaps: ten answered, one mitigated, one open.

The honest close. Two of Slack's weaknesses don't fall to architecture — they fall to time.

IDSlack's gapOur answerStatus
G1No step-level testingTest run — reads execute, external writes stubbedAnswered
G2One trigger per workflowUp to five triggers on one workflowAnswered
G3Single-channel scopeTriggers watch one Room, several, or allAnswered
G4<100 connectors13 connectors + Agent steps that act where no connector existsOpen — mitigated, not erased
G5No loopsLoop over a list, first-classAnswered
G6Weak failure handlingRetry → pause → owner DM → resume from journalAnswered
G7Logs not exportableRun history exports; every run carries its versionAnswered
G8No versioningJournal-backed versions; in-flight runs finish on theirsAnswered
G9Coarse delaysWait minutes to months, or until a conditionAnswered
G10One-way onlyAgent steps watch and sync back, verifiedAnswered
G11Complexity cliffEnglish authoring + compiled plans flatten the curveMitigated — not immune
G12Premium billing surprisesNo billing classes; one meter, estimated before the runAnswered

Also unanswered by architecture: Slack's template ecosystem and years of admin muscle memory. T5-E2 templates are the plan; they need time and proof, not a spec.

Open questions

What could break this.

  • Glossary whiplash. The Routine vocabulary was ratified weeks ago. The flip needs a logged decision and a same-day sweep of the four affected docs, or they contradict each other.
  • Multi-trigger and loops are unproven in the engine. The journal supports them in principle; deterministic replay of a loop over a changing list is real engineering, not renaming.
  • The reaction trigger presumes Rooms ship emoji reactions. Confirm the surface exists before the trigger table goes public.
  • Connector events are uneven. Which of the 13 connectors actually emit events? The trigger may launch honest at four or five.
  • Agent-step cost variance. The anti-premium-surprise claim lives or dies on estimate quality before runs.
  • "When asked in chat" needs a metering rule. When is a chat request a workflow run, and when is it just conversation? Users will find the seam.
  • Free-tier counting. Three workflows — and a five-trigger workflow counts as one. Say it on the card, or the forum says it for us.
  • Cross-workspace is out of scope. Slack Connect users will ask on day one; templates are the nearest story and should be positioned that way.
  • The 100-step cap keeps Slack's complexity critique alive. English authoring mitigates it; it does not grant immunity. Watch real workflow sizes.
  • Template secret-stripping depends on the Vault story. T5-E2's "secrets never included" must be demonstrable before the Library opens.
ai.com · Workflows — strategy & spec · Internal · July 2026 · Slack facts cited from slack.com/help, slack.com/blog, WorkflowBuddy, xray.tech · Slack product screenshots © Slack / Salesforce, from slack.com, reproduced for internal comparison only · platform facts cited from platform-definition.md, product-spec.html, pricing.html · all example data fictional.