Ticqex
Getting started

Email channel (Resend)

Turn inbound support email into tickets and reply from the board.

Skip this page if email is disabled in config/ticqex.config.json.

Setup

  1. Create a Resend API key and set in .env.local:
RESEND_API_KEY=re_...
SUPPORT_EMAIL=hello@yourdomain.com    # Resend-verified sender
SUPPORT_FROM_NAME=Your Support Name
  1. Inbound email needs a public HTTPS URL — Resend cannot POST webhooks to http://localhost:3000. Locally, start a tunnel (ngrok http 3000, Cloudflare Tunnel, …) and set NEXT_PUBLIC_APP_URL to its HTTPS URL. For UI-only local work, http://localhost:3000 is fine.

  2. Register webhooks (writes RESEND_WEBHOOK_SECRET to .env.local):

pnpm resend:setup-webhooks --app-url https://your-public-host

The endpoint is {NEXT_PUBLIC_APP_URL}/api/webhooks/integrations/resend.

  1. Test: with pnpm dev and the tunnel running, send an email to your inbound address — a ticket appears on the board.

If the tunnel or domain changes, update NEXT_PUBLIC_APP_URL and re-run pnpm resend:setup-webhooks --app-url <new-https-url>.

Async email processing runs in-process via Next.js after() — no external job runner is required.

What you get

  • Inbound emails become conversation tickets with the sender as contact.
  • Replies (including CC and reply-all), drafts, attachments, and canned snippets, all from the ticket — see Email conversations.
  • Org-wide signature, thread order, and default inbound status — see Email settings.

On this page