# Talking to SAM



## Three ways to reach it [#three-ways-to-reach-it]

* **@-mention it** in any channel it's been invited to
* **DM it**, no invite needed
* **Reply in a thread it's already in.** It decides whether the reply was meant
  for it. If you get 👀 and then silence, it judged the message wasn't for it.
  @-mention it to be sure.

It reads the thread you're in, and the channel's recent history if you ask it
to. It is not indexing your Slack.

## Sending it files [#sending-it-files]

Attach them to the message. It reads what's in front of it.

| Type                       | Limit                             |
| -------------------------- | --------------------------------- |
| Images                     | 8 per message, 5 MB each          |
| CSV, text, code            | 50,000 characters                 |
| `.xlsx`, PDFs, Slack Lists | Not readable. Export to CSV first |

Anything it skips, it names. A file from earlier in the thread still works. Just
refer to it.

## While it's working [#while-its-working]

<SlackThread channel="#marketing">
  <SlackMessage from="Priya" time="14:11">
    @SAM define our ICP from the last 90 days of leads: firmographics, the forms
    they came through, what they had in common.
  </SlackMessage>

  <SlackMessage from="sam" time="14:11" status="Reading 1,204 leads across 6 forms" buttons="Stop">
    Working on it.
  </SlackMessage>
</SlackThread>

A status line appears with a **Stop** button. A stopped turn changes nothing:
writes were already parked behind approval cards, so there's nothing half-done
to unwind. Once the answer has landed the button is gone, and clicking it says
so rather than swapping a delivered answer for "Stopped."

If a question is too big for one go, it offers **Run it in the background**. Say
yes. Background jobs report back in the same thread and are read-only.

## When it wants to change something [#when-it-wants-to-change-something]

Anything that isn't read-only parks behind an **Approve/Cancel** card carrying
the finished change. The person who asked, or any Slack workspace admin, can
approve.

Editing published content edits the draft. Publishing is a second approval.

## Keeping an answer [#keeping-an-answer]

If the answer is a *document* rather than a number (an ICP, a positioning cut, a
research write-up), a **Save in Vault** button appears under it. One click files
it in your Surface Vault as a dated Markdown doc under `slack/`.

<SlackThread channel="#marketing">
  <SlackMessage from="sam" time="14:13" buttons="Save in Vault">
    **Two segments, not one.** 61% of the last 90 days came from 200-1,000
    person B2B SaaS, mostly through Demo Request, and they convert at 3x the
    rest. The second cluster is under 50 people, arrives through the pricing
    form, and rarely books.
  </SlackMessage>
</SlackThread>

It reads its own Vault before drafting, so saving compounds. Anyone in the
workspace can click it: it only ever creates, never overwrites.

<Note>
  Roughly one answer in five carries 👍 / 👎 and a *saved 5m · 30m · 2h* row. It's
  sampled deliberately, because buttons under **every** answer read as being asked
  to rate a conversation.
</Note>

## Getting better answers [#getting-better-answers]

* **Name the metric.** It defaults to what you literally asked for. Want a rate
  and a trend? Say so.
* **Name the form** as it appears in Surface. If nothing matches, it asks which
  of five you meant rather than guessing.
* **Give it source material.** Pasted text beats a description of the text.
* **Correct it in the thread.** Corrections are saved to
  [memory](/docs/sam/memory), so you don't earn the same one twice.

More: [Prompt library](/docs/sam/prompts).
