Connecting...
Tags: webhooks automation

Webhooks: Folio Events

The Folio Event webhook fires whenever a folio's lifecycle changes — when the client opens the portal, submits it for review, or when the manager marks it accepted, closed, or it expires. Use it to drive notifications, CRM updates, and downstream workflows around folio status.

Every payload is { event, client, folio }.

folio.open

When fired: When the client first opens their portal link in a browser.

{
  "event": "folio.open",
  "client": {
    "id": 412,
    "guid": "f4a13d0c-2e5e-4a7d-9b1f-2e5a8f8d24c1",
    "user_guid": "1c3a9e8f-72b5-4d11-89aa-66ec0f3a4b22",
    "email": "client@example.com",
    "first_name": "Pat",
    "last_name": "Morgan",
    "phone": "+1-555-0142",
    "subscribed": "yes",
    "inserted_at": 1746825600,
    "updated_at": 1746825600
  },
  "folio": {
    "guid": "8b9d7c12-aa7e-4a2c-b91d-3ad7c2f81f54",
    "client_guid": "f4a13d0c-2e5e-4a7d-9b1f-2e5a8f8d24c1",
    "type": "inbound",
    "name": "Onboarding",
    "status": "open",
    "template_guid": "a72b1c4a-19fc-4d68-8ac6-b6ccf1f3e000",
    "folio_sections": [],
    "inserted_at": 1746825000,
    "updated_at": 1746825600
  }
}

folio.review

When fired: When the client submits the folio for review. Also fires when an email-ingest folio is processed (the system-side equivalent of a client submitting it).

{
  "event": "folio.review",
  "client": { "...": "see folio.open above" },
  "folio": {
    "guid": "8b9d7c12-aa7e-4a2c-b91d-3ad7c2f81f54",
    "client_guid": "f4a13d0c-2e5e-4a7d-9b1f-2e5a8f8d24c1",
    "type": "inbound",
    "name": "Onboarding",
    "status": "review",
    "template_guid": "a72b1c4a-19fc-4d68-8ac6-b6ccf1f3e000",
    "folio_sections": [],
    "inserted_at": 1746825000,
    "updated_at": 1746829200
  }
}

folio.update

When fired: When you mark the folio as needing more from the client.

{
  "event": "folio.update",
  "client": { "...": "see folio.open above" },
  "folio": {
    "guid": "8b9d7c12-aa7e-4a2c-b91d-3ad7c2f81f54",
    "status": "update",
    "...": "..."
  }
}

folio.accepted

When fired: When you mark the folio as accepted.

{
  "event": "folio.accepted",
  "client": { "...": "see folio.open above" },
  "folio": {
    "guid": "8b9d7c12-aa7e-4a2c-b91d-3ad7c2f81f54",
    "status": "accepted",
    "...": "..."
  }
}

folio.expired

When fired: When the folio's expiry date passes without the folio having been accepted.

{
  "event": "folio.expired",
  "client": { "...": "see folio.open above" },
  "folio": {
    "guid": "8b9d7c12-aa7e-4a2c-b91d-3ad7c2f81f54",
    "status": "expired",
    "...": "..."
  }
}

folio.closed

When fired: When you close the folio.

{
  "event": "folio.closed",
  "client": { "...": "see folio.open above" },
  "folio": {
    "guid": "8b9d7c12-aa7e-4a2c-b91d-3ad7c2f81f54",
    "status": "closed",
    "...": "..."
  }
}

More information

For headers, signing, retries, and the delivery log, see the Webhooks overview.