Webhooks in absentify allow you to call a script on your server whenever specific events occur in the absentify system. Acting as event listeners or push notifications, webhooks let you build integrations that respond to certain events, such as creating or updating requests, or managing users. When a subscribed event is triggered, absentify sends an HTTP POST request with relevant data to the specified webhook URL. This enables you to update external systems, send alerts, or automate actions based on changes in absentify.

Configuring webhooks

To set up webhooks, go to the Settings page in absentify.

  1. Log in and navigate to integrations
    Log in as an administrator, then click on Settings in the header, and select Integrations.

  2. Set the webhook URL
    Click on Configure URL and enter the URL where you want to receive event data.

  3. Choose event type
    From the dropdown menu, select the event type you want to subscribe to:

    • All Events
    • Request Created
    • Request Status Changed
    • User Created
    • User Updated
  4. Save the configuration
    Click Add to complete the integration and start receiving notifications for the selected event types.

Webhook payload structure

When absentify triggers a webhook, it sends a JSON payload. The structure depends on the event type, with the event_type field indicating the specific event that triggered the webhook:

Request events (Request Created, Request Status Changed)

{
   "event_type": "request_created",
   "body": {
      "id": "a2032774-7d41-4820-8858-0e0ec37e64d3",
      "request_creator_member": {
         "email": "sample@user.com",
         "name": "Sample User",
         "id": "c67c0681-db0b-4bc5-8759-020643f618b0",
         "custom_id": ""
      },
      "createdAt": "2023-02-10T21:29:32.774Z",
      "updatedAt": "2023-02-10T21:29:32.772Z",
      "start": "2023-02-13T00:00:00.000Z",
      "start_at": "afternoon",
      "end": "2023-02-13T00:00:00.000Z",
      "end_at": "end_of_day",
      "duration": 0.5,
      "year": 2023,
      "details": {
         "status": "APPROVED",
         "deducted": 0.5,
         "reason": "",
         "approval_process": "Linear_all_have_to_agree",
         "request_approvers": [
            {
               "id": 283860,
               "approver_member": {
                  "email": "sample@user.com",
                  "name": "Sample User",
                  "id": "c67c0681-db0b-4bc5-8759-020643f618b0",
                  "custom_id": ""
               },
               "reason": null,
               "status": "APPROVED",
               "status_change_date": null,
               "predecessor_request_approver_id": null
            }
         ],
         "requester_member": {
            "email": "sample@user.com",
            "name": "Sample User",
            "id": "c67c0681-db0b-4bc5-8759-020643f618b0",
            "custom_id": "",
            "allowances": [
               {
                  "allowance": 30,
                  "brought_forward": 10.5,
                  "compensatory_time_off": 0,
                  "remaining": 38.5,
                  "taken": 2,
                  "year": 2023
               }
            ]
         },
         "leave_type": {
            "id": "b9362b30-251d-4ba8-929b-181d9afcc924",
            "name": "Holiday"
         }
      }
   }
}

User events (User Created, User Updated)

{
  "event_type": "user_updated",
  "body": {
    "id": "56a3e990-1f05-47e9-ab6f-736dc650b61c",
    "email": "test@example.onmicrosoft.com",
    "name": "Sample User",
    "custom_id": null,
    "status": "ARCHIVED",
    "is_admin": false,
    "has_billing_access": false,
    "employment_start_date": null,
    "employment_end_date": "2025-07-03T00:00:00.000Z",
    "birthday": null,
    "created_at": "2025-07-03T09:51:13.642Z",
    "updated_at": "2025-07-03T11:50:33.693Z",
    "public_holiday": {
      "id": "50fbba3a-09bf-4f72-a924-ef263d054181",
      "name": "Germany - Brandenburg"
    },
    "departments": [
      {
        "id": "95638266-ef05-4fd2-9cc7-46dcfa0ebe8b",
        "name": "Sample Department"
      }
    ]
  }
}

Key fields in user events:

  • event_type: The specific event that triggered the webhook (user_created or user_updated)
  • body.id: Unique identifier for the user
  • body.status: Current status of the user (e.g., ACTIVE, ARCHIVED)
  • body.is_admin: Whether the user has administrative privileges
  • body.has_billing_access: Whether the user has access to billing information
  • body.employment_start_date/body.employment_end_date: Employment period dates
  • body.public_holiday: The public holiday configuration assigned to the user
  • body.departments: Array of departments the user belongs to

Event types

  • Request Created: Triggered when a new absence request is created
  • Request Status Changed: Triggered when the status of an absence request changes (e.g., approved, denied, pending)
  • User Created: Triggered when a new user is added to the system
  • User Updated: Triggered when user information is modified (e.g., profile updates, role changes)

Use these payloads to synchronize with other systems or trigger automated workflows based on request and user information in absentify.