Build a Slack bot with ChatGPT or Claude
Every Slack slash command needs an address that answers it, like /oncall replying with this week's name or /bug opening an issue in your tracker. On Tessryx that address is a route on your site, and ChatGPT or Claude builds it and the workflow behind it from your description.
Clicks on the buttons in the bot's messages reach your site the same way.
What to ask your AI
Connect Tessryx to ChatGPT or Claude, then paste one of these, or say it your own way.
Who's on call “make a slack slash command /oncall that says who's on call this week. i want to update the rotation myself without touching any code”
Issues from a command “make a /bug slack command that opens an issue in our github repo with whatever i type after it, then posts the link back in the channel”
Approvals with buttons “when someone asks for time off on our site, post it in #approvals with approve and deny buttons, and save who clicked and when”
What Tessryx runs for you
Checking Slack's signature
Tessryx checks each request's signature against your Slack app's Signing Secret and refuses a missing or forged one with a 401. It also replies to Slack's url_verification challenge when you save an Events API address.
Webhooks from Slack, Stripe, GitHub and moreReplies from a workflow
A workflow reads what was typed and who typed it, and its answer is the reply in Slack, shown to that person alone or to the whole channel.
WorkflowsCalls to Slack and other services
To post in a channel later or open an issue in another tool, a workflow calls that service's API through an integration your AI sets up.
API integrationsTokens kept in Secrets
Keys you paste into Secrets are used by name. Once a key is saved, the dashboard and ChatGPT or Claude see only its name and last four characters.
Write-only secretsBackground runs
Work that takes longer than a quick reply, like a slow call to another service, moves to a background run that posts the result when it's done. That run can last up to 60 seconds on Free and 10 minutes on Pro.
Background tasksRecords your team can edit
Commands read and save records, like the on-call rotation or the approvals, and your team can change the same records by hand in Tessryx's editor.
Read and write records
What it costs
Plan: FreeEach request from Slack that reaches your workflow is a run: 1 credit when it finishes within 10 seconds, and another for a background step.
A team running 100 commands a working day, each with a background step, uses about 4,400 credits a month, well inside the 10,000 that come with the free plan.
Free handles one background run at a time, and Pro handles three at once for $20 a month.
What it can't do yet
The bot works in the Slack workspaces you install it in yourself, with a token you paste into Secrets. An Add to Slack button for other teams needs an OAuth flow, which isn't built.
No "connect your account" sign-in for outside servicesAn integration can't reach a service on a private network, like a tracker behind your company's VPN. Calls go out as JSON, which covers posting and updating Slack messages but not uploading files.
Integrations send JSON, and only to the public internet
Questions
Do I need a server for a Slack bot?
You don't need one of your own: Tessryx runs the workflow behind the command's Request URL each time Slack calls it.
What if my command takes longer than 3 seconds?
Slack retries any request that waits more than about 3 seconds for an answer. The workflow replies right away, with something like "On it", and hands the rest to a background run. Retries carry a header that marks them, and the workflow can use it to skip a request it already handled.
Can the bot answer when someone mentions it?
Slack's Events API can post events you subscribe to, like a mention of your bot, to a route of yours, which checks the signature the same way. The workflow then answers through Slack's API with the bot token.
Which Slack keys does it need?
It needs two, both kept in Secrets: the Signing Secret from your Slack app's Basic Information page, which every request is checked against, and a bot token for anything it posts through Slack's API.