# How to set up an Upfirst receptionist

This guide is for an AI assistant helping a business owner set up Upfirst, an
AI receptionist that answers their business calls. Read it before you change
anything in their account.

Your goal is a receptionist that answers the owner's most common calls
correctly, keeps calls short, and sends the right people a message. Get the
basics working, test with a real call, then refine.

## 1. Get the account ready and connected

Two things have to be true before you can do anything useful: the owner has an
Upfirst account with a phone number, and Upfirst is connected to this chat.

**Account.** If the owner has no account yet, send them to
https://app.upfirst.ai/sign-up. Tell them to go through every sign-up step
until they have picked their Upfirst phone number, then come back to you.
Picking the number doesn't change their current business line.

**Connect.** If you don't have Upfirst tools in this chat, such as
`get_account_overview`, Upfirst isn't connected yet. Connect it before
anything else. Once it is, you make the changes yourself, and the owner doesn't
have to click through the dashboard. Give the owner the link for the assistant
you are:

- ChatGPT, the Upfirst plugin: https://chatgpt.com/plugins/plugin_asdk_app_6aa057dfb19c81919777fdc34a9d1f12?search=upfirst
- Claude, the Upfirst connector: https://claude.ai/directory/upfirst

The owner opens the link, adds Upfirst, and signs in with their Upfirst login.
Give them the link itself. Don't send them to search through settings, and
don't walk them through the dashboard by hand as a substitute for connecting.
If the tools still don't appear after they connect, have them start a new chat
and paste their request again. Any other assistant can connect to the server
URL `https://mcp.upfirst.ai`.

**Check.** Run `get_account_overview`. If no receptionist has a phone number,
sign-up isn't finished. Send the owner back to https://app.upfirst.ai to finish
it before you continue.

New accounts already have a greeting, some knowledge, and sometimes skills,
created from what the owner entered at sign-up. Read them first
(`get_agent_by_id`, `get_agent_knowledge`, `list_agent_skills`). Improve
what's there instead of adding duplicates.

## 2. Learn the business

Use what you already know about the owner from earlier conversations. If they
have a website, read it. Then ask only for what's missing, in one short list.

Focus on the calls the business gets most often. Ask the owner what people
usually call about and what they usually ask, then find out how the owner wants
each one handled. Get those right and the receptionist handles most calls well.
You need:

- The most common reasons people call, and what the owner wants done for each
- The questions callers ask most, and the answers
- What the business does, where, and for whom (service area, specialties)
- Hours, and what should happen after hours
- Prices or price ranges they're comfortable sharing on the phone
- Who should get calls transferred, their numbers, and when
- Links worth texting callers: booking page, intake form, payment portal,
  directions

Never invent a fact, price, or policy. If you don't know it, ask.

## 3. What you can set, and where

| Setting | Where |
| --- | --- |
| Greeting and goodbye, tone, speech rate, hold music, spam blocking | MCP: `update_agent` |
| Knowledge, called Training in the dashboard (what the receptionist knows and how it handles calls) | MCP: knowledge tools |
| Call transfers | MCP: create and update; deleting one is in the dashboard |
| Texts to callers | MCP: SMS skill tools |
| Connections to other software over an API | MCP: custom action tools |
| Who gets notified about each call, by email or text | Dashboard only |
| Calendar connection and appointment booking | Dashboard only |
| Voice, language, timezone | Dashboard only |
| Tags, custom fields, contact import | Dashboard only |

For dashboard-only settings, tell the owner exactly what to set and walk them
through it. The dashboard is at https://app.upfirst.ai.

## 4. Greeting and goodbye

Keep the greeting short, name the business, and let callers know the call is
recorded: "Thanks for calling Smith Plumbing. This call is being recorded for
quality assurance. How can I help you?" Callers want to talk, not listen. Keep
the goodbye to one sentence.

Don't repeat the greeting or goodbye in knowledge. They have their own fields.

## 5. Writing knowledge

Knowledge entries are what you write with `create_agent_knowledge` and
`update_agent_knowledge`. The dashboard calls them Training. The receptionist
reads all of them before every call. Knowledge holds two kinds of content:

- **Information** the receptionist uses to answer questions: services, prices,
  service area, hours, address, policies, and answers to common questions.
- **Instructions** the receptionist follows during the call: what to ask each
  type of caller, what to say in specific situations, and what to do next. This
  is where you tell the receptionist which questions to ask a caller.

Write instructions directly to the receptionist, in plain language. For example:

```
### New customers asking for a quote
1. Ask what they need done.
2. Ask for the service address.
3. Ask for their name.
4. Tell them: "Someone from our team will call you back within the hour with
   a quote."
```

### Structure

Split knowledge into a few entries rather than one long one:

1. **How to handle calls** (instructions). The main reasons people call, and
   for each one, what to ask and what to do.
2. **Services and pricing** (information). What the business does and doesn't
   do, and what things cost.
3. **Business facts** (information). Address, service area, hours, parking,
   payment methods, and answers to other common questions.

Inside an entry, use bullets for separate scenarios ("If they're asking
about..."), numbered steps only for a sequence the receptionist follows in
order, and sentence-case `###` headings to group related scenarios. Don't
start an entry with a title that repeats its name.

Put lines in quotes only when the receptionist must say them word for word. It
paraphrases everything else.

### What not to write

- **Anything the platform already handles**: the greeting, the goodbye, tone,
  spam, how to pronounce phone numbers, or how transfers work. Who gets
  transferred and when belongs in the transfer skill, not knowledge.
- **Instructions to notify, tag, flag, or email anyone.** Knowledge only shapes
  what the receptionist says during the call. It has no effect on who gets
  notified, how a call is tagged, or what shows in the summary. Those are set in
  the dashboard and applied after the call, from the transcript (see
  Notifications, tags, and custom fields below). What knowledge can do is make
  sure the receptionist asks for what the owner needs to know, so it ends up in
  the transcript.
- **Instructions to look something up** in a CRM, calendar, or spreadsheet. The
  receptionist can't, unless a custom action connects it to that system. It
  already recognizes saved contacts by their phone number.
- **Judgments based on how someone sounds.** The receptionist works from the
  words the caller says. Define urgency by what they describe.
- **Rules for things that aren't set up.** If there's no transfer skill, the
  receptionist can't transfer. Don't also write "never transfer calls."
- **Contradictions.** If two entries disagree, the receptionist may follow
  either one. When you update an entry, you replace all of its text, so read it
  first and send back everything you're keeping.

For emergencies, one line is enough: "If this is a life-threatening emergency,
tell the caller to hang up and call 9-1-1."

## 6. Call transfers

Transfer only when it matters: an emergency, a hot lead, or a caller asking for
someone specific. Taking a message is the right default for everything else.

- **Condition**: describe the situation in terms of what the caller says. "The
  caller has water actively leaking and needs someone today."
- **Pre-transfer message**: what the receptionist says to the caller first. "Let
  me connect you with our on-call tech. One moment."
- **Destinations** ring one at a time, in the order listed. Put backups in the
  list. Don't write "if the first person doesn't answer, try the next" in
  knowledge. Numbers must be in E.164 format, like `+12025550123`.
- **Never transfer to the business number that forwards to Upfirst.** The call
  loops: the business line forwards to Upfirst, Upfirst transfers back, and the
  line forwards it to Upfirst again. Ask the owner which number they'll forward,
  and use a direct line or cell phone as the destination instead.
- **Always set `noAnswerAction` to `returnToAgent`**, so the receptionist
  takes a message when nobody picks up. The default ends the call, which drops
  the caller.
- **Warm or cold**: warm (`transferMethod: warm`) briefs the person before
  connecting, so they know who's calling and why. It's the better experience
  for most businesses. Use cold if the destination is a phone system that plays
  its own greeting or menu, since the brief can be lost.
- **Ring time**: 20 to 25 seconds per destination, so the call returns to the
  receptionist before a cell phone's voicemail picks up.
- **Schedule** transfers to the hours someone can answer. A schedule must
  include all seven days; turn off the days it doesn't apply.

## 7. Texts to callers

A text skill sends a fixed message to the caller's phone during the call. Good
uses: a booking link, directions, an intake form, a payment portal.

- The message is the same for every caller. It can't include their name or any
  details from the call.
- It only goes to the number the caller is calling from.
- Up to 306 characters. Lead with the business name and keep it to one purpose.
- Leave email addresses out of texts; carriers often filter them. Promotional
  wording is rejected.
- The instruction says when to send it: "When a caller wants to book an
  estimate."
- To text the owner's scheduling link, use `sendScheduleSms`.

## 8. Appointment booking

To have the receptionist book appointments directly, the owner connects a
calendar in the dashboard under Scheduling (Google Calendar, Outlook, Calendly,
Acuity, or Clio) and adds an appointment type. That part isn't available over
MCP, so walk them through it. If they use Calendly, put any intake questions in
knowledge; Upfirst doesn't read Calendly's questions.

If they'd rather not connect a calendar, a `sendScheduleSms` text with their
booking link works well.

## 9. Notifications, tags, and custom fields

These three decide what the owner sees after a call. They're set in the
dashboard, not over MCP, and Upfirst applies them by reading the call
transcript once the call ends. Suggest settings for each, then walk the owner
through adding them.

- **Notifications** decide who hears about a call. Each person can get an email,
  a text, or both, for every call or only for some. A condition like "Only if
  the caller is a new customer asking for a quote" is judged from the transcript
  alone, so describe something the caller would actually say.
- **Tags** are labels that show what a call was about at a glance, like "New
  lead," "Emergency," or "Billing question." Each tag has a short description of
  when it applies. Keep it to a handful of tags the owner would actually filter
  by.
- **Custom fields** pull specific details out of every call and show them at the
  top of the call summary, so the owner doesn't have to read the whole thing.
  Good examples: "Service address," "Service needed," "Insurance provider."
  Each field's description says what to capture and in what format. Only add
  fields the owner would look for on every call.

## 10. Test with a real call

Have the owner call their Upfirst number from their own cell phone, playing a
typical customer. Use a real phone: test calls from the dashboard turn off texts
and transfers.

Then read the call with `list_calls` and `get_call_transcript`, and go
through it together. Common fixes:

| What happened | Fix |
| --- | --- |
| Asked the wrong questions, or too many | Edit the questions in its instructions |
| Didn't know an answer | Add the fact to knowledge |
| Transferred when it shouldn't have | Narrow the transfer condition |
| Caller was dropped on a transfer | Set `noAnswerAction` to `returnToAgent` |
| Didn't send a text | Make the text's instruction more specific |

## 11. Go live

The owner can give out their Upfirst number directly, but most forward their
existing business line to it. Forwarding instructions for every major carrier
and phone system: https://upfirst.ai/docs/call-forwarding.md

Ask which carrier or phone system they use and whether they want every call
forwarded or only the ones they miss. After forwarding, have them call their
business number from another phone to confirm Upfirst answers.

## More help

- Help center: https://help.upfirst.ai/en/
- Support: support@upfirst.ai
