# Send invites automatically from Housecall Pro

Connect a Housecall Pro webhook to Smart Invites so each customer is asked for a testimonial once their job is marked complete.

Housecall Pro can tell ReTestimonial when a job is marked complete, and Smart Invites then emails that customer a request for a testimonial. You create a webhook in ReTestimonial, then add its URL in Housecall Pro. Smart Invites are on Premium and Business, and Housecall Pro sends webhooks on its own MAX plan.

1. **Create the webhook in ReTestimonial**

   Follow [Send invites automatically with a webhook](/help/collect/send-invites-automatically-with-a-webhook) and, under **Where do you do the work?**, pick **Housecall Pro**. The fields come filled in:

   | Field                           | Value                              | What it holds                                   |
   | ------------------------------- | ---------------------------------- | ----------------------------------------------- |
   | **Email path**                  | `job.customer.email`               | The job's customer's email address              |
   | **Name path**                   | `job.customer.first_name`          | Their first name                                |
   | **Company path**                | `job.customer.company`             | Their company, when the customer record has one |
   | **Only invite when (optional)** | `event` **equals** `job.completed` | Lets through finished jobs only                 |

   **Wait before the first email** starts at one day, so the ask arrives the day after the job. Set it to suit your work. Choose the form and the emails, click **Create webhook**, then click **Copy** next to **Your webhook URL** and keep the page open.

2. **Add the webhook in Housecall Pro**

   In Housecall Pro, open **My Apps** > **All Apps**, open the **Webhooks** app and switch it on. Housecall Pro's [webhooks help article](https://help.housecallpro.com/en/articles/5683520-how-to-enable-webhooks) shows each screen.

   1. Paste your URL and click **Save**.
   2. Housecall Pro then shows a signing secret. Copy it.
   3. Choose the event `job.completed`.

3. **Paste the signing secret**

   Back in ReTestimonial, paste the secret into **Housecall Pro signing secret (recommended)** and click **Save**. The field then reads **Signature verification is on — unsigned events are rejected.** A saved secret can't be viewed again; to change it, click **Replace secret** on the webhook's **Setup** tab.

4. **Wait for the first finished job**

   Housecall Pro has no button that sends a test event. The first job marked complete is the first customer invited, and the page shows **Event received — it works**. To see one sooner, complete a small job of your own, with your own email address on the customer.

## Skipped and failed Housecall Pro events

- **Other events are skipped.** If you chose more events in Housecall Pro, the filter lets through `job.completed` only, and the rest show as **Skipped**.
- **A job without an email.** A customer record with no email address shows as **Failed** with "No email was found at the mapped path", and nobody is invited.
- **Signature failures.** When the secrets don't match, the event shows as **Failed** with "The signature didn't match". Copy the secret from Housecall Pro's **Webhooks** app again and paste it with **Replace secret** on the **Setup** tab.
- **Repeat events are one invite.** If Housecall Pro sends the same event twice, the customer is invited once, and a customer invited recently shows as **Skipped** with "Customer was already invited within the cooldown window".
- **Different services, different forms:** on Business, add a **Conditional routing** rule on a field of the job, such as `job.description`, to send each kind of job to its own form.

## Related articles

- [Send invites automatically with a webhook](/help/collect/send-invites-automatically-with-a-webhook)
- [Test a Smart Invites webhook](/help/collect/test-a-smart-invites-webhook)
- [Track invite campaigns](/help/collect/track-invite-campaigns)
- [Smart Invites](/help/collect/smart-invites)
