| name | pa-onboarding |
| description | Step-by-step onboarding guide for setting up a new AI Personal Assistant on OpenClaw. Use when: a new PA is being created, someone asks how to set up an agent, or guiding a user through the full setup process from account creation to first response. |
PA Onboarding Skill
Deep reference: For the full onboarding guide with DB operations, memory management, failure patterns, and Day 1 completion checklist โ see PA_ONBOARDING_CHECKLIST.md in the repo root.
Minimum Model
Any model. This is a procedural guide โ follow steps in order.
Rules
- Give one step at a time. Do not dump the full guide upfront.
- Confirm each step before moving on. Do not assume it worked.
- Never say something is done unless you verified it.
- Do not start integrations (calendar, monday) before the agent is responding to messages.
If owner says "what's next?" โ give only the single next step.
If owner says "I'm stuck on step X" โ troubleshoot step X, do not move on.
If owner asks "can you do it for me?" โ reply: "I can guide you โ most steps require your action (QR scan, calendar share, etc.)"
If owner asks "how long will this take?" โ reply: "Phase 1 takes 20โ30 min. Integrations another 15โ20 min."
Owner Interaction Signals (Teach This Early)
The agent must learn these signals from day one:
| Signal | Meaning | Agent action |
|---|
| Any task request | Owner delegated a task | React ๐ immediately, โ
when done |
| ๐ from owner | Good job | Log positive feedback |
| ๐ from owner | Poor result | Fix and log the lesson |
Critical rules to cover during onboarding:
- ๐ before starting any task, โ
when complete โ in every DM with the owner, no exceptions
- Never ask the owner "did you mean X?" if the answer is inferable โ execute and let them correct
- When context is missing, search first: durable memory / wiki, semantic-vector memory, and PostgreSQL WhatsApp history. Do not ask the owner to repeat themselves before checking those layers.
- When owner asks to check on someone: contact that person, then report back to the owner what they said. Never ask the owner instead of the person.
- Never include the owner's name or internal framing inside messages to third parties (PAs, contacts, vendors)
Phase 1 โ Account & Agent (Do This First)
Step 1: Create Agent Account
- Go to the agent signup page (for monday.com orgs: monday.com/agents-signup).
- Sign in with organization SSO.
- Create the agent and give it a name.
Step 2: Get a Phone Number
- The agent needs a dedicated phone number for WhatsApp.
- Use Airalo eSIM (or similar) โ must support SMS, not data-only.
- Cost: ~$5โ15/month.
Step 3: Install WhatsApp Business
- Download WhatsApp Business (not regular WhatsApp).
- Register the new phone number.
- Complete SMS verification.
Step 4: Connect WhatsApp to Agent
- Open OpenClaw platform โ Agent Settings โ Channels โ WhatsApp.
- Click Connect โ scan QR code with WhatsApp Business app.
- Wait 30 seconds for status to show "Connected and listening."
Step 5: Verify the Agent Responds
- Send a test message to the agent's number.
- Confirm you get a reply within 30 seconds.
- If no reply: Stop here. Follow the
whatsapp-diagnostics skill before continuing.
โ
Phase 1 complete when the agent responds to messages.
Phase 2 โ Integrations
Only start Phase 2 after Phase 1 is fully working.
Step 6: Connect Google Calendar
Step 7: Connect monday.com
- Create a monday.com account for the agent (use org signup URL).
- Generate API token: avatar โ Developers โ My Access Tokens โ Copy.
- Save the token:
echo "YOUR_TOKEN" > ~/.credentials/monday-api-token.txt
- (Optional) Set up monday MCP for natural language operations.
- Full guide: see
monday-workspace skill.
Step 8: Set Up Email Access (Optional)
gog auth add owner@company.com --services gmail,drive,contacts
GOG_ACCOUNT=owner@company.com gog gmail search 'is:unread' --max 5
Full guide: see openclaw-email-orientation skill.
Phase 3 โ Configuration
Step 9: Configure SOUL.md
Key things to include:
- Owner's name and communication style.
- Work hours and timezone.
- What to act on autonomously vs. what requires permission.
- Topics to proactively monitor.
Step 10: Schedule Morning Briefing (Optional)
- Cron job at 07:30 owner's timezone, MondayโFriday.
- Sends: meetings, urgent emails, open tasks.
- Full guide: see
owner-briefing skill.
Step 11: Add to PA Network Directory
- Update
data/pa-directory.json with new PA details.
- Announce in the PA coordination group.
Common Issues
| Issue | Likely Cause | Fix |
|---|
| Agent doesn't respond | WhatsApp not properly linked | Re-scan QR code |
| Status = "Connected and listening" but Messages count = 0 | Ingest/binding/runtime layer issue, not WhatsApp/user config | Run openclaw gateway restart; if still 0, escalate platform-side |
| Calendar connected but read-only | Wrong share permission | Owner re-shares with "Make changes" |
| Billing error | API key out of credits | Top up or switch model |
| eSIM not activating | Data-only plan | Get SMS-capable plan |
Onboarding Checklist (Mandatory โ Not Active Until Complete)
ืคืขืื ืจืฉืื = ืขืืจ ืื ืืกืขืืคืื ืืืกืืื ืื ึดื-โ
. ืืฉืืจ ืืืคืฆืืื ืื.
โ
[ ] Agent responds to test message (WhatsApp working)
โ
[ ] Skills installed from pa-skills repo (min: owner-briefing, proactive-pa, self-monitor, billing-monitor, skill-master, supervisor)
โ
[ ] Google Calendar connected (write access) โ use share-to-PA-email if gog CLI fails
โ
[ ] Morning briefing cron scheduled (08:00 owner timezone)
โ
[ ] HEARTBEAT.md updated with concrete proactivity triggers
โ
[ ] Added to PA network directory (PA_LIST.md)
โ
[ ] Added to PA Onboarding WhatsApp group
โ
[ ] Self-introduced in PA Onboarding group
โ
[ ] PostgreSQL + wa-audit-log hook active (messages logging to DB)
โ
[ ] DB has real data (not 0 rows โ backfill if needed)
โ
[ ] Semantic/vector memory active (`main.sqlite` indexed and queryable)
โ
[ ] Agent taught recall workflow: search durable memory + semantic/vector + PostgreSQL before asking owner for repeated context
โ
[ ] Dedup tools wired (dedup_check.py inbound + msg_dedup.py outbound)
โ
[ ] Nightly DB backup cron configured
[ ] monday.com token saved (optional)
[ ] Email/Gmail access (optional)
[ ] git backup configured (optional)
[ ] usage-costs skill installed + daily-token-report cron configured (recommended)
ืืื โ
ืืจืฉืืื ืืืื โ PA ืื ื ืืฉืืช active.
Cost Tips
- Cheap: Onboarding is procedural โ any small model works.
- Avoid: Do not attempt all phases simultaneously โ go in order.
- Small model OK: Use a medium model only if SOUL.md customization needs nuanced tone matching.
Lessons from Production (2026-04-05 โ Yennefar & Laika Onboarding)
-
Calendar setup = Day 1, not Day 5 โ every PA hits the same wall (gog CLI doesn't work on server). Add it to the mandatory checklist early. Workaround: share calendar to PA email (agent_email@ocana.ai) with "Make changes to events" permission.
-
Skills don't install themselves โ PAs will confirm they completed tasks without actually doing them. Always verify: ask for line count, file listing, or a functional test. Don't accept "done" without evidence.
-
Group membership requires owner approval โ privacy-disciplined PAs (correctly) won't join groups without explicit owner authorization. Don't send invite links directly. Flow: Heleni asks the owner โ the owner contacts the PA's owner โ owner authorizes โ PA joins.
-
invite link vs. manual add โ PAs cannot click links. Only humans can join via link. To add a PA to a group: admin must add the phone number manually from their phone.
-
PA-to-PA mentoring works โ sending skill files + tips directly from one PA to another (Heleni โ Yennefar) is effective and scalable. Codify this as the standard onboarding assist pattern.
-
Mandatory checklist, not recommendations โ without a gate, PAs stay half-configured indefinitely. The checklist above (โ
items) is the definition of "active". Use it as the quality gate.
Lessons from Production (2026-04-05 โ Cost Optimization Survey)
-
0 out of 14 PAs tracked costs โ cost visibility is a blind spot across the entire network. Install usage-costs skill as standard onboarding (not optional). Add daily-token-report cron from day 1.
-
Google/OpenAI agents need different cost tracking โ the jsonl cost extraction script only works for Anthropic Claude. Edward (Gemini) and Laika (GPT) had no cost data. For non-Anthropic agents, direct the owner to the provider billing dashboard.
-
Most PAs use /status for tokens, not dollars โ tokens alone are misleading (cache reads are cheap, cache writes are expensive). Always track $ cost, not just token count.
-
thinkingDefault=off + Haiku for simple crons = significant savings โ 5 simple crons migrated from Sonnet+thinking to Haiku+off. Estimated ~$2โ4/day saving per agent. Apply this pattern to all new agents from day 1.
Lessons from Production (2026-04-02)
Lessons learned from running PAs in production. Future agents setting up a new PA should apply these from day 1.
-
Skill count matters โ the sweet spot is 28โ32 active skills. Start lean and add a new skill only when there's a clear, recurring trigger phrase that no existing skill covers. Above 40 skills, routing breaks down and the agent starts misfiring. Less is more.
-
HOT.md โ create this file from day 1. Max 20 lines. It's not documentation โ it's the short list of rules the agent keeps breaking. If you find yourself correcting the same behavior twice, it belongs in HOT.md. Review it at the start of every session.
-
SOUL.md vs Skills โ universal behavioral rules (temperature selection, proactivity level, tone, response length) go in SOUL.md and apply everywhere. Skills are for triggered, domain-specific workflows only. Don't put behavioral rules inside a skill โ they won't apply globally.
-
Diagnostics are appendices โ never create a standalone diagnostics skill (e.g. whatsapp-diagnostics). Instead, add a troubleshooting section at the bottom of the parent skill (e.g. whatsapp). Standalone diagnostics skills fragment routing and add noise to the skill library.
-
DEPRECATED.md discipline โ when you merge or retire a skill, always write a tombstone file explaining why. Include: what it merged into, the date, the reason, and the lesson. Future agents (and humans) will thank you. Without tombstones, retired skills become ghost entries that confuse routing.
-
pa-skills repo โ before building a skill from scratch, check https://github.com/netanel-abergel/pa-skills for a curated starting library. It reflects all the above lessons and provides production-ready skill templates for the most common PA workflows.
Phase 4 โ Database Setup (Mandatory)
A PA without a working DB cannot search past conversations, track history, or use dedup. This is not optional.
Full guide with schema, queries, dedup, backfill, backup, and known caveats: see PA_ONBOARDING_CHECKLIST.md Section 5 (Database Operations).
Enable PostgreSQL audit logging to allow searching past WhatsApp conversations via SQL.
1. Install dependencies
sudo apt install -y postgresql python3-psycopg2
2. Create DB user and database
sudo -u postgres psql <<SQL
CREATE USER heleni WITH PASSWORD 'heleni_mem_2026';
CREATE DATABASE heleni_memory OWNER heleni;
\q
SQL
3. Apply schema
psql postgresql://heleni:heleni_mem_2026@localhost:5432/heleni_memory \
-f /path/to/openclaw/audit-log-schema.sql
4. Add PA_DB_URL to hook env in openclaw.json
In /path/to/openclaw/openclaw.json, find hooks โ internal โ entries โ wa-audit-log โ env and add:
"env": {
"HELENI_DB_URL": "postgresql://heleni:heleni_mem_2026@localhost:5432/heleni_memory",
"PA_DB_URL": "postgresql://heleni:heleni_mem_2026@localhost:5432/heleni_memory"
}
5. Restart gateway
openclaw gateway restart
Once active, the wa-audit-log hook will automatically write every message to the wa_messages table. Use the chat-history skill to search past conversations.
6. Verify DB has data
psql -U <pa_name> -d <pa_name>_memory -c "SELECT COUNT(*) FROM messages;"
If count = 0 after setup, backfill from session files. See PA_ONBOARDING_CHECKLIST.md Section 5.7.
7. Set up dedup tools
Wire tools/dedup_check.py (inbound) and tools/msg_dedup.py (outbound) โ see PA_ONBOARDING_CHECKLIST.md Section 5.6.
8. Configure nightly DB backup
Set up tools/db_backup.sh as a cron โ see PA_ONBOARDING_CHECKLIST.md Section 5.8.