# Staff webhooks

Receive webhook notifications whenever staff members are created, updated, or deleted. Staff webhooks can be used to trigger actions in your application whenever a staff member is changed, for example to provision resources for a new staff member or to keep an external HR system up to date.

## Events[​](#events "Direct link to Events")

| Event           | Description                                               |
| --------------- | --------------------------------------------------------- |
| `staff.created` | Occurs whenever a new staff member is created.            |
| `staff.updated` | Occurs whenever a staff member's information has changed. |
| `staff.deleted` | Occurs whenever a staff member is deleted.                |

## Example Payload[​](#example-payload "Direct link to Example Payload")

We return JSON-formatted content with the following structure.

| Name    | Example content                                                                          | Description                                                |
| ------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------- |
| `id`    | `882a3ceb-319a-4cca-a6e7-65ead0760726`                                                   | UUID of the trigger resource                               |
| `type`  | `staff`                                                                                  | Resource type                                              |
| `event` | `staff.updated`                                                                          | Event that triggered the webhook, lowercase, dot-separated |
| `url`   | `https://app.freispace.com/planning/staff/882a3ceb-319a-4cca-a6e7-65ead0760726/overview` | URL to the updated resource                                |
| `data`  | `{}`                                                                                     | The staff member's information                             |

```
{

  "id": "a2dcb9dc-83e7-4745-9b5c-073e24b1ee30",

  "type": "staff",

  "event": "staff.updated",

  "url": "https://app.freispace.com/staffs/a2dcb9dc-83e7-4745-9b5c-073e24b1ee30/contact",

  "data": {

    "id": "a2dcb9dc-83e7-4745-9b5c-073e24b1ee30",

    "name": "Benny Blend",

    "title": "Editor",

    "number": "P111",

    "cost": 32,

    "cost_unit": "hour", // Cost units may generally be `minute`, `hour`, `day`, `week`, `month`

    "cost_hourly": 32,

    "cost_currency": "EUR",

    "photo_url": "http://assets.app.freispace.io/freispace-public/staff_photos/a2dcb9dc-83e7-4745-9b5c-073e24b1ee30.svg",

    "status": "active",

    "internal": true,

    "timezone": "Europe/Berlin",

    "time_tracking_enabled": false,

    "referenced_user_id": null,

    "vcard": {

      "name": {

        "nick_name": "",

        "first_name": "Benny",

        "last_name": "Blend",

        "additional_name": "",

        "name_prefix": "",

        "name_suffix": ""

      },

      "company": {

        "organization": null,

        "organization_title": "Editor"

      },

      "contact": {

        "email": [

          {

            "type": "WORK",

            "value": "benny.blend@example.com"

          }

        ],

        "phone": [

          {

            "type": "WORK",

            "value": "+49123456780"

          }

        ]

      },

      "additional_fields": null,

      "address": [

        {

          "type": "WORK",

          "pobox": null,

          "address_line_1": null,

          "address_line_2": "Bergstraße 12",

          "address_level_1": "Berlin",

          "address_level_2": null,

          "postal_code": "10115",

          "country": null

        }

      ],

      "note": ""

    },

    "custom_fields": [],

    "global_fields": [],

    "created": "2026-09-29T13:35:47+00:00",

    "updated": "2026-10-05T12:39:18+00:00"

  }

}
```
