Ticket Export
Export CSV on the Tickets page downloads every ticket that matches the current filters, date range, and saved view, not only the visible page. Each ticket is one row: parent tickets, child tickets, and interaction tickets each get their own row, and the Ticket Type column says which one it is. You need the Export tickets action permission to see the button.
Values come from each ticket as it is at the moment you export. A ticket that was open when you exported shows no resolution values; export again after it resolves to see them.
Ticket export options
Clicking Export CSV opens Configure CSV Export with these options:
- Treat awaiting response as resolved (on by default): a ticket waiting on the customer gets a Resolution Time measured up to when the wait started. Turn it off to give resolution times only to tickets that are actually resolved, closed, or stale.
- Exclude objective columns: leaves out the
Objective: …columns. - Format timestamps as DD-MM-YY HH:MM:SS: when off, timestamps use your browser's locale format.
- Export timestamps in UTC: when off, timestamps use your browser's timezone.
Ticket export columns: ticket, team, and customer
| Column | What it holds |
|---|---|
| Ticket Number | The ticket's number or name, as shown on the Tickets page. |
| Ticket Type | Parent (the main ticket), Child (backend work created from a parent), or Interaction (a customer contact while a backend ticket was open). See Child & Interaction Tickets. |
| Child Ticket Param | On child ticket rows, the objective the child ticket was created for, for example pickup_reason. Blank on parent and interaction rows. |
| Task Names | The task (flow) the ticket is on now. No tasks when it isn't on one. |
| Team | The ticket's team, or the team of its task when the ticket has none. |
| Actions | The workflow actions on the ticket. No actions when there are none. |
| Ticket Owner | The ticket's long-term owner. Child ticket rows show their parent's owner. No owner when none is set. |
| Assigned To / Assigned To Email | The agent the ticket is assigned to right now. Unassigned when nobody is. |
| Assigned By | Who or what made the current assignment, a teammate or automatic assignment. N/A when the ticket isn't assigned. |
| Assigned At | When the current assignment was made. Blank when the ticket isn't assigned, for example while it's snoozed or back in the queue. |
| Customer Name / Customer Phone / Customer Email / Customer ID | The customer on the ticket. N/A when that detail isn't known. |
| Chat Link | A link that opens the customer's conversation in the Inbox at the time the ticket was created. |
| Order Name | The order linked to the ticket. N/A when there's none. |
| Created At | When the ticket was created. |
| Created By User Name | The teammate who created the ticket by hand. Blank for tickets the AI, the API, or an integration created. |
| Queued Time | When the ticket joined the agent queue. Blank for tickets that never went to agents. |
| Last Updated At | When anything on the ticket last changed. |
Ticket export columns: channel and agents
| Column | What it holds |
|---|---|
| Source | The channel of the ticket's conversation, such as WhatsApp, email, live chat, or voice call. Tickets created by hand show their manual source label, or Manual. |
| First Source | The channel the ticket started on. It differs from Source when the customer moved channels. |
| Involved Sources | Every channel the customer used on this ticket. |
| Email ThreadId | The email thread of an email ticket. Blank for other channels. |
| Email Client | The email client the customer wrote from, when it's known. |
| Involved Agents | Every agent the ticket has been assigned to. None when it never reached an agent. |
| Has Involved Agent | Yes when an agent was assigned at any point, or when a parent ticket has child tickets. |
| Sentiments | The customer moods detected on the ticket, such as frustrated or aggressive. None when there are none. |
| Tags | The ticket's tags. None when there are none. |
| Latest Response Time | When an agent last replied to the customer. Resolving the ticket also counts. |
Ticket export columns: status and resolution
| Column | What it holds |
|---|---|
| Status | The ticket's status when you exported, such as Queued, Assigned, Awaiting Response to Resolve, or Resolved by Agent. A ticket with a snooze still running shows Snoozed. See Ticket Lifecycle for every status. |
| Reopen Count | How many times the customer's reply reopened the ticket during resolution confirmation. Manual reopens don't count. |
| Duplicate Ticket Name | For a ticket closed as a duplicate, the ticket it duplicates. |
| Auto Resolved | Yes when the ticket was resolved automatically, for example by the AI, instead of by an agent. |
| Executed At | When the ticket's workflow action was carried out, by the AI or from the Execution tab. |
| Resolved At | When the ticket was resolved. |
| Resolved By | The teammate who resolved the ticket. Blank when the AI or the system resolved it. |
| Resolution Trigger | Webhook order re-evaluation or Manual order re-evaluation for tickets Resolved by AI after an order refresh. Blank otherwise. |
| Resolution | The completion reason or resolution note. |
| Summary | The AI's summary of the conversation. |
Ticket export columns: contacts and first contact resolution
These columns count everything on a parent ticket together with its child and interaction tickets. They're filled on parent rows only.
| Column | What it holds |
|---|---|
| Child Tickets / Interaction Tickets | How many child and interaction tickets the ticket has. |
| Chat Interactions | How many chat sessions the ticket had. |
| Email Threads | How many separate email threads the ticket had. |
| Customer Email Messages | Emails the customer sent in those threads. |
| Agent Email Messages | Emails agents sent from your mailbox. AI and system emails don't count. |
| Incoming Calls / Outgoing Calls / Voice Calls | Calls from the customer, calls to the customer, and both together. |
| FCR | First contact resolution. Yes when the ticket is resolved, closed, or stale and the customer used one channel, called at most once, and the email exchange was at most two customer emails and one agent reply. No otherwise. Blank when the ticket had no call, no customer email, and only one channel. |
| Voice FCR | Whether the AI judged that the customer's issue was resolved on the first call. Unknown when the ticket had an incoming call that hasn't been judged yet. Blank when there was no incoming call. |
| Voice FCR Reason / Voice FCR Evaluated At | Why the AI made its Voice FCR call, and when. |
Ticket export columns: SLA, CSAT, and collected data
| Column | What it holds |
|---|---|
| SLA: rule name | One column per SLA rule: No Breach, or the highest level the ticket breached, L1 Breach, L2 Breach, or L3 Breach. Rules that share a name get a number, such as SLA: Resolution (2). |
| Use Cases / Task Route | Only in exports filtered by Use Case: the use cases the ticket went through, and the tasks it passed through in order. See Use Cases. |
| Objective: name | The answer collected for each objective on the exported tickets' tasks. Child ticket rows show their parent's answers where they have none of their own. Turn on Exclude objective columns to leave these out. |
| Your main display fields | One column per field selected under Settings → Ticket Fields → Main display Fields (see Highlighted Fields), named by the field key, for example awb_number. The value comes from the collected data, then from the disposition. A key that matches a built-in column gets a Main Display: prefix. |
| Additional Data | Any other values collected on the ticket, as JSON. |
| CSAT Status | Completed when the customer answered the survey, Pending when it was sent but not answered, Not Sent when no survey was sent. |
| CSAT Rating / CSAT Comment / CSAT Sent At / CSAT Submitted At | The survey answer and its times. N/A when there's no value. |
| Category / Subcategory | The values picked in your top-level category disposition fields, and in the fields under them on the selected path. |
| Disposition: field | One column per active disposition field. Child ticket rows show their parent's disposition. |
| VOC / VOC Level 2 / … | When you have a top-level category disposition field named VOC, one column per level of it. |
Ticket export time columns
| Column | What it measures |
|---|---|
| First Response Timestamp | When an agent first replied to the customer on the ticket. Parent tickets only. |
| Response Time / First Response Time (minutes) | Time from Created At to First Response Timestamp, as HH:MM and in minutes. Parent tickets only; Response Time shows - when there is no first response. |
| Has Agent Actioned | Yes when a first response is recorded on the ticket. |
| Resolution Time / Resolution Time (minutes) | Time from Created At to when the ticket was resolved (or started waiting on the customer, see the option above). |
| Total Response Time (minutes) | Time from Assigned At to the same resolution moment. |
| Actioned Time / Actioned Time (minutes) | Time from Queued Time (when the ticket joined the agent queue) to resolution, for parent tickets an agent resolved or that were marked stale. |
| Age | How long an open ticket has existed, for tickets that are Queued or Assigned. |
Response Time, Resolution Time, Total Response Time, and Actioned Time count only time inside your business hours, skipping closed days and holidays, when business hours are set. Without business hours they count every minute. Age always counts every minute.
Why First Response Time is blank in the ticket export
First Response Timestamp, Response Time, and First Response Time (minutes) are blank (Response Time shows -) when no agent first response was recorded. A first response is recorded the first time the agent the ticket is assigned to sends the customer a message from Flowcall on WhatsApp, Instagram, live chat, or email while the ticket is in Assigned status. If an agent resolves a ticket without ever messaging the customer, the resolution counts as the first response.
So First Response Time is blank when:
- The AI handled the ticket without an agent: tickets Resolved by AI that never reached an agent have no agent response.
- No agent has replied yet: the ticket is still Queued, or Assigned with no reply from the assignee.
- The reply didn't come from the assignee: a message from another agent or an admin who isn't assigned to the ticket doesn't count.
- The reply came while the ticket wasn't assigned: messages sent while the ticket was awaiting response, snoozed, or unassigned don't count.
- The agent only called the customer: phone calls don't record a first response.
- The ticket was closed without an agent message: tickets that were closed, marked stale, or closed as a duplicate without an agent reply have none. Only resolving as an agent fills it in.
- The row is a child or interaction ticket: these rows always leave the first response columns blank. An agent's reply on a child ticket counts toward its parent ticket's first response instead, so look at the parent's row.
Why Resolution Time is blank in the ticket export
Resolution Time and Resolution Time (minutes) are blank when the ticket hadn't ended when you exported. They're filled for tickets that are Resolved by Agent, Resolved by AI, Closed, Stale, or Stale (Auto), measured from Created At to the resolution. Closed and stale tickets without a resolution time use the time the ticket last changed.
Resolution Time is blank when:
- The ticket is still open: Queued, Assigned, In Progress, Blocked, or Monitoring.
- The ticket is waiting on the customer and Treat awaiting response as resolved was off: Awaiting Agent Response, Awaiting System Response, and Awaiting Response to Resolve tickets get a resolution time only with that option on. Awaiting Response to Resolve means an agent resolved the ticket and Flowcall is waiting for the customer to confirm; with the option off it has no resolution time until the customer confirms or the wait ends.
- The ticket is snoozed: a snoozed ticket usually has no resolution time until it comes back and is resolved.
Total Response Time (minutes) uses the same resolution moment but starts at Assigned At, so it is also blank when the ticket has no current assignment, for example a snoozed ticket or one that went back to the queue.
Why Actioned Time is blank in the ticket export
Actioned Time is filled only for parent tickets in Resolved by Agent, Stale, or Stale (Auto) status that joined the agent queue. It is blank for tickets Resolved by AI or Closed, for open tickets, for child and interaction ticket rows, and for tickets that never entered the agent queue (no Queued Time).
Why a time is 00:00 or shorter than expected in the ticket export
When business hours are set, the time columns skip time outside them. A ticket created and resolved after closing time, or over a weekend or holiday, can show 00:00 or 0 minutes, and a ticket that stayed open overnight shows only the open hours. Check Business Hours for your hours, closed days, and holidays.
Other blank columns in the ticket export
- Age is blank for every ticket that isn't Queued or Assigned.
- Child Tickets, Interaction Tickets, Chat Interactions, Email Threads, the email message and call counts, FCR, and Voice FCR are filled on parent ticket rows only.
- FCR is blank unless the ticket had an incoming call, a customer email, or contact on more than one channel. Voice FCR is blank when the ticket had no incoming call.
- Child Ticket Param is filled on child ticket rows only.
- Resolution Trigger is filled only for tickets Resolved by AI after an order re-evaluation (see Ticket View).
- Duplicate Ticket Name is filled only for tickets closed as a duplicate.
Ask Copilot about a ticket export
The Tickets Copilot can explain the export. Tell it the ticket's status and type (the Status and Ticket Type columns) for an exact answer:
"Why is Resolution Time blank for this ticket? Its status is Awaiting Response to Resolve." "Why is First Response Time not available for a ticket resolved by AI?" "What does Actioned Time measure in the ticket export?" "What does Has Involved Agent mean in the export?" "What is the difference between Source and First Source?"
Related
- Ticket View: filters and saved views that decide which tickets are exported.
- Ticket Lifecycle: the statuses in the Status column.
- Child & Interaction Tickets: the ticket types in the Ticket Type column.
- Business Hours: the hours the time columns count.
- SLA Rules: the
SLA: …breach columns. - Tickets API: start the same export from the API.