How santmun/agente-marco works
Marco is a dental-clinic voice agent plus an owner-facing control panel. The main call flow is patient → phone/voice agent → Worker tools → availability and booking → calendar, with call records synchronized for panel review. The panel also covers calls, patients, pending follow-ups, agent settings and knowledge, costs, and integrations. Evidence comes from the README and the shown excerpts/SOURCE INDEX; some panel routes and integrations are documented but their implementations were not sampled, so those links are cited to the README.
Main entry points: hoja.ts Sheet access · App.tsx Panel shell · herramientas.ts Call tools · api.ts Panel API
Components 28
Voice agent
- Agent prompt
agent/prompt.md - Agent settings
agent/configuracion.json - Tool definitions
agent/herramientas.json
Worker runtime
- Worker routing
src/worker/index.ts - Call tools
src/worker/herramientas.ts - Availability & booking
src/worker/agenda.ts - Call synchronization
src/worker/sincronizar.ts - Google setup
src/worker/instalar.ts - Panel API
src/worker/api.ts
Clinic data
- Locks & index
src/worker/estado.ts - Sheet access
src/worker/hoja.ts - Clinic catalog
src/worker/catalogo.ts - Preview data
src/worker/demo.ts
External services
- Phone / SIP
- Sheets store
- Composio bridge
src/worker/composio.ts - Google Calendar
- ElevenLabs API
src/worker/elevenlabs.ts
Control panel
- Panel shell
src/app/App.tsx - Summary & costs
src/app/pages - Calls & follow-ups
src/app/pages - Agenda & patients
src/app/pages - Agent & knowledge
src/app/pages/Marco.tsx - Connections setup
src/app/pages/Conexiones.tsx - UI components
src/app/ui/kit.tsx - Charts
src/app/ui/graficas.tsx
Other components
- Patient
Connections 35
- Patient → Phone / SIP: calls through
README.md - Phone / SIP → Agent prompt: reaches agent
README.md - Agent prompt → Agent settings: uses settings
README.md - Agent prompt → Tool definitions: uses tools
README.md - Tool definitions → Worker routing: calls tools
README.md - Worker routing → Call tools: routes tools
src/worker/index.ts - Call tools → Availability & booking: calls booking
src/worker/herramientas.ts - Availability & booking → Locks & index: locks slots
src/worker/agenda.ts - Availability & booking → Sheet access: reads / writes
src/worker/agenda.ts - Availability & booking → Composio bridge: runs calendar actions
src/worker/agenda.ts - Composio bridge → Google Calendar: accesses calendars
README.md - Call tools → Sheet access: records tools
src/worker/herramientas.ts - Sheet access → Composio bridge: executes sheet actions
src/worker/hoja.ts - Sheet access → Sheets store: reads / writes
README.md - Call tools → WhatsApp: sends confirmations
README.md - Call synchronization → ElevenLabs API: fetches calls
src/worker/sincronizar.ts - Call synchronization → Sheet access: stores calls
src/worker/sincronizar.ts - Call synchronization → Call tools: creates urgent follow-ups
src/worker/sincronizar.ts - Worker routing → Call synchronization: schedules sync
src/worker/index.ts - Google setup → Composio bridge: sets up Google
README.md - Google setup → Sheet access: creates sheet
src/worker/instalar.ts - Sheet access → Preview data: uses preview rows
src/worker/hoja.ts - Preview data → Clinic catalog: uses clinic data
src/worker/demo.ts - Worker routing → Panel API: routes API
src/worker/index.ts - Panel shell → Panel API: requests panel data
README.md - Panel shell → Summary & costs: shows sections
src/app/App.tsx - Panel shell → Calls & follow-ups: shows sections
src/app/App.tsx - Panel shell → Agenda & patients: shows sections
src/app/App.tsx - Panel shell → Agent & knowledge: shows settings
src/app/App.tsx - Panel shell → Connections setup: shows setup
src/app/App.tsx - Panel shell → UI components: uses components
src/app/App.tsx - Summary & costs → Charts: renders charts
src/app/pages/Resumen.tsx - Panel API → Sheet access: reads clinic records
src/worker/api.ts - Panel API → ElevenLabs API: loads call audio
src/worker/api.ts - Connections setup → Panel API: manages connections
README.md