How awais-p/assistdesk-ai works
Assistdesk is a customer-support and engagement platform: workspace staff configure chatbots, AI agents, knowledge sources and channels, while customers contact support through the widget or email; incoming work becomes tickets that staff handle in the dashboard. The implementation also includes lead management, appointments, analytics, notifications and outgoing webhooks. The graph follows only relationships shown in sampled excerpts or the SOURCE INDEX; many listed capabilities have no sampled call path, so their internal links are intentionally omitted.
Main entry points: prisma.ts Application database · ticket-workflow.ts Ticket workflow · notifications.ts Notifications · email-ingestion.ts Email ingestion
Components 22
User surfaces
- Staff dashboard
app/dashboard/page.tsx - Ticket workspace
src/components/dashboard/tickets-client.tsx - Chat widget
src/components/widget/chatbot-widget-client.tsx
Support operations
- Ticket endpoints
app/api/tickets/route.ts - Ticket workflow
src/lib/ticket-workflow.ts - Email ingestion
src/lib/email-ingestion.ts - Contact management
src/lib/contacts.ts - Analytics
app/api/analytics/route.ts
AI and knowledge
- Agent configuration
app/api/ai-agents/route.ts - Agent runtime
src/lib/agent-engine/run-agent.ts - Knowledge sources
app/api/knowledge-sources/route.ts - Knowledge indexing
src/lib/knowledge-indexing.ts
Channels and engagement
- Chatbot configuration
app/api/chatbots/route.ts - Widget attachments
app/api/widget/[widgetId]/attachments/route.ts - Integration setup
app/api/integrations/route.ts - Lead management
app/api/leads/route.ts - Appointments
app/api/appointments/route.ts
Workspace platform
- Authentication
src/lib/auth.ts - Notifications
src/lib/notifications.ts - Application database
src/lib/prisma.ts
Other components
- Support staff
- Customer
Connections 22
- Support staff → Staff dashboard: uses
app/dashboard/page.tsx - Support staff → Ticket workspace: handles tickets
- Customer → Chat widget: contacts support
- Ticket endpoints → Ticket workflow: processes tickets
app/api/tickets/route.ts - Email ingestion → Contact management: resolves contact
src/lib/email-ingestion.ts - Email ingestion → Ticket workflow: processes incoming work
src/lib/email-ingestion.ts - Ticket workflow → Agent runtime: runs agent
src/lib/ticket-workflow.ts - Ticket workflow → Notifications: raises alerts
src/lib/ticket-workflow.ts - Ticket workflow → Application database: reads and writes
src/lib/ticket-workflow.ts - Agent configuration → Application database: stores configuration
app/api/ai-agents/route.ts - Knowledge sources → Knowledge indexing: queues processing
app/api/knowledge-sources/route.ts - Knowledge sources → Application database: stores sources
app/api/knowledge-sources/route.ts - Chatbot configuration → Application database: stores configuration
app/api/chatbots/route.ts - Chat widget → Widget attachments: uploads attachments
src/components/widget/chatbot-widget-client.tsx - Integration setup → Notifications: raises alerts
app/api/integrations/route.ts - Integration setup → Application database: stores integrations
app/api/integrations/route.ts - Lead management → Application database: reads and writes
app/api/leads/route.ts - Appointments → Application database: reads and writes
app/api/appointments/route.ts - Analytics → Application database: queries data
- Authentication → Application database: stores sessions
src/lib/auth.ts - Ticket workspace → Ticket endpoints: loads tickets
- Staff dashboard → Notifications: loads alerts
app/dashboard/page.tsx