The SMS log is the per-message record of every outbound text — recipient, sender, body, delivery status, cost. It's essential for troubleshooting, billing reconciliation, and compliance audits.
Per-Message Fields
- Timestamp: When the platform dispatched the message.
- Recipient: Phone number in E.164 format.
- Sender: Sender ID (alphanumeric or phone).
- Body: The message text (potentially redacted if the configuration says so).
- Segment count: Number of SMS segments (160 GSM chars each).
- Status: queued / sent / delivered / failed / undelivered.
- Gateway message ID: Provider's reference for cross-checking on their console.
- Cost: The provider's reported charge.
- Error reason: When status = failed, the parsed gateway error.
Useful Filters
- Status = failed, last 24 hours — what's broken?
- Recipient = specific number — what did we send them?
- Group by sender ID — usage per sender.
- Group by template — which use cases drive costs.
- Date range + sum(cost) — monthly bill reconciliation.
Worked Examples
- 2FA code didn't arrive: Filter by recipient, last 5 minutes, template = 2fa_code. Status = failed: invalid number. User has typo in their stored number.
- Cost spike investigation: Sum cost grouped by date and template. The new reminder flow sends 3 SMS per booking instead of 1 — fix the template logic.
- Provider audit: Compare your log's total messages to the provider's invoice. If they disagree, request a per-message breakdown for reconciliation.
- Carrier issues: Filter status = undelivered, group by destination country. Sudden spike in one country suggests carrier-level disruption — try a different route.