RFP §3.7 — Chatbot Readiness
Chatbot-Ready API
The redesigned site exposes all public content as a queryable API. Whether the County builds an AI chatbot in-house or contracts with a vendor, this is the integration point — already documented, already live.
Single source of truth
Drupal CMS is the editor's tool. Both the website and the chatbot read from the same endpoint — no content drift.
CISA-aligned
Read-only public endpoint. No authentication needed; no PII exposed. CORS-permissive.
Vendor-agnostic
Works with OpenAI Assistants, Anthropic Claude, Voiceflow, Cohere, or any RAG-style integration.
Endpoint
GET https://cheboygan.sparkdemo.cloud/api/chatbot-snapshot.json
In production this is replaced by the live GraphQL endpoint at
https://cms.cheboygancounty.gov/graphql with the same item shape.
Item shape
{
"title": "County Treasurer",
"path": "/departments-services/treasurer/",
"kind": "department",
"text": "The office of County Treasurer was established by …",
"tags": ["department", "current"],
"sourceUrl": "https://www.cheboygancounty.net/departments-services/treasurer/"
} Sample integration — embed-then-retrieve
A typical RAG (retrieval-augmented generation) integration:
- Nightly job fetches
/api/chatbot-snapshot.json. - Vendor (e.g. OpenAI, Pinecone, Voyage) embeds each item.
- User asks a question → vendor retrieves top-N relevant items.
- LLM is given the items as context and asked to answer.
- Answer includes the
pathof each cited source so the chatbot can deep-link to the page on cheboygancounty.gov.
What is not included
- Personally identifiable information (PII).
- Webform submission data — never exposed via this endpoint.
- Authenticated admin content (CMS drafts, internal notes).
- The chatbot itself — this proposal scopes the API + integration framework; the conversational UI is a future engagement.
Why this matters for the RFP
Cheboygan County asked for "chatbot readiness" — architectural compatibility for future AI chatbot integration via API. The decoupled drupal-astro architecture answers this requirement natively: the same GraphQL endpoint that drives the website IS the chatbot's data source. No additional infrastructure, no per-document re-export, no content duplication. Adding a chatbot later is a vendor-integration task, not a re-architecture.