> ## Documentation Index
> Fetch the complete documentation index at: https://developers.redo.com/llms.txt
> Use this file to discover all available pages before exploring further.

# SupportReply

> A reply on its way to the customer, and what happened to it.

**Required scopes:** [`support_messages_send`](https://developers.redo.com/docs/api-reference/v3/reference/scopes#scope-support_messages_send)

**createdAt** `[DateTime!](/docs/api-reference/v3/reference/common/date-time)` *required*

When the reply was accepted.

**failureReason** `String`

Why it failed, in words a person can act on. Null unless status is FAILED.

**id** `ID!` *required*

The id of this reply.

**message** `[Message](/docs/api-reference/v3/reference/support/message)`

The message once it's sent. Null until status is SENT.

**Requires:** [`support_tickets_read`](https://developers.redo.com/docs/api-reference/v3/reference/scopes#scope-support_tickets_read)

**fields**

**authorType** `[MessageAuthorType!](/docs/api-reference/v3/reference/support/message-author-type)` *required*

Who wrote the message.

**channel** `[MessageChannel!](/docs/api-reference/v3/reference/support/message-channel)` *required*

The channel the message is on.

**content** `String`

The message as plain text. Null for a message with no text, such as an image.

**customer** `[Customer](/docs/api-reference/v3/reference/customers/customer)`

The customer who wrote it. Null unless `authorType` is CUSTOMER, and null when their record was deleted.

**Requires:** [`customers_read`](https://developers.redo.com/docs/api-reference/v3/reference/scopes#scope-customers_read)

**fields**

**createdAt** `[DateTime!](/docs/api-reference/v3/reference/common/date-time)` *required*

When the customer record was created.

**customFields** `[JSON](/docs/api-reference/v3/reference/common/json)`

Merchant-defined custom field values, keyed by each field's name. Null when the customer has no custom fields set.

**email** `String`

The customer's primary email address.

**firstName** `String`

The customer's first name.

**id** `ID!` *required*

The id of this customer.

**lastName** `String`

The customer's last name.

**legacyId** `String!` *required*

The customer's legacy identifier (the source Mongo ObjectId), accepted anywhere an `id` is.

**location** `[CustomerLocation](/docs/api-reference/v3/reference/customers/customer-location)`

The customer's current location, if known.

**phoneNumber** `String`

The customer's primary phone number.

**supportTickets** `[SupportTicketConnection!](/docs/api-reference/v3/pagination)` *required*

The help desk tickets this customer is the primary contact on any thread of, newest first. Every ticket whose `customer` is this customer is here.

**Requires:** [`support_tickets_read`](https://developers.redo.com/docs/api-reference/v3/reference/scopes#scope-support_tickets_read)

**fields**

**Arguments**

**after** `String`

Forward pagination cursor — returns tickets after it.

**before** `String`

Backward pagination cursor — returns tickets before it.

**first** `Int`

Forward pagination: returns the first N tickets (max 100, default 25). Use with `after`; mutually exclusive with `last`/`before`.

**last** `Int`

Backward pagination: returns the last N tickets (max 100, default 25). Use with `before`; mutually exclusive with `first`/`after`.

**updatedAt** `[DateTime!](/docs/api-reference/v3/reference/common/date-time)` *required*

When the customer record was last updated.

**id** `ID!` *required*

The id of this message.

**inReplyTo** `[Message](/docs/api-reference/v3/reference/support/message)`

The message this one replies to. Null when it isn't a reply, or that message is hidden.

**Requires:** [`support_tickets_read`](https://developers.redo.com/docs/api-reference/v3/reference/scopes#scope-support_tickets_read)

**sentAt** `[DateTime!](/docs/api-reference/v3/reference/common/date-time)` *required*

When the message was sent or received.

**teamMember** `[TeamMember](/docs/api-reference/v3/reference/common/team-member)`

The team member who wrote it. Null unless `authorType` is TEAM\_MEMBER, and null when they've left the team.

**Requires:** [`support_tickets_read`](https://developers.redo.com/docs/api-reference/v3/reference/scopes#scope-support_tickets_read)

**fields**

**email** `String`

Email address. Null when the user has none.

**id** `ID!` *required*

m\_us\_… id, the same id the app and MCP tools use.

**name** `String`

Display name. Null when the user hasn't set one.

**supportShiftStatus** `[SupportShiftStatus!](/docs/api-reference/v3/reference/support/support-shift-status)` *required*

The agent's live shift status, worked out when the request runs.

**Requires:** [`support_config_read`](https://developers.redo.com/docs/api-reference/v3/reference/scopes#scope-support_config_read)

**supportWorkSchedule** `[SupportWorkSchedule!](/docs/api-reference/v3/reference/support/support-work-schedule)` *required*

The agent's support working hours. An agent with no saved schedule returns enabled false.

**Requires:** [`team_members_manage`](https://developers.redo.com/docs/api-reference/v3/reference/scopes#scope-team_members_manage)

**thread** `[MessageThread](/docs/api-reference/v3/reference/support/message-thread)`

The thread the message is on. Null when the thread is on a channel the API doesn't expose.

**Requires:** [`support_tickets_read`](https://developers.redo.com/docs/api-reference/v3/reference/scopes#scope-support_tickets_read)

**fields**

**channel** `[MessageChannel!](/docs/api-reference/v3/reference/support/message-channel)` *required*

The channel the thread is on.

**createdAt** `[DateTime!](/docs/api-reference/v3/reference/common/date-time)` *required*

When the thread started.

**id** `ID!` *required*

The id of this thread.

**messages** `[MessageConnection!](/docs/api-reference/v3/pagination)` *required*

Every message on the thread, oldest first, including internal notes. A thread can span several tickets, so this can hold messages no one ticket has.

**Requires:** [`support_tickets_read`](https://developers.redo.com/docs/api-reference/v3/reference/scopes#scope-support_tickets_read)

**fields**

**Arguments**

**after** `String`

Forward pagination cursor — returns messages after it.

**before** `String`

Backward pagination cursor — returns messages before it.

**first** `Int`

Forward pagination: returns the first N messages (max 100, default 25). Use with `after`; mutually exclusive with `last`/`before`.

**last** `Int`

Backward pagination: returns the last N messages (max 100, default 25). Use with `before`; mutually exclusive with `first`/`after`.

**status** `[SupportReplyStatus!](/docs/api-reference/v3/reference/support/support-reply-status)` *required*

Where the reply is on its way to the customer.

**thread** `[MessageThread](/docs/api-reference/v3/reference/support/message-thread)`

The thread the reply goes on. Null when the thread is on a channel the API doesn't expose.

**Requires:** [`support_tickets_read`](https://developers.redo.com/docs/api-reference/v3/reference/scopes#scope-support_tickets_read)

**fields**

**channel** `[MessageChannel!](/docs/api-reference/v3/reference/support/message-channel)` *required*

The channel the thread is on.

**createdAt** `[DateTime!](/docs/api-reference/v3/reference/common/date-time)` *required*

When the thread started.

**id** `ID!` *required*

The id of this thread.

**messages** `[MessageConnection!](/docs/api-reference/v3/pagination)` *required*

Every message on the thread, oldest first, including internal notes. A thread can span several tickets, so this can hold messages no one ticket has.

**Requires:** [`support_tickets_read`](https://developers.redo.com/docs/api-reference/v3/reference/scopes#scope-support_tickets_read)

**fields**

**Arguments**

**after** `String`

Forward pagination cursor — returns messages after it.

**before** `String`

Backward pagination cursor — returns messages before it.

**first** `Int`

Forward pagination: returns the first N messages (max 100, default 25). Use with `after`; mutually exclusive with `last`/`before`.

**last** `Int`

Backward pagination: returns the last N messages (max 100, default 25). Use with `before`; mutually exclusive with `first`/`after`.

**Fields**

**edges** `[\[MessageEdge!\]!](/docs/api-reference/v3/pagination)` *required*

The list of edges (each a node plus its pagination `cursor`).

**nodes** `[\[Message!\]!](/docs/api-reference/v3/reference/support/message)` *required*

The nodes in this page, without the edge/cursor wrapper — a convenience over `edges`.

**pageInfo** `[PageInfo!](/docs/api-reference/v3/pagination)` *required*

Pagination metadata for the current page.

**ticket** `[SupportTicket](/docs/api-reference/v3/reference/support/support-ticket)`

The ticket the reply was sent on. Null when the ticket is hidden from the API.

**Requires:** [`support_tickets_read`](https://developers.redo.com/docs/api-reference/v3/reference/scopes#scope-support_tickets_read)

**fields**

**assignee** `[TeamMember](/docs/api-reference/v3/reference/common/team-member)`

The team member the ticket is assigned to. Null unless `assigneeType` is TEAM\_MEMBER, and null when they've left the team.

**Requires:** [`support_tickets_read`](https://developers.redo.com/docs/api-reference/v3/reference/scopes#scope-support_tickets_read)

**fields**

**email** `String`

Email address. Null when the user has none.

**id** `ID!` *required*

m\_us\_… id, the same id the app and MCP tools use.

**name** `String`

Display name. Null when the user hasn't set one.

**supportShiftStatus** `[SupportShiftStatus!](/docs/api-reference/v3/reference/support/support-shift-status)` *required*

The agent's live shift status, worked out when the request runs.

**Requires:** [`support_config_read`](https://developers.redo.com/docs/api-reference/v3/reference/scopes#scope-support_config_read)

**supportWorkSchedule** `[SupportWorkSchedule!](/docs/api-reference/v3/reference/support/support-work-schedule)` *required*

The agent's support working hours. An agent with no saved schedule returns enabled false.

**Requires:** [`team_members_manage`](https://developers.redo.com/docs/api-reference/v3/reference/scopes#scope-team_members_manage)

**assigneeType** `[SupportTicketAssigneeType](/docs/api-reference/v3/reference/support/support-ticket-assignee-type)`

What kind of assignee the ticket has. Null when unassigned.

**channels** `[\[MessageChannel!\]!](/docs/api-reference/v3/reference/support/message-channel)` *required*

Every channel the ticket's threads are on, each once, in no set order. Detached threads are left out, as in `threads`.

**closureReason** `[SupportTicketClosureReason](/docs/api-reference/v3/reference/support/support-ticket-closure-reason)`

Why the ticket was closed. Null unless `status` is CLOSED.

**createdAt** `[DateTime!](/docs/api-reference/v3/reference/common/date-time)` *required*

When the ticket was created.

**customer** `[Customer](/docs/api-reference/v3/reference/customers/customer)`

The customer the ticket is with: the primary contact on its most recently added thread that has one. Detached and deleted threads are left out, as in `threads`. Null when no thread has one.

**Requires:** [`customers_read`](https://developers.redo.com/docs/api-reference/v3/reference/scopes#scope-customers_read)

**fields**

**createdAt** `[DateTime!](/docs/api-reference/v3/reference/common/date-time)` *required*

When the customer record was created.

**customFields** `[JSON](/docs/api-reference/v3/reference/common/json)`

Merchant-defined custom field values, keyed by each field's name. Null when the customer has no custom fields set.

**email** `String`

The customer's primary email address.

**firstName** `String`

The customer's first name.

**id** `ID!` *required*

The id of this customer.

**lastName** `String`

The customer's last name.

**legacyId** `String!` *required*

The customer's legacy identifier (the source Mongo ObjectId), accepted anywhere an `id` is.

**location** `[CustomerLocation](/docs/api-reference/v3/reference/customers/customer-location)`

The customer's current location, if known.

**phoneNumber** `String`

The customer's primary phone number.

**supportTickets** `[SupportTicketConnection!](/docs/api-reference/v3/pagination)` *required*

The help desk tickets this customer is the primary contact on any thread of, newest first. Every ticket whose `customer` is this customer is here.

**Requires:** [`support_tickets_read`](https://developers.redo.com/docs/api-reference/v3/reference/scopes#scope-support_tickets_read)

**fields**

**Arguments**

**after** `String`

Forward pagination cursor — returns tickets after it.

**before** `String`

Backward pagination cursor — returns tickets before it.

**first** `Int`

Forward pagination: returns the first N tickets (max 100, default 25). Use with `after`; mutually exclusive with `last`/`before`.

**last** `Int`

Backward pagination: returns the last N tickets (max 100, default 25). Use with `before`; mutually exclusive with `first`/`after`.

**updatedAt** `[DateTime!](/docs/api-reference/v3/reference/common/date-time)` *required*

When the customer record was last updated.

**customerSentiment** `[SupportTicketCustomerSentiment](/docs/api-reference/v3/reference/support/support-ticket-customer-sentiment)`

How the customer seems to feel, from the AI's read of the ticket. Null until it has one.

**draftPreview** `String`

The text of the team's most recently edited unsent reply, on any of the ticket's threads. Null when there's no draft.

**id** `ID!` *required*

The id of this ticket.

**lastCustomerMessageAt** `[DateTime](/docs/api-reference/v3/reference/common/date-time)`

When the customer last wrote. Null if they haven't written yet.

**lastMerchantMessageAt** `[DateTime](/docs/api-reference/v3/reference/common/date-time)`

When the team, the AI agent or an automation last wrote to the customer. Null if none has.

**lastMessage** `[Message](/docs/api-reference/v3/reference/support/message)`

The ticket's newest message with text, internal notes included. It skips the messages the ticket's `messages` list leaves out. Null when it has none.

**Requires:** [`support_tickets_read`](https://developers.redo.com/docs/api-reference/v3/reference/scopes#scope-support_tickets_read)

**fields**

**authorType** `[MessageAuthorType!](/docs/api-reference/v3/reference/support/message-author-type)` *required*

Who wrote the message.

**channel** `[MessageChannel!](/docs/api-reference/v3/reference/support/message-channel)` *required*

The channel the message is on.

**content** `String`

The message as plain text. Null for a message with no text, such as an image.

**customer** `[Customer](/docs/api-reference/v3/reference/customers/customer)`

The customer who wrote it. Null unless `authorType` is CUSTOMER, and null when their record was deleted.

**Requires:** [`customers_read`](https://developers.redo.com/docs/api-reference/v3/reference/scopes#scope-customers_read)

**id** `ID!` *required*

The id of this message.

**inReplyTo** `[Message](/docs/api-reference/v3/reference/support/message)`

The message this one replies to. Null when it isn't a reply, or that message is hidden.

**Requires:** [`support_tickets_read`](https://developers.redo.com/docs/api-reference/v3/reference/scopes#scope-support_tickets_read)

**sentAt** `[DateTime!](/docs/api-reference/v3/reference/common/date-time)` *required*

When the message was sent or received.

**teamMember** `[TeamMember](/docs/api-reference/v3/reference/common/team-member)`

The team member who wrote it. Null unless `authorType` is TEAM\_MEMBER, and null when they've left the team.

**Requires:** [`support_tickets_read`](https://developers.redo.com/docs/api-reference/v3/reference/scopes#scope-support_tickets_read)

**thread** `[MessageThread](/docs/api-reference/v3/reference/support/message-thread)`

The thread the message is on. Null when the thread is on a channel the API doesn't expose.

**Requires:** [`support_tickets_read`](https://developers.redo.com/docs/api-reference/v3/reference/scopes#scope-support_tickets_read)

**mergedInto** `[SupportTicket](/docs/api-reference/v3/reference/support/support-ticket)`

The ticket this one was merged into. Null unless it was merged, which also closes it as DUPLICATE.

**Requires:** [`support_tickets_read`](https://developers.redo.com/docs/api-reference/v3/reference/scopes#scope-support_tickets_read)

**mergedTickets** `[SupportTicketConnection!](/docs/api-reference/v3/pagination)` *required*

The tickets merged directly into this one, oldest first.

**Requires:** [`support_tickets_read`](https://developers.redo.com/docs/api-reference/v3/reference/scopes#scope-support_tickets_read)

**fields**

**Arguments**

**after** `String`

Forward pagination cursor — returns tickets after it.

**before** `String`

Backward pagination cursor — returns tickets before it.

**first** `Int`

Forward pagination: returns the first N tickets (max 100, default 25). Use with `after`; mutually exclusive with `last`/`before`.

**last** `Int`

Backward pagination: returns the last N tickets (max 100, default 25). Use with `before`; mutually exclusive with `first`/`after`.

**Fields**

**edges** `[\[SupportTicketEdge!\]!](/docs/api-reference/v3/pagination)` *required*

The list of edges (each a node plus its pagination `cursor`).

**nodes** `[\[SupportTicket!\]!](/docs/api-reference/v3/reference/support/support-ticket)` *required*

The nodes in this page, without the edge/cursor wrapper — a convenience over `edges`.

**pageInfo** `[PageInfo!](/docs/api-reference/v3/pagination)` *required*

Pagination metadata for the current page.

**messages** `[MessageConnection!](/docs/api-reference/v3/pagination)` *required*

The ticket's messages, oldest first, internal notes included. Messages of tickets merged into it stay on those tickets. A thread can hold messages from other tickets, which this leaves out; `thread.messages` has them all.

**Requires:** [`support_tickets_read`](https://developers.redo.com/docs/api-reference/v3/reference/scopes#scope-support_tickets_read)

**fields**

**Arguments**

**after** `String`

Forward pagination cursor — returns messages after it.

**before** `String`

Backward pagination cursor — returns messages before it.

**first** `Int`

Forward pagination: returns the first N messages (max 100, default 25). Use with `after`; mutually exclusive with `last`/`before`.

**last** `Int`

Backward pagination: returns the last N messages (max 100, default 25). Use with `before`; mutually exclusive with `first`/`after`.

**Fields**

**edges** `[\[MessageEdge!\]!](/docs/api-reference/v3/pagination)` *required*

The list of edges (each a node plus its pagination `cursor`).

**nodes** `[\[Message!\]!](/docs/api-reference/v3/reference/support/message)` *required*

The nodes in this page, without the edge/cursor wrapper — a convenience over `edges`.

**pageInfo** `[PageInfo!](/docs/api-reference/v3/pagination)` *required*

Pagination metadata for the current page.

**priority** `[SupportTicketPriority!](/docs/api-reference/v3/reference/support/support-ticket-priority)` *required*

How urgent the ticket is.

**readAt** `[DateTime](/docs/api-reference/v3/reference/common/date-time)`

When the team last read the ticket. Null if no one has opened it.

**snoozedUntil** `[DateTime](/docs/api-reference/v3/reference/common/date-time)`

When the ticket reopens on its own. Null unless `status` is SNOOZED.

**status** `[SupportTicketStatus!](/docs/api-reference/v3/reference/support/support-ticket-status)` *required*

Where the ticket is in its lifecycle.

**statusUpdatedAt** `[DateTime!](/docs/api-reference/v3/reference/common/date-time)` *required*

When `status` last changed.

**summary** `String`

The AI's summary of the ticket. Null until one has been written.

**tags** `[SupportTagConnection!](/docs/api-reference/v3/pagination)` *required*

The tags on the ticket, ordered by name.

**Requires:** [`support_tickets_read`](https://developers.redo.com/docs/api-reference/v3/reference/scopes#scope-support_tickets_read)

**fields**

**Arguments**

**after** `String`

Forward pagination cursor — returns tags after it.

**before** `String`

Backward pagination cursor — returns tags before it.

**first** `Int`

Forward pagination: returns the first N tags (max 100, default 25). Use with `after`; mutually exclusive with `last`/`before`.

**last** `Int`

Backward pagination: returns the last N tags (max 100, default 25). Use with `before`; mutually exclusive with `first`/`after`.

**Fields**

**edges** `[\[SupportTagEdge!\]!](/docs/api-reference/v3/pagination)` *required*

The list of edges (each a node plus its pagination `cursor`).

**nodes** `[\[SupportTag!\]!](/docs/api-reference/v3/reference/support/support-tag)` *required*

The nodes in this page, without the edge/cursor wrapper — a convenience over `edges`.

**pageInfo** `[PageInfo!](/docs/api-reference/v3/pagination)` *required*

Pagination metadata for the current page.

**threads** `[MessageThreadConnection!](/docs/api-reference/v3/pagination)` *required*

The threads the ticket's conversation is on, oldest first.

**Requires:** [`support_tickets_read`](https://developers.redo.com/docs/api-reference/v3/reference/scopes#scope-support_tickets_read)

**fields**

**Arguments**

**after** `String`

Forward pagination cursor — returns threads after it.

**before** `String`

Backward pagination cursor — returns threads before it.

**first** `Int`

Forward pagination: returns the first N threads (max 100, default 25). Use with `after`; mutually exclusive with `last`/`before`.

**last** `Int`

Backward pagination: returns the last N threads (max 100, default 25). Use with `before`; mutually exclusive with `first`/`after`.

**Fields**

**edges** `[\[MessageThreadEdge!\]!](/docs/api-reference/v3/pagination)` *required*

The list of edges (each a node plus its pagination `cursor`).

**nodes** `[\[MessageThread!\]!](/docs/api-reference/v3/reference/support/message-thread)` *required*

The nodes in this page, without the edge/cursor wrapper — a convenience over `edges`.

**pageInfo** `[PageInfo!](/docs/api-reference/v3/pagination)` *required*

Pagination metadata for the current page.

**ticketNumber** `Int`

The ticket number the help desk shows, unique within the store. Null for some older tickets.

**timeline** `[SupportTicketEventConnection!](/docs/api-reference/v3/pagination)` *required*

What happened on the ticket, oldest first.

**Requires:** [`support_tickets_read`](https://developers.redo.com/docs/api-reference/v3/reference/scopes#scope-support_tickets_read)

**fields**

**Arguments**

**after** `String`

Forward pagination cursor — returns events after it.

**before** `String`

Backward pagination cursor — returns events before it.

**first** `Int`

Forward pagination: returns the first N events (max 100, default 25). Use with `after`; mutually exclusive with `last`/`before`.

**last** `Int`

Backward pagination: returns the last N events (max 100, default 25). Use with `before`; mutually exclusive with `first`/`after`.

**Fields**

**edges** `[\[SupportTicketEventEdge!\]!](/docs/api-reference/v3/pagination)` *required*

The list of edges (each a node plus its pagination `cursor`).

**nodes** `[\[SupportTicketEvent!\]!](/docs/api-reference/v3/reference/support/support-ticket-event)` *required*

The nodes in this page, without the edge/cursor wrapper — a convenience over `edges`.

**pageInfo** `[PageInfo!](/docs/api-reference/v3/pagination)` *required*

Pagination metadata for the current page.

**unread** `Boolean!` *required*

Whether the customer wrote after the team last read the ticket. False when the customer hasn't written.

**updatedAt** `[DateTime!](/docs/api-reference/v3/reference/common/date-time)` *required*

When the ticket last changed.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.