Integrations & channels
Helpdesk Integration
Indicative price, not an offer: €29/mo; ticketing, SLA tracking, KB search integration
Generated from docs/plan/paid/helpdesk-integration/PLAN.md in the AstroBaaS repository. Nothing described below is implemented — it is the written plan for it.
Support teams consolidate inbound emails into a shared ticketing system (Zendesk, Freshdesk, Intercom) with SLA tracking, assignment, and knowledge-base search. The paid pack maintains ticketing system integrations and SLA support; core owns the email-to-ticket interface.
The problem
Support emails land in a shared inbox with no ticketing, SLA tracking, or assignment. High-priority orders get buried; customers are not notified of resolution; response times slip.
What it does
- Email-to-ticket forwarding: inbound customer emails create tickets with order context (order ID, customer email, purchase history)
- Ticket status sync: when ticket is marked resolved in helpdesk, customer gets automated email
- SLA tracking: admin configures response and resolution SLAs; dashboard shows at-risk tickets
- Assignment routing: new tickets are routed to team members by skill/availability
- Knowledge-base search: support reps can search KB articles from within the ticket interface
- Canned responses: admin creates templates for common issues; reps select and customize
- Audit log: every ticket action (create, assign, resolve) is logged
- Test mode with mock helpdesk responses
What it deliberately does NOT do
Each boundary carries its reason. A boundary without a reason gets crossed by the next person who reads this.
- Custom workflow states: we sync resolved/pending states only; merchant’s helpdesk owns additional statuses (queued, escalated, etc.).
- Multi-channel consolidation: we integrate email only; phone, chat, social media tickets must be handled by the helpdesk platform.
- Sentiment analysis: we do not parse email tone or urgency; merchant must tag tickets manually.
- Auto-response to customers: merchant’s helpdesk sends auto-replies, not AstroBaaS (to avoid double-emails).
Data model
New document type: support_ticket { ticketId (helpdesk-issued), orderId, customerEmail, subject, body, status, assignedTo, createdAt, resolvedAt }. New setting: helpdesk_sla_response_hours (int), helpdesk_sla_resolve_hours (int).
API
- POST /api/helpdesk/ticket { orderId, customerEmail, subject, body } -> { ticketId, helpdesk_url }
- GET /api/helpdesk/ticket/{ticketId} -> { status, assignedTo, createdAt, lastUpdatedAt }
- POST /api/helpdesk/ticket/{ticketId}/close (called by helpdesk webhook)
- GET /api/helpdesk/sla-status (admin only) -> list of at-risk tickets
- GET /api/helpdesk/canned-responses (admin only)
Every route added here must also appear in src/pages/openapi.json.ts — a test
fails the build if it does not.
Admin
Admin sees: helpdesk connection status, SLA settings (response/resolution hours), at-risk tickets dashboard, canned response library, support team assignment rules, email forwarding address, ticket volume by week.
The seam — why this is paid
Core owns the email-to-ticket interface and SLA calculation. Paid pack owns: Zendesk/Freshdesk/Intercom API adapters, SLA enforcement logic, ticketing system support relationship.
Support commitment: ticket SLA management, escalation routing, historical search
Dependencies
- email subsystem (existing; sends order confirmations)
- order subsystem (existing; provides order context)
Acceptance checks
Each of these must be able to fail. Before claiming this is done, break the code deliberately and watch each one go red.
- A customer email to support@merchant.com creates a ticket within 1 minute with order context (order ID, customer email)
- Admin sets SLA response=4 hours, resolution=24 hours; dashboard shows tickets approaching deadline
- A ticket marked ‘resolved’ in Zendesk sends a customer email from AstroBaaS saying ‘Your issue is resolved’
- A canned response ‘We are investigating your order’ can be selected and sent to a ticket
- Support rep is assigned a new ticket via routing rule based on skill tag
- Audit log shows ticket created, assigned to John, resolved at 2026-09-03 15:22
- In test mode, ticket creation returns a mock helpdesk_url; no real tickets are created
- A helpdesk API error (timeout, 401) is logged; ticket creation is retried after 5 minutes
Risks
If order context is not attached to tickets, support cannot provide order-specific help. If SLA deadlines are calculated incorrectly (off by timezone), false alerts are sent. If ticket closure is automatic without customer confirmation, merchants assume resolution before customer agrees. If canned responses are sent without preview, wrong response can be sent to customer.
Commercial context
| Suggested price | €29/mo; ticketing, SLA tracking, KB search integration |
| Rival anchor | Zendesk: €49-149/mo; Freshdesk: €29-149/mo; Intercom: €39-119/mo |
The anchor is what the nearest equivalent charges on Shopify or Magento today. It is context for a pricing decision, not the decision.
Generated from the commerce plan. See docs/COMMERCE-PLAN.md for the full
catalogue and ../../AI-GUIDE.md for how to work on this repository.