Skip to main content
Back to the blog

Website chatbots

Drupal Public Chatbot: Map Anonymous Content Access

Before adding a public Drupal chatbot, map anonymous access to nodes, fields and blocks. Use a source approval sheet to keep private content private.

Field notesAchla AI
Published
Updated

9 min read

A divided folder holds a padlock and stacked pages beside a separate page linked to a teal speech bubble.

Before adding a public Drupal chatbot, approve the information an anonymous visitor is meant to use. A published node, a visible teaser, a downloadable file and a member's view of the same page are different evidence surfaces. Map them separately, record the actual anonymous output, and ask the content owner to approve the public source. A widget's location does not establish what its answer collection may contain.

Author: Achla AI, Organization. Reviewed 14 October 2026. Prepared with AI assistance from official Drupal documentation and Achla product sources. This is an original source-approval workbook. Its scenarios are hypothetical, not observed client results or completed access tests.

Public Drupal chatbot scope starts with anonymous visitor evidence

A public chatbot should not begin with “index every published node.” Begin with the narrower question: which information has an owner approved for an anonymous visitor's questions?

Use an ordinary signed-out browser for the proposed public surface and a separate, authorized member session for comparison. Do not provide member cookies or credentials to a public-source service. The comparison is an owner review, not a way to give the assistant private access.

Record the URL, the visible information and the intended audience. If the page is reachable but contains information the owner never intended to share, reachability is a problem to resolve, not approval to use it. If it intentionally requires membership, leave it restricted.

Separate this workbook from a missing-answer investigation. Its outcome is approved source, excluded source or held requirement, before product selection. It is not a recipe for diagnosing an index or making a restricted page easier to collect.

Map nodes, content types, fields, blocks and API surfaces separately

Create a row for each representation that can carry a materially different fact. Drupal's view modes determine how content is displayed, with examples such as full content and teasers; formatters control how fields appear. A short listing should therefore not stand in for a full-page inspection. Drupal view modes and formatters.

Use this surface checklist to decide which rows your site needs:

SurfaceWhat to recordWhy a separate row matters
Full node pageContent type, URL and visible fieldsA public title does not establish that every field is public.
Teaser or listingListing URL and displayed summaryA summary may expose different wording or omit a condition.
Reusable or page blockHost page and block's visible textA public announcement can appear outside its original node page.
Referenced fileActual download URL and anonymous resultThe download is a separate access surface from the linking page.
Published revisionPublic URL and currently displayed wordingAn editor's working copy may differ from the live representation.
API representation, if relevantEndpoint, fields and intended consumerBrowser output does not demonstrate every API field's exposure.

Drupal describes blocks as pieces of content that can be placed in theme regions. Record their actual host pages rather than assuming a sidebar or footer is outside the source boundary. Drupal block concept.

JSON:API respects entity and field access and does not create its own authorization layer. That is useful evidence about this API, not a guarantee that every custom endpoint or rendered page has identical output. Include an API row only when it is relevant to the planned source or exposure review; this article does not claim that Achla imports Drupal JSON:API. JSON:API security considerations.

Publication state and role permission answer different questions

Drupal distinguishes anonymous and authenticated users, with permissions assigned through roles. An editor's successful page view is therefore not a substitute for the anonymous observation. Record the session type on every evidence row. Drupal users, roles and permissions.

Record publication state separately. Drupal Content Moderation can keep a published version live while a different working copy is under review. A reviewer looking at the latest revision may be approving wording the public does not yet see. Translations can also have separate moderation states. Bind the approval to the public wording and language actually reviewed. Content Moderation overview.

Files deserve their own decision. Drupal's File module documentation explains that public files can be downloaded directly by anyone who knows the URL. Hiding an attachment from a displayed list does not establish download protection. It also warns that private storage alone does not guarantee denial: Drupal must have an applicable reason to restrict the download. Ask a maintainer to verify the actual access configuration rather than treating a directory label as the result. File module overview.

The workbook keeps three questions distinct: what state is the content in, what can this actor see, and what has the owner approved for public answers? A “yes” to one does not fill the other columns.

Fill the public-source approval register

Use one row per important representation. The following register is an illustrative example for a hypothetical professional association. The observations are invented solely to show how the worksheet works; they are not test findings.

Content or surfaceIntended audienceIllustrative anonymous observationIllustrative authorized-member observationOwner and approval decision
Membership-policy node, full viewEveryone considering membershipPublic eligibility and annual renewal rule shownSame public wordingMembership owner: include only reviewed public facts
Directory teaserEveryoneOrganization name and public summary shownAdditional member details elsewhereDirectory owner: approve teaser scope; inspect full record separately
Member-benefit nodeMembersLogin requiredDetailed benefit terms shownMembership owner: exclude from public assistant
Event page with internal planning fieldPublic event facts; staff planning onlyPublic date shown; planning field absentAuthorized staff can see planning fieldEvent owner: approve visible public fields; private planning stays excluded
Header announcement blockEveryoneCurrent registration notice shownSame noticeCommunications owner: approve this wording and host-page placement
Public handbook downloadEveryoneDirect file URL opens without sign-inSame fileHandbook owner: approve file separately from its linking node
Revised policy awaiting reviewPublic approved revision onlyEarlier approved wording visibleEditor can inspect proposed wordingPolicy owner: approve live version only; retest after later publication

Add exact URLs, content type or field identifiers where useful, review date, evidence location and the person responsible for permission configuration. Leave unresolved observations visibly unknown. Do not replace a blank with an assumption such as “published, therefore public.”

For a real register, use short factual observations: “anonymous page shows title and body; field X absent,” rather than “secure.” The former can be repeated; the latter conceals the actual scope. Keep sensitive member values out of the public approval record. Record the surface and access result without copying private content into the proposed chatbot source.

Run paired anonymous and member scenarios

Choose a few representative situations, not just your easiest public page. The examples below describe what to test; they do not report completed results.

Public policy node. Open the intended policy URL without sign-in and identify one fact a visitor should be able to ask about. Compare the member view. If the wording is identical and the owner approves it, the row can move toward inclusion. If the member sees extra material, record which representation carries the approved fact.

Members-only node. Verify the anonymous outcome and then inspect it through an authorized member account. If the task depends on the member-only text, exclude that source from the public widget evaluation. A different product with verified authenticated retrieval may be needed; the Drupal architecture guide addresses that broader operating decision.

Page with a restricted field. Compare the field output, not just the page title or status code. Ask the field owner whether the anonymous representation is intentional. If an internal planning note appears publicly, hold source approval and notify the site's responsible maintainer through the team's existing process. Do not treat accidental exposure as permission to use it.

Referenced document. Test the actual download URL in the anonymous session. A login barrier on the parent page does not, by itself, settle access to a public file URL. Record the download result and the file owner's decision without changing storage or permissions during the review.

These pairs reveal source scope. They do not prove that a chatbot implements user-specific permissions. No such Achla capability is asserted here.

Assign include, exclude, fix-public-content or hold-private-workflow

Give each row one explicit disposition and a next owner action:

DecisionMeaningNext action
IncludeAlready-public representation is intentionally approved for the public taskKeep exact surface, wording scope, owner and date in the evaluation inputs
ExcludeMaterial is private, unnecessary or not approvedKeep it outside the proposed public source set; retain the decision record
Fix-public-contentIntended public information is ambiguous or conflicts across public surfacesAsk the content owner to correct and approve the public wording before evaluation
Hold-private-workflowEssential visitor task requires an authenticated source or personal resultStop this public-only product path and investigate a separately verified workflow

“Fix-public-content” does not mean relaxing access controls. For example, a hypothetical event page may say one registration deadline while its public header block says another. The communications owner must settle the intended public fact. The assistant should not be asked to choose which deadline is official.

“Included” also does not mean successfully collected or answered. Approval establishes that the content is permissible for the task. Later product tests establish whether the documented source path can use it and return an appropriate answer. Keep those results as separate evidence.

A public-only product may still fit a site containing member pages. The relevant question is whether the chosen visitor job can be fulfilled using the approved public surfaces. If it cannot, do not expand this product's documented capability through wishful interpretation.

Keep evidence and ownership current when publishing changes

Review affected rows after a content-type display, field, block, role, file or publication change. Record which earlier decision is still valid and which representation needs another anonymous check. Retain the previous evidence so the owner can explain the change.

Include the normal anonymous delivery path in the check. Drupal documents cache variations through cache contexts and notes that Internal Page Cache assumes identical pages for anonymous visitors. A signed-in editor's fresh output cannot establish the anonymous cached result. Ask the maintainer to investigate discrepancies; this workbook does not prescribe cache or permission changes. Drupal cache contexts.

Historical module issue reports can identify questions worth testing, but they do not prove a bug in your current installation. Prefer a dated observation of your own approved surface and the responsible owner's decision.

Evaluate the public-content Drupal connector only after approval

Once the source register supports a public-information task, review the existing Achla Drupal product page and current installation instructions. The evidenced product is a managed website-content answer widget with supporting source links. This article does not claim that the connector inherits Drupal roles or enforces private per-user retrieval.

Use troubleshooting documentation for the later installation checks, and current pricing for terms. If the public boundary fits, begin onboarding; sign-in may be required. Bring the approved register to that evaluation. Keep member-only sources excluded.