> For the complete documentation index, see [llms.txt](https://docs.coupler.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.coupler.io/sources/category/sales/acuity-scheduling/best-practices.md).

# Best Practices

## Recommended setup

<table data-card-size="large" data-view="cards"><thead><tr><th></th><th></th></tr></thead><tbody><tr><td><strong>Set a meaningful start date</strong></td><td>Use the date picker to set a start date that matches your reporting needs. For a 90-day rolling report, set the start date 90 days back. Pulling all-time data on the first run can be slow and may hit rate limits.</td></tr><tr><td><strong>Add multiple entities to one data flow</strong></td><td>Use a single data flow with Appointments, Clients, and Appointment types as separate sources. Then use a Join transformation to link them — for example, joining Appointments with Appointment types on the type name to enrich booking records with pricing and duration.</td></tr><tr><td><strong>Use Append for multi-account reporting</strong></td><td>If you manage more than one Acuity account, create a source for each account and use the Append transformation to combine them into a single dataset for unified reporting.</td></tr></tbody></table>

## Data refresh and scheduling

<table data-card-size="large" data-view="cards"><thead><tr><th></th><th></th></tr></thead><tbody><tr><td><strong>Match refresh frequency to your booking volume</strong></td><td>High-volume businesses with dozens of daily appointments benefit from hourly or every-few-hours refreshes. Lower-volume operations can use daily syncs without missing anything meaningful.</td></tr><tr><td><strong>Run a successful manual sync first</strong></td><td>Before setting a schedule, complete a manual run and verify the data looks correct in your destination. Check that appointment statuses, dates, and client fields are populated as expected.</td></tr></tbody></table>

## Performance optimization

<table data-card-size="large" data-view="cards"><thead><tr><th></th><th></th></tr></thead><tbody><tr><td><strong>Filter by status in your destination</strong></td><td>Acuity returns all appointment statuses including canceled and no-shows. Filter these out in Google Sheets, BigQuery, or Looker Studio rather than at the source level so you keep the full history available for churn or cancellation analysis.</td></tr><tr><td><strong>Use Aggregate for summary dashboards</strong></td><td>If you're building a Looker Studio or Google Sheets dashboard, apply the Aggregate transformation in Coupler.io to pre-summarize bookings by week, calendar, or appointment type. This keeps your destination lean and dashboards fast.</td></tr></tbody></table>

## Common pitfalls

{% hint style="danger" %}
Don't use a staff member's API credentials — only the main account owner has full access to all entities including all calendars and client records.
{% endhint %}

{% columns %}
{% column %}

#### Do

* Use the main account owner's User ID and API key
* Set a start date to limit initial data volume
* Join Appointments with Clients or Appointment types for richer analysis
* Keep canceled appointments in your dataset for cancellation rate reporting
  {% endcolumn %}

{% column %}

#### Don't

* Leave the start date unset and pull unlimited history on the first run
* Assume Forms data is embedded in Appointments — it's a separate entity
* Store your API key in a shared spreadsheet alongside the exported data
* Use the same data flow for multiple Acuity accounts — create separate sources instead
  {% endcolumn %}
  {% endcolumns %}


---

# 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.coupler.io/sources/category/sales/acuity-scheduling/best-practices.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.
