• Customermates logo
    CustomermatesDocumentation
  • Introduction
Getting Started
  • Quickstart
  • Core Concepts
Connect your AI
  • Custom connector
  • CLI & editors
  • Rate limits
Integrations
  • MCP
  • Webhooks
  • OpenAPI 3.1.0
  • N8N
Self-Hosting
  • Get Started
  • Architecture & Security
App guide
  • Dashboard
  • Inbox
  • Records
  • Profile
  • Company
  • API Keys
  • Filter Syntax
  • Go back
  1. Introduction
  2. Rate limits

Messaging rate limits

Why connected channels are rate-limited, the per-provider limits that apply, and what happens when one is reached.

When you connect a channel (LinkedIn, WhatsApp, email, and so on), Customermates talks to that provider through Unipile. Every provider enforces its own request limits, and exceeding them can get the underlying account throttled or suspended. To stay within safe bounds, Customermates applies a conservative request budget per channel and pauses before a provider would push back.

A paused sync is expected behavior: it keeps the connected account within provider limits and resumes on its own.

How the limits work

Limits are configured in the Unipile dashboard and enforced by Unipile. They apply per connected account at three levels at once:

  • Per endpoint: a cap on each individual operation (listing chats, reading messages) over a rolling minute and day. These are the read limits below.
  • Per sensitive method: a stricter cap on riskier operations (profile lookups, sending a message or a connection request). These are the sensitive limits below.
  • Per account: an overall cap across every call for the account.

When a window is full, further calls are rejected until it rolls over.

Read limits

Read operations sync history. They are set higher than writes because reads rarely trigger a provider ban.

ProviderReads / minuteReads / day
LinkedIn20300
WhatsApp30510
Instagram50510
Telegram50none
Gmail / Google100none
Outlook100none
IMAP100none

LinkedIn stays the most conservative because its automated-activity detection is the strictest. Some values are shaped by the provider's own ceilings: social channels cap the per-minute read limit at 50, email channels at 100, and the daily limit moves in steps of 30 (so a target of 500 is applied as 510). Telegram and the email providers do not expose a separate daily read limit.

Sensitive limits

The riskier operations stay conservative regardless of the read budget: profile lookups (which providers treat as scraping-sensitive) and any send action.

ProviderActionLimit
LinkedInGet company profile1 / second
LinkedInGet user profile1 / second
LinkedInSend connection request50 / day, 1 / 10 seconds
WhatsAppStart a chat3 / minute, 30 / day
TelegramStart a chat3 / minute, 30 / day
InstagramStart a chat3 / minute, 30 / day
Gmail / GoogleSend an email300 / day
OutlookSend an email300 / day
IMAPSend an email300 / day

What you see when a limit is reached

The action returns a message with the time to wait, for example:

This channel hit its rate limit. You can try again in 2 minutes.

You can retry once the indicated window passes. Nothing is lost in the meantime.

History syncs itself

Importing a full message history can be large, roughly one request per conversation. If a limit is reached mid-import, the background importer pauses and resumes automatically when the window frees up, with no action needed on your part. Opening a conversation also loads its messages on demand, and new activity arrives in real time over webhooks.

How the limits work
Read limits
Sensitive limits
What you see when a limit is reached
History syncs itself