{
  "snapi_template": 1,
  "name": "Content Approval",
  "description": "Social posts and articles need a sign-off before they publish. Draft lands on a board, an editor approves, and your automation schedules or posts it.",
  "app": "$f1",
  "root": "$f1",
  "forms": [
    {
      "token": "$f1",
      "name": "Content Approval",
      "description": "Content Approval — submit and work the queue",
      "icon": "fas fa-pen-nib",
      "color": "#2551ed",
      "is_public": false,
      "auth_required": false,
      "is_app": true,
      "success_message": "Submitted successfully.",
      "config": {
        "fields": [
          {
            "name": "hub_title",
            "label": "Content Approval",
            "type": "title"
          },
          {
            "name": "hub_intro",
            "label": "Submit a draft, or open the board to work the queue. Moving a card fires a webhook back to your automation.",
            "type": "subtitle"
          },
          {
            "name": "new_item",
            "label": "Submit a draft",
            "type": "button",
            "buttonActionType": "navigate",
            "buttonTargetKind": "form",
            "buttonTargetEntityId": "$f2",
            "buttonIcon": "fas fa-plus",
            "buttonStyle": "primary"
          },
          {
            "name": "board_link",
            "label": "Draft board",
            "type": "link",
            "linkAction": "navigate",
            "linkTargetKind": "board",
            "linkTargetBoardId": "$b1",
            "linkIcon": "fas fa-columns"
          }
        ]
      }
    },
    {
      "token": "$f2",
      "name": "Draft",
      "description": "A draft",
      "icon": "fas fa-pen-nib",
      "color": "#0ea5e9",
      "is_public": true,
      "auth_required": false,
      "is_app": false,
      "success_message": "Submitted — it's now in the queue.",
      "default_board": "$b1",
      "default_column": "$c1",
      "config": {
        "fields": [
          {
            "name": "ref_no",
            "label": "Ref #",
            "type": "sequence",
            "sequenceId": "$s1",
            "sequenceEditable": false
          },
          {
            "name": "title",
            "label": "Title",
            "type": "text",
            "required": true
          },
          {
            "name": "channel",
            "label": "Channel",
            "type": "select",
            "options": [
              "Blog",
              "LinkedIn",
              "X/Twitter",
              "Instagram",
              "Newsletter"
            ]
          },
          {
            "name": "body",
            "label": "Copy",
            "type": "textarea",
            "required": true
          },
          {
            "name": "author",
            "label": "Author",
            "type": "text",
            "required": true
          }
        ]
      }
    }
  ],
  "boards": [
    {
      "token": "$b1",
      "name": "Content Approval Queue",
      "description": "New items land in Draft. Drag a card to Approved — that move fires the form's post-webhook so your automation can continue.",
      "nav_items": [
        {
          "name": "nav_new",
          "label": "Submit a draft",
          "type": "button",
          "buttonActionType": "navigate",
          "buttonTargetKind": "form",
          "buttonTargetEntityId": "$f2",
          "buttonIcon": "fas fa-plus",
          "buttonStyle": "primary"
        }
      ],
      "columns": [
        {
          "token": "$c1",
          "name": "Draft",
          "color": "#64748b",
          "position": 0
        },
        {
          "token": "$c2",
          "name": "In Review",
          "color": "#f59e0b",
          "position": 1
        },
        {
          "token": "$c3",
          "name": "Approved",
          "color": "#10b981",
          "position": 2
        },
        {
          "token": "$c4",
          "name": "Published",
          "color": "#2551ed",
          "position": 3
        }
      ]
    }
  ],
  "sequences": [
    {
      "token": "$s1",
      "name": "content_approval",
      "prefix": "POST-",
      "padding": 4,
      "reset_period": null
    }
  ]
}
