Appearance
Monitoring
Security & operations
What to watch on the AIOTIC side
| Check | How | Alert when |
|---|---|---|
| Tenant reachable | GET /healthcheck every minute (no key) | 2 consecutive failures |
| Platform status | GET /system-status every 5 min | status != "operational" — pause uploads, expect slower processing |
| Orders stuck | watcher or list walk: orders in PROCESSING > 15 min, RETRY_PENDING with retry_count ≥ 3 | any |
ATTENTION backlog | count of ATTENTION orders older than N hours | above your SLA |
FAILED orders | transitions to FAILED | any |
| Rejected mails pending | GET /rejected/list?status=pending total | growing for a day |
| Mailbox stalled (mail intake tenants) | orders stop arriving while mail is sent; trigger POST /email-watcher/fetch-all (integration key) or ask a tenant admin to check the mailbox status in the app | no new orders during business hours |
What to watch on your side
| Check | Alert when |
|---|---|
Receive endpoint: success: false rate by error text | a spike in "unknown article" or "unknown customer" (your sync is behind) |
| Receive endpoint: p95 latency | > 10 s (AIOTIC times out at 30 s) |
Receive endpoint: 401 count | bursts (probing) |
Sync: SyncReport.failed | > 0 in two consecutive runs |
| Sync: watermark age (polling sources) | not advanced for > 2 intervals |
| Watcher: last successful poll | older than 3 intervals |
Correlation
Log the request_id on every line that concerns an order, on both sides. Your ERP order carries it as external reference. Support requests to AIOTIC should quote it.
Health endpoints in the SDK service
GET /healthz— process is up.aiotic doctor— tenant reachable, keys valid, master data present; use it as a readiness probe in CI/CD, not on every request.