# Swan skill template: Manage deal rooms

For Path 3. Paste into Swan and ask it to create the skill.

It assumes you built the workspace from the build spec tab, including its API (Step 14) and visit webhooks (Step 13b). First store the workspace secret in Swan as an org secret named `DEALROOM_API_SECRET`. Then send Swan:

```text
Create a skill called "Manage deal rooms" from the text below. Replace every  with our
real values, and ask me for any you cannot find.
```

```markdown
# Manage deal rooms

Use when a rep asks to create, update or check a deal room for a named company, or when a deal-room
visit webhook arrives.

## Setup
- Workspace:  (always the published URL, never a preview URL).
- Auth: the DEALROOM_API_SECRET org secret, sent as a bearer token. Never print it.
- Tools: find_dealrooms, get_dealroom, list_assets, create_dealroom, update_dealroom,
  manage_dealroom_items, get_dealroom_url (MCP or the matching /api/public HTTP endpoints).
- Stages, in order: . Default current stage after a first call: .
- Room owners: , . Default owner: whoever asked.

## Procedure (every time)
1. Find first. Search rooms by company name and domain. One room per company: if one exists,
   update it. Never create a duplicate.
2. Inspect. Read the existing room (owner, stage, every item) before editing.
3. Discover assets fresh. List the library every session; never reuse an asset id from memory.
   Judge each asset by its description and audience flag, not its title.
4. Pick lean. Up to 3 assets unless the rep asks for more:
   - Always: the demo video () as asset 1.
   - When it fits: , only if their motion, persona or use case matches.
   - The last slot: chosen from context (what they asked on the call, the persona, the signal).
   - After a call: add the recording as a link titled "Call recording from " with a
     4-5 bullet recap: where they stand, key pains, what was shown, their goal, next step + owner.
   - Never an asset made for another customer. No pricing unless the rep asks.
5. Write the welcome note. First person from the owner, contact's first name, under 150 words,
   references the call, one line per asset on why it matters, one clear next step. No emojis,
   no em dashes. Never invent pricing, dates or commitments.
6. Create or update, then read the room back and compare it with what you intended.
7. Get the link with get_dealroom_url. Send only the tracked, email-gated share URL. Never paste
   the plain /room/ address into an email, Slack message or sequence.
8. Draft the follow-up email with the link and show it to the rep. Never send without approval
   unless the rep explicitly says to.

## Visit alerts (webhook trigger)
On dealroom.visit_summary: match the room to the account, then post one Slack message to
 per visit:
- Line 1: account, tier or deal stage, who viewed (name and title if the email gate captured it).
- Line 2: active time, items viewed with seconds each, country and device, visit number.
- Flag a likely self-view when the viewer email is ours, or the location matches the room owner's
  and nothing identifies the buyer. Say "confirm before treating as buyer intent".
- One suggested next action tied to what they viewed (e.g. pricing viewed twice: offer a call).

## Report back to the rep
Room share URL, assets used and why, stage, owner, and anything unknown or waiting on approval.
Never invent an id, a stage, an owner or a number. If a lookup cannot resolve it, ask.
```

Next, give Swan a trigger on new call transcripts that runs this skill. For alerts, register your workspace webhook to a Swan webhook trigger that also runs it.
