> 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/crm/close-com/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>Split entities into separate sources within one data flow</strong></td><td>Rather than creating separate data flows for each entity, add Leads, Contacts, and Opportunities as multiple sources in a single data flow. Use Join transformations to connect them on shared fields like lead_id.</td></tr><tr><td><strong>Always sync the Users entity alongside activity data</strong></td><td>Almost every activity entity (calls, emails, tasks) references users by ID only. Include Users as a source and join on user_id so your reports show rep names instead of opaque identifiers.</td></tr><tr><td><strong>Use Append to unify task types</strong></td><td>Close.com splits tasks across many entities (lead tasks, missed call tasks, voicemail tasks, etc.). Use the Append transformation to combine them into a single unified task list for follow-up dashboards.</td></tr><tr><td><strong>Pull custom field definitions alongside record data</strong></td><td>Sync Lead custom fields, Contact custom fields, and Opportunity custom fields alongside your core entities. Join on field IDs to replace cryptic column names with human-readable labels in your destination.</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>Set a start date for high-volume entities</strong></td><td>The Events, Call activities, and Email activities entities can contain millions of rows for active teams. Use the date picker to set a rolling start date and avoid pulling your entire history on every run.</td></tr><tr><td><strong>Schedule activity syncs more frequently than configuration syncs</strong></td><td>Entities like Leads, Opportunities, and Call activities change daily — schedule these at higher frequency. Configuration entities like Pipelines, Roles, and Email templates change rarely and can sync weekly.</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>Use BigQuery for large activity datasets</strong></td><td>If you're syncing Call activities, Email activities, or Events for a large team, route the data to BigQuery rather than Google Sheets. Sheets struggles with tens of thousands of rows, while BigQuery handles it cleanly.</td></tr><tr><td><strong>Aggregate opportunity data before sending to dashboards</strong></td><td>Use Coupler.io's Aggregate transformation to pre-calculate pipeline totals, win rates, and average deal values. This keeps your destination lean and your Looker Studio or ChatGPT queries fast.</td></tr></tbody></table>

## Common pitfalls

{% hint style="danger" %}
Opportunity values are stored in cents. If you report on deal value without dividing by 100, your pipeline totals will be off by a factor of 100.
{% endhint %}

{% columns %}
{% column %}
**Do**

* Divide the `value` field by 100 when using opportunity amounts in reports
* Join Users to any activity entity before sharing reports with stakeholders
* Set a start date when syncing Events or high-volume activity entities
* Add multiple entities as sources within one data flow rather than building separate flows
  {% endcolumn %}

{% column %}
**Don't**

* Use the Smart views entity expecting it to return the leads inside that view — it only returns the view definition
* Sync bulk action entities (email bulk actions, delete bulk actions) unless you specifically need audit logs — they add volume without much reporting value for most teams
* Generate an API key from a restricted user account and expect it to access all entities
  {% 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/crm/close-com/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.
