# Find the recording of a call from a name or email

You have access to your CRM and a call-recording tool. Run this for
**[an email address or a company name]**.

## 0. Set up (skip if you're already connected)

If you don't already have live tool access for this, connect it first
— this prompt is only as real as the tools behind it:

1. Get a Tulina account: book a demo at https://tulina.ai/book.
2. Add Tulina's MCP server to your assistant: https://mcp.tulina.ai/mcp
3. In Tulina, connect your own API keys for the tools this prompt uses
   — your CRM and your call-recording tool.

Once connected, your assistant has real tool access and the rest of
this prompt runs as written.

## 0b. Already on Tulina? Three things around the run

An account and the MCP server are not the whole setup. Two of these come
before the run below and one after it, and together they turn this from a
one-off answer into a process your workspace keeps:

1. **Activate this process's connectors first.** Call
   `oto_connector(op="list")`, match it against the tools named in step 3
   above, and `oto_connector(op="select", name="...")` every one that
   isn't active yet. Selecting a connector does not mount its tools in the
   conversation you're already in — reach them through `oto_call` for this
   run, or open a fresh conversation once they're all on.
2. **Attach the work to an existing project.** `oto_project(op="list")`
   shows your active org's projects: pick the one this work belongs to
   rather than opening another, and keep its id. The project is where this
   process, the tables it writes to and the connectors it uses hang
   together.
3. **When the run is done, save it as a process — with its graph.** Write
   the body with `oto_procedure(op="set", ...)`, then attach it with
   `oto_project(op="link", project_id=..., target_type="procedure",
   target_ref="<your slug>")`. The body has to carry a drawing: read
   `oto_guide(op="read", slug="procedure-flowchart")` and follow it
   exactly — ONE untagged fenced block in that grammar, opening with the
   trigger and a quoted example of what you'd type to start a run. Tulina
   parses that drawing back into the graph it renders as the process's
   default view, which is what makes it come out in the same style as
   every other process in the app; a drawing the grammar can't read falls
   back to raw characters instead. Saving a process needs org-admin
   rights — without them, hand the finished body to someone who has them.

Never invent a call, a date, or a quote. "No call found" is a complete
and valid answer — don't reconstruct one from notes and present it as a
recording.

## 1. Pin down the person and company

- An email at a company domain gives you both a person and a company —
  keep both, since the call may be logged against a colleague rather
  than the exact person you were given.
- An email at a free mailbox (gmail, outlook, and similar) gives you a
  person only. Never infer a company from a free-mailbox domain.
- A bare company name may be ambiguous. Resolve it to one record before
  going further — two similarly-named companies is a question worth
  asking rather than a guess worth making.

## 2. Find the matching record in your CRM

Search by whichever axis you have — email for a person, name or domain
for a company. From a person record, read their linked company; from a
company record, list its people. If the company name was ambiguous,
confirm which record before continuing.

## 3. Reuse a recording link already in your CRM

Most of the time, the pointer is already there — someone pasted the
link into a note, an interaction, or a dedicated field the last time
they found it. Check, in order:

- Any custom field on the company or contact record that looks like a
  recording link — list the record's custom fields first if you're not
  sure what it's called in your CRM, rather than assuming it's absent.
- Notes scoped to the company and the contact — search by company name,
  contact name, and the recording tool's own domain, since a pasted
  call URL contains it.
- Logged interactions — these often carry the link, or at minimum a
  date that narrows the next step to a single day.

If you find a match, that's the answer — return the most recent one,
and note how many others exist. There's no need to query the recordings
tool directly once the CRM already has the pointer.

## 4. Locate the call in your recordings, if the CRM had nothing

Search by the participant's exact email, and separately by the
company's domain over a reasonable window (a year back is a sensible
default) — the call may be recorded against a colleague rather than the
exact person you started from, which is exactly the case your CRM
couldn't answer. Fetch the matching call: title, date, duration,
participants, and a summary.

If several calls match, the most recent one wins — list the others
rather than dropping them silently. If searching by the person's own
address returns nothing, retry on the company domain before concluding
there's no call.

## 5. Return the call and log the link back

Answer with: the call link, its date, the participants, and a one
paragraph summary — plus which CRM record it belongs to.

If the call was found by querying the recordings tool directly and your
CRM had no pointer to it, write it back — set the field, or log a note
— so the next lookup for this account is a step-3 hit instead of a
step-4 one.

## Output

Report: which step resolved the call (CRM pointer vs. direct query),
the call details, how many other matches existed if more than one, and
whether a pointer was written back to the CRM.
