Email Integration
Servelo handles inbound and outbound email natively. Customers can open tickets by sending an email, reply to updates without ever visiting the portal, and your team can respond directly from their inbox.
Inbound email address
Every tenant has a dedicated inbound email address:
{slug}@serveloapp.com
Any email sent to this address creates a new ticket and notifies your admin. If the sender is not already a client, a client record is created automatically using their name and email address.
support@yourdomain.com, set up a forward rule in your email provider pointing to {slug}@serveloapp.com. No DNS changes required on your side.
New ticket from email
- Customer sends an email to your support address (e.g.
support@yourdomain.com) - Your email provider forwards it to
{slug}@serveloapp.com - AWS SES receives it, stores the raw email in S3, and triggers a Lambda function
- Lambda identifies the tenant from the
Toaddress and posts to the Servelo server - A ticket is created. If the sender is new, a client record is created automatically
- Your admin receives a notification email with the ticket contents
- The customer receives a confirmation with their ticket number
Reply by email
Both your team and your customers can reply to ticket notification emails. Replies are threaded directly to the correct ticket using a signed reply token embedded in the Reply-To header, no login required.
How reply tokens work
Every outgoing notification email has a Reply-To address in the form:
reply+TOKEN@serveloapp.com
The token is a base64-encoded string containing the tenant slug, ticket ID, and customer ID, signed with an HMAC secret. This means:
- Tokens are unforgeable; tampering with the payload invalidates the signature
- Each token routes to exactly one ticket in exactly one tenant
- Quoted reply content is stripped automatically so only the new message is saved
Email routing logic
Lambda routes inbound emails based on the local part of the To address:
| Address pattern | Action |
|---|---|
reply+TOKEN@serveloapp.com | Adds a comment to the matching ticket |
{slug}@serveloapp.com | Creates a new ticket in the matching tenant |
support@serveloapp.com | Forwarded to the operator's personal inbox |
legal@serveloapp.com | Forwarded to the operator's personal inbox |
Setting up inbound email for your tenant
- Note your tenant slug (visible in your browser URL, e.g.
acme) - In your email provider, add a forward rule:
support@yourdomain.com→acme@serveloapp.com - Test by sending an email to your support address — a ticket should appear within seconds
- Optionally set a Portal Notify Email in Settings to control who gets notified