Skip to content
Coritan Docs

Contact support from the dashboard

Start a support conversation, attach files, follow the replies, rate the answer, and reopen a conversation that was closed.

View as Markdown

A conversation is a thread between you and the Coritan team about one question. Each conversation has a number, such as #1042, and the dashboard also calls it a ticket. You start conversations and read the team's replies on the Support page of the dashboard.

  • Sign in to the dashboard. Every account can start conversations, whatever services it has.
  • Have ready the details that What to include lists: the service, what happened and any error message.
  • If you cannot sign in, email support@coritan.com instead.
  • If you bought the service from an organization's storefront, ask that organization. The Support page reaches Coritan's team, and each organization answers its own customers.
  1. In the sidebar or the top bar, select Support.
  2. Select New conversation…. The Open a ticket button on the dashboard's overview opens the same form.
  3. In Subject, sum up the problem in one line, such as Backups stopped on survival-smp. A subject can be up to 300 characters.
  4. Choose the Department the question belongs to. The form starts on the first one in the list. The text under the field says what the department handles and how soon it aims to reply.
  5. Choose the Priority: Low, Medium, High or Critical. It starts on Medium. The team takes higher priorities first, so keep Critical for a service that is down.
  6. Under About a service, choose the service the question is about, or leave Not about a specific service. The person who answers then sees the service straight away.
  7. In Message, write what happened, what you expected, and what you have already tried. A message can be up to 10,000 characters.
  8. Select Start conversation.

The dashboard shows Conversation started. and opens the conversation. The form takes no files: attach them once the conversation is open.

Open a conversation from the list on the Support page. The reply box is at the bottom of the thread.

  • Write your reply and select Send. With a keyboard, Enter sends and Shift Enter starts a new line. On a touch screen, Enter starts a new line and only Send sends.
  • To attach a file, select Attach file, the paperclip beside the reply box, or drop the file on the box. Each file goes up on its own, as a message of its own. A file can be up to 25 MB.
  • After you attach a file, send a reply that says what it is. A file on its own does not tell the team you wrote.
  • Select a file in the thread to download it. Images show a small preview.

We accept these kinds of file:

Kind Files
Images JPEG, PNG, GIF, WebP and SVG
Documents PDF, Word and Excel
Text Plain text, CSV, HTML, JSON and XML
Archives ZIP, gzip and tar

We go by the type your browser reports for each file. Browsers report a file that ends in .log with no type we accept, so rename a log to end in .txt before you attach it. Some browsers also report XML, gzip and ZIP files with types we do not accept (Troubleshooting).

Important

You cannot edit or delete a message or a file after you send it. Leave out passwords, recovery codes and card numbers.

The Support page lists your conversations with the latest activity first, 20 to a page. Older and Newer move between pages. A conversation with messages you have not read shows its subject in bold and a count such as 2 unread.

To find a conversation:

  • Select All, Open, Awaiting you or Closed above the list. Open lists every conversation that is not closed, and Awaiting you lists the ones that wait for your answer.
  • Choose one priority in the menu that starts on Any priority.
  • Search by subject, by number such as #1042, or by words from the latest message.

When nothing matches, the list says No matches, and Reset filters clears the search and the filters.

Each conversation shows one of these statuses:

Status What it means
Open New, or reopened.
In progress Someone on the team has taken it and is working on it.
Awaiting agent You wrote last, and the team has not replied yet.
Awaiting you The team replied, and waits for your answer.
On hold The team has set it aside for now.
Closed The matter is settled. You can reopen it.

A conversation's header shows its number, its department and the service it is about. The team's replies appear in the thread as they are sent, and Support is typing shows while someone writes to you. Short lines in the thread, such as Conversation closed, record changes to the conversation. Opening a conversation marks its messages read.

The thread opens at the newest message. Scroll up, or select Load older messages, to read further back. When a reply arrives while you read older messages, New messages takes you down to it.

If the live connection drops, the thread says Reconnecting. Replies from support appear here once the connection is back. When it cannot reconnect, it says Live updates are off. Your messages still go through, and replies from support appear after you reconnect. Select Reconnect. The messages you send go through either way.

If a reply is still unread a few minutes after the team's last message, we email it to the address you sign in with. The subject is Re: <subject> [#<number>], such as Re: Backups stopped on survival-smp [#1042]. The email holds every reply you have not read, with its time in UTC and the names of any files, and a link to the conversation. A reply to that email does not reach the conversation, so follow its link to answer. If you read the replies on the page first, we send no email.

Close a conversation and rate it

Section titled Close a conversation and rate it

When the matter is settled, close the conversation:

  1. Open the conversation and select Close conversation….
  2. Select Close conversation to confirm. Keep it open leaves it as it was.

The dashboard shows Conversation closed., and the reply box gives way to This conversation is closed. Reopen it to write again. The team can close a conversation too.

A closed conversation asks How was the help you got?. To rate the help:

  1. Choose from one star, Poor, to five stars, Excellent.
  2. Add a comment of up to 500 characters if you want to.
  3. Select Send rating.

The conversation then says, for example, You rated this conversation 4/5 (Very good). You can rate a conversation once, and a second rating keeps the first. The rating stays when you reopen the conversation.

If the problem comes back, reopen its conversation so the team has the history:

  1. On the Support page, select Closed, then open the conversation.
  2. Select Reopen conversation.

The dashboard shows Conversation reopened., the status goes back to Open, and you can write again. We tell the team that you reopened it.

Some conversations start without the form:

  • When we flag unusual activity on one of your servers, or lock one, we open a conversation called Server activity review with high priority. It waits for your answer: reply to tell us what the activity is. The server is locked explains a lock.
  • A request for a higher SMTP Relay limit opens a conversation about it (Request a higher hourly limit).
  • When a member of an organization's team escalates a customer's conversation to Coritan, a conversation opens on that member's own account, with [Escalated] before the subject (Escalate a conversation to Coritan).

They appear in your list with the others, and you answer them in the same way.

Your conversation is on the Support page with its number and its status. The team's replies arrive in the thread, and by email when you have not read them there.

Enter a subject. or Write what you need help with.
The form needs a subject and a message before it can start the conversation.
Could not start the conversation
The text under it says why. A subject over 300 characters or a message over 10,000 characters is refused, so shorten it. After Please try again in a moment, select Start conversation again.
Could not load your conversations
The list did not load. Select Try again, or reload the page.
Could not open that conversation: it does not exist, or it belongs to another account.
The link is for a conversation on another account, or the address is wrong. Sign in to the account that started the conversation. People you share a server with cannot see your conversations.
Could not send the message
The reply did not go, and it stays in the box. Check your connection and select Send again.
Could not attach a file, with files can be up to 25 MB.
The file is over the limit. Attach a smaller file, such as the part of a log around the problem.
Could not attach a file, with File type not allowed: and a type
Your browser reported a type we do not accept. A log usually comes up as application/octet-stream: rename it to end in .txt. We also refuse application/x-zip-compressed, application/gzip and text/xml, which some browsers report for ZIP, gzip and XML files. Attach the files inside such an archive one at a time instead, and save screenshots as PNG or JPEG.
This conversation is closed. Reopen it to write again.
Select Reopen conversation under the message.
Live updates are off. Your messages still go through, and replies from support appear after you reconnect.
Select Reconnect, or reload the page.
No email about a reply
We email only the replies you have not read on the page, to the address you sign in with. Update your profile shows where to see it. Check your spam folder, and open the Support page to read the reply.
Account is suspended or closed when you sign in
The account cannot sign in, so it cannot start a conversation. Email support@coritan.com from the address the account uses.

Every support route is under https://api.coritan.com/api/v1/chat/ and takes your access token, as Authentication explains. The Support section of the API reference lists every field. The routes take a conversation's id. Its conversation_number is the number the dashboard shows, such as #1042.

A conversation on another account answers 403 with Access denied. So does an ID that does not exist, except on GET /chat/conversations/{conversation_id}, which answers 404 with Conversation not found. A body outside the limits below answers 422, with the field in detail (Errors).

GET /chat/meta answers what the dashboard's form offers:

departments
Each department's slug, name, description and color, its target times for the first reply and for the resolution in minutes (sla_first_response_minutes and sla_resolution_minutes), its route, and available, which is true for every department on a Coritan account.
priorities
low, medium, high and critical.
attachments
max_size_mb, which is 25, max_files, and the types we accept in allowed_mime_types. Each upload carries one file, whatever max_files says.
access
can_open_tickets, routes, policy_enabled and message. On a Coritan account every route is open and message is null.
Shell
curl -X POST https://api.coritan.com/api/v1/chat/conversations \
  -H "Authorization: Bearer $CORITAN_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "subject": "Backups stopped on survival-smp",
    "department": "technical",
    "priority": "high",
    "service_id": 4821,
    "body": "The nightly backup has not run since Sep 14, 2026. I have not changed the schedule.",
    "client_request_id": "7d3c6f0e-2b1a-4c8e-9f5d-6a4b3c2d1e0f"
  }'

POST /chat/conversations answers 201 with the conversation: its id, its conversation_number, status set to open, and the first message in messages. It takes:

subject
Required, up to 300 characters.
body
Required, 1–10,000 characters.
department
A slug from GET /chat/meta. Without one, the conversation has no department.
priority
low, medium, high or critical. medium if you leave it out.
service_id
The id of the service the question is about, as GET /services/ lists it.
client_request_id
Up to 64 characters. A retry with the same value answers the conversation the first request opened, and opens no second one (Idempotency).

A 409 with Please try again in a moment means two requests arrived at once. Send the request again with the same client_request_id.

Shell
curl "https://api.coritan.com/api/v1/chat/conversations?status=awaiting_customer&limit=20" \
  -H "Authorization: Bearer $CORITAN_TOKEN"

GET /chat/conversations answers a JSON array, latest activity first. It takes:

  • status: open for every conversation that is not closed, or one of in_progress, awaiting_customer, awaiting_agent, on_hold and closed. A word it does not know answers an empty list.
  • priority: low, medium, high or critical. Another word answers 422.
  • q: up to 200 characters, matched against the subject and the latest message. A number, such as 1042 or #1042 (sent as %231042), also finds that conversation.
  • page, from 1, and limit, from 1 to 100 (20 by default). Pagination and filtering shows how to walk every page.

Each item has id, conversation_number, subject, status, priority, department, last_message_at, last_message_preview, unread_count, csat_score, created_at and updated_at. unread_count counts the messages you did not write and have not marked read.

GET /chat/conversations/{conversation_id} answers one conversation with all its messages in messages, and adds service_id, closed_at, reopened_count, and the rating in csat_score, csat_comment and csat_rated_at. The team's internal notes never appear.

Shell
curl "https://api.coritan.com/api/v1/chat/conversations/5120/messages?after_id=88213" \
  -H "Authorization: Bearer $CORITAN_TOKEN"

GET .../messages answers messages oldest first, limit at a time (50 by default, at most 100). With no other parameter it answers the latest messages. before_id answers the ones before that message, to read further back, and after_id the ones after it, to pick up new replies. Poll no more often than you need to (Rate limits).

Each message has:

  • id and created_at;
  • sender_type: user for you, agent for the team, and system for lines such as Conversation closed;
  • sender_name, body and content_type, which is text, attachment or system_event;
  • attachments, each with id, file_name, file_size in bytes, mime_type and created_at;
  • read_at, set on a message you did not write once you mark it read;
  • client_request_id, when you sent one.
Shell
curl -X POST https://api.coritan.com/api/v1/chat/conversations/5120/messages \
  -H "Authorization: Bearer $CORITAN_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"body": "The backup ran again last night.", "client_request_id": "0c9e2f4a-8d1b-4e6f-a3c5-7b2d9e1f4a6c"}'

POST .../messages takes a body of 1–10,000 characters and an optional client_request_id of up to 64, which works as it does for a new conversation. It answers the message, and the conversation moves to awaiting_agent. A closed conversation answers 400 with Conversation is closed: reopen it first.

Shell
curl -X POST https://api.coritan.com/api/v1/chat/conversations/5120/attachments \
  -H "Authorization: Bearer $CORITAN_TOKEN" \
  -F "file=@latest.log;type=text/plain"

POST .../attachments takes one file, as the form field file, and adds it as a message of its own. It answers 201 with the file's id, the message_id, file_name, file_size and mime_type. Set the part's type yourself, as the example does: curl sends application/octet-stream for a name it does not recognise, and we refuse that type. It answers 400 with:

  • File type not allowed: and the type, for a type that allowed_mime_types does not list;
  • File exceeds 25MB limit, for a larger file;
  • Conversation is closed.

A file on its own leaves the status as it was and does not alert the team, so send a message about it as well.

GET .../attachments/{attachment_id} answers the file with its type, as a download under its name. A file that is not in that conversation answers 404 with Attachment not found.

GET .../attachments/{attachment_id}/thumbnail answers a preview at most 200 pixels wide and high, for JPEG, PNG, GIF and WebP images. Other files answer 404 with Thumbnail not available. The preview of a PNG image is a PNG file and the others are JPEG files, but the Content-Type of each is image/jpeg.

Shell
curl -X POST https://api.coritan.com/api/v1/chat/conversations/5120/read \
  -H "Authorization: Bearer $CORITAN_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"up_to_message_id": 88213}'

POST .../read marks the messages you did not write as read, up to and including up_to_message_id. The body is required: send {} to mark every message read. It answers {"ok": true, "marked": 2, "up_to_message_id": 88213}, where marked counts the messages it marked. We leave the replies you mark read out of the email.

Shell
curl -X POST https://api.coritan.com/api/v1/chat/conversations/5120/close \
  -H "Authorization: Bearer $CORITAN_TOKEN"

POST .../close and POST .../reopen take no body and answer the conversation. Closing sets status to closed and fills closed_at. Reopening sets status to open and adds 1 to reopened_count. Closing a closed conversation, or reopening an open one, changes nothing.

Shell
curl -X POST https://api.coritan.com/api/v1/chat/conversations/5120/csat \
  -H "Authorization: Bearer $CORITAN_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"score": 5, "comment": "Fixed within the hour."}'

POST .../csat takes a score from 1 to 5 and an optional comment of up to 500 characters. It answers ok, already_rated, and the rating in csat_score, csat_comment and csat_rated_at. A second rating answers the first one, with already_rated set to true. A conversation that is not closed answers 400 with Rate the ticket once it is closed.

API operations on this page