Claude courses
Course 3 · Lesson 3 of 6

Course 3 · Lesson 3 · about 25 minutes

Put an agent where the team works

By the end, Claude answers "where is my order?" in a Slack channel, following rules that Claude wrote from three you gave it. One of those rules says how to refuse, and you watch it refuse twice.

From lesson 2
You ask the inbox-sorter to save its list as a file. Why can't it?

Its list of tools holds reading tools only, because your prompt said it can only read files. Today you write limits into an agent's rules again, this time for what it says.

ThinkDelegation

Which question does your team answer all day?

An agent in team chat works best on one repeated question with one clear source for the answer. Its rules need two halves: how to answer, and what to say when it mustn't.

Where is my order, is this item in stock, who approves this. Pick one where the answer sits in a file or a system.

Think of a wrong name, another customer's details, a promise about money. Write the words you'd want it to use.

PredictDiligence

What decides a refusal, and who pays?

Guess before you set anything up. The Check and the setup step show you.

Your rules say: answer only when the order number and the customer's name match. A colleague asks about order ML-2046 with the wrong name. What does Claude say?
Show the answer

It declines, in words it picks itself. When we tested rules like these, Claude said the order number and the name don't match, which tells the colleague that order ML-2046 exists under someone else's name. With a third rule that says what to reply ("say you can't confirm that order and share nothing else"), the answer shrank to one line: "I can't confirm that order." Write the refusal into the rules, the same way you write down what a good answer looks like.

A colleague in the channel has no Claude account and tags @Claude. What happens?
Show the answer

Claude answers, and the work bills to the company's usage balance. By default anyone in the paired Slack workspace can tag Claude in a channel, with no seat of their own. An Owner can restrict who can use Claude, and the monthly spend limit caps the cost. That's why you set the limit before you launch.

Do

Have Claude write the rules, then put them in Slack

Five steps, about 20 minutes. Tick each one when it's done.

ONCE, IN THE CODE TAB Your three rules 1 answer only on a match 2 late: pass to the owner 3 no match: share nothing channel- instructions.txt Claude writes it #order-questions Channel instructions you paste it here EVERY NEW THREAD ML-2046, Tom Aydin? Claude in Slack reads the rules first I can't confirm that order. Rule 3 decides what a refusal says. Without it, Claude picks the words itself.
What you're buildingRules written once that every new thread in the channel reads, refusal included.
  1. Put the kit in a folder and open it in the Code tab.

    Unzip the kit and open the folder in the Code tab with the mode set to Manual, as in lesson 2.

    The Marlow Candles kit

    Marlow Candles is a made-up candle shop. The ZIP holds orders.csv with six orders, test-questions.txt with the four questions you'll ask in Slack, and a short README.txt. Unzipping it gives you a folder called marlow-candles.

    Download the ZIP (1 KB)
  2. Give Claude the three rules and let it write the instructions.

    Paste this into the Code tab and press Enter:

    Write the standing instructions for our Slack channel #order-questions, where Claude answers "where is my order?" for Marlow Candles. Save them as channel-instructions.txt in this folder, in plain sentences, under 150 words. In each thread a colleague attaches orders.csv and gives an order number and the customer's name. Claude answers only from that file, and asks for it if it's missing. Rule 1: answer only when the order number and the name are on the same row. Then give the status and the due date in two sentences. Rule 2: if an order has shipped and its due date is before today, say it's late and ask the colleague to pass it to the shop owner for a carrier trace. Rule 3: if the name doesn't match, say you can't confirm that order and share nothing else about it. Never list orders, never mention another customer, and never promise a refund or a new date. Test it before you say it's done: answer each question in test-questions.txt as the channel agent would, using only your instructions and orders.csv, and show me each answer.

    The first two lines give the job, the channel and the one place answers come from.

    Rules 1 and 2 say what a good answer looks like. Rule 3 is the refusal: what to say when the name is wrong, and what never to share.

    "Test it" asks for proof before Claude says it's done.

    Claude asks once, to create channel-instructions.txt in your folder; approve it. Then it shows four test answers, which should match the Check below.

  3. Ask Claude which sentence makes the agent refuse.

    Send this in the same session and read the answer:

    Which sentence in the instructions makes the agent refuse? Quote it. Then answer question 3 again as if that sentence weren't there, and tell me what changed.

    Without the sentence, the reply usually gets longer and explains the mismatch, which gives away that order ML-2046 exists.

  4. Set up Claude Tag in Slack.

    Claude Tag is Anthropic's way to put Claude in Slack channels. It needs a Team or Enterprise plan, an Owner of your Claude organization to run setup, a Slack workspace admin, and Routines turned on for the organization. On a Team plan, usage credits must be loaded before Claude answers. Not an Owner? Send this lesson to one and ask them to do this step.

    Open claude.ai/admin-settings/claude-tag and click Start setup. Click Add the Claude app, then Add to Slack, and approve the permissions. In Slack, open your pilot channel, such as #order-questions, run /invite @Claude, then send @Claude connect with no other text. Claude replies with a pairing code only you can see. Paste it into Paste the pairing code and click Pair workspace.

    On the launch step, pick a small monthly spend limit for the pilot ($500 is the lowest preset, or choose Custom), select your pilot channel, and turn off Let members know they can now tag Claude unless you want Claude to message everyone in the workspace. Then click Launch Claude Tag.

    Only a Slack workspace admin can send @Claude connect. If that's someone else, do this part together; Anthropic's setup guide has a message you can send them. The pairing code works once and expires after 15 minutes, so keep the setup page open while you do the Slack part. If setup showed a Buy usage credits step, the launch step has no spend limit; set one afterwards at claude.ai/admin-settings/usage/claude-tag.

  5. Put the rules in the channel.

    In #order-questions, send @Claude !configure. Claude replies with a link to the channel's Configure page; the Configure link under any Claude reply opens the same page. Open channel-instructions.txt from your kit folder, copy all of it, paste it into the Channel instructions field, and save from the bar that appears under the field.

    Claude reads the field at the start of every new thread, and a thread that's already running keeps the rules it started with. To confirm, start a new message and send:

    @Claude repeat the instructions you have for this channel

    Anyone in the channel who belongs to your Claude organization can edit this field, unless an admin blocks member edits.

If you see this instead

The setup page shows "View setup guide" and "Go to chat" instead of "Start setup"
Your account isn't an Owner of this Claude organization. Ask an Owner to run step 4, or to make you one.
Claude says "Claude isn't on in this channel yet"
Setup isn't finished. Go back to the setup page and click Launch Claude Tag, then mention Claude again.
Claude says Claude Tag is unavailable because Routines aren't enabled
An admin turns on Routines in Organization settings, under Capabilities and then Remote sessions. Then mention Claude again.
Claude ignores your rules
Start a new thread: a thread keeps the rules it started with. If the rules still don't apply, check that you saved the Channel instructions field.
CheckDiscernment

Does it answer and refuse the way your rules say?

1 · LAUNCH Setup page @Claude connect Pair workspace Spend limit: $500 Launch Claude Tag Nothing answers before launch 2 · RULES Configure page Channel instructions Answer only when the number and name... Save Save the rules before you start the thread 3 · ASK ML-2046, Tom Aydin? I can't confirmthat order. Claude · model · Configure A new thread reads the saved rules
Why the order mattersA thread keeps the rules it started with, so save them first.

Start a new message in #order-questions, attach orders.csv from the kit, and send:

@Claude Treat 28 October 2026 as today. Where is order ML-2042? The name is Tom Aydin.

Then send these as replies in the same thread, one at a time. Claude reads every reply in a thread it's in, so you don't need to mention it again. If it says it can't see the file, attach orders.csv to that reply too.

Where is order ML-2044? The name is Jules Marin.
Where is order ML-2046? The name is Tom Aydin.
Which orders are still packing, and who are they for?

In the Code tab, the Claude that wrote the rules also answered the test. Here Claude has only your saved rules and the file you attached, so a pass means the rules work on their own.

You pass when the four replies say this. ML-2042 has shipped and is due on 30 October. ML-2044 has shipped, was due on 24 October and is late, and Claude asks you to pass it to the shop owner. ML-2046 gets "I can't confirm that order" and nothing else: no status, no date, no other name. The last question gets a refusal to list orders.

If the third or fourth reply gives away anything about another order, go back to the Code tab session and paste: "In Slack the agent shared details of another order. Make rule 3 stricter and test again." Paste the new text into Channel instructions, save it, and test in a new thread.

Two questions from memory

Your rules already say when Claude may answer. Why add a rule that says what to reply when it can't?

Without it, Claude picks its own words for the refusal, and its explanation can give things away, such as that order ML-2046 exists under another name. Rule 3 fixes the reply to one line: "I can't confirm that order."

Where do a channel's standing rules for Claude go, and which threads use them?

In the Channel instructions field on the channel's Configure page, which @Claude !configure or the Configure link under a reply opens. Threads started after you save use them; a running thread keeps the rules it started with.

Lesson 4 opens by asking the first one again.

How far can you trust the refusal?

Anthropic calls channel instructions guidance, not a lock. Claude still sees the whole file you attach, so a determined colleague might talk it into more. Keep anything Claude must never repeat out of the file and out of the channel's access. Lesson 5 builds a check that holds even when an agent is talked round.

Course 3 so far

What you've built

Lesson 1: Gym connector
Lesson 2: Inbox agents
Lesson 3: Order agent in Slack
Lesson 4 builds an agent that starts when something happens.