Skip to content

API reference

Checklists

Onboarding, offboarding and custom checklists: templates, runs and tasks.

14 actions · base URL https://api.bizisy.com/v1 · generated from the same definitions as the API.

List checklist templates#

POST/v1/org/checklists.templates.listRead

Lists the company's checklist templates (Settings → Checklists): onboarding (due dates relative to the start date), offboarding (relative to the last day) and custom (relative to a date chosen when starting). Each has auto_start (onboarding and offboarding start by themselves when someone is hired or terminated), conditions (unit_ids — a unit includes its subunits —, location_ids, legal_entity_ids; empty = everyone; lists combine with AND) and tasks (title, description, link_url, assignee: hr | manager | person | member with a person, offset_days: negative = before). Until the company changes anything, the two starter templates Bizisy ships are listed with saved=false. Archived templates only with include_archived. Owners, admins and HR.

Who can call it
Manage key owner admin hr
MCP tool
org_checklists_templates_list on HR Assistant
Method
POST with a JSON body, or GET with the input as query parameters

Input

  • include_archivedboolean

Returns

  • templatesobject[]required
    9 fields
    • idstringrequired
    • namestringrequired
    • kind"onboarding" | "offboarding" | "custom"required
    • auto_startbooleanrequired
    • conditionsobjectrequired
      3 fields
      • unit_idsstring[]required
      • location_idsstring[]required
      • legal_entity_idsstring[]required
    • tasksobject[]required
      7 fields
      • idstringrequired
      • titlestringrequired
      • descriptionstring | nullrequired
      • link_urlstring | nullrequired
      • assigneeobjectrequired
        2 fields
        • type"hr" | "manager" | "person" | "member"required
        • personobject | nullrequired
          4 fields
          • idstringrequired
          • namestringrequired
          • titlestring | nullrequired
          • photo_urlstring | nullrequired
      • offset_daysintegerrequired
      • visible_daysinteger | nullrequired
    • archivedbooleanrequired
    • savedbooleanrequired
    • updated_atstring | nullrequired

Errors

validation_failed unauthenticated forbidden not_found rate_limited internal

curl
curl https://api.bizisy.com/v1/org/checklists.templates.list \
  -H "Authorization: Bearer $BIZISY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"include_archived":true}'
Response
{
  "data": {
    "templates": [
      {
        "id": "o1_onboarding",
        "name": "Onboarding",
        "kind": "onboarding",
        "auto_start": true,
        "conditions": {
          "unit_ids": [],
          "location_ids": [
            "l1"
          ],
          "legal_entity_ids": []
        },
        "tasks": [
          {
            "id": "t1",
            "title": "Prepare the employment contract",
            "description": "Send it for signature before the first day.",
            "link_url": null,
            "assignee": {
              "type": "hr",
              "person": null
            },
            "offset_days": -10,
            "visible_days": null
          },
          {
            "id": "t2",
            "title": "Read the employee handbook",
            "description": null,
            "link_url": "https://intranet.acme.test/handbook",
            "assignee": {
              "type": "member",
              "person": {
                "id": "p1",
                "name": "Ana Ferreira",
                "title": "CEO",
                "photo_url": null
              }
            },
            "offset_days": 3,
            "visible_days": null
          }
        ],
        "archived": false,
        "saved": true,
        "updated_at": "2026-10-04T10:00:00.000Z"
      },
      {
        "id": "o1_offboarding",
        "name": "Offboarding",
        "kind": "offboarding",
        "auto_start": true,
        "conditions": {
          "unit_ids": [],
          "location_ids": [
            "l1"
          ],
          "legal_entity_ids": []
        },
        "tasks": [
          {
            "id": "t1",
            "title": "Prepare the employment contract",
            "description": "Send it for signature before the first day.",
            "link_url": null,
            "assignee": {
              "type": "hr",
              "person": null
            },
            "offset_days": -10,
            "visible_days": null
          },
          {
            "id": "t2",
            "title": "Read the employee handbook",
            "description": null,
            "link_url": "https://intranet.acme.test/handbook",
            "assignee": {
              "type": "member",
              "person": {
                "id": "p1",
                "name": "Ana Ferreira",
                "title": "CEO",
                "photo_url": null
              }
            },
            "offset_days": 3,
            "visible_days": null
          }
        ],
        "archived": false,
        "saved": false,
        "updated_at": null
      }
    ]
  }
}

Create a checklist template#

POST/v1/org/checklists.templates.createWrite

Creates a checklist template: name, kind (onboarding, offboarding or custom), tasks (1–40: title, optional description and link_url (https), assignee {type: hr | manager | person | member, person_id only for member}, offset_days from -365 to 365 relative to the start date / last day / chosen date), optional conditions {unit_ids, location_ids, legal_entity_ids} and auto_start (default true for onboarding and offboarding; custom templates never start by themselves). "hr" means any owner, admin or HR member; "manager" is the person's manager when the checklist starts (HR if they have none); "person" is the person the checklist is about. A member assignee sees that task and whom it is about. Offboarding tasks show to the leaver and to member assignees only from visible_days (default 7) days before they are due. At most 30 active templates. Applies to checklists started from now on. Use dry_run first. Owners, admins and HR.

Who can call it
Manage key owner admin hr
MCP tool
org_checklists_templates_create on HR Assistant
Preview
?dry_run=true runs every check and saves nothing
Retries
An Idempotency-Key prevents a second run, but the result is never stored (it holds a secret or personal data): a retry gets a 409 that points to Activity

Input

  • namestringrequired

    1–80 characters.

  • kind"onboarding" | "offboarding" | "custom"required
  • auto_startboolean
  • conditionsobject
    3 fields
    • unit_idsstring[]

      1–100 characters. Up to 50 items.

    • location_idsstring[]

      1–100 characters. Up to 50 items.

    • legal_entity_idsstring[]

      1–100 characters. Up to 50 items.

  • tasksobject[]required

    1–40 items.

    7 fields
    • idstring

      Pattern ^[a-z0-9_-]{1,40}$.

    • titlestringrequired

      1–120 characters.

    • descriptionstring | null

      Up to 1000 characters.

    • link_urlstring | null

      Up to 500 characters.

    • assigneeobjectrequired
      2 fields
      • type"hr" | "manager" | "person" | "member"required
      • person_idstring

        1–100 characters.

    • offset_daysintegerrequired

      From -365 to 365.

    • visible_daysinteger | null

      From 0 to 365.

Returns

9 fields
  • idstringrequired
  • namestringrequired
  • kind"onboarding" | "offboarding" | "custom"required
  • auto_startbooleanrequired
  • conditionsobjectrequired
    3 fields
    • unit_idsstring[]required
    • location_idsstring[]required
    • legal_entity_idsstring[]required
  • tasksobject[]required
    7 fields
    • idstringrequired
    • titlestringrequired
    • descriptionstring | nullrequired
    • link_urlstring | nullrequired
    • assigneeobjectrequired
      2 fields
      • type"hr" | "manager" | "person" | "member"required
      • personobject | nullrequired
        4 fields
        • idstringrequired
        • namestringrequired
        • titlestring | nullrequired
        • photo_urlstring | nullrequired
    • offset_daysintegerrequired
    • visible_daysinteger | nullrequired
  • archivedbooleanrequired
  • savedbooleanrequired
  • updated_atstring | nullrequired

Errors

validation_failed unauthenticated forbidden not_found conflict rate_limited internal

curl
curl https://api.bizisy.com/v1/org/checklists.templates.create \
  -H "Authorization: Bearer $BIZISY_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{
  "name": "Porto office",
  "kind": "onboarding",
  "conditions": {
    "location_ids": [
      "l1"
    ]
  },
  "tasks": [
    {
      "title": "Desk and badge",
      "assignee": {
        "type": "member",
        "person_id": "p2"
      },
      "offset_days": -1,
      "link_url": "https://intranet.acme.test/desks"
    }
  ]
}'
Response
{
  "data": {
    "id": "o1_onboarding",
    "name": "Porto office",
    "kind": "onboarding",
    "auto_start": true,
    "conditions": {
      "unit_ids": [],
      "location_ids": [
        "l1"
      ],
      "legal_entity_ids": []
    },
    "tasks": [
      {
        "id": "t1",
        "title": "Prepare the employment contract",
        "description": "Send it for signature before the first day.",
        "link_url": null,
        "assignee": {
          "type": "hr",
          "person": null
        },
        "offset_days": -10,
        "visible_days": null
      },
      {
        "id": "t2",
        "title": "Read the employee handbook",
        "description": null,
        "link_url": "https://intranet.acme.test/handbook",
        "assignee": {
          "type": "member",
          "person": {
            "id": "p1",
            "name": "Ana Ferreira",
            "title": "CEO",
            "photo_url": null
          }
        },
        "offset_days": 3,
        "visible_days": null
      }
    ],
    "archived": false,
    "saved": true,
    "updated_at": "2026-10-04T10:00:00.000Z"
  }
}

Change a checklist template#

POST/v1/org/checklists.templates.updateWrite

Changes a checklist template (see org_checklists_templates_list for ids, including the starter templates): name, auto_start, conditions (replaces all three lists) and/or tasks (replaces the whole task list: send every task you want to keep, with its id; 1–40 tasks, same fields as org_checklists_templates_create). Checklists already running keep their tasks; only checklists started afterwards use the new version. Use dry_run first. Owners, admins and HR.

Who can call it
Manage key owner admin hr
MCP tool
org_checklists_templates_update on HR Assistant
Preview
?dry_run=true runs every check and saves nothing
Retries
An Idempotency-Key prevents a second run, but the result is never stored (it holds a secret or personal data): a retry gets a 409 that points to Activity

Input

  • template_idstringrequired

    1–100 characters.

  • namestring

    1–80 characters.

  • auto_startboolean
  • conditionsobject
    3 fields
    • unit_idsstring[]

      1–100 characters. Up to 50 items.

    • location_idsstring[]

      1–100 characters. Up to 50 items.

    • legal_entity_idsstring[]

      1–100 characters. Up to 50 items.

  • tasksobject[]

    1–40 items.

    7 fields
    • idstring

      Pattern ^[a-z0-9_-]{1,40}$.

    • titlestringrequired

      1–120 characters.

    • descriptionstring | null

      Up to 1000 characters.

    • link_urlstring | null

      Up to 500 characters.

    • assigneeobjectrequired
      2 fields
      • type"hr" | "manager" | "person" | "member"required
      • person_idstring

        1–100 characters.

    • offset_daysintegerrequired

      From -365 to 365.

    • visible_daysinteger | null

      From 0 to 365.

Returns

9 fields
  • idstringrequired
  • namestringrequired
  • kind"onboarding" | "offboarding" | "custom"required
  • auto_startbooleanrequired
  • conditionsobjectrequired
    3 fields
    • unit_idsstring[]required
    • location_idsstring[]required
    • legal_entity_idsstring[]required
  • tasksobject[]required
    7 fields
    • idstringrequired
    • titlestringrequired
    • descriptionstring | nullrequired
    • link_urlstring | nullrequired
    • assigneeobjectrequired
      2 fields
      • type"hr" | "manager" | "person" | "member"required
      • personobject | nullrequired
        4 fields
        • idstringrequired
        • namestringrequired
        • titlestring | nullrequired
        • photo_urlstring | nullrequired
    • offset_daysintegerrequired
    • visible_daysinteger | nullrequired
  • archivedbooleanrequired
  • savedbooleanrequired
  • updated_atstring | nullrequired

Errors

validation_failed unauthenticated forbidden not_found conflict rate_limited internal

curl
curl https://api.bizisy.com/v1/org/checklists.templates.update \
  -H "Authorization: Bearer $BIZISY_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{
  "template_id": "o1_onboarding",
  "auto_start": false,
  "conditions": {
    "unit_ids": [],
    "location_ids": [],
    "legal_entity_ids": []
  },
  "tasks": [
    {
      "id": "t1",
      "title": "Contract",
      "description": null,
      "link_url": null,
      "assignee": {
        "type": "hr"
      },
      "offset_days": -10,
      "visible_days": 14
    }
  ]
}'
Response
{
  "data": {
    "id": "o1_onboarding",
    "name": "Onboarding",
    "kind": "onboarding",
    "auto_start": false,
    "conditions": {
      "unit_ids": [],
      "location_ids": [
        "l1"
      ],
      "legal_entity_ids": []
    },
    "tasks": [
      {
        "id": "t1",
        "title": "Prepare the employment contract",
        "description": "Send it for signature before the first day.",
        "link_url": null,
        "assignee": {
          "type": "hr",
          "person": null
        },
        "offset_days": -10,
        "visible_days": null
      },
      {
        "id": "t2",
        "title": "Read the employee handbook",
        "description": null,
        "link_url": "https://intranet.acme.test/handbook",
        "assignee": {
          "type": "member",
          "person": {
            "id": "p1",
            "name": "Ana Ferreira",
            "title": "CEO",
            "photo_url": null
          }
        },
        "offset_days": 3,
        "visible_days": null
      }
    ],
    "archived": false,
    "saved": true,
    "updated_at": "2026-10-04T10:00:00.000Z"
  }
}

Archive or restore a checklist template#

POST/v1/org/checklists.templates.archiveWrite

Archives a checklist template (archived: true): it no longer starts by itself and cannot be started by hand; checklists already running are not affected. archived: false restores it. Templates are never deleted. Owners, admins and HR.

Who can call it
Manage key owner admin hr
MCP tool
org_checklists_templates_archive on HR Assistant
Preview
?dry_run=true runs every check and saves nothing
Retries
An Idempotency-Key prevents a second run, but the result is never stored (it holds a secret or personal data): a retry gets a 409 that points to Activity

Input

  • template_idstringrequired

    1–100 characters.

  • archivedbooleanrequired

Returns

9 fields
  • idstringrequired
  • namestringrequired
  • kind"onboarding" | "offboarding" | "custom"required
  • auto_startbooleanrequired
  • conditionsobjectrequired
    3 fields
    • unit_idsstring[]required
    • location_idsstring[]required
    • legal_entity_idsstring[]required
  • tasksobject[]required
    7 fields
    • idstringrequired
    • titlestringrequired
    • descriptionstring | nullrequired
    • link_urlstring | nullrequired
    • assigneeobjectrequired
      2 fields
      • type"hr" | "manager" | "person" | "member"required
      • personobject | nullrequired
        4 fields
        • idstringrequired
        • namestringrequired
        • titlestring | nullrequired
        • photo_urlstring | nullrequired
    • offset_daysintegerrequired
    • visible_daysinteger | nullrequired
  • archivedbooleanrequired
  • savedbooleanrequired
  • updated_atstring | nullrequired

Errors

validation_failed unauthenticated forbidden not_found conflict rate_limited internal

curl
curl https://api.bizisy.com/v1/org/checklists.templates.archive \
  -H "Authorization: Bearer $BIZISY_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"template_id":"o1_onboarding","archived":true}'
Response
{
  "data": {
    "id": "o1_onboarding",
    "name": "Onboarding",
    "kind": "onboarding",
    "auto_start": true,
    "conditions": {
      "unit_ids": [],
      "location_ids": [
        "l1"
      ],
      "legal_entity_ids": []
    },
    "tasks": [
      {
        "id": "t1",
        "title": "Prepare the employment contract",
        "description": "Send it for signature before the first day.",
        "link_url": null,
        "assignee": {
          "type": "hr",
          "person": null
        },
        "offset_days": -10,
        "visible_days": null
      },
      {
        "id": "t2",
        "title": "Read the employee handbook",
        "description": null,
        "link_url": "https://intranet.acme.test/handbook",
        "assignee": {
          "type": "member",
          "person": {
            "id": "p1",
            "name": "Ana Ferreira",
            "title": "CEO",
            "photo_url": null
          }
        },
        "offset_days": 3,
        "visible_days": null
      }
    ],
    "archived": true,
    "saved": true,
    "updated_at": "2026-10-04T10:00:00.000Z"
  }
}

Start a checklist for a person#

POST/v1/org/checklists.runs.startWrite

Starts a checklist from a template (template_id from org_checklists_templates_list) for a person (person_id from org_people_list). Due dates hang off anchor_date: by default their start date (onboarding: the current or next employment), their last day (offboarding: they must have one, so terminate first) or today (custom). Pass anchor_date (YYYY-MM-DD) to use another date. Assignees are resolved now: the manager on that date (HR if none), the person, or the named member. Refused when an open checklist from the same template already runs for them, or when the template is archived. Onboarding and offboarding templates with auto_start also start by themselves on org_people_hire, org_people_rehire and org_people_terminate. Use dry_run first. Owners, admins and HR.

Who can call it
Manage key owner admin hr
MCP tool
org_checklists_runs_start on HR Assistant
Preview
?dry_run=true runs every check and saves nothing
Retries
An Idempotency-Key prevents a second run, but the result is never stored (it holds a secret or personal data): a retry gets a 409 that points to Activity

Input

  • person_idstringrequired

    1–100 characters.

  • template_idstringrequired

    1–100 characters.

  • anchor_datestring

Returns

18 fields
  • idstringrequired
  • namestringrequired
  • kind"onboarding" | "offboarding" | "custom"required
  • template_idstring | nullrequired
  • personobjectrequired
    4 fields
    • idstringrequired
    • namestringrequired
    • titlestring | nullrequired
    • photo_urlstring | nullrequired
  • anchor_datestring | nullrequired
  • anchor_source"start" | "last_day" | "chosen"required
  • status"open" | "completed" | "cancelled"required
  • started_by"auto" | "manual"required
  • started_atstringrequired
  • completed_atstring | nullrequired
  • cancelled_atstring | nullrequired
  • progressobject | nullrequired
    3 fields
    • doneintegerrequired
    • skippedintegerrequired
    • totalintegerrequired
  • access"full" | "assigned"required
  • can_cancelbooleanrequired
  • shared_with_personbooleanrequired
  • can_sharebooleanrequired
  • tasksobject[]required
    15 fields
    • idstringrequired
    • titlestringrequired
    • descriptionstring | nullrequired
    • link_urlstring | nullrequired
    • assigneeobjectrequired
      2 fields
      • type"hr" | "manager" | "person" | "member"required
      • personobject | nullrequired
        4 fields
        • idstringrequired
        • namestringrequired
        • titlestring | nullrequired
        • photo_urlstring | nullrequired
    • manager_missingbooleanrequired
    • offset_daysintegerrequired
    • due_datestringrequired
    • visible_fromstring | nullrequired
    • status"open" | "done" | "skipped"required
    • resolved_atstring | nullrequired
    • resolved_byobject | nullrequired
      4 fields
      • idstringrequired
      • namestringrequired
      • titlestring | nullrequired
      • photo_urlstring | nullrequired
    • skip_reasonstring | nullrequired
    • commentsobject[]required
      4 fields
      • idstringrequired
      • authorobject | nullrequired
        4 fields
        • idstringrequired
        • namestringrequired
        • titlestring | nullrequired
        • photo_urlstring | nullrequired
      • textstringrequired
      • atstringrequired
    • canobjectrequired
      4 fields
      • tickbooleanrequired
      • skipbooleanrequired
      • reassignbooleanrequired
      • commentbooleanrequired

Errors

validation_failed unauthenticated forbidden not_found conflict rate_limited internal

curl
curl https://api.bizisy.com/v1/org/checklists.runs.start \
  -H "Authorization: Bearer $BIZISY_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"person_id":"p2","template_id":"t9","anchor_date":"2026-11-02"}'
Response
{
  "data": {
    "id": "r1",
    "name": "Onboarding",
    "kind": "onboarding",
    "template_id": "o1_onboarding",
    "person": {
      "id": "p2",
      "name": "Rui Costa",
      "title": "CTO",
      "photo_url": "https://acme.bizisy.com/api/photos/people/p2?v=01k0000000000000000000000b"
    },
    "anchor_date": "2026-11-02",
    "anchor_source": "start",
    "status": "open",
    "started_by": "auto",
    "shared_with_person": false,
    "can_share": false,
    "started_at": "2026-10-04T10:00:00.000Z",
    "completed_at": null,
    "cancelled_at": null,
    "progress": {
      "done": 1,
      "skipped": 0,
      "total": 10
    },
    "access": "full",
    "can_cancel": true,
    "tasks": [
      {
        "id": "t1",
        "title": "Prepare the employment contract",
        "description": "Send it for signature before the first day.",
        "link_url": null,
        "assignee": {
          "type": "manager",
          "person": {
            "id": "p1",
            "name": "Ana Ferreira",
            "title": "CEO",
            "photo_url": null
          }
        },
        "manager_missing": false,
        "offset_days": -10,
        "due_date": "2026-10-10",
        "visible_from": null,
        "status": "done",
        "resolved_at": "2026-10-04T10:00:00.000Z",
        "resolved_by": {
          "id": "p1",
          "name": "Ana Ferreira",
          "title": "CEO",
          "photo_url": null
        },
        "skip_reason": null,
        "comments": [
          {
            "id": "c1",
            "author": {
              "id": "p1",
              "name": "Ana Ferreira",
              "title": "CEO",
              "photo_url": null
            },
            "text": "Sent for signature",
            "at": "2026-10-04T10:00:00.000Z"
          }
        ],
        "can": {
          "tick": true,
          "skip": true,
          "reassign": true,
          "comment": true
        }
      }
    ]
  }
}

Cancel a checklist#

POST/v1/org/checklists.runs.cancelWrite

Cancels a running (or completed) checklist: it stays visible with its ticked tasks but nothing can change any more and its tasks leave everyone’s lists and emails. Use it when a hire falls through or a checklist was started by mistake. Owners, admins and HR.

Who can call it
Manage key owner admin hr
MCP tool
org_checklists_runs_cancel on HR Assistant
Preview
?dry_run=true runs every check and saves nothing
Retries
An Idempotency-Key prevents a second run, but the result is never stored (it holds a secret or personal data): a retry gets a 409 that points to Activity

Input

  • run_idstringrequired

    1–100 characters.

Returns

18 fields
  • idstringrequired
  • namestringrequired
  • kind"onboarding" | "offboarding" | "custom"required
  • template_idstring | nullrequired
  • personobjectrequired
    4 fields
    • idstringrequired
    • namestringrequired
    • titlestring | nullrequired
    • photo_urlstring | nullrequired
  • anchor_datestring | nullrequired
  • anchor_source"start" | "last_day" | "chosen"required
  • status"open" | "completed" | "cancelled"required
  • started_by"auto" | "manual"required
  • started_atstringrequired
  • completed_atstring | nullrequired
  • cancelled_atstring | nullrequired
  • progressobject | nullrequired
    3 fields
    • doneintegerrequired
    • skippedintegerrequired
    • totalintegerrequired
  • access"full" | "assigned"required
  • can_cancelbooleanrequired
  • shared_with_personbooleanrequired
  • can_sharebooleanrequired
  • tasksobject[]required
    15 fields
    • idstringrequired
    • titlestringrequired
    • descriptionstring | nullrequired
    • link_urlstring | nullrequired
    • assigneeobjectrequired
      2 fields
      • type"hr" | "manager" | "person" | "member"required
      • personobject | nullrequired
        4 fields
        • idstringrequired
        • namestringrequired
        • titlestring | nullrequired
        • photo_urlstring | nullrequired
    • manager_missingbooleanrequired
    • offset_daysintegerrequired
    • due_datestringrequired
    • visible_fromstring | nullrequired
    • status"open" | "done" | "skipped"required
    • resolved_atstring | nullrequired
    • resolved_byobject | nullrequired
      4 fields
      • idstringrequired
      • namestringrequired
      • titlestring | nullrequired
      • photo_urlstring | nullrequired
    • skip_reasonstring | nullrequired
    • commentsobject[]required
      4 fields
      • idstringrequired
      • authorobject | nullrequired
        4 fields
        • idstringrequired
        • namestringrequired
        • titlestring | nullrequired
        • photo_urlstring | nullrequired
      • textstringrequired
      • atstringrequired
    • canobjectrequired
      4 fields
      • tickbooleanrequired
      • skipbooleanrequired
      • reassignbooleanrequired
      • commentbooleanrequired

Errors

validation_failed unauthenticated forbidden not_found conflict rate_limited internal

curl
curl https://api.bizisy.com/v1/org/checklists.runs.cancel \
  -H "Authorization: Bearer $BIZISY_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"run_id":"r1"}'
Response
{
  "data": {
    "id": "r1",
    "name": "Onboarding",
    "kind": "onboarding",
    "template_id": "o1_onboarding",
    "person": {
      "id": "p2",
      "name": "Rui Costa",
      "title": "CTO",
      "photo_url": "https://acme.bizisy.com/api/photos/people/p2?v=01k0000000000000000000000b"
    },
    "anchor_date": "2026-10-20",
    "anchor_source": "start",
    "status": "cancelled",
    "started_by": "auto",
    "shared_with_person": false,
    "can_share": false,
    "started_at": "2026-10-04T10:00:00.000Z",
    "completed_at": null,
    "cancelled_at": "2026-10-05T10:00:00.000Z",
    "progress": {
      "done": 1,
      "skipped": 0,
      "total": 10
    },
    "access": "full",
    "can_cancel": false,
    "tasks": [
      {
        "id": "t1",
        "title": "Prepare the employment contract",
        "description": "Send it for signature before the first day.",
        "link_url": null,
        "assignee": {
          "type": "manager",
          "person": {
            "id": "p1",
            "name": "Ana Ferreira",
            "title": "CEO",
            "photo_url": null
          }
        },
        "manager_missing": false,
        "offset_days": -10,
        "due_date": "2026-10-10",
        "visible_from": null,
        "status": "done",
        "resolved_at": "2026-10-04T10:00:00.000Z",
        "resolved_by": {
          "id": "p1",
          "name": "Ana Ferreira",
          "title": "CEO",
          "photo_url": null
        },
        "skip_reason": null,
        "comments": [
          {
            "id": "c1",
            "author": {
              "id": "p1",
              "name": "Ana Ferreira",
              "title": "CEO",
              "photo_url": null
            },
            "text": "Sent for signature",
            "at": "2026-10-04T10:00:00.000Z"
          }
        ],
        "can": {
          "tick": true,
          "skip": true,
          "reassign": true,
          "comment": true
        }
      }
    ]
  }
}

Share an offboarding checklist with the person leaving#

POST/v1/org/checklists.runs.shareWrite

Shares an offboarding checklist with the person it is about (shared: true): from then on they see their own tasks on it (for example "Hand over your work") in Me → My tasks and in their emails. Until it is shared, they only see each of their tasks from 7 days before it is due (or the number of days its template sets), since a last day is often recorded before it is announced. shared: false stops sharing. Member assignees outside HR and the manager chain always follow those visible-from dates. Owners, admins and HR.

Who can call it
Manage key owner admin hr
MCP tool
org_checklists_runs_share on HR Assistant
Preview
?dry_run=true runs every check and saves nothing
Retries
An Idempotency-Key prevents a second run, but the result is never stored (it holds a secret or personal data): a retry gets a 409 that points to Activity

Input

  • run_idstringrequired

    1–100 characters.

  • sharedbooleanrequired

Returns

18 fields
  • idstringrequired
  • namestringrequired
  • kind"onboarding" | "offboarding" | "custom"required
  • template_idstring | nullrequired
  • personobjectrequired
    4 fields
    • idstringrequired
    • namestringrequired
    • titlestring | nullrequired
    • photo_urlstring | nullrequired
  • anchor_datestring | nullrequired
  • anchor_source"start" | "last_day" | "chosen"required
  • status"open" | "completed" | "cancelled"required
  • started_by"auto" | "manual"required
  • started_atstringrequired
  • completed_atstring | nullrequired
  • cancelled_atstring | nullrequired
  • progressobject | nullrequired
    3 fields
    • doneintegerrequired
    • skippedintegerrequired
    • totalintegerrequired
  • access"full" | "assigned"required
  • can_cancelbooleanrequired
  • shared_with_personbooleanrequired
  • can_sharebooleanrequired
  • tasksobject[]required
    15 fields
    • idstringrequired
    • titlestringrequired
    • descriptionstring | nullrequired
    • link_urlstring | nullrequired
    • assigneeobjectrequired
      2 fields
      • type"hr" | "manager" | "person" | "member"required
      • personobject | nullrequired
        4 fields
        • idstringrequired
        • namestringrequired
        • titlestring | nullrequired
        • photo_urlstring | nullrequired
    • manager_missingbooleanrequired
    • offset_daysintegerrequired
    • due_datestringrequired
    • visible_fromstring | nullrequired
    • status"open" | "done" | "skipped"required
    • resolved_atstring | nullrequired
    • resolved_byobject | nullrequired
      4 fields
      • idstringrequired
      • namestringrequired
      • titlestring | nullrequired
      • photo_urlstring | nullrequired
    • skip_reasonstring | nullrequired
    • commentsobject[]required
      4 fields
      • idstringrequired
      • authorobject | nullrequired
        4 fields
        • idstringrequired
        • namestringrequired
        • titlestring | nullrequired
        • photo_urlstring | nullrequired
      • textstringrequired
      • atstringrequired
    • canobjectrequired
      4 fields
      • tickbooleanrequired
      • skipbooleanrequired
      • reassignbooleanrequired
      • commentbooleanrequired

Errors

validation_failed unauthenticated forbidden not_found conflict rate_limited internal

curl
curl https://api.bizisy.com/v1/org/checklists.runs.share \
  -H "Authorization: Bearer $BIZISY_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"run_id":"r2","shared":true}'
Response
{
  "data": {
    "id": "r2",
    "name": "Offboarding",
    "kind": "offboarding",
    "template_id": "o1_onboarding",
    "person": {
      "id": "p2",
      "name": "Rui Costa",
      "title": "CTO",
      "photo_url": "https://acme.bizisy.com/api/photos/people/p2?v=01k0000000000000000000000b"
    },
    "anchor_date": "2026-10-20",
    "anchor_source": "last_day",
    "status": "open",
    "started_by": "auto",
    "shared_with_person": true,
    "can_share": true,
    "started_at": "2026-10-04T10:00:00.000Z",
    "completed_at": null,
    "cancelled_at": null,
    "progress": {
      "done": 1,
      "skipped": 0,
      "total": 10
    },
    "access": "full",
    "can_cancel": true,
    "tasks": [
      {
        "id": "t1",
        "title": "Prepare the employment contract",
        "description": "Send it for signature before the first day.",
        "link_url": null,
        "assignee": {
          "type": "manager",
          "person": {
            "id": "p1",
            "name": "Ana Ferreira",
            "title": "CEO",
            "photo_url": null
          }
        },
        "manager_missing": false,
        "offset_days": -10,
        "due_date": "2026-10-10",
        "visible_from": null,
        "status": "done",
        "resolved_at": "2026-10-04T10:00:00.000Z",
        "resolved_by": {
          "id": "p1",
          "name": "Ana Ferreira",
          "title": "CEO",
          "photo_url": null
        },
        "skip_reason": null,
        "comments": [
          {
            "id": "c1",
            "author": {
              "id": "p1",
              "name": "Ana Ferreira",
              "title": "CEO",
              "photo_url": null
            },
            "text": "Sent for signature",
            "at": "2026-10-04T10:00:00.000Z"
          }
        ],
        "can": {
          "tick": true,
          "skip": true,
          "reassign": true,
          "comment": true
        }
      }
    ]
  }
}

List checklists#

POST/v1/org/checklists.runs.listRead

Lists checklists (onboarding, offboarding, custom) with their progress (done, skipped, total) and tasks. person_id: only that person’s checklists. status: open, completed, cancelled or all (default: all with person_id, else open). Owners, admins, HR and the person’s managers see every task; the person themself and member assignees see only the tasks assigned to them (access "assigned"; a member assignee gets no date or progress for the checklist), and on offboarding only from each task’s visible_from date (the person sooner if HR shared it with them, org_checklists_runs_share); others see nothing. Each task says what you may do with it (can).

Who can call it
Manage key any Manage role
Me key anyone
MCP tool
org_checklists_runs_list on HR Assistant, My Workplace
Method
POST with a JSON body, or GET with the input as query parameters

Input

  • person_idstring

    1–100 characters.

  • status"open" | "completed" | "cancelled" | "all"

Returns

  • todaystringrequired
  • runsobject[]required
    18 fields
    • idstringrequired
    • namestringrequired
    • kind"onboarding" | "offboarding" | "custom"required
    • template_idstring | nullrequired
    • personobjectrequired
      4 fields
      • idstringrequired
      • namestringrequired
      • titlestring | nullrequired
      • photo_urlstring | nullrequired
    • anchor_datestring | nullrequired
    • anchor_source"start" | "last_day" | "chosen"required
    • status"open" | "completed" | "cancelled"required
    • started_by"auto" | "manual"required
    • started_atstringrequired
    • completed_atstring | nullrequired
    • cancelled_atstring | nullrequired
    • progressobject | nullrequired
      3 fields
      • doneintegerrequired
      • skippedintegerrequired
      • totalintegerrequired
    • access"full" | "assigned"required
    • can_cancelbooleanrequired
    • shared_with_personbooleanrequired
    • can_sharebooleanrequired
    • tasksobject[]required
      15 fields
      • idstringrequired
      • titlestringrequired
      • descriptionstring | nullrequired
      • link_urlstring | nullrequired
      • assigneeobjectrequired
        2 fields
        • type"hr" | "manager" | "person" | "member"required
        • personobject | nullrequired
          4 fields
          • idstringrequired
          • namestringrequired
          • titlestring | nullrequired
          • photo_urlstring | nullrequired
      • manager_missingbooleanrequired
      • offset_daysintegerrequired
      • due_datestringrequired
      • visible_fromstring | nullrequired
      • status"open" | "done" | "skipped"required
      • resolved_atstring | nullrequired
      • resolved_byobject | nullrequired
        4 fields
        • idstringrequired
        • namestringrequired
        • titlestring | nullrequired
        • photo_urlstring | nullrequired
      • skip_reasonstring | nullrequired
      • commentsobject[]required
        4 fields
        • idstringrequired
        • authorobject | nullrequired
          4 fields
          • idstringrequired
          • namestringrequired
          • titlestring | nullrequired
          • photo_urlstring | nullrequired
        • textstringrequired
        • atstringrequired
      • canobjectrequired
        4 fields
        • tickbooleanrequired
        • skipbooleanrequired
        • reassignbooleanrequired
        • commentbooleanrequired

Errors

validation_failed unauthenticated forbidden not_found rate_limited internal

curl
curl https://api.bizisy.com/v1/org/checklists.runs.list \
  -H "Authorization: Bearer $BIZISY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"person_id":"p2","status":"all"}'
Response
{
  "data": {
    "today": "2026-10-04",
    "runs": [
      {
        "id": "r1",
        "name": "Onboarding",
        "kind": "onboarding",
        "template_id": "o1_onboarding",
        "person": {
          "id": "p2",
          "name": "Rui Costa",
          "title": "CTO",
          "photo_url": "https://acme.bizisy.com/api/photos/people/p2?v=01k0000000000000000000000b"
        },
        "anchor_date": "2026-10-20",
        "anchor_source": "start",
        "status": "open",
        "started_by": "auto",
        "shared_with_person": false,
        "can_share": false,
        "started_at": "2026-10-04T10:00:00.000Z",
        "completed_at": null,
        "cancelled_at": null,
        "progress": {
          "done": 1,
          "skipped": 0,
          "total": 10
        },
        "access": "full",
        "can_cancel": true,
        "tasks": [
          {
            "id": "t1",
            "title": "Prepare the employment contract",
            "description": "Send it for signature before the first day.",
            "link_url": null,
            "assignee": {
              "type": "manager",
              "person": {
                "id": "p1",
                "name": "Ana Ferreira",
                "title": "CEO",
                "photo_url": null
              }
            },
            "manager_missing": false,
            "offset_days": -10,
            "due_date": "2026-10-10",
            "visible_from": null,
            "status": "done",
            "resolved_at": "2026-10-04T10:00:00.000Z",
            "resolved_by": {
              "id": "p1",
              "name": "Ana Ferreira",
              "title": "CEO",
              "photo_url": null
            },
            "skip_reason": null,
            "comments": [
              {
                "id": "c1",
                "author": {
                  "id": "p1",
                  "name": "Ana Ferreira",
                  "title": "CEO",
                  "photo_url": null
                },
                "text": "Sent for signature",
                "at": "2026-10-04T10:00:00.000Z"
              }
            ],
            "can": {
              "tick": true,
              "skip": true,
              "reassign": true,
              "comment": true
            }
          }
        ]
      },
      {
        "id": "r3",
        "name": "Onboarding",
        "kind": "onboarding",
        "template_id": "o1_onboarding",
        "person": {
          "id": "p2",
          "name": "Rui Costa",
          "title": "CTO",
          "photo_url": "https://acme.bizisy.com/api/photos/people/p2?v=01k0000000000000000000000b"
        },
        "anchor_date": null,
        "anchor_source": "start",
        "status": "open",
        "started_by": "auto",
        "shared_with_person": false,
        "can_share": false,
        "started_at": "2026-10-04T10:00:00.000Z",
        "completed_at": null,
        "cancelled_at": null,
        "progress": null,
        "access": "assigned",
        "can_cancel": false,
        "tasks": [
          {
            "id": "t1",
            "title": "Prepare the employment contract",
            "description": "Send it for signature before the first day.",
            "link_url": null,
            "assignee": {
              "type": "manager",
              "person": {
                "id": "p1",
                "name": "Ana Ferreira",
                "title": "CEO",
                "photo_url": null
              }
            },
            "manager_missing": false,
            "offset_days": -10,
            "due_date": "2026-10-10",
            "visible_from": null,
            "status": "done",
            "resolved_at": "2026-10-04T10:00:00.000Z",
            "resolved_by": {
              "id": "p1",
              "name": "Ana Ferreira",
              "title": "CEO",
              "photo_url": null
            },
            "skip_reason": null,
            "comments": [
              {
                "id": "c1",
                "author": {
                  "id": "p1",
                  "name": "Ana Ferreira",
                  "title": "CEO",
                  "photo_url": null
                },
                "text": "Sent for signature",
                "at": "2026-10-04T10:00:00.000Z"
              }
            ],
            "can": {
              "tick": true,
              "skip": true,
              "reassign": true,
              "comment": true
            }
          }
        ]
      }
    ]
  }
}

List checklist tasks#

POST/v1/org/checklists.tasks.listRead

Lists checklist tasks across people, soonest due first. scope: mine (default: tasks assigned to you, plus HR tasks if you are an owner, admin or HR), team (every task on the checklists of people who report to you, directly or further down) or all (owners, admins and HR only). status: open (default) or all (adds done and skipped tasks of running and completed checklists). due_by (YYYY-MM-DD): only tasks due on or before it, e.g. today for what is due or overdue. Each item carries its checklist (run) and the person it is about.

Who can call it
Manage key any Manage role
Me key anyone
MCP tool
org_checklists_tasks_list on HR Assistant, My Workplace
Method
POST with a JSON body, or GET with the input as query parameters

Input

  • scope"mine" | "team" | "all"
  • status"open" | "all"
  • due_bystring

Returns

  • todaystringrequired
  • tasksobject[]required
    17 fields
    • idstringrequired
    • titlestringrequired
    • descriptionstring | nullrequired
    • link_urlstring | nullrequired
    • assigneeobjectrequired
      2 fields
      • type"hr" | "manager" | "person" | "member"required
      • personobject | nullrequired
        4 fields
        • idstringrequired
        • namestringrequired
        • titlestring | nullrequired
        • photo_urlstring | nullrequired
    • manager_missingbooleanrequired
    • offset_daysintegerrequired
    • due_datestringrequired
    • visible_fromstring | nullrequired
    • status"open" | "done" | "skipped"required
    • resolved_atstring | nullrequired
    • resolved_byobject | nullrequired
      4 fields
      • idstringrequired
      • namestringrequired
      • titlestring | nullrequired
      • photo_urlstring | nullrequired
    • skip_reasonstring | nullrequired
    • commentsobject[]required
      4 fields
      • idstringrequired
      • authorobject | nullrequired
        4 fields
        • idstringrequired
        • namestringrequired
        • titlestring | nullrequired
        • photo_urlstring | nullrequired
      • textstringrequired
      • atstringrequired
    • canobjectrequired
      4 fields
      • tickbooleanrequired
      • skipbooleanrequired
      • reassignbooleanrequired
      • commentbooleanrequired
    • runobjectrequired
      5 fields
      • idstringrequired
      • namestringrequired
      • kind"onboarding" | "offboarding" | "custom"required
      • status"open" | "completed" | "cancelled"required
      • anchor_datestring | nullrequired
    • personobjectrequired
      4 fields
      • idstringrequired
      • namestringrequired
      • titlestring | nullrequired
      • photo_urlstring | nullrequired

Errors

validation_failed unauthenticated forbidden not_found rate_limited internal

curl
curl https://api.bizisy.com/v1/org/checklists.tasks.list \
  -H "Authorization: Bearer $BIZISY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"scope":"team","status":"all","due_by":"2026-10-11"}'
Response
{
  "data": {
    "today": "2026-10-04",
    "tasks": [
      {
        "id": "t1",
        "title": "Prepare the employment contract",
        "description": "Send it for signature before the first day.",
        "link_url": null,
        "assignee": {
          "type": "manager",
          "person": {
            "id": "p1",
            "name": "Ana Ferreira",
            "title": "CEO",
            "photo_url": null
          }
        },
        "manager_missing": false,
        "offset_days": -10,
        "due_date": "2026-10-10",
        "visible_from": null,
        "status": "done",
        "resolved_at": "2026-10-04T10:00:00.000Z",
        "resolved_by": {
          "id": "p1",
          "name": "Ana Ferreira",
          "title": "CEO",
          "photo_url": null
        },
        "skip_reason": null,
        "comments": [
          {
            "id": "c1",
            "author": {
              "id": "p1",
              "name": "Ana Ferreira",
              "title": "CEO",
              "photo_url": null
            },
            "text": "Sent for signature",
            "at": "2026-10-04T10:00:00.000Z"
          }
        ],
        "can": {
          "tick": true,
          "skip": true,
          "reassign": true,
          "comment": true
        },
        "run": {
          "id": "r1",
          "name": "Onboarding",
          "kind": "onboarding",
          "status": "open",
          "anchor_date": "2026-10-20"
        },
        "person": {
          "id": "p2",
          "name": "Rui Costa",
          "title": "CTO",
          "photo_url": "https://acme.bizisy.com/api/photos/people/p2?v=01k0000000000000000000000b"
        }
      }
    ]
  }
}

Tick, untick or skip a checklist task#

POST/v1/org/checklists.tasks.set_statusWrite

Sets a task’s status: done (tick), open (untick or undo a skip) or skipped (with a reason, up to 200 characters, e.g. "Already has a laptop"). The checklist completes by itself when no task is open, and reopens when one is unticked. The assignee (and HR for HR tasks) can tick and untick; skipping, and undoing a skip, is for owners, admins, HR and the person’s managers. Cancelled checklists cannot change. Use run_id and task_id from org_checklists_tasks_list or org_checklists_runs_list.

Who can call it
Manage key any Manage role
Me key anyone
MCP tool
org_checklists_tasks_set_status on HR Assistant, My Workplace
Preview
?dry_run=true runs every check and saves nothing
Retries
An Idempotency-Key prevents a second run, but the result is never stored (it holds a secret or personal data): a retry gets a 409 that points to Activity

Input

  • run_idstringrequired

    1–100 characters.

  • task_idstringrequired

    1–100 characters.

  • status"open" | "done" | "skipped"required
  • reasonstring

    1–200 characters.

Returns

17 fields
  • idstringrequired
  • titlestringrequired
  • descriptionstring | nullrequired
  • link_urlstring | nullrequired
  • assigneeobjectrequired
    2 fields
    • type"hr" | "manager" | "person" | "member"required
    • personobject | nullrequired
      4 fields
      • idstringrequired
      • namestringrequired
      • titlestring | nullrequired
      • photo_urlstring | nullrequired
  • manager_missingbooleanrequired
  • offset_daysintegerrequired
  • due_datestringrequired
  • visible_fromstring | nullrequired
  • status"open" | "done" | "skipped"required
  • resolved_atstring | nullrequired
  • resolved_byobject | nullrequired
    4 fields
    • idstringrequired
    • namestringrequired
    • titlestring | nullrequired
    • photo_urlstring | nullrequired
  • skip_reasonstring | nullrequired
  • commentsobject[]required
    4 fields
    • idstringrequired
    • authorobject | nullrequired
      4 fields
      • idstringrequired
      • namestringrequired
      • titlestring | nullrequired
      • photo_urlstring | nullrequired
    • textstringrequired
    • atstringrequired
  • canobjectrequired
    4 fields
    • tickbooleanrequired
    • skipbooleanrequired
    • reassignbooleanrequired
    • commentbooleanrequired
  • runobjectrequired
    5 fields
    • idstringrequired
    • namestringrequired
    • kind"onboarding" | "offboarding" | "custom"required
    • status"open" | "completed" | "cancelled"required
    • anchor_datestring | nullrequired
  • personobjectrequired
    4 fields
    • idstringrequired
    • namestringrequired
    • titlestring | nullrequired
    • photo_urlstring | nullrequired

Errors

validation_failed unauthenticated forbidden not_found conflict rate_limited internal

curl
curl https://api.bizisy.com/v1/org/checklists.tasks.set_status \
  -H "Authorization: Bearer $BIZISY_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{
  "run_id": "r1",
  "task_id": "t1",
  "status": "skipped",
  "reason": "Already has a laptop"
}'
Response
{
  "data": {
    "id": "t1",
    "title": "Prepare the employment contract",
    "description": "Send it for signature before the first day.",
    "link_url": null,
    "assignee": {
      "type": "manager",
      "person": {
        "id": "p1",
        "name": "Ana Ferreira",
        "title": "CEO",
        "photo_url": null
      }
    },
    "manager_missing": false,
    "offset_days": -10,
    "due_date": "2026-10-10",
    "visible_from": null,
    "status": "skipped",
    "resolved_at": "2026-10-04T10:00:00.000Z",
    "resolved_by": {
      "id": "p1",
      "name": "Ana Ferreira",
      "title": "CEO",
      "photo_url": null
    },
    "skip_reason": null,
    "comments": [
      {
        "id": "c1",
        "author": {
          "id": "p1",
          "name": "Ana Ferreira",
          "title": "CEO",
          "photo_url": null
        },
        "text": "Sent for signature",
        "at": "2026-10-04T10:00:00.000Z"
      }
    ],
    "can": {
      "tick": true,
      "skip": true,
      "reassign": true,
      "comment": true
    },
    "run": {
      "id": "r1",
      "name": "Onboarding",
      "kind": "onboarding",
      "status": "open",
      "anchor_date": "2026-10-20"
    },
    "person": {
      "id": "p2",
      "name": "Rui Costa",
      "title": "CTO",
      "photo_url": "https://acme.bizisy.com/api/photos/people/p2?v=01k0000000000000000000000b"
    }
  }
}

Reassign a checklist task#

POST/v1/org/checklists.tasks.reassignWrite

Gives a task to someone else: assignee {type: hr} (any owner, admin or HR member), {type: manager} (the person’s manager today), {type: person} (the person the checklist is about) or {type: member, person_id} (any current employee; they will see this task and whom it is about). Owners, admins, HR and the person’s managers. Cancelled checklists cannot change.

Who can call it
Manage key any Manage role
Me key anyone
MCP tool
org_checklists_tasks_reassign on HR Assistant, My Workplace
Preview
?dry_run=true runs every check and saves nothing
Retries
An Idempotency-Key prevents a second run, but the result is never stored (it holds a secret or personal data): a retry gets a 409 that points to Activity

Input

  • run_idstringrequired

    1–100 characters.

  • task_idstringrequired

    1–100 characters.

  • assigneeobjectrequired
    2 fields
    • type"hr" | "manager" | "person" | "member"required
    • person_idstring

      1–100 characters.

Returns

17 fields
  • idstringrequired
  • titlestringrequired
  • descriptionstring | nullrequired
  • link_urlstring | nullrequired
  • assigneeobjectrequired
    2 fields
    • type"hr" | "manager" | "person" | "member"required
    • personobject | nullrequired
      4 fields
      • idstringrequired
      • namestringrequired
      • titlestring | nullrequired
      • photo_urlstring | nullrequired
  • manager_missingbooleanrequired
  • offset_daysintegerrequired
  • due_datestringrequired
  • visible_fromstring | nullrequired
  • status"open" | "done" | "skipped"required
  • resolved_atstring | nullrequired
  • resolved_byobject | nullrequired
    4 fields
    • idstringrequired
    • namestringrequired
    • titlestring | nullrequired
    • photo_urlstring | nullrequired
  • skip_reasonstring | nullrequired
  • commentsobject[]required
    4 fields
    • idstringrequired
    • authorobject | nullrequired
      4 fields
      • idstringrequired
      • namestringrequired
      • titlestring | nullrequired
      • photo_urlstring | nullrequired
    • textstringrequired
    • atstringrequired
  • canobjectrequired
    4 fields
    • tickbooleanrequired
    • skipbooleanrequired
    • reassignbooleanrequired
    • commentbooleanrequired
  • runobjectrequired
    5 fields
    • idstringrequired
    • namestringrequired
    • kind"onboarding" | "offboarding" | "custom"required
    • status"open" | "completed" | "cancelled"required
    • anchor_datestring | nullrequired
  • personobjectrequired
    4 fields
    • idstringrequired
    • namestringrequired
    • titlestring | nullrequired
    • photo_urlstring | nullrequired

Errors

validation_failed unauthenticated forbidden not_found conflict rate_limited internal

curl
curl https://api.bizisy.com/v1/org/checklists.tasks.reassign \
  -H "Authorization: Bearer $BIZISY_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{
  "run_id": "r1",
  "task_id": "t1",
  "assignee": {
    "type": "member",
    "person_id": "p1"
  }
}'
Response
{
  "data": {
    "id": "t1",
    "title": "Prepare the employment contract",
    "description": "Send it for signature before the first day.",
    "link_url": null,
    "assignee": {
      "type": "manager",
      "person": {
        "id": "p1",
        "name": "Ana Ferreira",
        "title": "CEO",
        "photo_url": null
      }
    },
    "manager_missing": false,
    "offset_days": -10,
    "due_date": "2026-10-10",
    "visible_from": null,
    "status": "done",
    "resolved_at": "2026-10-04T10:00:00.000Z",
    "resolved_by": {
      "id": "p1",
      "name": "Ana Ferreira",
      "title": "CEO",
      "photo_url": null
    },
    "skip_reason": null,
    "comments": [
      {
        "id": "c1",
        "author": {
          "id": "p1",
          "name": "Ana Ferreira",
          "title": "CEO",
          "photo_url": null
        },
        "text": "Sent for signature",
        "at": "2026-10-04T10:00:00.000Z"
      }
    ],
    "can": {
      "tick": true,
      "skip": true,
      "reassign": true,
      "comment": true
    },
    "run": {
      "id": "r1",
      "name": "Onboarding",
      "kind": "onboarding",
      "status": "open",
      "anchor_date": "2026-10-20"
    },
    "person": {
      "id": "p2",
      "name": "Rui Costa",
      "title": "CTO",
      "photo_url": "https://acme.bizisy.com/api/photos/people/p2?v=01k0000000000000000000000b"
    }
  }
}

Comment on a checklist task#

POST/v1/org/checklists.tasks.commentWrite

Adds a comment (up to 1000 characters) to a task, e.g. "Laptop ordered, arrives Tuesday". Everyone who sees the task sees its comments, with your name and the time. At most 50 comments per task; comments cannot be edited. The assignee, owners, admins, HR and the person’s managers can comment. Do not put health or other sensitive details in comments.

Who can call it
Manage key any Manage role
Me key anyone
MCP tool
org_checklists_tasks_comment on HR Assistant, My Workplace
Preview
?dry_run=true runs every check and saves nothing
Retries
An Idempotency-Key prevents a second run, but the result is never stored (it holds a secret or personal data): a retry gets a 409 that points to Activity

Input

  • run_idstringrequired

    1–100 characters.

  • task_idstringrequired

    1–100 characters.

  • textstringrequired

    1–1000 characters.

Returns

17 fields
  • idstringrequired
  • titlestringrequired
  • descriptionstring | nullrequired
  • link_urlstring | nullrequired
  • assigneeobjectrequired
    2 fields
    • type"hr" | "manager" | "person" | "member"required
    • personobject | nullrequired
      4 fields
      • idstringrequired
      • namestringrequired
      • titlestring | nullrequired
      • photo_urlstring | nullrequired
  • manager_missingbooleanrequired
  • offset_daysintegerrequired
  • due_datestringrequired
  • visible_fromstring | nullrequired
  • status"open" | "done" | "skipped"required
  • resolved_atstring | nullrequired
  • resolved_byobject | nullrequired
    4 fields
    • idstringrequired
    • namestringrequired
    • titlestring | nullrequired
    • photo_urlstring | nullrequired
  • skip_reasonstring | nullrequired
  • commentsobject[]required
    4 fields
    • idstringrequired
    • authorobject | nullrequired
      4 fields
      • idstringrequired
      • namestringrequired
      • titlestring | nullrequired
      • photo_urlstring | nullrequired
    • textstringrequired
    • atstringrequired
  • canobjectrequired
    4 fields
    • tickbooleanrequired
    • skipbooleanrequired
    • reassignbooleanrequired
    • commentbooleanrequired
  • runobjectrequired
    5 fields
    • idstringrequired
    • namestringrequired
    • kind"onboarding" | "offboarding" | "custom"required
    • status"open" | "completed" | "cancelled"required
    • anchor_datestring | nullrequired
  • personobjectrequired
    4 fields
    • idstringrequired
    • namestringrequired
    • titlestring | nullrequired
    • photo_urlstring | nullrequired

Errors

validation_failed unauthenticated forbidden not_found conflict rate_limited internal

curl
curl https://api.bizisy.com/v1/org/checklists.tasks.comment \
  -H "Authorization: Bearer $BIZISY_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"run_id":"r1","task_id":"t1","text":"Laptop ordered"}'
Response
{
  "data": {
    "id": "t1",
    "title": "Prepare the employment contract",
    "description": "Send it for signature before the first day.",
    "link_url": null,
    "assignee": {
      "type": "manager",
      "person": {
        "id": "p1",
        "name": "Ana Ferreira",
        "title": "CEO",
        "photo_url": null
      }
    },
    "manager_missing": false,
    "offset_days": -10,
    "due_date": "2026-10-10",
    "visible_from": null,
    "status": "done",
    "resolved_at": "2026-10-04T10:00:00.000Z",
    "resolved_by": {
      "id": "p1",
      "name": "Ana Ferreira",
      "title": "CEO",
      "photo_url": null
    },
    "skip_reason": null,
    "comments": [
      {
        "id": "c1",
        "author": {
          "id": "p1",
          "name": "Ana Ferreira",
          "title": "CEO",
          "photo_url": null
        },
        "text": "Sent for signature",
        "at": "2026-10-04T10:00:00.000Z"
      }
    ],
    "can": {
      "tick": true,
      "skip": true,
      "reassign": true,
      "comment": true
    },
    "run": {
      "id": "r1",
      "name": "Onboarding",
      "kind": "onboarding",
      "status": "open",
      "anchor_date": "2026-10-20"
    },
    "person": {
      "id": "p2",
      "name": "Rui Costa",
      "title": "CTO",
      "photo_url": "https://acme.bizisy.com/api/photos/people/p2?v=01k0000000000000000000000b"
    }
  }
}

Get checklist settings#

POST/v1/org/checklists.settings.getRead

Returns the checklist settings: email_tasks (default true) — whether the daily reminder email tells each assignee about their checklist tasks on the due date and then once a week while they stay open. Owners, admins and HR.

Who can call it
Manage key owner admin hr
MCP tool
org_checklists_settings_get on HR Assistant
Method
POST with a JSON body, or GET with the input as query parameters

Input

No input: send {}.

Returns

  • email_tasksbooleanrequired
  • updated_atstring | nullrequired

Errors

validation_failed unauthenticated forbidden not_found rate_limited internal

curl
curl https://api.bizisy.com/v1/org/checklists.settings.get \
  -H "Authorization: Bearer $BIZISY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'
Response
{
  "data": {
    "email_tasks": true,
    "updated_at": null
  }
}

Change checklist settings#

POST/v1/org/checklists.settings.updateWrite

Turns the checklist task emails on or off (email_tasks). On: the daily reminder email lists each assignee’s due and overdue checklist tasks (on the due date, then once a week while open); HR tasks go to every owner, admin and HR member. Applies from the next daily run. Owners, admins and HR.

Who can call it
Manage key owner admin hr
MCP tool
org_checklists_settings_update on HR Assistant
Preview
?dry_run=true runs every check and saves nothing
Retries
An Idempotency-Key replays the first result

Input

  • email_tasksbooleanrequired

Returns

  • email_tasksbooleanrequired
  • updated_atstring | nullrequired

Errors

validation_failed unauthenticated forbidden not_found conflict rate_limited internal

curl
curl https://api.bizisy.com/v1/org/checklists.settings.update \
  -H "Authorization: Bearer $BIZISY_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"email_tasks":false}'
Response
{
  "data": {
    "email_tasks": false,
    "updated_at": "2026-10-04T10:00:00.000Z"
  }
}

Something missing or wrong on this page? Write to hello@bizisy.com.

Developer docs