Skip to content

Cloudflare Workers ​

Cloudflare Workers let you run serverless JavaScript at the edge. They are optional - you do not need a worker to create a custom integration. Any HTTPS endpoint that returns JSON works.

When a Worker Helps ​

Tickets maps placeholders from exact JSON keys using dot paths. It cannot search arrays or reshape responses for you.

If an upstream API returns data in an awkward shape - for example a list of players you must search by Discord ID - a small worker can call that API, pick the right record, and return a flat JSON object your integration placeholders can read:

json
{
  "username": "Username",
  "steam_profile_url": "https://steamcommunity.com/profiles/76561198000000000"
}

Returning full URLs as field values (rather than IDs alone) lets server owners paste a single placeholder into welcome messages.

If you deploy a worker, register its URL as the request URL when creating your custom integration in the web dashboard. Your worker should accept the ticket-open request format described in Building Integrations (POST with user_id, guild_id, and so on).

Workers can use key-value storage to cache slow-changing data and reduce upstream API usage.

The Cloudflare Workers docs cover deployment and runtime APIs.

Hosting a Public Integration with Tickets ​

This is separate from running your own worker for a custom integration.

If you want Tickets to host an integration as a first-party, publicly listed option (maintained in our infrastructure rather than only on your own URL), open a pull request on the TicketsBot integrations repository.

Accepted workers in that repo must follow INTEGRATION_STANDARDS.md - that guide is only required for submissions there, not for ordinary dashboard integrations. It covers auth guards, Sentry, /validate, caching, response conventions, and wrangler.toml setup.

Before contributing, read the repository README for deploy workflow and proxy routing. Reference implementations live under bloxlink/ and fivem/.

We review hosted integration PRs before they go live. For help, ask in our Discord server.

Maintained with 💖