Built to stay up when your volume, and your providers, get busy
ReplySetter paces every provider call per inbox under the documented limit, backs off precisely when throttled, and runs jobs on a Postgres queue that scales across worker replicas. When something does fail, the Queue page tells you what, why and lets you retry.
A closer look at Rate limits & queue
Under every provider's limit, per inbox
GoHighLevel is paced at 80 requests per 10 seconds and spreads the rest of its daily quota when under 10% remains. Gmail is paced at 70 quota units per second, Outlook at 10 requests per second with four at a time. State is shared by the API and every worker.
- GoHighLevel: 80 / 10 s, daily quota spreading
- Gmail: 70 units / s against 6,000 / min
- Outlook: 10 / s, four concurrent
- Shared pacing state across all processes
Throttled? Wait exactly as long as needed
A 429, a Gmail rateLimitExceeded or a 503 with Retry-After blocks that inbox until Retry-After, GoHighLevel's rate-limit window or an exponential backoff up to 64 seconds. Short waits retry in place; long waits defer the job without using an attempt.
- Honours Retry-After and X-RateLimit headers
- Exponential backoff up to 64 s
- Deferred jobs keep their attempts
- Failing inboxes retried after 1, 2, 4 … 60 minutes
A Queue page that explains itself
See each inbox's sync health, API calls, throttles and GoHighLevel quota headers, plus failed, retrying, waiting and running jobs. Identical failures are grouped, so a single expired token shows up as one problem, not five hundred.
- Sync health per inbox
- API calls, throttles and quota headers
- Grouped identical failures
- Retry or clear in one click
The details
Postgres queue
FOR UPDATE SKIP LOCKED jobs, safe across replicas.
Worker concurrency
Parallel jobs per worker, with syncs capped at half.
Horizontal scale
Add worker replicas; they share the queue safely.
Encryption
OAuth tokens and API keys encrypted with AES-256-GCM.
Migrations
Plain SQL migrations run automatically on start.
Self-hostable
Runs with Docker Compose: web, api, worker and Postgres.
Who it's for
High-volume agencies
Hundreds of GHL sub-accounts without tripping rate limits.
Campaign spikes
Cold-email reply surges queued and answered in order.
On-call
One grouped error, one click to retry once it's fixed.
Rate limits & queue: common questions
What happens when a provider rate-limits us?
That inbox pauses for exactly the window the provider asks for; other inboxes carry on.
Do rate limits burn retry attempts?
No. Long waits defer the job without using an attempt.
How do I scale up?
Increase worker concurrency or add worker replicas; they share the queue safely.
Is my data encrypted?
OAuth tokens and API keys are encrypted at rest with AES-256-GCM.
Works hand in hand with
Omnichannel inbox
Gmail, Outlook, SMS, WhatsApp, Instagram, cold-email tools and web chat, answered by one agent.
Explore BuildAny model + fallbacks
Anthropic, OpenAI or 350+ OpenRouter models, with five cross-provider backups and cost tracking.
Explore DevelopersMCP server
Drive the whole app from Claude Code, Cursor or any MCP client with a personal API token.
ExplorePut it to work on your own inbox
Connect an inbox, describe the job, test it in a sandbox and go live with exactly the autonomy you're comfortable with.