ResolveHQ: Een Cloudflare-native gedeelde support-inbox voor kleine teams

Functionaliteiten

Met ResolveHQ kunnen gebruikers de volgende acties uitvoeren:

  • Gedeelde inbox: Beheer een gedeelde inbox met tenant-geïsoleerde klanten, tickets, toewijzingen, status, prioriteit, tags en full-text zoekfuncties.
  • Gebruikersbeheer: Registreer als eigenaar, nodig teamleden uit en beheer rollen (Owner/Admin/Agent) met een workspace-switcher tussen organisaties.
  • E-mail threading: E-mails worden correct gegroepeerd volgens RFC 5322 en het systeem is bestand tegen subject-line spoofing tussen tickets.
  • E-mailverkeer: Ontvang e-mail via Cloudflare Email Routing en verstuur e-mail via Resend, inclusief afleverstatus, retries en idempotente webhooks. Uitgaande antwoorden bevatten hun gekoppelde bijlagen; dead-letter queues worden omgezet in duurzame, herstelbare records.
  • Bestanden: Voeg bestanden toe aan tickets via gevalideerde en geautoriseerde R2-uploads.
  • Efficiënt reageren: Maak gebruik van bewaarde antwoorden, interne notities, AI-concepten (opt-in) en een responsieve inbox met drie panelen en optimistische versie-conflictbehandeling.
  • Systeemfuncties: Wachtwoorden resetten en uitnodigingen accepteren via systeem-e-mails die via dezelfde provider-naad worden verzonden als ticket-mail.
  • Kennisbank: Publiceer een openbaar helpcentrum met artikelen; concepten blijven privé voor het team.
  • Rapportage en automatisering: Volg volume en responssnelheid in rapporten, exporteer periodes naar CSV en automatiseer triage met regelgebaseerde automatiseringen.
  • Meldingen: Ontvang in-app meldingen over toewijzingen en antwoorden van klanten. De interface ondersteunt zowel een lichte als donkere modus.
  • Privacy en data: Exporteer alle opgeslagen gegevens van een klant als JSON, of verwijder deze met een duurzame, hervatbare workflow die wachtende e-mails annuleert.
  • Automatisch herstel: Een cronjob die elke vijf minuten draait, probeert gestagneerde mailtaken opnieuw te proberen en ruimt staging- en weesgegevens op.
  • AI-beheer: Beheers AI-ondersteuning per workspace. De functie blijft uitgeschakeld totdat een beheerder dit inschakelt in de instellingen; pas dan worden ticketconversaties naar OpenAI verzonden.
  • Retentie: Stel TICKETRETENTIONDAYS in (bijvoorbeeld 365) om via een geplande scan permanent opgeloste en gesloten tickets die ouder zijn dan deze periode te verwijderen, inclusief bijlagen.

Interface

De workspace maakt gebruik van een aubergine-kleurige zijbalk (geïnspireerd door Slack), zelf-gehoste Lato-typografie, Lucide-iconen en Radix UI-primitieven. Thema-bewuste besturingselementen en statuskleuren ondersteunen zowel lichte als donkere workspaces.

Op mobiele apparaten zorgen ondernavigatie en een toetsenbord-toegankelijke workspace-lade ervoor dat alle bestemmingen beschikbaar blijven; ticketkolommen passen zich aan om de leesbaarheid van het onderwerp te behouden.

Gebruik Cmd/Ctrl+K om snel tussen pagina's te springen. De zijbalk-dock bevat meldingen, themaswitching en accountacties.

Hoe het werkt

ResolveHQ draait als een enkele Cloudflare Worker in je eigen account. Hono dient zowel de REST API als de gebouwde React-applicatie. De architectuur is als volgt opgebouwd:

  • Cloudflare D1: Slaat tickets en klantgegevens op.
  • Cloudflare R2: Slaat bijlagen op.
  • Cloudflare Queues: Verwerkt inkomende en uitgaande mailtaken.
  • Cloudflare Email Routing: Levert inkomende e-mail aan de Worker.
  • Resend: Verzendt uitgaande e-mail.

Tickets en bijlagen worden opgeslagen in jouw Cloudflare-account; de inhoud van uitgaande e-mails passeert via Resend.

Kosten

ResolveHQ kan draaien op het gratis abonnement (Free plan) van Cloudflare voor kleine implementaties, mits het gebruik binnen de huidige limieten blijft voor Workers, D1, R2, Queues, Cron Triggers en Email Routing.

Let op: CPU-intensieve authenticatie of het parsen van e-mails kan een Workers Paid-abonnement vereisen; benchmark je implementatie. Queues zijn beschikbaar in Workers Free. R2 vereist een aparte accountactivatie en facturering-instelling. Resend hanteert eigen limieten voor uitgaande e-mail. Raadpleeg de Free-plan audit.

Implementatie

De eenvoudigste manier om te beginnen is via de "Deploy to Cloudflare"-knop. Hiervoor is het volgende nodig:

  1. Een Cloudflare-account (Workers Free ondersteunt Queues). Activeer R2 apart.
  2. Een domein op Cloudflare voor het instellen van Email Routing.
  3. Optioneel: een Resend-account met een geverifieerd verzenddomein voor uitgaande mail.

Na de implementatie open je de ResolveHQ-URL en registreer je als eigenaar. Geef hierbij een optioneel support-e-mailadres op dat je standaard inbox wordt. Voeg in het Cloudflare-dashboard een Email Routing-regel toe die dit adres naar de geïmplementeerde Worker stuurt. Verstuur vervolgens een test-e-mail om te bevestigen dat deze in de inbox arriveert.

Voor meer details over de provisionering, vereiste configuratie, eerste opstart en handmatige implementatie, zie de implementatiegids.

Lokale ontwikkeling

Voor lokale ontwikkeling kunnen de volgende commando's worden gebruikt:

npm install
cp .dev.vars.local.example .dev.vars
npm run db:migrate:local
npm run db:seed:local
npm run dev

De Vite-applicatie draait op http://localhost:5173 en proxy't /api naar Wrangler op http://localhost:8787.

Documentatie

Verdere informatie is beschikbaar in de documentatie over:

  • Implementatie en configuratie
  • Architectuur
  • Beveiliging

Optionele configuratie

  • AI-ondersteuning: Stel OPENAIAPIKEY (en optioneel OPENAI_MODEL, standaard gpt-4o-mini) in als Worker secrets. Elke workspace moet nog steeds handmatig opt-in via de instellingen; zonder sleutel blijft de functie verborgen en worden er geen AI-oproepen gedaan.
  • Retentie: Stel TICKETRETENTIONDAYS in als een Worker-variabele om opgeloste en gesloten tickets (inclusief bijlagen) automatisch na een bepaald aantal dagen te verwijderen. Als dit niet is ingesteld, wordt er niets automatisch verwijderd.

Nog niet geïmplementeerd

  • Meertalige interface.
  • Meldingen buiten de app (zoals e-mail-samenvattingen).

Licentie

Zie het LICENSE bestand.