{
  "schema_version": "1.0",
  "nodes": [
    {
      "id": "event_name",
      "type": "input/text",
      "label": "Event name",
      "parameters": {
        "text": "NORTHWIND SUMMIT",
        "multiline": false,
        "required": true
      }
    },
    {
      "id": "event_dates",
      "type": "input/text",
      "label": "Place and dates",
      "parameters": {
        "text": "Bergen · 14–15 October 2026",
        "multiline": false,
        "required": true
      }
    },
    {
      "id": "event_color",
      "type": "input/text",
      "label": "Event colour",
      "parameters": {
        "text": "#1b4965",
        "multiline": false,
        "required": true
      }
    },
    {
      "id": "event_logo",
      "type": "input/image",
      "label": "Event logo (SVG)",
      "parameters": {
        "image": "__EVENT_LOGO_ASSET_PATH__",
        "required": true
      }
    },
    {
      "id": "participants",
      "type": "input/json_value",
      "label": "Participants",
      "parameters": {
        "required": true
      }
    },
    {
      "id": "people",
      "type": "enumerate/json",
      "label": "One badge per participant",
      "parameters": {
        "jsonConfig": {
          "arrayPath": "(root)",
          "properties": [
            {
              "sourcePath": "first_name",
              "outputPort": "first_name",
              "outputType": "text",
              "selected": true,
              "label": "First name"
            },
            {
              "sourcePath": "last_name",
              "outputPort": "last_name",
              "outputType": "text",
              "selected": true,
              "label": "Last name"
            },
            {
              "sourcePath": "company",
              "outputPort": "company",
              "outputType": "text",
              "selected": true,
              "label": "Company"
            },
            {
              "sourcePath": "role",
              "outputPort": "role",
              "outputType": "text",
              "selected": true,
              "label": "Role"
            },
            {
              "sourcePath": "vip",
              "outputPort": "vip",
              "outputType": "boolean",
              "selected": true,
              "label": "VIP"
            },
            {
              "sourcePath": "track",
              "outputPort": "track",
              "outputType": "text",
              "selected": true,
              "label": "Track"
            },
            {
              "sourcePath": "badge_id",
              "outputPort": "badge_id",
              "outputType": "text",
              "selected": true,
              "label": "Badge ID"
            },
            {
              "sourcePath": "checkin_url",
              "outputPort": "checkin_url",
              "outputType": "text",
              "selected": true,
              "label": "Check-in link"
            }
          ]
        }
      }
    },
    {
      "id": "checkin_qr",
      "type": "image/code",
      "label": "Check-in QR code",
      "parameters": {
        "module_shape": "rounded",
        "eye_frame_shape": "rounded",
        "eye_ball_shape": "circle",
        "foreground_color": "#16202A",
        "logo_background": "circle"
      }
    },
    {
      "id": "badges",
      "type": "aggregate/pdf",
      "label": "All badges in one PDF",
      "parameters": {
        "template_id": "__TEMPLATE_ID__",
        "template_revision": "__TEMPLATE_REVISION__",
        "outputName": "badges"
      }
    },
    {
      "id": "badges_pdf",
      "type": "output/pdf",
      "label": "Badges — PDF",
      "parameters": {
        "output_name": "badges_pdf"
      }
    }
  ],
  "connections": [
    {
      "from_node": "participants",
      "from_output": "json",
      "to_node": "people",
      "to_input": "json"
    },
    {
      "from_node": "people",
      "from_output": "first_name",
      "to_node": "badges",
      "to_input": "first_name"
    },
    {
      "from_node": "people",
      "from_output": "last_name",
      "to_node": "badges",
      "to_input": "last_name"
    },
    {
      "from_node": "people",
      "from_output": "company",
      "to_node": "badges",
      "to_input": "company"
    },
    {
      "from_node": "people",
      "from_output": "role",
      "to_node": "badges",
      "to_input": "role"
    },
    {
      "from_node": "people",
      "from_output": "vip",
      "to_node": "badges",
      "to_input": "vip"
    },
    {
      "from_node": "people",
      "from_output": "track",
      "to_node": "badges",
      "to_input": "track"
    },
    {
      "from_node": "people",
      "from_output": "badge_id",
      "to_node": "badges",
      "to_input": "badge_id"
    },
    {
      "from_node": "people",
      "from_output": "checkin_url",
      "to_node": "checkin_qr",
      "to_input": "content"
    },
    {
      "from_node": "event_logo",
      "from_output": "image",
      "to_node": "checkin_qr",
      "to_input": "logo"
    },
    {
      "from_node": "checkin_qr",
      "from_output": "svg",
      "to_node": "badges",
      "to_input": "checkin_qr"
    },
    {
      "from_node": "event_name",
      "from_output": "text",
      "to_node": "badges",
      "to_input": "event_name"
    },
    {
      "from_node": "event_dates",
      "from_output": "text",
      "to_node": "badges",
      "to_input": "event_dates"
    },
    {
      "from_node": "event_color",
      "from_output": "text",
      "to_node": "badges",
      "to_input": "event_color"
    },
    {
      "from_node": "event_logo",
      "from_output": "image",
      "to_node": "badges",
      "to_input": "event_logo"
    },
    {
      "from_node": "badges",
      "from_output": "result",
      "to_node": "badges_pdf",
      "to_input": "pdf"
    }
  ]
}
