How Tuco Works Behind the Scenes (From Your Perspective)
Tuco uses background processing to turn your configuration and API calls into real‑world messaging activity. You don’t see the internal jobs or queues; you only see observable behavior:- Messages and campaigns move through clear, stable statuses.
- Limits and time windows are respected without manual intervention.
- Webhooks and analytics reflect what has actually happened.
Scheduling & Frequency
How quickly will my campaigns start sending?
Once you:- Have active lines,
- Launch a campaign, and
- Are within your allowed time windows and limits,
- Continuously evaluate which messages are eligible to send.
- Apply your limits and timing rules.
- Move eligible messages forward without you having to poll or push them manually.
Are sends guaranteed to be “exactly once”?
At the level of your own data, Tuco is designed for effectively‑once behavior:- A given message record moves forward through its status lifecycle (queued → sent/delivered/failed/fallback).
- Webhooks include stable identifiers so you can safely treat duplicates as no‑ops.
- You should design your webhook consumers and internal updates to be idempotent:
- Applying the same event twice should not corrupt data.
- You can always check current status before “moving backwards”.
Observability & Debugging (Customer View)
How can I tell if background processing is falling behind?
Use Tuco’s visible surfaces and your own instrumentation:-
In Tuco:
- Watch campaign and message stats:
- Growing queued counts that never move to sent/delivered.
- Unusual patterns in failed or fallback counts.
- Check line‑level views for health and usage.
- Watch campaign and message stats:
-
In your own systems:
- Plot message webhooks over time.
- Watch for a drop in delivery or reply events when you expect activity.
What logs should I rely on when debugging issues?
You never need access to Tuco’s internal logs to debug typical issues. Instead, rely on:-
Your own application logs
- API requests and responses to/from Tuco.
- When you created messages, launched campaigns, or changed settings.
-
Webhook logs on your side
- Incoming message outcome events (delivered, fallback, failed).
- Incoming reply events.
- Any errors or timeouts in your webhook handlers.
-
Tuco UI and APIs
- Message history and status for specific leads or campaigns.
- Counts and charts in the app that show throughput and outcomes.
- When you created or updated something,
- What Tuco shows in its UI and APIs,
- What webhooks you received,
Integration Considerations
Do I need direct access to any internal processing services?
No.- All integrations should use:
- The public Tuco APIs for reads and writes.
- The documented webhooks for event notifications.
- Internal worker processes are an implementation detail Tuco can change without affecting your contracts.
- A stable, documented surface to build on.
- Confidence that upgrades to Tuco’s internals won’t break your integration.
How should I handle out-of-order or duplicate events?
Because Tuco uses asynchronous processing and safe retry behavior, you may occasionally see:- Duplicate webhook events.
- Events that arrive slightly out of order (for example, a delivered event arriving close in time to a sent event).
-
Idempotent
- Identify events using the IDs in the webhook payload.
- If you have already applied an event for a given message and status, treat the duplicate as a no‑op.
-
Monotonic
- Only move your local status forward (e.g. from queued → sent → delivered).
- Ignore any event that would move a message backwards in your own records.
Reliability Guarantees (From Your Side)
Tuco’s background processing is built so that:- Your data is preserved safely.
- Errors are surfaced as clear outcomes, not silent drops.
- Limits and safety rules apply consistently across UI and API usage.
- A write either:
- Succeeds and shows up in the UI and APIs, or
- Fails with a clear, documented error.
- A message either:
- Reaches a visible outcome state (sent/delivered/failed/fallback), or
- Remains in a clearly non‑terminal state (queued/pending) while it is still being considered.
- Automations keyed off of these states.
- Dashboards that compare planned vs completed sends.
- Alerting around sudden changes in outcome patterns.