> For the complete documentation index, see [llms.txt](https://docs.simplespa.net/simplespa-documentation/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.simplespa.net/simplespa-documentation/api/simplespa-enterprise-api/integrations/zapier.md).

# Zapier

Enterprise users can connect SimpleSpa to over 5,000 other applications using Zapier.

## Example Use Cases

* Add new appointments into Google Sheets automatically
* Trigger emails or SMS when a new appointment is booked
* Sync upcoming appointments into a project management system
* Create CRM leads when appointments are confirmed

## Zapier Example Setup

1. Trigger App: Webhooks by Zapier
2. Trigger Event: Retrieve Poll
3. Your configuration should be similar to the following

<figure><img src="/files/GDVXxmIBbT8Z9P98aajn" alt=""><figcaption><p>Zapier with the SimpleSpa Appointments API</p></figcaption></figure>

Let's do another example here to send a Happy Birthday to clients that may have not visited prior to April 30th, 2025 and have no future visits scheduled:

1. Select "Webhooks by Zapier" > "Retrieve Poll"

Populate the fields as shown here, make sure to use your API Key

<figure><img src="/files/YmCfAL1McRg5mhzZeYtV" alt=""><figcaption><p>Webhook setup by Zapier with the SimpleSpa API</p></figcaption></figure>

2. Add "Email by Zapier"

<figure><img src="/files/JlICR4Lcq1hNB4WvZMRu" alt=""><figcaption><p>Email by Zapier using the SimpleSpa API</p></figcaption></figure>

Here is a basic HTML template you can use for these campaigns

```html
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Happy Birthday!</title>
  <style>
    body {
      font-family: 'Segoe UI', sans-serif;
      margin: 0;
      padding: 0;
      background-color: #f4f6f8;
      color: #333;
    }
    .container {
      max-width: 600px;
      margin: 30px auto;
      background: #fff;
      border-radius: 8px;
      overflow: hidden;
      box-shadow: 0 2px 8px rgba(0,0,0,0.05);
    }
    .hero {
      width: 100%;
      height: auto;
      display: block;
    }
    .content {
      padding: 30px;
      text-align: center;
    }
    h1 {
      color: #e91e63;
      margin-bottom: 10px;
    }
    p {
      font-size: 16px;
      line-height: 1.6;
    }
    a.button {
      display: inline-block;
      margin-top: 20px;
      background-color: #00aaff;
      color: white;
      padding: 12px 24px;
      text-decoration: none;
      border-radius: 5px;
      font-weight: bold;
    }
    .footer {
      font-size: 12px;
      color: #999;
      padding: 20px;
      text-align: center;
    }
  </style>
</head>
<body>

  <div class="container">
    <img src="https://my.simplespa.com/img/promos/AE946880-429E-4966-8FD1-68309AF41053.png" alt="Happy Birthday" class="hero">

    <div class="content">
      <h1>Happy Birthday {{294776830__firstname}} 🎉</h1>
      <p>
        Wishing you a wonderful day filled with love, relaxation, and joy.<br>
        The entire team at <strong>California Spa @SimpleSpa</strong> is celebrating you!
      </p>
      <p>
        Don’t forget to treat yourself—book your special appointment today!
      </p>
      <a href="https://californiaspa.simplespa.com" class="button">Book Now</a>
    </div>

    <div class="footer">
      &copy; <?= date('Y') ?> SimpleSpa. All rights reserved.
    </div>
  </div>

</body>
</html>
```

Test the integration out to see that it works, it will send out an email if you have results in your API call

<figure><img src="/files/ihPrfY3b3UDnDntKfE45" alt=""><figcaption></figcaption></figure>

* Use pagination (page and per\_page) to avoid timeouts on large datasets.
* Use the status filter to target only specific types of appointments (e.g., only Confirmed).
* Appointments are sorted by start time ascending.
* It is recommended to use caching and avoid polling the API more frequently than necessary.
* Rate limits are recommended at no more than 1 request per minute to avoid potential throttling.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.simplespa.net/simplespa-documentation/api/simplespa-enterprise-api/integrations/zapier.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
