Dentolize · Team-Managed Sandbox Config Walkthrough
On this pageThe demo sandbox, as it deploys todayWhere the gap shows up: WhatsApp Bot settingsWhat this PR adds, conceptuallyTurning WhatsApp on for main (the operational sequence)

Walkthrough

This PR has no new screens of its own — it's a CI workflow change, not a product feature. What follows is a guided look at the effect it exists to enable: flipping a feature like WhatsApp on for the main demo sandbox without a PR.

The demo sandbox, as it deploys today

This is main's dashboard, logged in as the owner seed user (Sandbox Dental - Owner · All Permissions). This is the environment sandbox-main.yml redeploys on every push to main, and the one this PR's config mechanism targets:

Dashboard of the main demo/training sandbox, logged in as the owner user
Dashboard of the main demo/training sandbox, logged in as the owner user

Where the gap shows up: WhatsApp Bot settings

Under Settings → Integrations → WhatsApp Bot, a sandbox deployed without whatsapp: true shows this:

WhatsApp Bot integration tab showing
WhatsApp Bot integration tab showing "Feature Disabled — Please Contact us to enable this feature"

Before this PR, that "Feature Disabled" state was permanent for main — there was no PR description to write a ## 🧪 Sandbox block into, so main always deployed with every profile flag at its default (whatsapp: false among them). A PR sandbox can flip this by editing its description; main had no equivalent lever.

What this PR adds, conceptually

Before                                   After
──────────────────────────────────────   ──────────────────────────────────────
PR sandbox   → PR body "## 🧪 Sandbox"   PR sandbox   → PR body block (unchanged)
                block → settings.json                    → settings.json
main sandbox → (nothing) → defaults      main sandbox → `sandbox` GitHub
                                                            Environment vars/secrets
                                                            (SANDBOX_MAIN_*) →
                                                            settings.json

Both paths converge on the same settings.json shape and the same deploy step — see Environment-sourced settings for exactly how the new path builds that file.

Turning WhatsApp on for main (the operational sequence)

  1. In the repository's Settings → Environments → sandbox, add variable SANDBOX_MAIN_WHATSAPP = true. Optionally add a secret like SANDBOX_MAIN_FACEBOOK_APP_SECRET for real Meta credentials.
  2. Run Actions → Sandbox Ops, pick branch main, action redeploy.
  3. The new "Compose sandbox settings from the sandbox environment" step builds {"whatsapp": true, "env": {"FACEBOOK_APP_SECRET": "..."}} and hands it to the same deploy path a PR sandbox uses.
  4. Re-visiting Settings → Integrations → WhatsApp Bot on main after the redeploy would show the feature wired up instead of "Feature Disabled" — the same screen shown above, minus the disabled state.

This repository's sandbox GitHub Environment did not have SANDBOX_MAIN_WHATSAPP set at the time this doc was generated, so the "Feature Disabled" screenshot above reflects the current, pre-this-PR default — which is also still exactly what a PR sandbox without a whatsapp: true override looks like today.