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

  1. Deduplicate on Message-ID — a message already seen for that account is skipped.
  2. Suppress bounces and auto-replies (see the bounces article).
  3. Clean the body — strip quoted "Original Message" trailers and remove HTML, falling back to (no message body) if empty.
  4. 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?
Still need help? Contact SummitPSA support.