Skip to content
Tulina launches publicly tomorrowtoday
← Processes

Route every call's notes to the CRM

AI meeting notes routed into your CRM: each call is read, classed as sales, hiring, partner or investor, and logged on the right record with a recap note.

Granola→Folk
Starts
Daily schedule, every 12 hours
Steps
5
Checks and gates
1
A person decides
Never, runs alone

Trigger · Schedule

Daily schedule, every 12 hours

The run opens twice a day on the calls of the last 13 hours, an hour wider than the cadence so no call falls between two runs.

Claude runs the rest autonomously

  1. 1

    AI sweeps new notes, drops synced calls.

    Granola

    Granola

    Notes created or published in the window come back from the whole team, minus every call the CRM already holds a link to.

    Folk

    Folk

  2. 2

    AI classifies each call before writing.

    Granola

    Granola

    Each call is read and classed as sales, hiring, partner, investor or internal before anything is written, and a close call is flagged.

  3. 3

    AI routes it to the right record.

    Folk

    Folk

    Sales lands on the company in the pipeline, the other classes on the person, with the status moved forward only and closed deals left alone.

  4. 4

    AI reads back what the CRM did.check

    Folk

    Folk

    Every create and field write is read back, and a twin company or a value nobody sent is repaired before the run goes on.

  5. 5

    AI writes the recap with the call link.

    Folk

    Folk

    One note in the call's language lands on the person the call was with, closing with the link that marks the call as synced.

  6. Result · Every external call your team has lands on the record it belongs to, the deal, the candidate, the partner or the investor, with a recap note in the call's language that ends with the link to the call, and internal calls stay out.

An AI notetaker solves the half of the problem that was never really the problem. Every call now has a clean summary within minutes. The CRM still moves only when someone remembers to update it, and nobody does it the same way twice: the deal gets a stage and one line, the candidate's card gets nothing, and the fund that asked for the deck is a name in a summary nobody will reopen. The notes exist. They are just not where the next person will look.

The join is mechanical, and it is the same after every call. Read the summary, decide what kind of call it was, find the record it belongs on, move what the call moved, and leave a note that says so. This process does exactly that, twice a day, for every external call the team had.

What you get

Every external call your team has lands on the record it belongs to, the deal, the candidate, the partner or the investor, with a recap note in the call's language that ends with the link to the call, and internal calls stay out.

If what you need is the follow-up email after a sales call, that is its own process. This one covers every kind of call, not only sales, and its output is the CRM itself.

What each call is checked against

Each run reads two systems and writes to one:

  • The notes, from Granola: every note created or published in the window, whoever on the team owns it, with its summary, its attendees and its calendar event. The transcript is only fetched when the summary is missing.
  • The CRM, in Folk: the people and companies already there, the groups that hold the sales pipeline, candidates, partners and investors, the fields each group defines, and the notes already on each attendee, which is where the run looks for its own sync marker.

The class of a call decides where it goes. A sales call lands on the company in the pipeline. A hiring call lands on the candidate, who is not always the person on the call: a recruiter's call produces a card for the profile they put forward. A partner or investor call lands on the person. An internal call, a solo prep note or a call that only names a company lands nowhere and is reported as such.

What makes syncing AI meeting notes to a CRM hold up

The window is swept twice. A note does not exist for the API at the moment of the call; it appears once it is generated and shared, sometimes hours later. One pass takes the notes created in the last 13 hours, the other the notes published in that window whatever their call date, up to seven days back. A single pass on creation time would lose every call whose note came out late, and the report lists those late notes so you can see the second pass earning its place.

The sync marker is the link to the call and nothing else. Every recap ends with the note's web link, and before touching a call the run looks for that link on the attendee's existing notes. A record whose fields already reflect the call but that has no note with the link was updated by hand: the run writes the recap and leaves those fields alone. When two colleagues both record the same call, the calendar event id shows it is one call, and the second summary is folded into the first note with both links rather than becoming a second recap.

A call is classified before anything is written, and the summary wins over the metadata. An external attendee on the invitation does not make a sales call if the summary is two colleagues discussing that company, since nobody talks about a counterpart in the third person with them in the room. A vendor pitching you is never a deal. When the class is unclear, the next step decides it, and a close call is flagged for a person rather than guessed.

Every write is read back. The CRM can attach a company it matched on the email domain even when the run named the right one, creating an empty twin already in the pipeline; the read-back catches it, detaches it and deletes it. A custom field can also come back filled with a value nobody sent, from the CRM's own AI fields, so each field write is compared with the read taken before it.

The pipeline only moves forward. A status is set when empty and advanced one rung when the call plainly supports it; a closed deal is never touched, and a field a person set from the same call is not corrected. Deal value is the list price of the offer actually on the table, never a discounted figure and never a tier merely mentioned. Whatever the run declined to change goes into the recap note, where the next person opening the record will read it.

An AI meeting notes taker, and what happens after it

An AI meeting notes taker writes the summary. This process starts where the notetaker stops, so it does not replace one: it reads its notes. Here is what changes between updating the CRM by hand after each call and letting the process do it.

After each callBy handThis process
Which calls are coveredthe ones someone remembersevery note the team's notetaker published in the window
Sales, hiring, partner, investorusually only sales reach the CRMeach class goes to its own group and record
Finding the recorda search by name, duplicates includedemail first, domain checked before any create
Pipeline statusmoved by memory, sometimes backwardsforward only, closed deals never touched
Deal valuewhatever figure was heardlist price of the offer in negotiation, or empty
A call recorded by two colleaguestwo notes, or noneone note carrying both links
What was not changed, and whynot recordedwritten in the recap note
Knowing a call is already donenot trackedthe call's link at the end of the note

The prompt

The real prompt behind the steps above, detailed enough that an agent with the same tools can run it as written. The Run buttons copy the full version, which also carries the steps for connecting those tools.

# Route every call's notes to the right CRM record

You have access to your team's call-notes tool and your CRM. Run this
every **[12 hours]** on the calls of the last **[13 hours]**.


## 1. Sweep the window, keep the unsynced calls

A note does not exist for the API at the moment of the call. It appears
once the note is generated and shared, sometimes hours later. Sweep
**twice** and union the results by note id:

- Notes **created** in the last [13 hours]: the calls that happened in
  the window. The window is an hour wider than the cadence, so a call
  on the boundary is caught by one run or the other.
- Notes **updated** in the last [13 hours] and created in the last
  [7 days]: the calls that became readable in the window, whenever they
  happened. If a note comes back right at the seven-day floor, say so
  in the report: the floor is now doing work.
- Page through both (up to 30 per page) and take every note, **whoever
  owns it**. Keeping only your own notes means your colleagues' calls
  never reach the CRM.
- "Updated" is not "published". A folder move or a re-index can stamp
  unrelated notes with the same update time. A wide gap between created
  and updated is a reason to check the sync marker, never a reason on
  its own to rewrite a record.
- **The sync marker is the link to the note, and only that.** Every
  recap this process writes ends with the note's web link. Before
  processing a call, search the notes on each attendee the CRM already
  holds for that link; if it is there, drop the call. A record whose
  fields already reflect this call but which carries no note with the
  link is **unsynced**: a person filled the fields by hand, so write
  the recap and leave their fields alone.
- **Two notes can be one call.** When two colleagues attend, each gets
  a note: two ids, two links, two summaries of the same half hour.
  Compare the calendar event id with the notes already handled. Same
  event, attendees and slot means the same call: append the second link
  to the existing recap, add what only the second summary says, and
  touch no field. When the two copies disagree on a fact, record the
  disagreement in the note and let a person settle it.

Take the remaining calls **oldest first**, so a newer call's reading of
the pipeline wins over an older one, and carry each one to its recap
before the next begins.

## 2. Read the call and classify it

- The note's summary is the source. Fetch the transcript (paginated)
  only when the summary is missing or useless; asking for a long
  meeting's transcript inline can fail as too large.
- Pull the external attendees with their emails, minus your own domain,
  your team's personal addresses and notetaker bots. Then what the call
  produced, what was promised, what blocks the next step, any price
  named, and the language spoken.
- **Take names from the email domain, not the transcript.** Summaries
  mangle company and product names; never copy one into the CRM
  without recognizing it first.
- **Date the call from the note's creation time**, and take follow-up
  dates from the summary's own next steps. The calendar event attached
  to a note can point at a different occurrence of a recurring meeting.
- **Not everything in a summary belongs in a CRM.** Someone's health,
  family or personal money is not pipeline context: drop it entirely,
  and keep only what the business thread needs ("back at work,
  follow-up late in the month"). Your own internal numbers stay out
  too, except a figure that *is* the negotiation, written as the
  constraint it is.

Decide the class **before any write**, and report it for every call:

| Class | What it looks like | Where it lands |
|---|---|---|
| Sales | a prospect or customer, a conversation about buying or onboarding | the **company**, in the sales pipeline group |
| Talent | hiring: a candidate met, a role scoped, a recruiter putting profiles forward | the **candidate**, in the talent group |
| Partner | a channel, reseller, referral or intro relationship | the **person**, in the partner group |
| Investor | a fund, angel or scout, and a conversation about raising from them | the **person**, in the investor group |
| Internal | a team sync, a one-on-one, a solo note | nothing: reported and dropped |

- When it is ambiguous, prefer the class the next step belongs to: an
  intro being made is talent or partner, a payment link being sent is
  sales, a deck going to a fund is investor.
- **The other side selling to you is not a sales call.** It is a
  partner or vendor thread, and inventing a deal for it corrupts the
  pipeline. An investor is not a partner either.
- **A title, an attendee list or a folder is not a classification.** An
  external can sit on the invitation while the summary is two
  colleagues talking *about* that company. Nobody discusses a
  counterpart in the third person with them in the room. Read the
  summary before the metadata, and flag a close call for a person.
- **A prep note is not a call.** A solo note rehearsing an upcoming
  meeting creates no record, and neither does a company merely named
  as an option.
- A call can carry two classes at once, a customer call where the
  customer also offers an introduction. It then routes to both, one
  record and one note each.

## 3. Route it to the right record

**Sales goes to the company in the pipeline.**

- Search the person by email first. A text search that comes back empty
  on a multi-word company name is not proof of absence: confirm on the
  domain before creating anything, or you create the duplicate you were
  looking for.
- **A matching company exists:** create the person with the company's
  id set explicitly. Attendee email domains and company websites drift
  apart, and letting the CRM resolve the domain itself can create a
  second company.
- **No company exists:** create it first, add it to the pipeline group,
  then create the person attached to it.
- **The call never names a company** (a personal or school address, no
  stated employer): create no company. A company created from a
  personal-mail domain is a permanent duplicate the CRM will offer for
  every other contact on that domain. Put the person in the pipeline
  group and the missing context in their description.
- A record must be **in the group before that group's fields are
  written**, or the write is refused. Read the group's own fields
  before writing; never assume their names.

**The pipeline fields, on the company:**

- **Status moves forward only, and closed stays closed.** Use your own
  ladder, for example [Meeting booked → Follow-up pre-demo → Follow-up
  post-demo → Qualified/Negotiating → Closed Won | Closed Lost], read
  from the CRM rather than assumed. Set an empty status and advance one
  the call plainly supports. Never move one backwards and never set or
  touch a closed state: a person closed it knowing something the
  summary does not.
- **One rung is the habit, not the ceiling.** Advance two only when the
  call closed two stages at once (the booked meeting *was* the demo),
  and flag it as a judgment call. The last open rung is the run's
  ceiling.
- **A field a person set from this same call is not the run's to
  correct.** Write the recap and report the change you declined.
- **Next steps are rewritten every sync**: what happens next and who
  owes it, from the call's own next steps. Stale next steps are worse
  than none.
- **Deal value is the undiscounted list price of the offer actually in
  negotiation.** A discount goes in next steps and the note, never in
  the figure. A bigger tier merely mentioned does not raise it. No
  price named, or a price band with nothing chosen, leaves it empty.
- Company size and industry are set only when the call makes them
  certain. A wrong one is worse than a blank one.

**Talent goes to the candidate**, who is not always the person on the
call: a recruiter's call produces a card for the profile they put
forward, and the recruiter goes to partners. The candidate status moves
forward only and the run never sets the closing state. A customer's
contact changing jobs is not a candidate.

**Partner goes to the person**, in the partner group, writing only the
fields that group carries. An existing customer who brokers an intro
**gains** the partner group and keeps their pipeline group. A prospect
who *could* resell you is not a partner until someone raises it.

**Investor goes to the person**, in the investor group, with the fund's
stage, ticket, focus and what they asked for in the description. The
investor status is **left blank on a first meeting**: a warm "send me
the deck" and a polite brush-off produce the same next step.

## 4. Read back what the CRM did

- Re-read the person after **every** create and check which companies
  it is attached to. Some CRMs resolve the email domain on their own
  even when you passed a company id, and can create an empty twin
  company in the same call, already in the pipeline. Detach it, keeping
  only the company you meant, then delete the twin.
- A company the CRM resolved correctly but under a mangled name is
  renamed in place, never deleted: deleting a right answer only creates
  another duplicate.
- **Re-read after every custom-field write** and compare it with the
  read taken before writing. A CRM's own AI fields can fill a value you
  never sent; clear what appeared, and leave alone what was already
  there.

## 5. Write the recap note

- One note on the person the call was actually with, structured by what
  the call produced: context, what happened, decisions, objections,
  next steps with owners. Name the seller or interviewer when it was
  not you.
- **Write it in the language of the call**, and close it with the
  note's web link. That link is the sync marker step 1 depends on, so
  it is never optional.
- A call routed to two records gets a note on each, both ending with
  the same link. A call recorded twice gets **one** note carrying
  **both** links.
- **Put declined changes in the note, not only in the report**: a
  status left alone, a blank investor rung, a deal value left empty
  although a price was heard, a prospect with no company. The report
  scrolls away; the note is what the next person opening the record
  reads.

## Output

Report: the window and the count from each sweep, with any note
published more than [13 hours] after its call; then every call with its
class and outcome (routed, already synced, second copy folded in, or
internal); for each routed call, the records created or updated, the
status change made or declined and why, the deal value written or left
empty, any duplicate the read-back caught and repaired, and every
judgment call made on your behalf. A window with nothing to do reports
"nothing new".

Why run it with Tulina

A prompt helps one person. A process moves a team.

Pasted into a chat, the prompt above works once, for whoever pasted it. In Tulina, "Route every call's notes to the CRM" becomes a process the team shares, that keeps its history, runs on its own, and stays inside the same security perimeter as the tools it calls.

  • The whole team works on the same one

    PersonalTeamOrganisation

    A process lives where it belongs: yours, your team's or the whole organisation's. Whoever runs it can improve it, and everyone starts from the best version instead of explaining the job again.

  • Every edit is a version

    v1v2v3

    Each change is a new version with the previous one kept, so a bad edit is undone by restoring an earlier one. Every run records the version it followed, and what a run teaches goes back into the process.

  • It runs without you

    schedulewebhookon demand

    A hosted agent runs the process on Tulina's own infrastructure, on a schedule or when an event arrives, and keeps going when you close the chat. Nothing to host. Every run is tracked to its outcome.

  • Inside the same security perimeter

    vaultrolesrun log

    Credentials stay in the vault, never in the prompt. Roles decide who may run what, every call is logged, and a step a person has to approve waits for that person.

Questions about syncing AI meeting notes to a CRM

Yes. An agent with access to your notetaker and your CRM can read each call's summary, decide what kind of call it was and update the matching record: the company in the pipeline for a sales call, the candidate for a hiring call, the person for a partner or investor call. Every recap note it writes ends with the link to the call, which is also how the next run knows the call is already done.

It reads the summary before the metadata and decides the class before anything is written. When a call is ambiguous it picks the class the next step belongs to: a payment link is sales, an introduction is talent or partner, a deck going to a fund is investor. A vendor selling to you is never logged as a deal, and a close call is flagged for a person.

It can, which is why every create is read back. A text search that finds nothing on a long company name is confirmed on the email domain before anything is created, a personal email address never produces a company, and a twin company the CRM created on its own is detached and deleted.

No. The pipeline status only moves forward, a closed deal is never touched, and a field a person set from the same call is left alone. What the run declined to change is written in the recap note, so the next person opening the record sees it.

Other processes that run mainly on Folk. The tools they share with this one are lit.

See Tulina in a 30-minute demo.

Book a demo