What problem does it solve? CRM sync failures (HTTP 503s), missing sales dates, and stale team hierarchies break GMV dashboards because CRM env vars are absent from render.yaml and the hierarchy JSON is baked into the Docker image. This Skill documents the exact configuration, backfill, and deployment procedures to keep the crm_sales_data pipeline running. ## Core Features & Use Cases - Token & encryption setup: Generate a Fernet CRM_ENCRYPT_KEY, create the crm_tokens table, and configure the extension ingest token on Render. - Incremental sync and backfill: Run single-day syncs, backfill date ranges (concurrency capped at 3), and auto-detect missing dates past the PostgREST 1000-row cap. - Team hierarchy updates: Convert the Metabase xlsx export to team_hierarchy.json, rebuild the Docker image, and reseed the nhan_su_sale table. - Use Case: After a fresh Render deploy returns 503 on all CRM endpoints, follow the deployment-trap checklist to set CRM_ENCRYPT_KEY and CRM_EXTENSION_INGEST_TOKEN manually in the Render dashboard. ## Quick Start Ask the assistant to diagnose why the CRM sync endpoint returns HTTP 503 and walk through the Render environment variable checklist.