Skip to content
CreateDiscordBot
Menu

Custom Discord ticket bots with HTML transcripts

I build Discord ticket bots that run on your own bot account: a panel for each ticket type, private channels or threads, claiming, SLA reminders and HTML transcripts stored where you choose. If a free ticket bot already covers you, I'll say so.

Usually
Starter bot, from $590
Timeline
1 to 2 weeks
You get
Source code and your own bot token

Example commands

  • /ticket-panel type:billing

    Posts a panel with a button or select menu for each ticket type, each with its own form, category and staff role.

  • /claim

    Assigns the ticket to you, renames it and tells the member who is handling it.

  • /add who:@Sam

    Adds a member or a whole role to the current ticket, and logs who did it.

  • /close reason:Refund sent

    Closes the ticket, saves an HTML transcript to your log channel and the member's DMs, and records the reason.

  • /tickets stats period:week

    Shows open tickets, median first-response time and SLA breaches per staff role (a Community build, with the database).

Connects to

  • Zendesk
  • Email
  • Google Sheets
  • Your database or API
  • Transcript storage you own

A custom Discord ticket bot is a support bot written for your server. Members open a ticket from a panel, the bot creates a private channel or thread that only they and the right staff can see, and when the ticket closes you keep a full HTML transcript. I build them on your own Discord application, so the token, the code and every transcript stay with you.

Most servers don't need one. Ticket Tool and Tickets handle panels and transcripts on their free tiers, and their paid plans cost $7.99 a month and $2.99 per server a month (as of September 2026). A custom ticket bot is worth paying for when tickets need your own data, your own routing rules or your own storage. This page explains where that line sits and what I build on the other side of it.

What the bot does

For the member

  1. They open your support channel and pick a ticket type on the panel. A few types fit as buttons; a select menu holds up to 25.
  2. A short form pops up. Discord modals hold up to five fields, including text boxes, dropdowns and a file upload, so the bot collects the order number, match ID or screenshot your staff would otherwise ask for first.
  3. The bot opens a private ticket, posts their answers at the top and tells them which team will reply.
  4. When the issue is solved, the ticket closes and a copy of the transcript arrives in their DMs.

For your staff

  • Routing. Each ticket type gets its own category and staff role, so billing questions reach the billing team and match disputes reach tournament admins. Routing can also use your data: a ticket from a team captain can go straight to the admin who runs that team's division.
  • Claiming. A Claim button or /claim assigns the ticket, renames it and tells the member who has it, so two people don't answer the same question.
  • SLA reminders. If no staff member has replied within the time you set, the bot pings the on-call role. If the member goes quiet, it warns them and closes the ticket after a grace period.
  • HTML transcripts. On close, the bot renders the conversation as an HTML page that looks like the Discord channel. Images and files are saved with it, because Discord's attachment links are signed and expire. The transcript goes to a staff log channel, the member's DMs and any storage you name.
  • Audit log. Every open, claim, add, remove, rename, close and reopen is recorded with who did it and when, in a log channel (and in a database on Community builds), so a dispute can be checked months later.

The ticket bot I built for an esports tournament organizer in 2025 covered part of this: support, match and custom tickets from one control room, staff commands to add or remove people and roles, rename, close and reopen, HTML transcripts, and a record of every ticket and staff action. Claiming and SLA reminders are additions I would build for your server.

Private channels or threads

I pick one of two designs for each server, and the choice mostly comes down to volume.

Private channel per ticket Private thread per ticket
Limits Counts toward the server's 500 channels (categories included); 50 channels per category Doesn't count toward the channel cap; a separate server-wide limit on active threads applies
Staff access One overwrite per staff role Staff need Manage Threads on the parent channel, which also lets them archive and delete any thread there
Visibility Every open ticket listed in its category Under the parent channel, hidden after 1 hour to 7 days of inactivity
Best for Up to a few dozen open tickets, clear per-team access High volume, or servers that are close to the channel cap

For most community and esports servers I use private channels, with overflow categories once the first one nears 50 tickets. Threads suit busy servers where staff already moderate the support channel.

What it connects to

A ticket bot gets more useful when it can reach the systems your team already works in.

  • Your helpdesk. If support lives in Zendesk or a similar tool, the bot can create a helpdesk ticket for each Discord ticket through its API, add the transcript when the Discord side closes, and keep a link between the two.
  • Email. Transcripts can go to your support inbox, or to the member's email when your form or your own system has it. SLA breaches can alert a manager who isn't on Discord.
  • Google Sheets. One row per ticket with type, opener, claimer, first-response time and close reason, appended through the Sheets API. Staff build their own reports without a dashboard.
  • Your own database or API. The bot looks up the member's order, subscription, game account or match when the ticket opens and shows it to staff, so the first reply can be the answer instead of a question.

If the integration is the main job and tickets are a small part, see Discord integrations. If you want answers from your docs before a human steps in, that's an AI support bot, and it can hand off into a ticket. For a company server where tickets sit next to plan roles and bug reports, see Discord bots for business.

Free bot, builder or custom?

Prices below were checked on the vendors' own pages in September 2026.

Option Price What you get Pick it when
Ticket Tool, free $0 Unlimited panels, transcripts you generate, support roles, up to 10 tickets a minute You want a standard panel today
Ticket Tool Premium $7.99/mo Adds automatic transcripts, auto-close and auto-delete, DM notices, full embed customization; claiming is listed as a premium feature You like Ticket Tool and want automation
Tickets, free $0 Unlimited tickets, forms, claiming, automatic ticket archives, up to 3 panels Three panels with forms are enough
Tickets Premium / White-label $2.99 per server/mo; white-label $6.99/mo Unlimited panels, autoclose, statistics, exit surveys; white-label adds your own bot name, avatar and status You want your branding on a ready-made bot
Mava Free for 30 requests a month; paid plans $39 to $599/mo billed monthly A support desk with AI answers trained on your sources; Discord support on every plan You want an AI-first support desk rather than a bot you own
Custom ticket bot From $590, plus optional Care from $49/mo Your forms, routing, integrations and storage, on your own bot, with the code Tickets depend on your data or rules

Say yes to Ticket Tool or Tickets if your tickets are "member asks, staff answers" and the transcript is only for your own reference. Their free tiers do that well, and it would be poor value to pay me to rebuild them.

A custom bot makes sense when one of these is true:

  • Tickets need data from your systems, like an order, subscription, league match or game account.
  • Routing depends on rules a dashboard can't express, such as a team's division or a customer's plan.
  • Transcripts and ticket data must live in storage you control, for disputes, refunds or compliance.
  • You'd rather run one bot for tickets and your other jobs than pay for three.

What a custom Discord ticket bot costs

A ticket bot usually lands in the Starter tier: from $590, delivered in 1 to 2 weeks. That covers one ticket system: panels and ticket types, forms, private channels or threads, claiming, close with HTML transcripts to a log channel and DMs, and up to about five slash commands. You get the source code, setup docs, 30 days of bug fixes and the first month of Care.

It moves to Community, from $1,490, when it needs a database-backed audit log and SLA statistics, one outside integration such as Google Sheets, a helpdesk or your own API, or when tickets are one of up to three systems in the same bot. A web dashboard where staff search transcripts and see statistics is Platform work, from $3,500. Full tier details are on the pricing page.

For comparison, Upwork's hiring guide lists moderation, onboarding or ticketing bots at $1,000 to $4,000 per project (September 2026).

What moves a quote:

  • Up: many ticket types with different routing, forms that validate against your data, migrating old tickets, multiple servers, and a staff dashboard.
  • Down: one or two ticket types, transcripts to a log channel only, and hosting it yourself.

Hosting is separate. Care is $49 a month and covers hosting, monitoring, library updates and one small change a month. If you're unsure what you need, the Bot Blueprint ($249) gets you a written spec and a fixed price, credited in full if you order the build within 30 days.

How the build works

  1. Brief. You send a short brief: ticket types, who handles each, where transcripts should go. I reply within one business day with questions or a price range, then a fixed quote.
  2. Spec. We agree on each ticket type's form, category, staff role and SLA time, what gets logged, and how long transcripts are kept. That list becomes the acceptance checklist.
  3. Build and test. I build in a private test server and invite you and a couple of staff to open, claim and close real test tickets.
  4. Launch. The bot goes live on your own Discord application, and I hand over the repository and setup docs.
  5. Aftercare. Thirty days of bug fixes are included, and Care keeps it hosted and updated after that.

Builds are paid 50% up front to book the slot and 50% when you accept the delivery against the checklist. I take a limited number of builds each month, so the brief also tells you when I can start.

Technical notes

  • Intents. The bot connects with the Guilds intent. Transcripts need the privileged Message Content intent, switched on in the Developer Portal; Discord reviews access once more than 10,000 users can see the app. Server Members is only needed for features like closing a member's tickets when they leave.
  • Permissions. Manage Channels, View Channels, Send Messages, Embed Links, Attach Files and Read Message History. Adding people to an open ticket edits its permission overwrites, which also needs Manage Roles. Thread mode swaps Manage Channels for Create Private Threads, Send Messages in Threads and Manage Threads. The bot never needs Administrator. You can check the numbers with the permissions calculator.
  • Data. Transcripts and the staff log go to channels and storage you control; Community builds also keep ticket records and staff actions in a database you own. Nothing is sent to a third-party ticket service unless you ask for a helpdesk integration.
  • Reliability. Panel buttons are handled by a global listener rather than a timed collector, so a panel keeps working after restarts and redeploys.

Built before

An esports tournament organiser, 2025

Ticket bot with control rooms and transcripts

  • A control room message has buttons for support, match and custom tickets. Each ticket is a private, numbered channel.
  • Staff can add or remove people and roles, rename, close, reopen and delete tickets. Deleting produces an HTML transcript.
  • Every ticket, message and staff action is stored, so disputes can be checked afterwards.

Common questions

What Discord bot can create tickets?

Ready-made bots such as Ticket Tool and Tickets create tickets, and both have free tiers with panels and transcripts (September 2026). A custom ticket bot does the same job on your own bot account, with your own forms, routing rules and storage.

Can you add tickets to the bot we already have?

Usually, yes, if it is written in discord.js or discord.py. I read the code first and quote the ticket system as an addition. If the existing bot is broken or stuck on an old library, a Bot Rescue comes first.

Who owns the transcripts and ticket data?

You do. The bot runs on your Discord application, transcripts go to your log channel and to storage you control, and you get the source code. We agree how long transcripts are kept when we write the spec.

Can members open a ticket by sending the bot a DM?

Yes. That is a modmail-style flow: the bot relays a member's DMs into a private staff channel and sends staff replies back to the DM. It is a different design from panel tickets, so mention it in your brief.

Can I build a ticket bot myself instead?

Yes, and I wrote a tested discord.js tutorial for exactly that: a panel, private ticket channels, a close button and text transcripts in about 270 lines.

Sources

Prices and features were checked on September 27, 2026.

  1. Ticket Tool, Premium (price and free vs premium features)
  2. Tickets, Premium (Premium and White-label prices and features)
  3. Mava, Pricing
  4. Upwork, Hire Discord bot developers (cost table)
  5. Discord Support, Account caps, server caps and more
  6. Discord Support, Threads FAQ
  7. Discord Developer Docs, Threads
  8. Discord Developer Docs, Channel resource (category limit, Edit Channel Permissions)
  9. Discord Developer Docs, Permissions
  10. Discord Developer Docs, Gateway: privileged intents and Message Content
  11. Discord Developer Docs, Component reference (select menus, modals, file upload)
  12. Discord Developer Docs, Receiving and responding (modal limits)
  13. Discord Developer Docs, Reference (signed attachment CDN URLs)
  14. Zendesk API reference, Tickets
  15. Google Sheets API, spreadsheets.values.append

Tell me what your bot needs to do

Send a short brief. You get a reply within one business day with questions or a price range, and a fixed quote before any work starts.

Last updated 2026-09-27 by Adam Peleback.