# Common Issues

## Connection issues

<details>

<summary>Invalid API key error when connecting</summary>

Double-check that you copied the full API key from Zoho Campaigns without any trailing spaces. In Zoho Campaigns, go to **Settings → Developer Space → API Keys** and regenerate the key if needed. Paste it fresh into Coupler.io.

</details>

<details>

<summary>Authentication succeeds but no data loads</summary>

This usually means the API key belongs to a user who doesn't have access to any campaigns or lists. Make sure the user whose key you're using has at least read access to the entities you're trying to pull.

</details>

## Missing data

<details>

<summary>Recent campaigns entity returns fewer campaigns than expected</summary>

The **Recent campaigns** and **Recent sent campaigns** entities only return a recent subset of your campaigns. If you need data on older campaigns, use **Campaign details** and specify the campaign ID, or pull **Campaign reports** which may have broader coverage.

</details>

<details>

<summary>Campaign reports entity shows no data for a campaign</summary>

Reports are only available for campaigns that have been sent. Draft or scheduled campaigns won't appear in campaign reports. Check the campaign's status using the **Recent sent campaigns** entity first.

</details>

<details>

<summary>Subscriber data is incomplete or missing fields</summary>

Custom contact fields in Zoho Campaigns may not always surface in the API response if they have no value. Fields that are blank for a contact may be omitted from the row entirely. Expect some columns to have gaps depending on how thoroughly your contacts are profiled.

</details>

## Permission errors

<details>

<summary>"Access denied" error when pulling specific entities</summary>

Some entities — particularly campaign recipients and subscriber details — may require elevated API permissions. Check that your Zoho Campaigns plan supports API access for those endpoints, and that the API key owner has admin or manager-level access.

{% hint style="warning" %}
Zoho Campaigns API access may be restricted on lower-tier plans. Verify your plan's API limits in your Zoho account settings.
{% endhint %}

</details>

## Data discrepancies

<details>

<summary>Open rates in Coupler.io don't match the Zoho Campaigns dashboard</summary>

Zoho Campaigns may calculate rates using slightly different denominators (e.g., delivered vs. sent) in their UI compared to the raw API fields. Use the raw counts (opens, delivered count) to recalculate rates in your destination for consistency.

</details>

<details>

<summary>Subscriber count in Total contacts differs from Mailing lists data</summary>

Total contacts reflects the global count across your entire account, including contacts that may belong to multiple lists. The count per mailing list reflects only that list's active subscribers — overlap between lists is expected and normal.

</details>

## Rate limits

<details>

<summary>Data flow fails or times out with a rate limit error</summary>

Zoho Campaigns enforces API rate limits per account. If you have a large number of subscribers or campaigns, pulling multiple entities in a single data flow can hit these limits. Try splitting entities across separate data flows and running them at different times.

</details>
