{
  "name": "URL → Bookmark (inbound messages)",
  "triggerType": "event",
  "status": "active",
  "triggerConfig": {
    "eventPattern": "external_message.received.*",
    "filters": { "provider": "discord" }
  },
  "flowDefinition": {
    "nodes": [
      {
        "id": "trigger",
        "type": "trigger",
        "position": { "x": 0, "y": 0 },
        "data": {
          "triggerType": "event",
          "label": "Inbound message",
          "config": {
            "eventPattern": "external_message.received.*",
            "filters": { "provider": "discord" }
          }
        }
      },
      {
        "id": "extract",
        "type": "transform",
        "position": { "x": 0, "y": 120 },
        "data": {
          "label": "Extract URLs",
          "expression": "{{trigger.payload.data.content}} | url_extract"
        }
      },
      {
        "id": "url-loop",
        "type": "loop",
        "position": { "x": 0, "y": 240 },
        "data": {
          "label": "For each URL",
          "iteratorExpression": "steps.extract.output.result",
          "itemVariable": "url"
        }
      },
      {
        "id": "create-bookmark",
        "type": "output",
        "position": { "x": 0, "y": 360 },
        "data": {
          "label": "Create bookmark",
          "outputType": "entity_create",
          "config": {
            "profileSlug": "bookmark",
            "title": "{{loop.item}}",
            "dedupeBy": "url",
            "properties": {
              "url": "{{loop.item}}",
              "sourceMessageId": "{{trigger.payload.data.messageId}}",
              "sourceChannelId": "{{trigger.payload.data.threadId}}"
            }
          }
        }
      }
    ],
    "edges": [
      { "id": "e1", "source": "trigger", "target": "extract" },
      { "id": "e2", "source": "extract", "target": "url-loop" },
      { "id": "e3", "source": "url-loop", "target": "create-bookmark" }
    ]
  },
  "metadata": { "source": "bridge-template" }
}
