1. Start without login
Do not requiresitegpt whoami or sitegpt login before this flow. PROFILE_NOT_CONFIGURED is expected and is not a blocker.
| Field | Use |
|---|---|
data.workspace.id | Workspace ID for onboarding status, claim, and delete. |
data.workspace.chatbotId | Chatbot ID for all setup commands. |
data.apiToken | Temporary setup token scoped to this chatbot. |
data.onboardingUrl | Human-facing preview and claim page. |
onboarding start, pass the temporary token:
2. Clarify purpose and inspect the website
Before configuring, know what job the chatbot should do. If the user did not say, ask:3. Add knowledge for a strong first preview
Prefer sitemap ingestion. It usually gives the cleanest coverage.4. Configure brand settings before sharing
The preview should feel like the user’s website immediately. Use raw HTML/CSS/manifest signals for colors and icons. Download remote icons to local files before upload:5. Create one strong persona
Create a single default persona that matches the purpose:6. Create one active instruction set
Instructions should cover grounding, uncertainty, escalation/contact behavior, and purpose-specific rules.- Use SiteGPT knowledge first.
- Do not invent prices, policies, legal terms, availability, or integrations.
- Say when the knowledge does not contain the answer.
- Offer the visible support/sales contact when relevant.
- Keep answers concise and practical.
- Ask a clarifying question when needed.
7. Add starters and followups for easy testing
Use prompts a visitor would naturally click.8. Configure lead or support settings only when useful
If the purpose is lead generation and the site or user provides a sales email:9. Verify with checklist and test messages
Check setup checklist:PENDING, WARNING, or UNKNOWN checklist items when possible.
Test realistic visitor questions:
10. Share and claim
Sharedata.onboardingUrl only after the chatbot is useful. If the human wants to claim, ask for email, plan, and interval:
data.checkoutUrl is present, give it to the human. If the email already has an active subscription, ask the human to open the onboarding URL while signed in and claim there.
If the setup is wrong or the human does not want it: