{
  "name": "Loop 3 \u2014 Lead Scoring",
  "nodes": [
    {
      "parameters": {
        "rule": {
          "interval": [
            {
              "field": "minutes",
              "minutesInterval": 10
            }
          ]
        }
      },
      "id": "node-cron-3",
      "name": "Cron Trigger",
      "type": "n8n-nodes-base.scheduleTrigger",
      "typeVersion": 1.1,
      "position": [
        200,
        300
      ]
    },
    {
      "parameters": {
        "operation": "list",
        "base": {
          "__rl": true,
          "value": "YOUR_AIRTABLE_BASE_ID",
          "mode": "id"
        },
        "table": {
          "__rl": true,
          "value": "Leads",
          "mode": "name"
        },
        "filterByFormula": "AND({status}='active',OR({score}='',IS_BEFORE({last_scored_at},DATEADD(NOW(),-30,'minutes'))))"
      },
      "id": "node-at-list-3",
      "name": "List Due Leads",
      "type": "n8n-nodes-base.airtable",
      "typeVersion": 2,
      "position": [
        420,
        300
      ],
      "credentials": {
        "airtableTokenApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "jsCode": "const score=parseInt($json.score)||0;\nconst segment=score>=80?'hot':score>=50?'warm':'cold';\nconst now=new Date().toISOString();\nconst minutesMap={hot:30,warm:120,cold:1440};\nconst next=new Date(Date.now()+minutesMap[segment]*60000).toISOString();\nreturn[{json:{...$json,score,segment,next_outreach_at:next,next_followup_at:next,last_scored_at:now}}];"
      },
      "id": "node-code-3",
      "name": "Assign Segment",
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        640,
        300
      ]
    },
    {
      "parameters": {
        "operation": "update",
        "base": {
          "__rl": true,
          "value": "YOUR_AIRTABLE_BASE_ID",
          "mode": "id"
        },
        "table": {
          "__rl": true,
          "value": "Leads",
          "mode": "name"
        },
        "id": "={{$json.id}}",
        "fields": {
          "fieldMappingMode": "defineBelow",
          "value": {
            "values": [
              {
                "fieldId": "score",
                "fieldValue": "={{$json.score}}"
              },
              {
                "fieldId": "segment",
                "fieldValue": "={{$json.segment}}"
              },
              {
                "fieldId": "last_scored_at",
                "fieldValue": "={{$json.last_scored_at}}"
              },
              {
                "fieldId": "next_outreach_at",
                "fieldValue": "={{$json.next_outreach_at}}"
              },
              {
                "fieldId": "next_followup_at",
                "fieldValue": "={{$json.next_followup_at}}"
              }
            ]
          }
        }
      },
      "id": "node-at-update-3",
      "name": "Update Lead",
      "type": "n8n-nodes-base.airtable",
      "typeVersion": 2,
      "position": [
        860,
        300
      ],
      "credentials": {
        "airtableTokenApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "operation": "create",
        "base": {
          "__rl": true,
          "value": "YOUR_AIRTABLE_BASE_ID",
          "mode": "id"
        },
        "table": {
          "__rl": true,
          "value": "Interactions",
          "mode": "name"
        },
        "fields": {
          "fieldMappingMode": "defineBelow",
          "value": {
            "values": [
              {
                "fieldId": "lead_id",
                "fieldValue": "={{$json.id}}"
              },
              {
                "fieldId": "type",
                "fieldValue": "scoring"
              },
              {
                "fieldId": "segment_at_time",
                "fieldValue": "={{$json.segment}}"
              },
              {
                "fieldId": "score_at_time",
                "fieldValue": "={{$json.score}}"
              },
              {
                "fieldId": "loop_source",
                "fieldValue": "loop_3"
              },
              {
                "fieldId": "created_at",
                "fieldValue": "={{$json.last_scored_at}}"
              }
            ]
          }
        }
      },
      "id": "node-at-interact-3",
      "name": "Log Interaction",
      "type": "n8n-nodes-base.airtable",
      "typeVersion": 2,
      "position": [
        1080,
        300
      ],
      "credentials": {
        "airtableTokenApi": {
          "name": "<your credential>"
        }
      }
    }
  ],
  "connections": {
    "Cron Trigger": {
      "main": [
        [
          {
            "node": "List Due Leads",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "List Due Leads": {
      "main": [
        [
          {
            "node": "Assign Segment",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Assign Segment": {
      "main": [
        [
          {
            "node": "Update Lead",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Update Lead": {
      "main": [
        [
          {
            "node": "Log Interaction",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "settings": {
    "executionOrder": "v1"
  },
  "tags": []
}