Slack Ops Composer
Slack Ops Composer


Slack Ops Composer
Slack Ops Composer
Operator Comms on Slack
A form-driven slack app that turns repeated operator messages into guided, routed sends
Process Optimization
RESULTS
Standardized recurring operator communication across 40+ sites and removed the daily cognitive load of composing structured, correctly routed Slack messages by hand.
CHALLENGE
Coordinating dozens of sites in Slack meant sending the same message types daily, each with its own audience, channel, and required fields, all held together by memory and copy-paste.
STACK
Slack (Bolt, Block Kit), NodeJS, Notion
Operator Comms on Slack
A form-driven slack app that turns repeated operator messages into guided, routed sends
Process Optimization
RESULTS
Standardized recurring operator communication across 40+ sites and removed the daily cognitive load of composing structured, correctly routed Slack messages by hand.
CHALLENGE
Coordinating dozens of sites in Slack meant sending the same message types daily, each with its own audience, channel, and required fields, all held together by memory and copy-paste.
STACK
Slack (Bolt, Block Kit), NodeJS, Notion
Operator Comms on Slack
A form-driven slack app that turns repeated operator messages into guided, routed sends
Process Optimization
RESULTS
Standardized recurring operator communication across 40+ sites and removed the daily cognitive load of composing structured, correctly routed Slack messages by hand.
CHALLENGE
Coordinating dozens of sites in Slack meant sending the same message types daily, each with its own audience, channel, and required fields, all held together by memory and copy-paste.
STACK
Slack (Bolt, Block Kit), NodeJS, Notion
The Context
Crafty ran snack, coffee, and beverage programs across the Bay Area, and every site operated as its own small world. Each had an onsite operator and a dedicated Slack channel for coordination. As a flex ops specialist I ran cyclical QC checks across over forty sites, covered gaps, and implemented new sites alongside regional supervisors, account managers, and client contacts.
Slack channels and logs were elemental. A single QC pass touched many internal, and sometimes external, parties. The same handful of message types came up constantly, each with its own audience, its own channel, and its own required details. For consistency, I built a library of templates in Notion to copy, paste, and fill by hand.
The Challenge
Copy-paste from Notion solved the typing, not the thinking. QC feedback went to several people at once and shaped how an operator's work was judged; an equipment flag had to reach the right technician with the right detail. The library still left too much to memory under agile work: which fields to include, who to tag, which channel it belonged in. Dozens of times a week across dozens of sites.
This was a form problem, not a copy problem. Each message type was really a small schema: a fixed shape, a known audience, a destination channel, and a handful of variable inputs. Capture that shape once and drive it with a guided form, and the judgment could live in the tool instead.
The Build
I built Ops Composer as a Slack app driven by a single workflow, Compose Message, launched straight from a channel bookmark. The flow is four quick steps: pick a template, confirm the channel, fill the structured inputs, and send. The app assembles the message and posts it under its own identity, so the format stays consistent no matter who is sending or how rushed they are.
The decisions sat underneath that simplicity. Channels auto-populate from the template, because each message type has a natural home: equipment issues route to the technician channel, QC remarks to the active site channel, with manual override where context varies. Inputs are typed to intent rather than uniform, so the simplest template asks only for a greeting and an optional memo while the QC remarks template exposes a full structured-feedback set, with person tags where someone needs to be pulled in.
A few tests from the dev channel later, an approval from the Slack admin, and the Ops Composer was in the field.
The Outcome
The template set grew to cover the operator lifecycle end to end: task updates and bulk updates, reference photos, signage requests, equipment flags, QC start and QC remarks, trainee recaps, and shift and order reports. Together they spanned the recurring touchpoints between operators, supervisors, customer experience managers, technicians, and occasionally clients, the full cast a distributed service operation has to keep aligned.
I used it every day, and the payoff was less mental overhead and steadier communication across sites. The deeper win was the model. Repeated operational judgment got encoded into guided forms, routing got decided by context instead of recall, and the people on the receiving end got structured, predictable messages without anyone having to change a Slack-first workflow they already trusted. It is the same instinct I bring to larger systems now: find the manual pattern, give it a clean interface, and let the structure carry the load a person used to carry alone.
The Context
Crafty ran snack, coffee, and beverage programs across the Bay Area, and every site operated as its own small world. Each had an onsite operator and a dedicated Slack channel for coordination. As a flex ops specialist I ran cyclical QC checks across over forty sites, covered gaps, and implemented new sites alongside regional supervisors, account managers, and client contacts.
Slack channels and logs were elemental. A single QC pass touched many internal, and sometimes external, parties. The same handful of message types came up constantly, each with its own audience, its own channel, and its own required details. For consistency, I built a library of templates in Notion to copy, paste, and fill by hand.
The Challenge
Copy-paste from Notion solved the typing, not the thinking. QC feedback went to several people at once and shaped how an operator's work was judged; an equipment flag had to reach the right technician with the right detail. The library still left too much to memory under agile work: which fields to include, who to tag, which channel it belonged in. Dozens of times a week across dozens of sites.
This was a form problem, not a copy problem. Each message type was really a small schema: a fixed shape, a known audience, a destination channel, and a handful of variable inputs. Capture that shape once and drive it with a guided form, and the judgment could live in the tool instead.
The Build
I built Ops Composer as a Slack app driven by a single workflow, Compose Message, launched straight from a channel bookmark. The flow is four quick steps: pick a template, confirm the channel, fill the structured inputs, and send. The app assembles the message and posts it under its own identity, so the format stays consistent no matter who is sending or how rushed they are.
The decisions sat underneath that simplicity. Channels auto-populate from the template, because each message type has a natural home: equipment issues route to the technician channel, QC remarks to the active site channel, with manual override where context varies. Inputs are typed to intent rather than uniform, so the simplest template asks only for a greeting and an optional memo while the QC remarks template exposes a full structured-feedback set, with person tags where someone needs to be pulled in.
A few tests from the dev channel later, an approval from the Slack admin, and the Ops Composer was in the field.
The Outcome
The template set grew to cover the operator lifecycle end to end: task updates and bulk updates, reference photos, signage requests, equipment flags, QC start and QC remarks, trainee recaps, and shift and order reports. Together they spanned the recurring touchpoints between operators, supervisors, customer experience managers, technicians, and occasionally clients, the full cast a distributed service operation has to keep aligned.
I used it every day, and the payoff was less mental overhead and steadier communication across sites. The deeper win was the model. Repeated operational judgment got encoded into guided forms, routing got decided by context instead of recall, and the people on the receiving end got structured, predictable messages without anyone having to change a Slack-first workflow they already trusted. It is the same instinct I bring to larger systems now: find the manual pattern, give it a clean interface, and let the structure carry the load a person used to carry alone.
The Context
Crafty ran snack, coffee, and beverage programs across the Bay Area, and every site operated as its own small world. Each had an onsite operator and a dedicated Slack channel for coordination. As a flex ops specialist I ran cyclical QC checks across over forty sites, covered gaps, and implemented new sites alongside regional supervisors, account managers, and client contacts.
Slack channels and logs were elemental. A single QC pass touched many internal, and sometimes external, parties. The same handful of message types came up constantly, each with its own audience, its own channel, and its own required details. For consistency, I built a library of templates in Notion to copy, paste, and fill by hand.
The Challenge
Copy-paste from Notion solved the typing, not the thinking. QC feedback went to several people at once and shaped how an operator's work was judged; an equipment flag had to reach the right technician with the right detail. The library still left too much to memory under agile work: which fields to include, who to tag, which channel it belonged in. Dozens of times a week across dozens of sites.
This was a form problem, not a copy problem. Each message type was really a small schema: a fixed shape, a known audience, a destination channel, and a handful of variable inputs. Capture that shape once and drive it with a guided form, and the judgment could live in the tool instead.
The Build
I built Ops Composer as a Slack app driven by a single workflow, Compose Message, launched straight from a channel bookmark. The flow is four quick steps: pick a template, confirm the channel, fill the structured inputs, and send. The app assembles the message and posts it under its own identity, so the format stays consistent no matter who is sending or how rushed they are.
The decisions sat underneath that simplicity. Channels auto-populate from the template, because each message type has a natural home: equipment issues route to the technician channel, QC remarks to the active site channel, with manual override where context varies. Inputs are typed to intent rather than uniform, so the simplest template asks only for a greeting and an optional memo while the QC remarks template exposes a full structured-feedback set, with person tags where someone needs to be pulled in.
A few tests from the dev channel later, an approval from the Slack admin, and the Ops Composer was in the field.
The Outcome
The template set grew to cover the operator lifecycle end to end: task updates and bulk updates, reference photos, signage requests, equipment flags, QC start and QC remarks, trainee recaps, and shift and order reports. Together they spanned the recurring touchpoints between operators, supervisors, customer experience managers, technicians, and occasionally clients, the full cast a distributed service operation has to keep aligned.
I used it every day, and the payoff was less mental overhead and steadier communication across sites. The deeper win was the model. Repeated operational judgment got encoded into guided forms, routing got decided by context instead of recall, and the people on the receiving end got structured, predictable messages without anyone having to change a Slack-first workflow they already trusted. It is the same instinct I bring to larger systems now: find the manual pattern, give it a clean interface, and let the structure carry the load a person used to carry alone.

CONTACT INFO
Ready to Connect?
Currently open to Austin roles in operations, systems, and CRM. I'd love to hear what you're building toward.

CONTACT INFO
Ready to Connect?
Currently open to Austin roles in operations, systems, and CRM. I'd love to hear what you're building toward.

CONTACT INFO
Ready to Connect?
Currently open to Austin roles in operations, systems, and CRM. I'd love to hear what you're building toward.


