How can we help you?
Everything you need to get started with MeinTicketbot – from your first ticket to connecting via the API.
Quick start in 5 steps
Your ticket system is up and running in minutes.
Sign in
Sign in with your Discord account. You only enter your password on discord.com – we never see it.
Pick a server and invite the bot
The server list shows every server where you have “Manage Server”. Click “Invite bot” and confirm the permissions on Discord.
Pick a template
Under “Templates” you create a complete ticket system with one click – categories, channels, roles, panel, forms and automations, e.g. for gaming, Minecraft, shops or applications. You see a preview first, and everything can be undone.
Adjust and publish the panel
Under “Panels” you change texts, colors and buttons with a live preview and publish the panel in the channel of your choice.
Test your first ticket
Click a panel button in the Discord channel. A private ticket channel opens – you see the ticket right away in the dashboard under “Tickets”.
Tip: The “Setup” card in the server overview shows which steps are still missing.
Which permissions does the bot need?
Only the permissions it really needs for tickets – no administrator permissions.
- View channelsSee the panel channel and ticket channels
- Send messagesPost the panel, welcome messages, notifications and replies from the dashboard
- Embed linksShow panels and notices as clear cards
- Attach filesSend transcripts and attachments
- Read message historyCreate ticket transcripts
- Manage channelsCreate, lock and delete private ticket channels
- Manage rolesCreate roles from templates, rules confirmation (assign a role)
Important: In your server settings the bot's role must be above the roles it should assign.
Frequently asked questions
Answers to what we are asked most often.
Is MeinTicketbot free?
Yes, the Free plan is free forever and includes panels, one form, one automation, ten snippets, one creator notification and transcripts. Pro, Business and Enterprise raise the limits and unlock more features. See the pricing page for details.
Can I pay monthly or yearly?
Both. Every paid plan can be booked monthly or yearly, and paying yearly costs less than twelve monthly payments. You choose the billing period when booking in the dashboard under “Plan”.
How do I cancel my subscription?
In the dashboard under “Plan” with “Cancel subscription”. The plan stays active until the end of the paid period, then Free applies again. Your settings are kept.
Who can open a server's dashboard?
Owners, administrators and members with “Manage Server” can manage it. Support staff only see tickets and transcripts. Permissions are checked with Discord regularly – whoever loses them there also loses access to the dashboard.
How many tickets can a member open at once?
You set this per panel option (1 to 5 open tickets). Once the limit is reached, the bot points to the ticket that is already open.
What happens to closed tickets?
A transcript can be created when closing. You find it in the dashboard under “Transcripts” and can download it as HTML or PDF; from Pro you can also share it via link. How long transcripts are kept depends on your plan.
What are snippets?
Ready-made answers for recurring questions. You create them under “Snippets” and insert them into a ticket with one click. Placeholders such as {user} or {number} are filled in automatically.
Can the bot announce new videos and streams?
Yes. Under “Notifications” the bot announces new YouTube videos, YouTube and Twitch live streams and new posts from RSS feeds in a channel of your choice, optionally with a role mention. Sources are checked about every five minutes.
Can I try MeinTicketbot without signing in?
Yes. In the live demo you get your own sample server with tickets, panels and statistics. Nothing is sent to Discord, and everything is deleted after two hours.
Can tickets be distributed automatically?
Yes. Under “Automations”, create a rule with the action “Assign round robin”. The ticket goes to whoever currently has the fewest open tickets, optionally only among selected team members. Everyone who has signed in to the dashboard at least once can be selected.
How do I set up business hours?
Under “Automations” you enter when your team is available. Rules can then run only inside or only outside these hours, for example an automatic reply at the weekend. The placeholder {opens} shows the next start of your business hours.
Can I get new tickets on my phone?
Yes, via push notifications. Enable them in the dashboard under “Account & security” for your device and choose your servers. On iPhone or iPad, first open the dashboard in Safari, tap “Share” → “Add to Home Screen” and then enable notifications in the app from your home screen.
Which languages are supported?
The dashboard and bot are available in German and English. You set the bot language per server in the server overview.
Where is my data stored?
With our hosting provider, which processes the data on our behalf. Credentials and tokens are stored encrypted. Learn more on the security page and in the privacy policy.
Troubleshooting
The most common pitfalls and how to solve them.
My server is not in the list
You need the “Manage Server” permission on that server. If it was just granted, click “Refresh list” in the server list.
Clicking a panel button does nothing or shows “Interaction failed”
- Check the bot diagnostics in the server overview: missing permissions are shown there.
- Make sure the bot can see the ticket category and create channels in it.
- Discord allows 50 channels per category. Close old tickets or add another category.
The bot cannot assign a role
Drag the bot's role above the role to be assigned in your server settings under “Roles” and check that “Manage roles” is allowed.
A notification does not arrive
- Under “Notifications” each account shows its last error, e.g. missing permissions in the chosen channel.
- The bot needs to send messages and embed links in that channel.
- The role is only mentioned if it is mentionable or the bot may “Mention everyone”.
- On the first check the bot only records the current state. Only posts published after that are announced.
Push notifications do not arrive
- Under “Account & security”, check that the device is registered and the server is selected, then send a test message.
- If it says blocked in the browser, allow notifications in the browser’s site settings.
- On iPhone, push only works through the app on your home screen.
The bot appears offline
This can happen briefly after maintenance; tickets via buttons keep working. See the current state on the status page.
I am stuck
Write to us via the contact form. Please include the server name and, if shown, the error ID.
API & webhooks from Business
Bring tickets and statistics into your website, shop or custom panel.
With the REST API you read your server's tickets and statistics. Webhooks report new events to your URL automatically. You set up both in the dashboard under “API & webhooks”.
Authentication
Every request needs an API key of the server in the header. A key only works for the server it was created for. Limit: 120 requests per minute.
curl -H "Authorization: Bearer mtb_…" "/api/v1/tickets?status=open"Endpoints (read-only)
- GET
/api/v1/meServer, plan and key name - GET
/api/v1/ticketsTicket list. Parameters:status(all, open, closed, new, in_progress, waiting_user, waiting_internal, resolved),limit(1–100),page,updated_since(ISO-8601) - GET
/api/v1/tickets/{number}One ticket with form answers, rating and history - GET
/api/v1/stats?days=30Opened and closed tickets, open tickets, avg. first response, avg. handling time, ratings
Times are in UTC (ISO-8601). Errors are returned as JSON with error.status and error.message: 401 = key missing/invalid, 403 = plan without API, 404 = not found, 429 = too many requests.
Webhooks
For every selected event we send a POST with JSON to your HTTPS URL.
ticket.created
ticket.claimed
ticket.transferred
ticket.status_changed
ticket.priority_changed
ticket.closed
ticket.transcript_created
ping
{
"id": "evt_1234",
"type": "ticket.created",
"created_at": "2026-11-14T12:00:00Z",
"server": { "id": "123456789012345678", "name": "My server" },
"data": {
"ticket": { "number": 42, "status": "new", "priority": "normal", "topic": "Report a player",
"creator": { "id": "…", "name": "steve" }, "opened_at": "2026-11-14T12:00:00Z", … },
"actor_id": "…",
"details": {}
}
}Verify the signature: Every message has the header X-MeinTicketbot-Signature: t=<time>,v1=<signature>. The signature is HMAC-SHA256 over <time>.<raw body> with your webhook secret. Discard messages with a wrong signature or a time older than 5 minutes.
$body = file_get_contents('php://input');
[$t, $v1] = sscanf($_SERVER['HTTP_X_MEINTICKETBOT_SIGNATURE'], 't=%d,v1=%s');
$ok = hash_equals(hash_hmac('sha256', $t . '.' . $body, $secret), $v1) && abs(time() - $t) < 300;Reply with a 2xx status within 5 seconds. Otherwise we retry with growing intervals (up to 6 hours); after 10 failures in a row the webhook is paused and can be re-enabled in the dashboard. The headers X-MeinTicketbot-Event and X-MeinTicketbot-Delivery contain the event type and a unique ID – use them to detect duplicate deliveries.
No results. Try another term or write to us.
Still have questions?
We are happy to help you personally.