{
  "id": "webhook-notifier",
  "title": "Webhook Notifier",
  "type": "workflow",
  "version": "0.1.0",
  "tier": "starlark",
  "icon": "🔔",
  "author": "Armature",
  "description": "Outbound webhook delivery with connection credential support and delivery logging.",
  "permissions": ["api.http", "connections.read", "db.write"],

  "db_tables": {
    "webhook_log": {
      "columns": {
        "url": "text",
        "status_code": "text",
        "event": "text",
        "instance_id": "text"
      }
    }
  },

  "workflow_definition": {
    "name": "Webhook Notifier",
    "slug": "webhook-notifier",
    "entry_mode": "team_only",
    "stages": [
      {
        "name": "configure",
        "ordinal": 0,
        "stage_mode": "form",
        "audience": "team",
        "stage_type": "simple",
        "auto_transition": false,
        "form_template": {
          "fieldsets": [
            {
              "label": "Webhook Configuration",
              "fields": [
                { "key": "webhook_url", "label": "Webhook URL", "type": "text", "required": true },
                { "key": "event_name", "label": "Event Name", "type": "text", "required": true },
                { "key": "payload", "label": "Custom Payload (JSON)", "type": "textarea" }
              ]
            }
          ]
        }
      },
      {
        "name": "fire-webhook",
        "ordinal": 1,
        "stage_mode": "automated",
        "audience": "system",
        "stage_type": "automated",
        "auto_transition": true,
        "starlark_hook": "webhook-notifier:on_fire"
      },
      {
        "name": "result",
        "ordinal": 2,
        "stage_mode": "review",
        "audience": "team",
        "stage_type": "simple",
        "auto_transition": false,
        "form_template": {
          "fieldsets": [
            {
              "label": "Delivery Result",
              "fields": [
                { "key": "delivery_status", "label": "Status", "type": "text" },
                { "key": "status_code", "label": "HTTP Status Code", "type": "text" },
                { "key": "response_body", "label": "Response", "type": "textarea" }
              ]
            }
          ]
        }
      }
    ]
  }
}
