# Housecall Pro

Create a lead in Housecall Pro for each caller with an HTTP request and your API key, or add the customer with Zapier.

Updated Nov 3, 2026. Source: https://smallbusinesschatbot.com/docs/integrations/field-service/housecall-pro

- **Route:** An HTTP request from a workflow, with your Housecall Pro API key, or Zapier
- **Sign-in:** A Header credential that sends your API key
- **Time to set up:** About twenty minutes

## What this does

When the AI receptionist finishes a call or a chat, a workflow creates a lead in Housecall Pro with the customer's name, number, email and the call summary as the lead's note. Your team picks it up in Housecall Pro's leads, ready to quote or schedule.

## Before you start

- Housecall Pro's API, which Housecall Pro includes on its MAX plan.
- An API key: a Housecall Pro admin generates it in Housecall Pro's App Store, under the API app.

## Save the key as a credential

Housecall Pro reads the key from an `Authorization` header that starts with `Token`, not `Bearer`, so save it as a Header credential.

1. **Open the credentials**

   In a workflow, add an **HTTP Request** step, set **Authentication** to **Workflow credential** and click **New credential**.

2. **Make it a Header credential**

   Set **Name** to "Housecall Pro", **Authentication type** to **Header**, **Header name** to `Authorization` and **Header value** to `Token` followed by a space and your API key.

3. **Save**

   Click **Create credential**. The app keeps the key encrypted and never shows it again. [Workflow credentials](https://smallbusinesschatbot.com/docs/workflows/credentials) has the details.

## Build the workflow

1. **Start a workflow on Call ended**

   In **Workflows**, create a workflow and pick the **Inbound voice call ended** trigger ([Call ended](https://smallbusinesschatbot.com/docs/workflows/triggers/call-ended)). For website chats, make a second one on [Chat ended](https://smallbusinesschatbot.com/docs/workflows/triggers/chat-ended).

2. **Skip spam**

   Add an **If** step: **Left side** `{{trigger.conversation_record.Is_Spam}}`, **Operator** Equals, **Right side** `false`. Put the HTTP Request on its true path. [If](https://smallbusinesschatbot.com/docs/workflows/steps/branch) has the details.

3. **Add the HTTP Request**

   **Method** POST, **Request URL** `https://api.housecallpro.com/leads`, **Authentication** the Housecall Pro credential, **Body format** JSON, and under **Headers** `Accept` set to `application/json`. Paste the body below.

4. **Publish and test**

   Publish the workflow and call your business number. The lead shows in Housecall Pro, and the step's response in [Run history](https://smallbusinesschatbot.com/docs/workflows/run-history) holds the new lead's ID.

```json Body payload
{
  "customer": {
    "first_name": "{{trigger.first_name}}",
    "mobile_number": "{{trigger.phone}}",
    "email": "{{trigger.email}}",
    "lead_source": "Small Business Chatbot"
  },
  "note": "{{trigger.action_items}}",
  "lead_source": "Small Business Chatbot"
}
```

To create the customer only, post the `customer` fields to `https://api.housecallpro.com/customers` instead.

## With Zapier instead

In Zapier, use the Small Business Chatbot app's **Call Ended**, **Chat Ended** or **Appointment Booked** trigger ([Zapier](https://smallbusinesschatbot.com/docs/integrations/automation/zapier)) with Housecall Pro's **Create Customer** action. Map First name, Phone, Email and Action items to the customer's notes. Housecall Pro's Zapier connection asks for the API key from the Zapier app inside Housecall Pro.

## If something goes wrong

| The step's response | Why | What to do |
|---|---|---|
| `401` | The header isn't `Token` plus your key, or the key was revoked | Edit the credential: the value starts with `Token` and a space |
| `403` | The account isn't on a plan with API access | Check your Housecall Pro plan |
| `422` | The customer has no name, number or email | Check the run's trigger data in [Run history](https://smallbusinesschatbot.com/docs/workflows/run-history) |
