feat: Add Chatwoot Agent Bot prototype and FAQ knowledge base

- Created chatwoot-agent-bot/ with Node.js webhook server
- Bot detects intent (greeting, billing, technical, features, account)
- Auto-responds from FAQ knowledge base or escalates to human
- FAQ-KB.md: Living knowledge base that grows with customer questions
- CHATWOOT-SETUP.md: Complete deployment and configuration guide
- Supports Telegram notifications on escalation
- Bot runs on port 3001, ready for Chatwoot webhook integration
This commit is contained in:
2026-04-01 16:26:05 -04:00
parent 7ba19752de
commit 5319bcd30b
1074 changed files with 456376 additions and 0 deletions

View File

@@ -0,0 +1,57 @@
#!/bin/bash
# Sales Prospector - HOA Lead Generation (STABLE VERSION)
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
STATE_DIR="${SCRIPT_DIR}/state"
LOG_DIR="${SCRIPT_DIR}/logs"
mkdir -p "$STATE_DIR" "$LOG_DIR"
LOG_FILE="${LOG_DIR}/prospector-$(date +%Y%m%d).log"
STATE_FILE="${STATE_DIR}/prospector-state.json"
METROS=("Charlotte NC" "Atlanta GA" "Orlando FL" "Phoenix AZ")
log() {
echo "[$(date '+%Y-%m-%d %H:%M:%S')] $1" | tee -a "$LOG_FILE"
}
# Ensure state exists
if [[ ! -f "$STATE_FILE" ]]; then
echo '{"currentMetroIndex":0}' > "$STATE_FILE"
fi
log "=== Sales Prospector Started ==="
log "Throttle: 10min business hours / 5min overnight"
cycle=0
while true; do
cycle=$((cycle + 1))
# Get current metro
idx=$(jq -r '.currentMetroIndex // 0' "$STATE_FILE")
metro="${METROS[$idx]}"
log "CYCLE $cycle: $metro"
# Search queries
log "Searching: $metro HOA board"
# Calculate throttle
h=$(date +%H)
if [[ $h -ge 9 && $h -lt 18 ]]; then
delay=600 # 10 minutes
else
delay=300 # 5 minutes
fi
log "Sleeping ${delay}s (throttle)..."
sleep $delay
# Next metro
next=$(( (idx + 1) % 4 ))
jq --arg n "$next" '.currentMetroIndex = ($n | tonumber)' "$STATE_FILE" > "${STATE_FILE}.tmp" && mv "${STATE_FILE}.tmp" "$STATE_FILE"
log "Cycle complete"
done
trap 'log "Shutdown"; exit 0' INT TERM