{
  "openruna_format": "flow-graph-v1",
  "title": "0831_Wait_Code_Monitor_Webhook",
  "slug": "0831-wait-code-monitor-webhook",
  "source_filename": "0831_Wait_Code_Monitor_Webhook.json",
  "nodes": [
    {
      "id": "END",
      "name": "END",
      "integration": "noOp",
      "kind": "logic"
    },
    {
      "id": "Workflow 1",
      "name": "Workflow 1",
      "integration": "set",
      "kind": "logic"
    },
    {
      "id": "Workflow 2",
      "name": "Workflow 2",
      "integration": "set",
      "kind": "logic"
    },
    {
      "id": "Workflow 3",
      "name": "Workflow 3",
      "integration": "set",
      "kind": "logic"
    },
    {
      "id": "Incoming Webhook Data",
      "name": "Incoming Webhook Data",
      "integration": "webhook",
      "kind": "trigger"
    },
    {
      "id": "Fetch Webhook Data & Declare lockValue",
      "name": "Fetch Webhook Data & Declare lockValue",
      "integration": "code",
      "kind": "logic"
    },
    {
      "id": "Check Redis Lock",
      "name": "Check Redis Lock",
      "integration": "redis",
      "kind": "action"
    },
    {
      "id": "Acquire Redis Lock",
      "name": "Acquire Redis Lock",
      "integration": "redis",
      "kind": "action"
    },
    {
      "id": "redisLock existence boolean",
      "name": "redisLock existence boolean",
      "integration": "if",
      "kind": "logic"
    },
    {
      "id": "redisLock acquired booleans",
      "name": "redisLock acquired booleans",
      "integration": "if",
      "kind": "logic"
    },
    {
      "id": "Poll for lock",
      "name": "Poll for lock",
      "integration": "wait",
      "kind": "logic"
    },
    {
      "id": "duplicateWebhook boolean",
      "name": "duplicateWebhook boolean",
      "integration": "if",
      "kind": "logic"
    },
    {
      "id": "Discard Redis Lock",
      "name": "Discard Redis Lock",
      "integration": "redis",
      "kind": "action"
    },
    {
      "id": "Workflow Switch",
      "name": "Workflow Switch",
      "integration": "switch",
      "kind": "logic"
    }
  ],
  "edges": [
    {
      "from": "Workflow 1",
      "to": "Discard Redis Lock"
    },
    {
      "from": "Workflow 2",
      "to": "Discard Redis Lock"
    },
    {
      "from": "Workflow 3",
      "to": "Discard Redis Lock"
    },
    {
      "from": "Poll for lock",
      "to": "duplicateWebhook boolean"
    },
    {
      "from": "Workflow Switch",
      "to": "Workflow 1"
    },
    {
      "from": "Workflow Switch",
      "to": "Workflow 2"
    },
    {
      "from": "Workflow Switch",
      "to": "Workflow 3"
    },
    {
      "from": "Check Redis Lock",
      "to": "redisLock existence boolean"
    },
    {
      "from": "Acquire Redis Lock",
      "to": "Workflow Switch"
    },
    {
      "from": "Incoming Webhook Data",
      "to": "Fetch Webhook Data & Declare lockValue"
    },
    {
      "from": "duplicateWebhook boolean",
      "to": "END"
    },
    {
      "from": "duplicateWebhook boolean",
      "to": "Check Redis Lock"
    },
    {
      "from": "redisLock acquired booleans",
      "to": "Acquire Redis Lock"
    },
    {
      "from": "redisLock acquired booleans",
      "to": "Poll for lock"
    },
    {
      "from": "redisLock existence boolean",
      "to": "Acquire Redis Lock"
    },
    {
      "from": "redisLock existence boolean",
      "to": "redisLock acquired booleans"
    },
    {
      "from": "Fetch Webhook Data & Declare lockValue",
      "to": "Check Redis Lock"
    }
  ]
}