{
  "format_version": 1,
  "generator": "usertasks-gallery",
  "updated": "2026-10-26",
  "signing": {
    "signed": false,
    "fingerprint": null,
    "public_key": null,
    "key_name": "UserTasks Gallery",
    "note": "Development build: these packages are not signed. Verify the sha256 checksums below."
  },
  "categories": [
    {
      "id": "hr-people",
      "title": "HR & People",
      "summary": "Onboarding, leave, reviews and the people processes every company runs.",
      "count": 5
    },
    {
      "id": "finance",
      "title": "Finance",
      "summary": "Expenses, invoices, purchasing, vendors and the month-end close.",
      "count": 5
    },
    {
      "id": "it-security",
      "title": "IT & Security",
      "summary": "Access, incidents, changes, identity lifecycle and alert handling.",
      "count": 5
    },
    {
      "id": "customer-sales",
      "title": "Customer & Sales",
      "summary": "Leads, quotes, customer onboarding and complaints with SLAs.",
      "count": 4
    },
    {
      "id": "operations-compliance",
      "title": "Operations & Compliance",
      "summary": "Contracts, attestations, audits, supplier risk and privacy requests.",
      "count": 5
    },
    {
      "id": "headless-integration",
      "title": "Headless & Integration",
      "summary": "API-first orchestration, sync, reconciliation, documents, AI and ETL with no UI at all.",
      "count": 6
    }
  ],
  "packages": [
    {
      "id": "bb276d8f-836c-476a-9faa-764e6f9732d7",
      "slug": "employee-offboarding",
      "title": "Employee offboarding",
      "category": "hr-people",
      "summary": "A manager submits a leaver; access is revoked on the right day, equipment recovered, final pay scheduled, the exit interview held and the termination recorded.",
      "trigger": "form",
      "version": "1.0.0",
      "released": "2026-10-26",
      "tags": [
        "offboarding",
        "leavers",
        "access revocation",
        "payroll",
        "hr"
      ],
      "needs": [
        "rest_api",
        "assignees",
        "email"
      ],
      "optional_needs": [],
      "difficulty": "intermediate",
      "setup_minutes": 15,
      "file": "/gallery/employee-offboarding-1.0.0.utpkg",
      "file_name": "employee-offboarding-1.0.0.utpkg",
      "size_bytes": 14864,
      "sha256": "066d4dea4a130e84c8c122d3f2e8cd394750872ea94f4df776fee1a2501c59a8",
      "checksum": "sha256:fcf94b86800a4e043176a6a171b5083485ccfb59094d3893415b4c3b29bfa914",
      "signed": false,
      "fingerprint": null,
      "asset_count": 8,
      "requirement_count": 2,
      "page": "/gallery/employee-offboarding"
    },
    {
      "id": "ad3c59b2-a3b1-4325-b06a-38d00d3b43ce",
      "slug": "employee-onboarding",
      "title": "Employee onboarding",
      "category": "hr-people",
      "summary": "HR enters a new hire; the HR record, laptop, accounts, buddy and first-week plan are all arranged before day one, with a 30-day check-in.",
      "trigger": "form",
      "version": "1.0.0",
      "released": "2026-10-26",
      "tags": [
        "onboarding",
        "new hire",
        "it provisioning",
        "sub-workflow",
        "hr"
      ],
      "needs": [
        "rest_api",
        "assignees",
        "email"
      ],
      "optional_needs": [],
      "difficulty": "intermediate",
      "setup_minutes": 20,
      "file": "/gallery/employee-onboarding-1.0.0.utpkg",
      "file_name": "employee-onboarding-1.0.0.utpkg",
      "size_bytes": 18959,
      "sha256": "51ae363d8c71dc0987303a130b86b87b4c8c43b205ef69932dbac9f1af7d3934",
      "checksum": "sha256:47f79c9de911f1c4bb666d285eaacdc350b7c67311f887a10e8200d4dcc7a817",
      "signed": false,
      "fingerprint": null,
      "asset_count": 10,
      "requirement_count": 4,
      "page": "/gallery/employee-onboarding"
    },
    {
      "id": "66d680a4-b2af-445c-9a23-38cb0142a05b",
      "slug": "equipment-request",
      "title": "Equipment request",
      "category": "hr-people",
      "summary": "Employees request kit from an equipment catalogue; a cost and role policy routes approval, IT fulfils the request and the asset is registered.",
      "trigger": "form",
      "version": "1.0.0",
      "released": "2026-10-26",
      "tags": [
        "equipment",
        "it assets",
        "approvals",
        "catalogue",
        "hr"
      ],
      "needs": [
        "rest_api",
        "assignees",
        "email"
      ],
      "optional_needs": [],
      "difficulty": "starter",
      "setup_minutes": 10,
      "file": "/gallery/equipment-request-1.0.0.utpkg",
      "file_name": "equipment-request-1.0.0.utpkg",
      "size_bytes": 14693,
      "sha256": "6493a42bc85ed8f08658527a7e7284ff0478d5f10abb017b5280167bad6e379f",
      "checksum": "sha256:b47995adbd10143a192921e1816c6061e1e09034fa7b42ece8d06046b90b826e",
      "signed": false,
      "fingerprint": null,
      "asset_count": 8,
      "requirement_count": 2,
      "page": "/gallery/equipment-request"
    },
    {
      "id": "5a90e018-560f-4227-a7b9-27065511d3e3",
      "slug": "leave-request",
      "title": "Leave request",
      "category": "hr-people",
      "summary": "Employees request leave from a form; the balance, leave-type rules and an approval policy decide auto-approval, manager or HR review, then the leave is booked.",
      "trigger": "form",
      "version": "1.0.0",
      "released": "2026-10-26",
      "tags": [
        "leave",
        "time off",
        "approvals",
        "decision table",
        "hr"
      ],
      "needs": [
        "rest_api",
        "assignees",
        "email"
      ],
      "optional_needs": [],
      "difficulty": "starter",
      "setup_minutes": 10,
      "file": "/gallery/leave-request-1.0.0.utpkg",
      "file_name": "leave-request-1.0.0.utpkg",
      "size_bytes": 17038,
      "sha256": "9dcbc1556008d0eed269d2b8fb4e218983b8a3e1cda9fb97c41d18562fe8d6c2",
      "checksum": "sha256:eeca54539d2dc481be1c6071825e53344ed090d01818bd0736dda469a57da7e3",
      "signed": false,
      "fingerprint": null,
      "asset_count": 9,
      "requirement_count": 2,
      "page": "/gallery/leave-request"
    },
    {
      "id": "ab3ca965-144e-4103-93f2-a693ef500a45",
      "slug": "probation-review",
      "title": "Probation review",
      "category": "hr-people",
      "summary": "Every morning, employees whose probation ends within three weeks get a manager review; the outcome is confirmed, extended or ended and recorded.",
      "trigger": "schedule",
      "version": "1.0.0",
      "released": "2026-10-26",
      "tags": [
        "probation",
        "performance",
        "scheduled",
        "sub-workflow",
        "hr"
      ],
      "needs": [
        "rest_api",
        "assignees",
        "email"
      ],
      "optional_needs": [],
      "difficulty": "intermediate",
      "setup_minutes": 15,
      "file": "/gallery/probation-review-1.0.0.utpkg",
      "file_name": "probation-review-1.0.0.utpkg",
      "size_bytes": 13476,
      "sha256": "fce3a417b05e4dc00669ea1f8bba815175e39170d351043c27c8844b8e120ea2",
      "checksum": "sha256:0979f843e183fc52c9476260819ffeb7d59aa691c2f3f859557bd36a45c88da4",
      "signed": false,
      "fingerprint": null,
      "asset_count": 8,
      "requirement_count": 2,
      "page": "/gallery/probation-review"
    },
    {
      "id": "5dc02cfb-c3b0-4a0c-9106-6f0aefd04ad6",
      "slug": "expense-claims",
      "title": "Expense claims",
      "category": "finance",
      "summary": "Employees submit a claim from a form; category limits and an approval policy route it, and approved claims are queued for reimbursement.",
      "trigger": "form",
      "version": "1.0.0",
      "released": "2026-10-26",
      "tags": [
        "expenses",
        "approvals",
        "reimbursement",
        "decision table",
        "finance"
      ],
      "needs": [
        "rest_api",
        "assignees",
        "email"
      ],
      "optional_needs": [],
      "difficulty": "starter",
      "setup_minutes": 10,
      "file": "/gallery/expense-claims-1.0.0.utpkg",
      "file_name": "expense-claims-1.0.0.utpkg",
      "size_bytes": 14421,
      "sha256": "b61873a5a025c5bd764ffe8e4aa89daae84a37a5e7aa013c481d21a7a2fb971b",
      "checksum": "sha256:ca0ecd3777e48118e8b748bb3945c093bde841c96368b8377839a0cc648c540b",
      "signed": false,
      "fingerprint": null,
      "asset_count": 8,
      "requirement_count": 2,
      "page": "/gallery/expense-claims"
    },
    {
      "id": "2fed53ab-1eae-46a7-afcd-34a341d7552c",
      "slug": "invoice-three-way-match",
      "title": "Invoice three-way match",
      "category": "finance",
      "summary": "Match each incoming invoice to its purchase order and goods receipts, pay matches within tolerance and route exceptions to accounts payable.",
      "trigger": "api",
      "version": "1.0.0",
      "released": "2026-10-26",
      "tags": [
        "accounts payable",
        "invoices",
        "three-way match",
        "decision table",
        "erp"
      ],
      "needs": [
        "rest_api",
        "assignees",
        "webhook"
      ],
      "optional_needs": [
        "email"
      ],
      "difficulty": "intermediate",
      "setup_minutes": 15,
      "file": "/gallery/invoice-three-way-match-1.0.0.utpkg",
      "file_name": "invoice-three-way-match-1.0.0.utpkg",
      "size_bytes": 17009,
      "sha256": "12adff1c2ab43867989b4192276c0f48bd73f7c00d32d054933aa37fd002ddda",
      "checksum": "sha256:64d4fe93fb5e67a14166c773768f1636340d1315b05ce31b3a497471baacafcd",
      "signed": false,
      "fingerprint": null,
      "asset_count": 9,
      "requirement_count": 2,
      "page": "/gallery/invoice-three-way-match"
    },
    {
      "id": "fde96576-8d00-46f4-87a2-ef1fe0ce0400",
      "slug": "month-end-close-checklist",
      "title": "Month-end close checklist",
      "category": "finance",
      "summary": "On the first of each month, open the close in the ERP and issue every checklist task with a deadline, evidence rule and an audit log.",
      "trigger": "schedule",
      "version": "1.0.0",
      "released": "2026-10-26",
      "tags": [
        "month-end close",
        "checklist",
        "controllership",
        "audit trail",
        "sub-workflow"
      ],
      "needs": [
        "rest_api",
        "assignees"
      ],
      "optional_needs": [
        "email"
      ],
      "difficulty": "intermediate",
      "setup_minutes": 15,
      "file": "/gallery/month-end-close-checklist-1.0.0.utpkg",
      "file_name": "month-end-close-checklist-1.0.0.utpkg",
      "size_bytes": 14445,
      "sha256": "fc54735b5e800969efe70c7da6de5c64bc029605f6b7716a1ae0d65f842fa469",
      "checksum": "sha256:e77d7d39992f2c140d70602c561f7b2e716c5db778f6723f48718147f5634316",
      "signed": false,
      "fingerprint": null,
      "asset_count": 7,
      "requirement_count": 2,
      "page": "/gallery/month-end-close-checklist"
    },
    {
      "id": "4325cc9e-2020-4d11-a6a6-518982b2a906",
      "slug": "purchase-requisition-to-po",
      "title": "Purchase requisition to PO",
      "category": "finance",
      "summary": "Requesters submit a requisition; the purchasing policy sets approvals and quotes, and approved requests become a purchase order sent to the supplier.",
      "trigger": "form",
      "version": "1.0.0",
      "released": "2026-10-26",
      "tags": [
        "purchasing",
        "procurement",
        "approvals",
        "purchase orders",
        "decision table"
      ],
      "needs": [
        "rest_api",
        "assignees",
        "email"
      ],
      "optional_needs": [],
      "difficulty": "intermediate",
      "setup_minutes": 15,
      "file": "/gallery/purchase-requisition-to-po-1.0.0.utpkg",
      "file_name": "purchase-requisition-to-po-1.0.0.utpkg",
      "size_bytes": 15852,
      "sha256": "2fe74042781807fced832e63a5b6fa828b8a64a186dcb62eecde0e127fb8ad03",
      "checksum": "sha256:a5f6a9925c3f7005dbddd14b725fcedc9c1e415cae61d1edca6646b01af879fc",
      "signed": false,
      "fingerprint": null,
      "asset_count": 8,
      "requirement_count": 2,
      "page": "/gallery/purchase-requisition-to-po"
    },
    {
      "id": "745e1c8d-8e81-401e-aae2-48ab105777b7",
      "slug": "vendor-onboarding-kyc",
      "title": "Vendor onboarding with KYC",
      "category": "finance",
      "summary": "Screen new vendors for sanctions, registry and adverse media, tier the risk, review and verify bank details, then create the vendor in the ERP.",
      "trigger": "form",
      "version": "1.0.0",
      "released": "2026-10-26",
      "tags": [
        "vendors",
        "kyc",
        "sanctions screening",
        "bank verification",
        "risk"
      ],
      "needs": [
        "rest_api",
        "assignees",
        "email"
      ],
      "optional_needs": [],
      "difficulty": "intermediate",
      "setup_minutes": 20,
      "file": "/gallery/vendor-onboarding-kyc-1.0.0.utpkg",
      "file_name": "vendor-onboarding-kyc-1.0.0.utpkg",
      "size_bytes": 17717,
      "sha256": "b8b675673d7968a265f32ddf520565b807c2c42187476cefc02869163864fe12",
      "checksum": "sha256:d7d431b90adb555c5252b75f239b8f03c46d7c0c2c6edc437ee705406cde2799",
      "signed": false,
      "fingerprint": null,
      "asset_count": 9,
      "requirement_count": 3,
      "page": "/gallery/vendor-onboarding-kyc"
    },
    {
      "id": "0c7fcde7-c43c-43ac-baa3-d76613bc0def",
      "slug": "access-request-provisioning",
      "title": "Access request and provisioning",
      "category": "it-security",
      "summary": "People request application access from a form; risk-based approvals route it, the grant is provisioned automatically and time-boxed access is revoked on expiry.",
      "trigger": "form",
      "version": "1.0.0",
      "released": "2026-10-26",
      "tags": [
        "access management",
        "provisioning",
        "approvals",
        "least privilege",
        "identity"
      ],
      "needs": [
        "rest_api",
        "assignees",
        "email"
      ],
      "optional_needs": [],
      "difficulty": "intermediate",
      "setup_minutes": 15,
      "file": "/gallery/access-request-provisioning-1.0.0.utpkg",
      "file_name": "access-request-provisioning-1.0.0.utpkg",
      "size_bytes": 19395,
      "sha256": "175767b0a712007dfc44458ba78c079071c4f3ec7af449124c49fe14ed323186",
      "checksum": "sha256:392d656ec9af3d2562e67f66f1bc363744a160025799c8e020e809dd5a0ae4bc",
      "signed": false,
      "fingerprint": null,
      "asset_count": 11,
      "requirement_count": 2,
      "page": "/gallery/access-request-provisioning"
    },
    {
      "id": "d8c920f0-606f-417b-a367-036cbb062919",
      "slug": "change-management-cab",
      "title": "Change management with CAB",
      "category": "it-security",
      "summary": "An RFC form scores change risk, routes to pre-approval, CAB or emergency CAB, then tracks implementation and the post-implementation review in your ITSM.",
      "trigger": "form",
      "version": "1.0.0",
      "released": "2026-10-26",
      "tags": [
        "change management",
        "cab",
        "itil",
        "risk assessment",
        "itsm"
      ],
      "needs": [
        "rest_api",
        "assignees",
        "email"
      ],
      "optional_needs": [],
      "difficulty": "intermediate",
      "setup_minutes": 15,
      "file": "/gallery/change-management-cab-1.0.0.utpkg",
      "file_name": "change-management-cab-1.0.0.utpkg",
      "size_bytes": 15878,
      "sha256": "d4aa81da28c72501a6205d5464c9de77c53ae68d1fdcc9e4805f127ee8ef0729",
      "checksum": "sha256:d119e7e69fab3f621a7e0012d0c75e51f457113b25e2db9963eff669d6dbae5b",
      "signed": false,
      "fingerprint": null,
      "asset_count": 8,
      "requirement_count": 2,
      "page": "/gallery/change-management-cab"
    },
    {
      "id": "71a450ed-5cdb-4dbb-ba47-603e5846c361",
      "slug": "incident-triage",
      "title": "Incident triage",
      "category": "it-security",
      "summary": "Monitoring alerts open prioritised ITSM incidents automatically; repeat alerts are deduplicated and P1/P2 incidents page the on-call engineer with escalation.",
      "trigger": "api",
      "version": "1.0.0",
      "released": "2026-10-26",
      "tags": [
        "incident management",
        "on-call",
        "monitoring",
        "itsm",
        "escalation"
      ],
      "needs": [
        "rest_api",
        "assignees",
        "webhook"
      ],
      "optional_needs": [
        "email"
      ],
      "difficulty": "intermediate",
      "setup_minutes": 15,
      "file": "/gallery/incident-triage-1.0.0.utpkg",
      "file_name": "incident-triage-1.0.0.utpkg",
      "size_bytes": 15788,
      "sha256": "0e3aeca1aa5f02a406a43312fe5b0969f50d20f09987001cec8d9f984a97f4c8",
      "checksum": "sha256:9e5ebbc37e0a07e124aa0b12c1853312e23dc55c63f48c714a67e556ca1b8c57",
      "signed": false,
      "fingerprint": null,
      "asset_count": 8,
      "requirement_count": 2,
      "page": "/gallery/incident-triage"
    },
    {
      "id": "efded5b9-407a-4b99-a790-0c1a7d85b4c1",
      "slug": "joiner-mover-leaver-sync",
      "title": "Joiner, mover, leaver sync",
      "category": "it-security",
      "summary": "A nightly job reads joiners, movers and leavers from the HR system and creates, updates or disables directory accounts with role-based groups, logging every action.",
      "trigger": "schedule",
      "version": "1.0.0",
      "released": "2026-10-26",
      "tags": [
        "identity lifecycle",
        "jml",
        "provisioning",
        "directory sync",
        "hr integration"
      ],
      "needs": [
        "rest_api",
        "directory"
      ],
      "optional_needs": [],
      "difficulty": "intermediate",
      "setup_minutes": 15,
      "file": "/gallery/joiner-mover-leaver-sync-1.0.0.utpkg",
      "file_name": "joiner-mover-leaver-sync-1.0.0.utpkg",
      "size_bytes": 15069,
      "sha256": "b2e073fdbd6c1162f926942cc0edacf0e08deeb4a653a9bac9cdc03560ef2451",
      "checksum": "sha256:542dacbfc0fd1bc4579e16b6aa4c85f983072dfa3581552655ec3e971bf1012c",
      "signed": false,
      "fingerprint": null,
      "asset_count": 9,
      "requirement_count": 2,
      "page": "/gallery/joiner-mover-leaver-sync"
    },
    {
      "id": "3bb49129-4471-4492-a3c0-33720f0a9e35",
      "slug": "security-alert-enrichment",
      "title": "Security alert enrichment",
      "category": "it-security",
      "summary": "SIEM alerts are enriched with IP reputation, user and asset context, then auto-closed, opened as a SOAR case, or contained after analyst approval.",
      "trigger": "api",
      "version": "1.0.0",
      "released": "2026-10-26",
      "tags": [
        "soc",
        "siem",
        "soar",
        "threat intelligence",
        "incident response"
      ],
      "needs": [
        "rest_api",
        "assignees",
        "webhook"
      ],
      "optional_needs": [],
      "difficulty": "advanced",
      "setup_minutes": 20,
      "file": "/gallery/security-alert-enrichment-1.0.0.utpkg",
      "file_name": "security-alert-enrichment-1.0.0.utpkg",
      "size_bytes": 19272,
      "sha256": "bcfc4e499d751123ff51cedf4a2d2a4a173f896ff950127ee132c39ed1d41144",
      "checksum": "sha256:fd163a144c6d5680fcd537e236710f9ab20567ef203bbf6ba78489827b3d830f",
      "signed": false,
      "fingerprint": null,
      "asset_count": 13,
      "requirement_count": 6,
      "page": "/gallery/security-alert-enrichment"
    },
    {
      "id": "04291393-3143-4354-a0da-86c58f177cdf",
      "slug": "complaint-handling-sla",
      "title": "Complaint handling with SLAs",
      "category": "customer-sales",
      "summary": "Agents log a complaint; the customer tier and an SLA matrix set response and resolution targets, with escalation, compensation approval and CRM case resolution.",
      "trigger": "form",
      "version": "1.0.0",
      "released": "2026-10-26",
      "tags": [
        "complaints",
        "sla",
        "escalation",
        "customer service",
        "crm"
      ],
      "needs": [
        "rest_api",
        "assignees",
        "email"
      ],
      "optional_needs": [],
      "difficulty": "intermediate",
      "setup_minutes": 15,
      "file": "/gallery/complaint-handling-sla-1.0.0.utpkg",
      "file_name": "complaint-handling-sla-1.0.0.utpkg",
      "size_bytes": 15481,
      "sha256": "21983c7128cfb3d352f77a926bbd48c15ed6e2512c48c729764d55250681a22e",
      "checksum": "sha256:3c3be755eacf35f9ab36128bfb703791d8c814620baa4ffa1e7591809c4b427f",
      "signed": false,
      "fingerprint": null,
      "asset_count": 8,
      "requirement_count": 2,
      "page": "/gallery/complaint-handling-sla"
    },
    {
      "id": "4d0e7cd6-c96a-445d-aad3-46a2141dfece",
      "slug": "customer-onboarding-kyc",
      "title": "Customer onboarding with KYC",
      "category": "customer-sales",
      "summary": "Account managers register a new business customer; KYC screening, a credit report and a risk rating set the tier and limit before the account is opened.",
      "trigger": "form",
      "version": "1.0.0",
      "released": "2026-10-26",
      "tags": [
        "kyc",
        "aml",
        "customer onboarding",
        "credit check",
        "compliance"
      ],
      "needs": [
        "rest_api",
        "assignees",
        "email"
      ],
      "optional_needs": [],
      "difficulty": "intermediate",
      "setup_minutes": 20,
      "file": "/gallery/customer-onboarding-kyc-1.0.0.utpkg",
      "file_name": "customer-onboarding-kyc-1.0.0.utpkg",
      "size_bytes": 19593,
      "sha256": "c96a428e4ba94904e9c81f76a0ead3a2f4f49ee78f0577e318923cd33ac6c70f",
      "checksum": "sha256:7733f43a7503c82e3f2a95d7f3892bcb41b511392a889a81ebe0d78324e1d489",
      "signed": false,
      "fingerprint": null,
      "asset_count": 11,
      "requirement_count": 4,
      "page": "/gallery/customer-onboarding-kyc"
    },
    {
      "id": "cfebd7da-7139-4377-9a27-5744ba033b3b",
      "slug": "lead-routing-enrichment",
      "title": "Lead routing and enrichment",
      "category": "customer-sales",
      "summary": "Enrich each inbound lead, score it with a routing table, create it in the CRM with its territory owner, and alert sales or start nurture.",
      "trigger": "api",
      "version": "1.0.0",
      "released": "2026-10-26",
      "tags": [
        "leads",
        "lead scoring",
        "routing",
        "crm",
        "enrichment"
      ],
      "needs": [
        "rest_api",
        "webhook"
      ],
      "optional_needs": [
        "email"
      ],
      "difficulty": "intermediate",
      "setup_minutes": 15,
      "file": "/gallery/lead-routing-enrichment-1.0.0.utpkg",
      "file_name": "lead-routing-enrichment-1.0.0.utpkg",
      "size_bytes": 16776,
      "sha256": "b979f2604a9922c5f3833ac5cb2f1f0d4e93f285020bf350c72f786b2e8ec27d",
      "checksum": "sha256:b06ec50ac9fe8591d8ec4eba3026fbcc01a7ac2de57b6a7c8b100b21d7dc68dc",
      "signed": false,
      "fingerprint": null,
      "asset_count": 10,
      "requirement_count": 3,
      "page": "/gallery/lead-routing-enrichment"
    },
    {
      "id": "f9fdec5b-8fa6-4d7d-b7a5-efbcdf81b088",
      "slug": "quote-approval-discount-tiers",
      "title": "Quote approval with discount tiers",
      "category": "customer-sales",
      "summary": "Sales reps submit a quote; a discount authority table sets who approves, and each approver can approve, reject or counter before the CPQ is updated.",
      "trigger": "form",
      "version": "1.0.0",
      "released": "2026-10-26",
      "tags": [
        "quotes",
        "discounts",
        "approvals",
        "cpq",
        "decision table"
      ],
      "needs": [
        "rest_api",
        "assignees",
        "email"
      ],
      "optional_needs": [],
      "difficulty": "intermediate",
      "setup_minutes": 15,
      "file": "/gallery/quote-approval-discount-tiers-1.0.0.utpkg",
      "file_name": "quote-approval-discount-tiers-1.0.0.utpkg",
      "size_bytes": 14077,
      "sha256": "8b640d57605d53025ecf69f5be266ffe8edab5e2e3b2814cd25823f6946ff431",
      "checksum": "sha256:e706c946a9c298fcb105edbfb59401aefe547738c7eda8ac396521cdd926a80f",
      "signed": false,
      "fingerprint": null,
      "asset_count": 7,
      "requirement_count": 2,
      "page": "/gallery/quote-approval-discount-tiers"
    },
    {
      "id": "d881492a-5b01-48e4-ba35-0741008007c3",
      "slug": "audit-evidence-collection",
      "title": "Audit evidence collection",
      "category": "operations-compliance",
      "summary": "Monthly SOC 2 / ISO 27001 evidence run: automated controls are pulled from your systems, owners of manual controls are asked for a link, all logged for the auditor.",
      "trigger": "schedule",
      "version": "1.0.0",
      "released": "2026-10-26",
      "tags": [
        "audit",
        "evidence",
        "SOC 2",
        "ISO 27001",
        "controls"
      ],
      "needs": [
        "rest_api",
        "assignees",
        "email"
      ],
      "optional_needs": [],
      "difficulty": "intermediate",
      "setup_minutes": 20,
      "file": "/gallery/audit-evidence-collection-1.0.0.utpkg",
      "file_name": "audit-evidence-collection-1.0.0.utpkg",
      "size_bytes": 14626,
      "sha256": "e6e306850577e9dc599f6b7bfd3403f2016e7a78b7d854f166d0b332497108b1",
      "checksum": "sha256:b9feefe29ce6a1df9b63c58827f3f837c57509aaa3c244f8e6ea575d32bfba83",
      "signed": false,
      "fingerprint": null,
      "asset_count": 7,
      "requirement_count": 2,
      "page": "/gallery/audit-evidence-collection"
    },
    {
      "id": "5bdee3d0-b3c3-4eea-bc32-6bf793eb9340",
      "slug": "contract-renewal-reminders",
      "title": "Contract renewal reminders",
      "category": "operations-compliance",
      "summary": "A daily check of your contract register: owners are reminded 60, 30 and 7 days before each notice deadline and asked to renew, renegotiate or terminate.",
      "trigger": "schedule",
      "version": "1.0.0",
      "released": "2026-10-26",
      "tags": [
        "contracts",
        "renewals",
        "reminders",
        "schedule",
        "sub-workflow"
      ],
      "needs": [
        "assignees",
        "email"
      ],
      "optional_needs": [],
      "difficulty": "intermediate",
      "setup_minutes": 15,
      "file": "/gallery/contract-renewal-reminders-1.0.0.utpkg",
      "file_name": "contract-renewal-reminders-1.0.0.utpkg",
      "size_bytes": 11854,
      "sha256": "6939579a021d0ec021e067eaa2d0959c1c9c13a99121552c76e455787fb5c00e",
      "checksum": "sha256:04c52919d5b151881e6e1f28ce298d62e21246ccf9e05418a3e00285ead1a83e",
      "signed": false,
      "fingerprint": null,
      "asset_count": 5,
      "requirement_count": 1,
      "page": "/gallery/contract-renewal-reminders"
    },
    {
      "id": "25aa751f-5cb1-4607-af75-831e197aedfb",
      "slug": "gdpr-dsar-handling",
      "title": "GDPR data subject requests",
      "category": "operations-compliance",
      "summary": "Handle access, erasure and other privacy requests: statutory deadline, identity check, search of CRM, billing and support, erasure, and a DPO-approved reply.",
      "trigger": "form",
      "version": "1.0.0",
      "released": "2026-10-26",
      "tags": [
        "privacy",
        "GDPR",
        "DSAR",
        "CCPA",
        "statutory deadline"
      ],
      "needs": [
        "rest_api",
        "assignees",
        "email"
      ],
      "optional_needs": [
        "webhook"
      ],
      "difficulty": "advanced",
      "setup_minutes": 30,
      "file": "/gallery/gdpr-dsar-handling-1.0.0.utpkg",
      "file_name": "gdpr-dsar-handling-1.0.0.utpkg",
      "size_bytes": 22814,
      "sha256": "7d789a2ecf3841a7facfe198420e611b89ef1052d074c38405fa6d0fb3574f9f",
      "checksum": "sha256:d59a260ddc88b480636f94659e2dedb29f776b76d14e0578cd9bd46a3aa746e5",
      "signed": false,
      "fingerprint": null,
      "asset_count": 15,
      "requirement_count": 4,
      "page": "/gallery/gdpr-dsar-handling"
    },
    {
      "id": "5695c286-8d5c-4595-be08-95adaa2e9538",
      "slug": "policy-attestation",
      "title": "Policy attestation",
      "category": "operations-compliance",
      "summary": "A monthly campaign: employees confirm they have read the policies due for them, with reminders, escalation to compliance and an audit trail of attestations.",
      "trigger": "schedule",
      "version": "1.0.0",
      "released": "2026-10-26",
      "tags": [
        "policies",
        "attestation",
        "compliance",
        "campaign",
        "escalation"
      ],
      "needs": [
        "directory",
        "rest_api",
        "assignees",
        "email"
      ],
      "optional_needs": [],
      "difficulty": "intermediate",
      "setup_minutes": 15,
      "file": "/gallery/policy-attestation-1.0.0.utpkg",
      "file_name": "policy-attestation-1.0.0.utpkg",
      "size_bytes": 15167,
      "sha256": "630cffe6e62d50d65bec75636c5fe3ee8782840e2a62ca764078472d57f091a1",
      "checksum": "sha256:5914841d218c2e4f2c5bdbdaf20255c1b9a56cf404f82479f6a1e0df4657c9bd",
      "signed": false,
      "fingerprint": null,
      "asset_count": 8,
      "requirement_count": 2,
      "page": "/gallery/policy-attestation"
    },
    {
      "id": "0c26e977-38cf-4a99-ad75-76d32ad647e7",
      "slug": "supplier-risk-review",
      "title": "Supplier risk review",
      "category": "operations-compliance",
      "summary": "Adding a supplier or flagging it for review pulls a fresh risk rating, sets the tier and next review date, and sends high-risk suppliers to procurement.",
      "trigger": "event",
      "version": "1.0.0",
      "released": "2026-10-26",
      "tags": [
        "suppliers",
        "third-party risk",
        "procurement",
        "decision table",
        "event"
      ],
      "needs": [
        "rest_api",
        "assignees",
        "email"
      ],
      "optional_needs": [],
      "difficulty": "intermediate",
      "setup_minutes": 15,
      "file": "/gallery/supplier-risk-review-1.0.0.utpkg",
      "file_name": "supplier-risk-review-1.0.0.utpkg",
      "size_bytes": 14843,
      "sha256": "5838eac694c20a79dbbcf4a86ce92d85c65002aa8cf31b0843972588fcf9968e",
      "checksum": "sha256:dbb23228132b6cfd40c5f255e4efee50365066868b81a673d895bf869eb4a973",
      "signed": false,
      "fingerprint": null,
      "asset_count": 7,
      "requirement_count": 2,
      "page": "/gallery/supplier-risk-review"
    },
    {
      "id": "b9c1bafe-2b1b-48d2-b022-e48713acc244",
      "slug": "ai-agent-triage-hitl",
      "title": "AI ticket triage with human review",
      "category": "headless-integration",
      "summary": "An AI agent classifies each helpdesk ticket and drafts a reply; confident, low-risk answers go out automatically and the rest wait for a person.",
      "trigger": "api",
      "version": "1.0.0",
      "released": "2026-10-26",
      "tags": [
        "ai agent",
        "support",
        "triage",
        "human in the loop",
        "helpdesk"
      ],
      "needs": [
        "ai_model",
        "rest_api",
        "assignees",
        "webhook"
      ],
      "optional_needs": [
        "email"
      ],
      "difficulty": "intermediate",
      "setup_minutes": 20,
      "file": "/gallery/ai-agent-triage-hitl-1.0.0.utpkg",
      "file_name": "ai-agent-triage-hitl-1.0.0.utpkg",
      "size_bytes": 13947,
      "sha256": "fca4bbe3659f0ccfabf0e77daeaaedf555d67c8d38ba9848f215a808b34585bb",
      "checksum": "sha256:ada3380c7505039fd90af486d0f9298f6991e6be930406105539c85c8cc4ffbc",
      "signed": false,
      "fingerprint": null,
      "asset_count": 8,
      "requirement_count": 3,
      "page": "/gallery/ai-agent-triage-hitl"
    },
    {
      "id": "1b876360-7502-4f7b-ac22-b6ccd4b05166",
      "slug": "document-generation-pipeline",
      "title": "Document generation pipeline",
      "category": "headless-integration",
      "summary": "Turn contract data from any app into a filled Word contract and Excel fee schedule, file both in your DMS and send the contract for e-signature.",
      "trigger": "api",
      "version": "1.0.0",
      "released": "2026-10-26",
      "tags": [
        "documents",
        "word",
        "excel",
        "e-signature",
        "dms",
        "contracts"
      ],
      "needs": [
        "rest_api",
        "documents",
        "webhook"
      ],
      "optional_needs": [
        "email"
      ],
      "difficulty": "intermediate",
      "setup_minutes": 20,
      "file": "/gallery/document-generation-pipeline-1.0.0.utpkg",
      "file_name": "document-generation-pipeline-1.0.0.utpkg",
      "size_bytes": 14134,
      "sha256": "4ffbe87c48463154314a81347a621da251b14997aa8afbe41b4d12a7594d1730",
      "checksum": "sha256:bc3f0fe727c5fcea4b94dddbf96d68eb926e2310b453ab1e8c0c9800e88495f1",
      "signed": false,
      "fingerprint": null,
      "asset_count": 7,
      "requirement_count": 2,
      "page": "/gallery/document-generation-pipeline"
    },
    {
      "id": "c412c470-95c3-4682-b5ba-5782d19cd591",
      "slug": "event-driven-etl",
      "title": "Event-driven ETL",
      "category": "headless-integration",
      "summary": "Each new row in an Orders staging table is normalised, converted to the base currency, loaded into the warehouse and marked loaded or failed.",
      "trigger": "event",
      "version": "1.0.0",
      "released": "2026-10-26",
      "tags": [
        "etl",
        "data table event",
        "warehouse",
        "currency",
        "headless"
      ],
      "needs": [
        "rest_api"
      ],
      "optional_needs": [],
      "difficulty": "intermediate",
      "setup_minutes": 10,
      "file": "/gallery/event-driven-etl-1.0.0.utpkg",
      "file_name": "event-driven-etl-1.0.0.utpkg",
      "size_bytes": 8621,
      "sha256": "9f8952cb64416c151c3320638dc9b7982e959e0d793d19b7bb40d199de580d2a",
      "checksum": "sha256:f5fa34865e0767271bade4896a326358710112ca898cb99c5ec929241e640e1d",
      "signed": false,
      "fingerprint": null,
      "asset_count": 5,
      "requirement_count": 1,
      "page": "/gallery/event-driven-etl"
    },
    {
      "id": "ed6f354d-6217-42b0-a346-6c46dd79e8d5",
      "slug": "order-orchestration-api",
      "title": "Order orchestration API",
      "category": "headless-integration",
      "summary": "A synchronous order endpoint for your storefront: validate, price, fraud-screen, reserve stock, authorise payment and create the shipment in one call.",
      "trigger": "api",
      "version": "1.0.0",
      "released": "2026-10-26",
      "tags": [
        "orders",
        "middleware",
        "fraud screening",
        "payments",
        "fulfilment",
        "orchestration"
      ],
      "needs": [
        "rest_api",
        "webhook",
        "assignees"
      ],
      "optional_needs": [],
      "difficulty": "advanced",
      "setup_minutes": 25,
      "file": "/gallery/order-orchestration-api-1.0.0.utpkg",
      "file_name": "order-orchestration-api-1.0.0.utpkg",
      "size_bytes": 20539,
      "sha256": "33e97fd79a714ba7ec4b759ad8f42ace071bbad213d75892b2a33925d5356fc7",
      "checksum": "sha256:98ca5b7a7a8c657c5c8530823f155dfbf32d42ed78ff31625e61951aa6952482",
      "signed": false,
      "fingerprint": null,
      "asset_count": 12,
      "requirement_count": 4,
      "page": "/gallery/order-orchestration-api"
    },
    {
      "id": "3d62769c-567e-4203-8db1-98612f0eed73",
      "slug": "scheduled-data-reconciliation",
      "title": "Scheduled data reconciliation",
      "category": "headless-integration",
      "summary": "Every morning, yesterday's orders are matched to billing invoices; missing invoices and amount mismatches are recorded and a summary is sent.",
      "trigger": "schedule",
      "version": "1.0.0",
      "released": "2026-10-26",
      "tags": [
        "reconciliation",
        "scheduled",
        "finance ops",
        "loop",
        "headless"
      ],
      "needs": [
        "rest_api"
      ],
      "optional_needs": [
        "email"
      ],
      "difficulty": "intermediate",
      "setup_minutes": 15,
      "file": "/gallery/scheduled-data-reconciliation-1.0.0.utpkg",
      "file_name": "scheduled-data-reconciliation-1.0.0.utpkg",
      "size_bytes": 12258,
      "sha256": "b26941b2717a11a154740baa2d3b9b491c1a3e1080d381c1e4769cd6d03f2cbf",
      "checksum": "sha256:8c5633764fc12603969aa1af2a13476feeb76fdac3aa80f9c33d9958b740fe2e",
      "signed": false,
      "fingerprint": null,
      "asset_count": 9,
      "requirement_count": 3,
      "page": "/gallery/scheduled-data-reconciliation"
    },
    {
      "id": "f29468da-6881-42f5-94d4-4a35b7f1bc0f",
      "slug": "webhook-multi-system-sync",
      "title": "Webhook multi-system sync",
      "category": "headless-integration",
      "summary": "A CRM \"account updated\" webhook is validated and fanned out to the ERP, billing platform and support desk, with every result written to a sync log.",
      "trigger": "api",
      "version": "1.0.0",
      "released": "2026-10-26",
      "tags": [
        "webhook",
        "sync",
        "master data",
        "integration",
        "headless"
      ],
      "needs": [
        "rest_api",
        "webhook"
      ],
      "optional_needs": [],
      "difficulty": "intermediate",
      "setup_minutes": 20,
      "file": "/gallery/webhook-multi-system-sync-1.0.0.utpkg",
      "file_name": "webhook-multi-system-sync-1.0.0.utpkg",
      "size_bytes": 11631,
      "sha256": "be49163f8a2cf25c9136c67d90f4d058eecd0dce4e8dd28bac08c1728a0c05c6",
      "checksum": "sha256:569d9662f7e96e616e3c918eb214be44f03eadeee2eeca5921ade154f0d2d2d5",
      "signed": false,
      "fingerprint": null,
      "asset_count": 8,
      "requirement_count": 3,
      "page": "/gallery/webhook-multi-system-sync"
    }
  ]
}
