Back to Calendar
2026-02-20
Work Log
2026-02-20 — Session Notes
Highlights
- ### DNS & HTTPS Setup ✅
- | `https://kb.rollerup.ca/api/search?q=query` | ✅ Working |
- | `https://kb.rollerup.ca/webhook/salesiq` (HEAD) | ✅ Returns 200 |
- Completed 07:00 UTC
# 2026-02-20 — Session Notes
## SalesIQ Bot Webhook Deployment
### DNS & HTTPS Setup ✅
- **DNS**: `kb.rollerup.ca` → `68.183.198.0` (A record on Kinsta, TTL 5min)
- **Caddy**: Added block for `kb.rollerup.ca` → `localhost:5000`
- **HTTPS**: Working, auto-cert from Let's Encrypt
### Caddy Config (Updated)
```
kb.rollerup.ca {
reverse_proxy localhost:5000
}
```
Also has: `bot.rollerup.ca` (5002), `fsm.rollerup.ca` (5003)
### API Endpoints Live
| Endpoint | Status |
|----------|--------|
| `https://kb.rollerup.ca/api/search?q=query` | ✅ Working |
| `https://kb.rollerup.ca/webhook/salesiq` (HEAD) | ✅ Returns 200 |
| `https://kb.rollerup.ca/webhook/salesiq` (POST) | ⚠️ Fallback response |
### SalesIQ Webhook Created
Added `/opt/kb_website/salesiq_webhook.py`:
- HEAD → returns 200 (SalesIQ validation)
- POST → extracts message, searches KB, returns SalesIQ-format JSON
**Webhook URL for SalesIQ:**
```
https://kb.rollerup.ca/webhook/salesiq
```
### Issue: Empty Content in Search Results
Search returns results but `content` field is empty (`" | "`):
```json
{"content": " | ", "source": "Fire shutters", "type": "repair"}
```
Repair forms data may have empty problem/solution fields, or search is pulling wrong columns. Needs investigation.
---
## Files Reference
Eugene asked for scopes/keys files:
- **Full scope reference:** `/workspace/project/docs/zoho-api-scopes-reference.md`
- **Phase 1 scopes:** `/workspace/project/docs/phase1-scopes.md`
### SalesIQ Bot Scopes Needed
```
SalesIQ.webhooks.CREATE,SalesIQ.webhooks.READ,SalesIQ.webhooks.UPDATE,SalesIQ.integrations.CREATE,SalesIQ.integrations.READ
```
---
## Key Identifiers
| Item | Value |
|------|-------|
| Client ID | `1000.IDSCLW5XQWHZWXRZ37IJGR9TAZKZ9M` |
| Data Center | `.com` |
| Books Org ID | `693694309` |
| SalesIQ Portal | `rollerup` |
| Droplet IP | `68.183.198.0` |
---
## Daily Backup
- Completed 07:00 UTC
- Size: 644 MB
- All systems nominal
---
## Next Steps
1. Debug empty content in search results (repair_forms table)
2. Eugene to configure webhook in SalesIQ console
3. Test end-to-end: visitor message → webhook → KB search → response
4. Monitor and refine bot responses
---
*Session ongoing*
Navigation