Chat apps, schedules & going live
Put an agent on Telegram, Discord or Slack, decide who can talk to it, and give it work on a schedule.
Part of the crew rollout: Agents shows as Soon in the app until it reaches your account. See Hiring your crew.
An agent runs when something starts it: a message on a chat app, a schedule, a webhook, you, or another agent handing it work.
Going live
Only a live version runs. A new agent turns every run down until its first change is applied. After that, every change you apply on Co Builder's card goes live at once, as a new version; there is no separate save or publish step. Versions keeps every one, with Undo and Restore (see The memory map).
Put it on a chat app
Open the connect dialog from the agent's Settings, where Put … on Telegram and Put … on another chat app sit under "Where people reach" it, or from Chat apps in the workspace, which first asks "Which agent answers?". It works on Telegram, Discord and Slack, one step at a time:
| App | Steps |
|---|---|
| Telegram | Make it → Paste → Connect → Say hi → Who can talk |
| Telegram, made by Modus | Make it → Say hi → Who can talk |
| Discord | Make it → Add to server → Say hi → Who can talk |
| Slack | Make it → Install → Paste → Say hi → Who can talk |
Telegram
- Made by Modus, where it's offered: Modus makes the bot in your Telegram account. Tap Start, then Create, and there is nothing to paste.
- Made in BotFather: open BotFather, send /newbot, then the name and the username the dialog suggests (and another if that one is taken). Paste the token BotFather sends back; pasting its whole message is fine. Modus checks it with Telegram and has Telegram send the bot's messages to Modus.
- Already have a bot? Paste its token. A bot that is already on another agent can stay there, or move to this one.
Discord
You need "Manage Server" on the server it should join. In the Discord Developer Portal, make a New Application, then Bot → Reset Token, and paste the token. Add to server: choose the server, Continue, Authorize. Modus holds the bot's connection itself. Optionally, make it so only you can add the bot to servers.
Slack
You need permission to add apps to the workspace; on a restricted workspace, a Slack admin approves it. Modus writes the Slack app for you: its name, what it may read, and its /stop, /new and /help commands. Create it, then Install App → Install to your workspace → Allow, and paste its two tokens: the Bot User OAuth Token (it starts with xoxb-) and an App-Level Token with the connections:write scope (it starts with xapp-). A free Slack workspace can have 10 apps, and this is one of them.
Say hi
Send the bot the code the dialog shows (on Discord and Slack, in a direct message). The first person to send it is you, the owner, so you never have to let yourself in. The agent answers you there. A code lasts 30 minutes; the dialog gives you a new one when it runs out.
Left before Say hi, the connection waits on the agent's Settings as Almost there, with Finish setting up.
Who can talk
The last step, and the same choice later from the agent's Settings (the chat app's menu → Who can talk to it):
- Only you: and anyone you've already let in. Nobody else gets an answer.
- You, and people you let in: recommended, and what applies when nothing was chosen. Anyone else is told you've been asked, and you get a notification with Allow and Ignore.
- Anyone in the workspace (Slack only): members of the workspace it was connected in, never guests or people from other companies in shared channels. Every message runs the agent on your balance.
- Anyone who messages the bot: every message runs the agent on your balance.
In groups it answers only when someone mentions it. Answer every message in groups changes that, and then every message in the group runs it. On Telegram the bot must be a group admin, or have privacy turned off in BotFather (/setprivacy, then Disable). On Discord, Modus lets the bot read every message in its servers when you finish. On Slack these are channels.
People you let in
On the agent's Settings:
- Waiting to talk to it: someone new who writes to it while only people you let in may talk to it waits here. Allow lets them in; Ignore sets them aside, and you're not asked about them again.
- People you let in: everyone who may talk to it, your own row marked. Remove makes someone new again from their next message.
- People you ignored: Let in changes your mind.
Each chat app's row on Settings also has Paste new token, Check again, Pause answering on that app, and Disconnect.
In a chat, /new starts a new conversation and /stop stops the reply it's writing.
Schedules
- Tell Co Builder what should happen and when ("every weekday at 9am, send me what needs a reply"): it puts the task on a card, with its time and what it is asked each time.
- A time can be "every monday 9am", "every weekday 8:30", "every day at 9am", an interval like "2h", a five-part cron like
0 9 * * *, or one date and time. Times are read in the task's own timezone. - The agent's Schedules list what's coming and whether the last one worked, with Pause, Resume and Remove.
- A missed run isn't made up: after downtime, a schedule runs once, not once for every time it missed.
Webhook
Settings → Webhook → Enable webhook gives the agent an address to POST to and a signing secret. The secret is shown once, so copy it. Rotate secret gives a new one; Disable turns the webhook off.
Pausing
Pause on the bar above the map, or ask Co Builder: its schedules, webhooks and chats stop starting it, and a run you start still works. It can't be resumed while its budget is spent; the map's ? says why it's paused.
You stay in control
An agent does only the job it's built for, with the tools and accounts you gave it. It moves funds and uses the browser for you and for people you let in. On a schedule, a webhook or a message from someone you haven't let in, it can't do either, unless you've allowed it to move funds (see Changing it with Co Builder).