{
  "name": "HVACAutomate — Seasonal Maintenance Campaign (Spring/Fall)",
  "flow": [
    {
      "id": 1,
      "module": "google-sheets:getValues",
      "version": 2,
      "parameters": { "spreadsheetId": "YOUR_SPREADSHEET_ID", "sheetName": "Customers" },
      "filter": {
        "name": "Only customers not yet contacted this season",
        "conditions": [[{ "a": "{{1.campaign_sent}}", "b": "", "o": "text:equal" }]]
      },
      "mapper": {},
      "metadata": {
        "designer": { "x": 0, "y": 0 },
        "notes": "Google Sheet columns: customer_name, phone, last_service_date, campaign_sent. Run this scenario manually in March and September by turning it on."
      }
    },
    {
      "id": 2,
      "module": "builtin:BasicFeeder",
      "version": 1,
      "parameters": { "delay": 120 },
      "mapper": {},
      "metadata": {
        "designer": { "x": 300, "y": 0 },
        "notes": "2-minute delay between each message to avoid carrier spam filters"
      }
    },
    {
      "id": 3,
      "module": "twilio:ActionCreateMessage",
      "version": 1,
      "parameters": { "account": 1 },
      "mapper": {
        "to": "{{1.phone}}",
        "from": "YOUR_TWILIO_NUMBER",
        "body": "Hi {{1.customer_name}}, it's YOUR_NAME from YOUR_COMPANY. Summer's coming fast — is your AC ready? We're booking spring tune-ups now before the rush hits. Past customers get priority scheduling. Want me to grab you a spot? Reply YES and I'll send you our available times."
      },
      "metadata": {
        "designer": { "x": 600, "y": 0 },
        "notes": "SPRING VERSION. For FALL: change message to heat check / heating season prep."
      }
    },
    {
      "id": 4,
      "module": "google-sheets:updateRow",
      "version": 2,
      "parameters": { "spreadsheetId": "YOUR_SPREADSHEET_ID", "sheetName": "Customers" },
      "mapper": { "campaign_sent": "{{formatDate(now,'YYYY-MM-DD')}}" },
      "metadata": { "designer": { "x": 900, "y": 0 }, "notes": "Mark campaign_sent so customer isn't messaged again this season" }
    }
  ],
  "metadata": {
    "version": 1,
    "scenario": {
      "roundtrips": 1,
      "maxErrors": 3,
      "autoCommit": true,
      "autoCommitTriggerLast": true,
      "sequential": true,
      "confidential": false,
      "dataloss": false,
      "dlq": false,
      "freshVariables": false
    },
    "designer": { "orphans": [] },
    "zone": "us1.make.com"
  }
}
