Skip to Content
FeaturesDeputy contacts

Deputy contacts

Decide exactly who a deputy turns to. When a run needs a decision, an approval or a heads-up, it reaches the deputy’s contacts: the people and teams you pick, and optionally a Slack channel where the whole team sees the question and the right person answers it.

What you get

  • People and teams. Add members one by one, or add a team and everyone in it is asked. Team membership is read when the question is raised, so a new teammate is included from the next question on.
  • A Slack channel. Pick a public or private channel and the deputy’s questions and notices go there instead of anyone’s direct messages. Every run gets its own message in the channel the moment it starts, and every question, notice and the final result sits in that message’s thread. The run’s message opens with its title, then shows who owns the run, how it was triggered and what the task is, so you can tell runs apart without opening them. Rename the run and the message shows the new title.
  • A status you can scan. The run’s message carries a status icon that Marshal keeps current, so you see every run and its outcome without opening anything. Your mission prompts no longer need to ask the agent to post to Slack.
  • The deputy speaks as itself. In Slack, a deputy’s messages show “Deputy” and the deputy’s name as their sender, so the team sees at a glance which deputy is asking.
  • Answers stay with the right people. Everyone in the channel can read the questions, and the title and the start of the task on each run’s message. Only the deputy’s contacts, and org admins, can answer them. Anyone else who clicks a button gets a private note that the question is not theirs to answer.
  • No question goes unseen. If the channel stops working, for example the bot was removed from it, the deputy’s questions go to its contacts as direct messages and the deputy page shows what to fix.

Follow a run in the channel

When a deputy with a Slack channel starts a run, its message appears in the channel with the title, owner, trigger and task. Marshal edits that message as the run moves along:

IconStatus
⏳Starting
🔄Running
⏸️Waiting for an answer
✅Succeeded
❌Failed
⏱️Timed out
🚫Canceled

When the run ends, Marshal replies in the message’s thread with the result: the outcome, how long the run took, why it stopped and the agent’s final message. A final message longer than 3,000 characters is shortened, with a pointer to the full text in the run.

Questions and notices thread under the same message. A run that waits for an answer and then continues stays in one message and one thread, and shows its outcome only when the whole run is done.

Good to know:

  • Channel members can read the result reply, so pick a channel whose members should see what your deputy finds.
  • A deputy without a Slack channel posts nothing.
  • Runs that started before this behavior arrived are not posted.
  • The agent’s text appears only in the result reply. The run’s message itself never carries it.

Who is asked

Marshal decides who to ask. The agent never picks.

  1. The mission’s own contacts, when the mission sets them.
  2. Otherwise, the deputy’s contacts.
  3. When neither names anyone, the person who started the run. Scheduled and webhook runs ask the deputy’s owner. For a team or org deputy, that is the person who created it.

The people asked for a question stay fixed for that question. Change the contacts and the next question follows the new list. Someone asked because of a team stops being able to answer as soon as they leave that team.

Set a deputy’s contacts

You need to be able to manage the deputy: its owner, a lead of its team, or an org admin.

  1. Open the deputy and find the Contacts card. With no contacts set, it tells you who questions go to today.
  2. Click Edit.
  3. In Add a person or team…, pick members and teams. Remove one with its chip.
  4. Optional: under Slack channel, pick a channel, or None (send DMs).
  5. Click Save.

Pick a Slack channel

The list shows the channels the Marshal bot is a member of. To use a channel that is not listed, invite the bot from Slack with /invite @Marshal, then click Refresh next to the list. Channels shared with another organization are never offered, and Marshal never posts to one.

Available when your administrator connects Slack.

Give a mission its own contacts

One deputy often runs missions for different teams. In the mission editor, turn on Contacts (replaces the deputy’s) and pick people, teams or a channel. Runs of that mission ask these contacts instead of the deputy’s.

When the channel needs attention

The Contacts card shows Channel broken with the reason when Marshal could not post to the channel: the bot was removed, the channel was archived or deleted, or it became shared with another organization. Until it is fixed, questions reach the contacts by direct message. Invite the bot again or pick another channel and save. The card clears once the channel works.

Run messages and results follow the same rule. When the channel cannot be used, nothing is posted for the run and nobody receives a direct message instead. Marshal never posts to a channel shared with another organization. Once the channel works again, new runs post their messages as usual.

Rollout and admin notes

  • No new Slack permission and no reinstall are needed. Marshal already posts and edits its own messages.
  • The Marshal bot must be a member of the channel. Invite it with /invite @Marshal.
  • Every deputy that already has a Slack channel starts posting the start message and the final message of every run once this behavior is on. There is no per-deputy switch. A deputy that runs often puts one message and one result in its channel for each run, so choose its channel with that volume in mind.
  • The agent’s final message is posted as the agent wrote it. Anyone who can read the channel, guests included, can read it, and Marshal does not remove secrets from it. Tell mission authors to keep keys, tokens and passwords out of final messages.
  • Each post and each edit first checks the channel, and those checks share Slack’s rate limit for your workspace with question delivery. A busy organization can see Slack slow down both for a short time. Messages and questions are retried until they land.