Downloads all scripts and a pinned requirements.txt to your OpenClaw skills folder.
pip install simple-salesforce.
The safest method. The sf CLI stores tokens in your local keychain after a one-time browser login. No passwords, no client secrets, no .env secrets needed.
Token is set in the current process. To persist: copy the printed SALESFORCE_ACCESS_TOKEN and SALESFORCE_INSTANCE_URL values into your .env file.
Expected: "Connection active. Logged in as: Your Name"
WHERE Company LIKE '%Tech%'
ORDER BY CreatedDate DESC LIMIT 50"
| Operation | Max records | Impact level |
|---|---|---|
| Bulk create | 200 | reversible |
| Bulk update | 200 | review first |
| Bulk delete | 200 | backup auto-exported |
Go to Setup → Object Manager → Lead → Fields & Relationships → New. Repeat for Contact and Account.
Shows data quality score and unmapped field counts. Read-only — no changes made.
Maps all existing Lead, Contact, and Account records to your GTM taxonomy.
Flows deploy in Draft state. Go to Setup → Flows to activate each one manually.
| Error | Cause | Fix |
|---|---|---|
| Authentication failed | Wrong credentials | Check SALESFORCE_INSTANCE_URL, regenerate token |
| Invalid session ID | Token expired | Re-run OAuth flow, update .env |
| Invalid SOQL query | Wrong field name | Field names are case-sensitive — check API name in Setup |
| No results found | Sharing rules | Check record permissions and org sharing settings |
| Request limit exceeded | API cap hit | Developer Edition = 15k calls/day. Wait or upgrade |
| GTM fields not found | Setup skipped | Create custom fields manually in Salesforce Setup (step 6) |
| Query timeout | Too many records | Add LIMIT clause, use indexed filter fields (Id, Email) |
| Edition | API calls / 24h |
|---|---|
| Developer Edition | 15,000 |
| Professional Edition | 1,000 per user |
| Enterprise Edition | 5,000 per user |
| Unlimited Edition | 5,000 per user |