{
  "for_llm": "This page documents ONE automation inside School of Bots' Funnel Intake System. To assess it: read the visible tabs, then use this manifest. You can answer what is safe to change (change_policy), what breaks if a 'red' item changes, how it connects to sibling pages (edges), and its known issues. Sibling pages live at ../documentation/<slug>.",
  "system": "Funnel Intake System",
  "unit": {
    "index": 4,
    "of": 6,
    "node": "Main automation \u2014 Express Funnel (one-page twin)"
  },
  "platform": "make.com",
  "scenario": {
    "id": 4742834,
    "team": 37047,
    "zone": "us1",
    "name": "New Express Funnel Brief >> Push to AirTable",
    "modules": 15
  },
  "trigger": {
    "type": "webhook",
    "registered_to": "express-funnel.replit.app"
  },
  "reads": [
    {
      "airtable": "Accounts (Agency)",
      "table": "tblzYMsrs3gSpmflP",
      "why": "match account + pull the team"
    }
  ],
  "writes": [
    {
      "airtable": "Funnels: Internal",
      "table": "tblQEsC2ZneADsMyU",
      "why": "create the funnel record"
    }
  ],
  "notifies": [
    {
      "slack": "C07L9BRCKB5"
    }
  ],
  "edges": {
    "upstream": [
      {
        "node": "Replit Forms \u2014 Express Funnel",
        "unit": 2,
        "via": "webhook payload"
      }
    ],
    "downstream": [
      {
        "node": "Page 1 Sub-scenario",
        "scenario": 4655587,
        "unit": 5,
        "via": "CallSubscenario"
      },
      {
        "node": "Page 2 Sub-scenario",
        "scenario": 4655591,
        "unit": 5,
        "via": "CallSubscenario"
      },
      {
        "node": "Delivery \u2014 Create Funnel Brief",
        "scenario": 662018,
        "unit": 5,
        "via": "http_webhook"
      },
      {
        "node": "Internal Funnel Notifications",
        "scenario": 4801718,
        "unit": 6,
        "via": "board-move (indirect)"
      }
    ]
  },
  "capabilities": [
    "Files a submitted Express Funnel brief into Airtable as a funnel record in one pass",
    "Resolves the account by name (case-insensitive) and assigns the account's team roles",
    "Maps the form's funnel-type key to the matching Airtable Funnel Shape via a Switcher",
    "Handles account-found and account-not-found paths, then calls both task subs at once and fires the brief Google Doc"
  ],
  "boundaries": [
    "Single-page form \u2014 no page-1/page-2 split and no back-edit path (unlike unit 3)",
    "Only files fields the Express Replit form sends \u2014 new data needs a Replit form change first",
    "Does not build the brief document (delegated to Delivery 662018) or manage the funnel board (Notifications, unit 6)",
    "Assignment depends on the matched account having its team roles filled"
  ],
  "change_policy": {
    "green": [
      "slack message text",
      "slack channel id",
      "field mapping IF the form already sends it"
    ],
    "amber": [
      "account matching / assignee mapping",
      "funnel-shape switcher mapping",
      "found vs not-found routing"
    ],
    "red": [
      "webhook trigger",
      "CallSubscenario modules 4655587 / 4655591",
      "Delivery HTTP handoff 662018",
      "Create-record table binding tblQEsC2ZneADsMyU"
    ]
  },
  "known_issues": [
    "Brief IDs are prefixed EFB to distinguish express funnels from the UUID-style normal funnels",
    "Empty team roles on the matched account leave those assignees unfilled"
  ],
  "recovery": {
    "blueprint_backup": "backups/bp_4742834.json"
  }
}