Helpdesk logo
Project by

Helpdesk

0
8 items 6 scripts 1 app 1 resource smtp

Filesystem preview

Browse all

README

A minimal Zendesk: inbound email becomes a ticket, replies thread onto it, and agents work the queue from a dashboard app.

Windmill concepts demonstrated

  • Email trigger — mail sent to the support address opens or updates a ticket.
  • Preprocessor — normalizes messy email headers before the handler runs.
  • Raw app — the agent inbox: read threads, reply, change status.
  • Resource + variables — the SMTP account, and the address replies come from.
  • Datatables — stores tickets and their message threads.

Layout

helpdesk_inbound.ts               Email-trigger handler (preprocessor + upsert ticket)
helpdesk_inbound.email_trigger.yaml
helpdesk_list_tickets.ts          Queue, optional status filter, most recent first
helpdesk_get_ticket.ts            One ticket + its full message thread
helpdesk_reply.ts                 Agent reply over SMTP, appended to the thread
helpdesk_update_status.ts         open / pending / closed
helpdesk_set_archived.ts          Archive toggle (archived tickets leave the queue)
helpdesk_dashboard__raw_app/      Support inbox UI

How a ticket is born

  1. A customer emails support@<workspace>....
  2. The email trigger fires helpdesk_inbound; the preprocessor normalizes the message.
  3. main finds an existing thread (or opens a new ticket) and appends the message.
  4. The agent replies from the dashboard → helpdesk_reply sends over SMTP and records the outbound message on the same thread.

Try it locally

wmill script preview f/helpdesk/helpdesk_list_tickets -d '{"status":"open"}'