Skip to main content

Overview

Ekso’s ticketing system turns inbound emails into work items and lets agents reply directly from within the application. When a customer sends an email, Ekso creates a ticket in the right container with the right process. When an agent responds, the reply goes back to the customer by email. If the customer replies again, Ekso threads the response back to the same ticket — maintaining a complete conversation history. This is Ekso’s built-in help desk capability: two-way email ticketing with threading, acknowledgement emails, reply templates, and domain-based filtering. Before configuring ticketing, you need at least one mailbox connection. You manage ticketing configurations under Settings > Ticketing.

Ticketing configuration

A ticketing configuration maps a mailbox to a destination container and process. This is what turns raw emails into structured tickets. You can create multiple ticketing configurations — for example, one that routes support emails to a “Support” container and another that routes sales enquiries to a “Sales” container.
PropertyDescription
NameDisplay name for this ticketing configuration
MailboxWhich mailbox connection to use
ContainerDestination container for inbound tickets
ProcessThe process type for inbound tickets
Domain filterEmail domains to allow or block (see Domain filtering)
Acknowledgement emailSubject and body template for new ticket confirmations
Reply emailSubject and body template for threaded replies
Start fromEarliest date to process tickets from

Domain filtering

Domain filtering controls which email senders can create tickets. Two modes are available — they are mutually exclusive:
  • Only these email domains are allowed — whitelist mode: only emails from the listed domains create tickets. All others are skipped.
  • These email domains are disallowed, all others are allowed — blacklist mode: emails from the listed domains are blocked. All other domains are accepted.
If no domains are listed, all senders are accepted.
Domain filtering on the ticketing configuration is separate from the global block lists in general mail settings. Global block lists are evaluated first, then the per-ticketing domain filter.

Email templates

Each ticketing configuration has two email templates that control what the sender receives: Acknowledgement email — sent when a new ticket is created from an inbound email. This confirms receipt to the sender. Reply email — sent when an agent adds a response to an existing ticket. This delivers the agent’s reply back to the original sender. Both templates have a subject line and a rich text body. Templates use tags that are replaced with real values at send time:
TagRequired inResolves to
#code#Subject (mandatory)The item key (e.g., GEM-123)
#name#Subject (optional)The item name
#content#Body (mandatory)The annotation or reply content
The #code# tag in the subject line is critical for threading. When Ekso sends an acknowledgement or reply, the item key (like [GEM-123]) is embedded in the subject. When the customer replies, their email client preserves that subject line. Ekso then extracts the key from the inbound reply and matches it to the original item. Without the #code# tag, this threading loop breaks and every reply creates a new ticket instead of continuing the conversation.

Testing

After configuring a ticketing pipeline, use the ticketing test to run a full end-to-end processing cycle. This converts any available emails in the connected mailbox into tickets, verifying the complete pipeline — domain filtering, thread detection, item creation, and email tagging. Test before activating a ticketing configuration to catch configuration issues early.

How ticketing works

The ticketing engine processes emails every 5 minutes. Here is the complete flow:
1

Mailbox polled

Ekso checks the configured inbox folder for new messages. For IMAP, it queries for unseen messages by UID. For Microsoft 365, it queries by received date using Microsoft Graph.
2

Filters applied

Each email is checked against the global block lists (domain and subject) and the ticketing domain filter. Emails that fail are tagged as EksoSkipped and ignored.
3

Thread detection

Ekso scans the email subject and body for an item key pattern — a container code followed by a sequence number in square brackets, like [GEM-123]. The pattern matches 2–5 letter codes followed by a hyphen and number. If found and the item exists, this email is a reply to an existing ticket.
4

New ticket or reply

  • New email (no item key found): A new item is created in the target container and process. The email subject becomes the item name, the cleaned body becomes the description, and attachments are preserved. An acknowledgement email is sent to the sender, with the new item key in the subject.
  • Reply to existing ticket (item key found): The email content is added as an annotation (comment) on the existing item. Attachments are added to the annotation. A reply confirmation email is sent to the sender.
5

Email categorized

The processed email is tagged as EksoProcessed so it is not processed again. The ticketing configuration’s tracking position is updated (UID for IMAP, timestamp for Microsoft).

Reply threading

The threading cycle works as follows:
  1. Customer sends an email → Ekso creates a ticket (e.g., GEM-123) → acknowledgement email goes out with [GEM-123] in the subject
  2. Agent responds from within Ekso → reply email goes out to the customer with [GEM-123] in the subject
  3. Customer replies → their email client preserves the [GEM-123] subject → Ekso extracts the key and adds the reply as an annotation on item GEM-123
  4. The cycle repeats — every reply from either side threads to the same item
This maintains a complete conversation history on a single item, visible to all agents working the ticket.

Email content cleaning

Emails often contain HTML formatting, tracking pixels, scripts, and quoted reply chains. Ekso sanitizes all inbound email content before storing it as an item description or annotation:
  • Script and style removal — all <script> and <style> tags are stripped, along with HTML comments, to prevent any executable content from being stored
  • Attribute sanitization — only safe HTML attributes are preserved. All other attributes (event handlers, tracking attributes) are removed
  • Reply chain stripping — quoted reply content below separator lines is removed, so only the new message content is captured. This prevents conversations from accumulating duplicated text with each reply
  • Format preservation — the cleaned HTML retains formatting like bold, links, and lists so the ticket content remains readable
The result is clean, safe content that preserves the sender’s message without the overhead of raw email HTML.

Working with tickets

Once ticketing is configured, here is how agents interact with tickets day-to-day.

Ticket detail view

Email-originated items display an email metadata bar beneath the field summary. The left side shows the sender’s email address (for example, [email protected]) with a mail icon. The right side shows the receiving mailbox address (for example, [email protected]) with an inbox icon. This bar only appears on items created through the ticketing pipeline. It gives agents immediate context about who sent the email and which mailbox received it.

Replying to tickets

The Reply button appears at the top of any email-originated ticket. Clicking it opens a reply panel showing:
  • The recipient email address (the original sender)
  • A rich text editor for composing the response
  • An Attachment button for uploading files to include in the reply
Clicking Reply in the panel footer sends the email and creates an annotation on the ticket. The outbound email uses the ticketing configuration’s reply template and includes the item key (for example, [HELP-101]) in the subject line for threading.
Replies are sent to the original email sender. The reply also appears as an annotation on the item, so other agents can see the full conversation without leaving Ekso.

Ticket tab

Email-originated items gain a Ticket tab alongside Description, Attachment, Annotations, and other tabs. The Ticket tab shows the conversation history — both inbound emails from the sender and outbound replies from agents. Each entry displays the message content, sender, and timestamp. This is separate from the Annotations tab. Annotations capture internal team commentary, while the Ticket tab tracks the external email conversation.
Use the Ticket tab to review the full email thread with the customer. Use annotations for internal notes that should not be sent externally.

Blocking spam

A Block dropdown appears below the ticket tabs on email-originated items. It provides two options:
  • By Sender Domain — adds the sender’s email domain to the global domain stop list
  • By Email Subject Line — adds the email subject to the global subject stop list
Blocked entries appear in Settings > Mail > General and apply to all future inbound emails across every ticketing configuration. This is a quick action that feeds into the general mail settings block lists.
Blocking is immediate for future emails. Existing tickets from the blocked sender or subject are not affected.

General mail settings

Global mail settings apply across all mailbox connections and ticketing configurations. You manage these under Settings > General in the mailbox section.

Signatures

A mail signature is appended to all outbound emails sent from Ekso. Use this to add your organization’s branding, contact details, or legal notices to every reply.

Block lists

Global block lists filter emails before they reach any ticketing configuration:
  • Domain stop list — block all emails from specific domains (e.g., noreply.example.com)
  • Subject stop list — block emails matching specific subject patterns (e.g., out-of-office auto-replies)
Blocked emails are tagged as EksoSkipped and do not create tickets.
The Block dropdown on email-originated ticket items feeds directly into these lists. When an agent blocks a sender domain or subject from a ticket, it is added here and applies globally.

Item metadata

When Ekso creates a ticket from an email, it stores the original email metadata on the item. This includes the sender email address, recipient addresses, sent date, received date, and references to the mailbox and ticketing configuration that processed it. This metadata supports reporting, auditing, and reply routing.