Message Lifecycle
Understanding how messages flow through Spun helps you configure automations, understand delivery statuses, and troubleshoot delays.
Incoming message flow
Outgoing message flow
Message statuses
| Status | Icon | Meaning |
|---|---|---|
| Pending | 🕐 | Message queued locally |
| Sent | ✓ | Delivered to WhatsApp servers |
| Delivered | ✓✓ | Reached contact's device |
| Read | ✓✓ (blue) | Contact opened the message |
| Failed | ❌ | Delivery failed (contact blocked you, number changed) |
Processing pipeline
When a message arrives, Spun processes it through these stages (in order):
- Store — Message saved to database with metadata.
- Auto-label — If AI auto-labeling is enabled, classify the message.
- Automation check — Match against active chat flows, auto-replies, and autopilot rules.
- Notification — Push to all connected browser sessions and mobile app.
- Sync — Update contact's last-message timestamp, conversation sort order.
Timing considerations
- Real-time push: < 100ms from Spun server to your browser.
- AI processing: 1-3 seconds for auto-labeling, translation, or smart replies.
- Automation triggers: Evaluated within 1 second of message arrival.
- WhatsApp delivery: Depends on contact's internet connection.
Scheduled messages
Scheduled messages follow a different path:
- You compose and set a future time.
- Message is stored with a scheduled timestamp.
- At the scheduled time, Spun sends it via the normal outgoing flow.
- If your WhatsApp is disconnected at send time, the message queues until reconnection.