> This is a page from the ElevenLabs documentation. For an index of the documentation, fetch https://elevenlabs.io/docs/llms.txt.

# Xero

Your receptionist can check whether a caller is already a contact in your Xero organization and add new callers as contacts, so they're ready when you send a quote or invoice. Xero's API only accepts OAuth sign-in tokens that expire every 30 minutes, so webhook tools can't connect to it directly. Reception connects through [Zapier](/docs/reception-ai/integrations/zapier).

> **Warning**
>
> Xero holds your financial records. Don't add actions that create or send invoices, bills,
> payments, or credit notes. A caller could talk your receptionist into the wrong amount or
> recipient. Create invoices yourself in Xero.

## Set up

### Connect Zapier

If you haven't yet, connect [Zapier](/docs/reception-ai/integrations/zapier) in Reception.ai.

### Add the Xero actions

In your Zapier MCP server at [mcp.zapier.com](https://mcp.zapier.com), add the [actions below](#actions) from the **Xero** app and sign in to Xero when Zapier asks. For each field, either set a fixed value or let the AI fill it in, as listed.

The actions can do anything the Xero user you sign in as can do. Consider a dedicated user with the lowest role that can manage contacts.

### Assign the tools

In Reception.ai, open the Zapier integration's **Tools** tab, select **Refresh tools**, and assign each action to the **Client** (receptionist).

### Test it

[Test your receptionist](/docs/reception-ai/receptionist/testing) as an existing client who gives their business name, then as a new caller. The new contact appears under **Contacts** in Xero.

## Actions

### Find the caller

| Field                  | Value                                                                   |
| ---------------------- | ----------------------------------------------------------------------- |
| **Zapier action**      | **Find Contact**                                                        |
| **Set in Zapier**      | **Organization**: your Xero organization. Search by the contact's name. |
| **Let the AI fill in** | The contact name: the caller's business name, or their full name.       |
| **Assign to**          | **Client**                                                              |

Xero finds contacts by name or account number, not by phone number, so your receptionist must ask for the name the account is under.

### Add the caller

| Field                  | Value                                                                                                                       |
| ---------------------- | --------------------------------------------------------------------------------------------------------------------------- |
| **Zapier action**      | **Find or Create Contact**                                                                                                  |
| **Set in Zapier**      | **Organization**, and search by the contact's name. Leave account codes, tax number, bank account, and payment terms empty. |
| **Let the AI fill in** | **Contact Name**, the primary person's first name, last name, and email, the phone number, and the address.                 |
| **Assign to**          | **Client**                                                                                                                  |

Use **Find or Create Contact**, not **Create/Update Contact**. **Create/Update Contact** changes a contact that already exists, so a caller who gives another client's name could overwrite that client's phone number or email.

> **Tip**
>
> Add a [procedure](/docs/reception-ai/receptionist/rules-and-procedures) so your receptionist asks
> for the caller's business name and searches for it before it adds a contact.

> **Warning**
>
> **Find Contact** returns whatever is saved on the contact. Add a
> [rule](/docs/reception-ai/receptionist/rules-and-procedures) telling your receptionist to never
> read a contact's details, balances, or invoices back to the caller, and to use them only to
> recognize the caller.

## Limitations

* Your receptionist can't look callers up by phone number. It needs the exact name the contact is saved under in Xero.
* Your receptionist can't create invoices or quotes. Take the details in the call, and create the invoice yourself from the contact.
* Each action your receptionist runs uses tasks from your Zapier plan. Zapier currently counts two tasks per successful call; failed calls aren't counted. When the plan runs out, the actions stop until it resets.

## Troubleshooting

| Problem                                      | What to check                                                                                   |
| -------------------------------------------- | ----------------------------------------------------------------------------------------------- |
| A Xero action doesn't appear in Reception.ai | Select **Refresh tools** on the Zapier integration after adding actions in Zapier.              |
| An action shows **Changed** and isn't used   | You edited it in Zapier. Select **Update** in the **Tools** tab.                                |
| Known callers aren't found                   | Xero matches the contact name as saved. Ask the caller for the business name on their invoices. |
| Contacts land in the wrong organization      | Set **Organization** as a fixed value in Zapier.                                                |
| Zapier stops connecting to Xero              | Reconnect your Xero account in Zapier. Xero ends connections that aren't used for a long time.  |