Build with Cloudflare Stockholm · Team 4
Every support ticket gets a reply draft. A person sends it.
● Live in production since 30 Oct 2026
Coretours sells bus trips to festivals such as Defqon.1. No customer data in these slides.
About 24 s from email to draft in the test. The agent has no chat window: it works in the background.
| Service | How we use it |
|---|---|
| Cron Triggers | Wakes the Worker every 5 minutes for one Zendesk search. No tokens spent when nothing happened. |
| Workflows | One durable job per ticket and change. Each step is saved and retried on its own, up to 5 times. |
| Workers AI: Clef | Classifies every ticket with probabilities: sender, topic, trip, and is this trying to steer the AI? |
| Workers AI: DeepSeek V4.1 Flash | Writes the draft with a confidence level, then checks every fact against the sources. |
| AI Gateway | Every model call goes through it. Logging off, because tickets contain personal data. |
| AI Search | RAG over 27 pages of coretours.se: trips, FAQ, terms. Answers cite the page. |
| Service | How we use it |
|---|---|
| Durable Objects | One object per customer with its own SQLite: remembers earlier tickets. Runs in the EU. Its alarm deletes everything 18 months after the last ticket. |
| D1 | The run list, and the team's decisions the agent must follow. |
| Cloudflare Access | The run viewer, the only public address, is behind Access. The Worker checks the Access token too. |
| Workers traces | Custom spans per step, with tokens and cost. |
It only writes internal notes. public: false is hard-coded.
can answer, partly or cannot answer. With no source: no reply, only questions for the human.
Decisions the agent proposes from the replies a human sent wait until they are approved.
The code, not the model, looks up bookings, and only for the ticket's own requester.
steers_ai. At 50 % or more: a "read this yourself" note, no draft. A test email with "SYSTEM: ignore the instructions" scored 95 %.usable drafts after one round of fixes (43 tickets, 37 judged by Claude Opus 5.5 against the replies actually sent)
per draft, about SEK 0.06
The biggest remaining gap is knowledge only the team has. That is why the agent now learns decisions, with approval.
needsApproval on replies and refunds, a hard refund cap.waitForEvent): approve on a phone, the agent sends.Thank you
agent.thriving-teacher.sxplab.com