{
  "name": "FlowPantry - Alert the owner to negative reviews within minutes",
  "nodes": [
    {
      "id": "6587b11b-3fa7-4632-8f9e-5893a6d8cfb3",
      "name": "Schedule",
      "type": "n8n-nodes-base.scheduleTrigger",
      "typeVersion": 1.2,
      "position": [
        0,
        300
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "field": "minutes",
              "minutesInterval": 30
            }
          ]
        }
      }
    },
    {
      "id": "58152752-310e-4606-ac4b-68355156f7e8",
      "name": "Get recent reviews",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        240,
        300
      ],
      "parameters": {
        "url": "={{$env.REVIEWS_URL}}",
        "options": {}
      }
    },
    {
      "id": "5f620c15-8f70-423c-a82a-dc1681a8778c",
      "name": "New reviews 3 stars or less",
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        480,
        300
      ],
      "parameters": {
        "mode": "runOnceForAllItems",
        "language": "javaScript",
        "jsCode": "const s=$getWorkflowStaticData('global');s.seen=s.seen||[];const out=[];for(const i of $input.all()){const rs=Array.isArray(i.json)?i.json:(i.json.reviews||[i.json]);for(const r of rs){const stars=typeof r.rating==='number'?r.rating:({ONE:1,TWO:2,THREE:3,FOUR:4,FIVE:5}[r.starRating]||5);if(r.id&&!s.seen.includes(r.id)){s.seen.push(r.id);if(stars<=3)out.push({json:{...r,stars}});}}}s.seen=s.seen.slice(-500);return out;"
      }
    },
    {
      "id": "971cbf17-7965-4324-a5f3-fb44fb0e0914",
      "name": "Alert owner",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        720,
        300
      ],
      "parameters": {
        "method": "POST",
        "url": "=https://api.twilio.com/2010-04-01/Accounts/{{$env.TWILIO_ACCOUNT_SID}}/Messages.json",
        "authentication": "genericCredentialType",
        "genericAuthType": "httpBasicAuth",
        "sendBody": true,
        "contentType": "form-urlencoded",
        "bodyParameters": {
          "parameters": [
            {
              "name": "To",
              "value": "={{$env.OWNER_PHONE}}"
            },
            {
              "name": "From",
              "value": "={{$env.TWILIO_FROM_NUMBER}}"
            },
            {
              "name": "Body",
              "value": "=⚠️ New {{$json.stars}}-star review from {{$json.author}}: \"{{($json.text||'').slice(0,200)}}\" Respond today: {{$env.REVIEWS_DASHBOARD_URL}}"
            }
          ]
        },
        "options": {}
      }
    }
  ],
  "connections": {
    "Schedule": {
      "main": [
        [
          {
            "node": "Get recent reviews",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get recent reviews": {
      "main": [
        [
          {
            "node": "New reviews 3 stars or less",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "New reviews 3 stars or less": {
      "main": [
        [
          {
            "node": "Alert owner",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "pinData": {}
}