How email becomes a ticket
SummitPSA turns inbound email into tickets through one shared engine, fed by two transports.
The two transports
- IMAP polling — the app polls each active mailbox for unseen messages (password auth or Microsoft 365 OAuth2) and marks them seen after processing.
- Mailgun inbound webhook — a Mailgun Route forwards parsed mail to
/api/inbound/mailgun, authenticated by an HMAC signature.
Both hand the message to the same logic, so dedup, threading, bounce/loop suppression, contact handling, board routing, and the auto-acknowledgement behave identically.
Processing a new message
- Deduplicate on Message-ID — a message already seen for that account is skipped.
- Suppress bounces and auto-replies (see the bounces article).
- Clean the body — strip quoted "Original Message" trailers and remove HTML, falling back to
(no message body)if empty. - Thread or create — if the subject carries a ticket reference tag it's added as a reply; otherwise a new ticket is created.
Contact and company
The sender address is matched to an existing contact to inherit their company. If there's no match and the account allows it, a new contact is created from the sender's name; because contacts require a company, unmatched senders are bucketed into a catch-all company named "Inbound (unmatched)". The new ticket's source is recorded as email.
Was this article helpful?