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.
your-company) - In your email provider, add a forward rule:
support@yourdomain.comโyour-company@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
Outbound email (SMTP)
By default, all emails sent by Servelo (invoices, ticket updates, quote links, and notifications) come from a shared Servelo address. Connecting your own SMTP account means those same emails arrive from your domain, which improves deliverability and looks more professional to your customers.
How to connect your account
- Go to Settings > General
- Find the Outbound Email (SMTP) card and tap Set Up
- Fill in your SMTP host, port, username, and password (see provider instructions below)
- Optionally set a From Name (e.g. "Acme Support") and a From Email if you want a different display address than your login
- Tap Send Test to verify the connection. A test email is sent to your account
- Tap Save
Once saved, every outgoing email from Servelo (to your customers and to your team) uses your SMTP credentials.
Gmail
| Field | Value |
|---|---|
| SMTP Host | smtp.gmail.com |
| Port | 587 |
| Username | Your full Gmail address (e.g. you@gmail.com) |
| Password | An App Password, not your regular login password (see below) |
Using a custom From Email with Gmail
If you want emails to show a different address (like support@yourdomain.com) but still send through Gmail, you need to add it as a Send mail as alias in Gmail first:
- In Gmail, go to Settings > Accounts > Add another email address
- Enter your custom address (e.g.
support@yourdomain.com) and uncheck "Treat as an alias" - Gmail will send a verification code to that address. If you forward
support@yourdomain.comto your Gmail (via ImprovMX or similar), the code will arrive in your inbox - Once verified, set that address as the From Email in Servelo's SMTP settings
Outlook / Microsoft 365
| Field | Value |
|---|---|
| SMTP Host | smtp.office365.com |
| Port | 587 |
| Username | Your full Outlook or M365 email address |
| Password | Your account password, or an App Password if your org requires MFA |
Other providers
Any provider that supports standard SMTP will work. Common settings:
| Provider | Host | Port |
|---|---|---|
| Yahoo Mail | smtp.mail.yahoo.com | 587 |
| iCloud | smtp.mail.me.com | 587 |
| Zoho Mail | smtp.zoho.com | 587 |
| Custom mail server | Ask your host | Usually 587 |
Testing your configuration
Use the Send Test button before saving. A test email is sent to your admin account address. If it does not arrive within a minute, check your spam folder and verify the host, port, username, and password are correct. Common errors:
| Error | Likely cause |
|---|---|
| Authentication failed | Wrong password. For Gmail, make sure you're using an App Password, not your login password. |
| Connection timeout | Wrong host or port, or the provider blocks outbound SMTP connections. Try port 465 if 587 doesn't work. |
| Invalid login | Username is wrong. Use your full email address, not just the local part. |
Removing SMTP credentials
In the Outbound Email card, tap Configure to expand it, then Disconnect. Servelo will revert to the shared sending address. All existing tickets and history are unaffected.