Triggering External Activity Workflows with Webhooks
Audience: Technical Builders, Integrators, and Developers
Purpose: Explains how to use webhooks to trigger external workflows in response to completed or logged activities.
Overview
Webhooks notify external systems when Activities are logged. These notifications allow external systems to react in real time to changes in Kizen. Webhooks are configured per Activity Object, not globally. This allows you to control which Activities send webhook notifications and where those notifications are delivered.
Webhooks can be used for Activities to:
Send notifications when an Activity is logged.
Retrieve a full Record with a Logged Activity ID.
Provide necessary context to trigger downstream workflows in external systems
When to use Webhooks for Activities
Use webhooks when external systems need to respond immediately to work that has occurred in Kizen.
Webhooks are event-driven and designed for near real-time integrations. Typical scenarios include:
Triggering external workflows when an Activity is logged
Synchronizing Activity history with external CRMs
Sending real-time notifications to messaging or collaboration tools
Reacting to Activity completion without polling the API
How Webhooks Work with Activities
Webhooks fire when a Logged Activity is created.
Each Activity Object includes a Default Submission Action, which determines what happens when an Activity of that type is submitted. You can configure the Activity Object to:
Redirect the user after logging an Activity, or
Trigger a webhook when the Activity is logged
When set to Trigger Webhook, Kizen sends a webhook request to the configured URL every time an Activity of that type is logged.
Event Type
Kizen currently supports a single webhook event for an activity:
activity.logged
Fired when a Logged Activity is created
Additional webhook events for Scheduled or Logged Activities may be added in the future. Automation triggers are currently available for Scheduled Activity Overdue events.
About Configuration
Webhooks are configured on the Activity Object.
For each Activity Object, you can:
Set the Default Submission Action to
trigger_webhookDefine the webhook URL that receives notifications for that Activity type
Subscribe to Activity webhook notifications.
Webhook configuration are configured on the Activity Object and applies only to Activities logged using that type.
For more details, see:
Webhook Delivery Behavior
Webhooks are delivered as HTTP requests to the URL configured on the object.
Delivery details:
Method: GET
Content type: JSON (
application/json)Trigger frequency: One request per logged activity
Delivery timing: Near real time, but not guaranteed
Delivery model: Asynchronous
If a webhook delivery fails (for example, the endpoint returns a non-2xx response), a failure notification is generated. Webhook deliveries are not automatically retried.
Ordering and reliability considerations Webhook notifications are not guaranteed to arrive in strict chronological order and may occasionally be delayed. Your webhook handler should be designed to tolerate:
Out-of-order delivery
Delayed delivery
Each webhook should be treated as a signal to fetch the authoritative data from the API rather than relying solely on the payload.
Webhook Security and Verification
Webhooks do not currently include request signatures or shared secrets. For this reason, webhook notifications should be treated as event signals only, not as trusted business data.
Each webhook payload includes an identifier, but consumers must retrieve the full activity details through the API using authenticated requests. This ensures permissions are enforced and that processing only occurs for data the consumer is authorized to access.
Because authoritative data is not delivered in the webhook itself, endpoints only need to perform basic structural validation on incoming requests. Additional verification mechanisms may be introduced in future updates.
Operational Considerations
Webhooks are delivered using an at-least-once delivery model. Each webhook corresponds to a single Logged Activity, but deliveries may occur more than once in certain failure scenarios. Consumers should treat webhook handling as idempotent and de-duplicate events using the logged_activity_id.
A webhook delivery is considered successful when the receiving endpoint responds with a 2xx HTTP status code. Webhook endpoints should respond quickly and defer any long-running processing to background jobs.
Webhook requests may evolve over time as additional fields or event types are introduced. Breaking changes will be versioned or communicated through developer documentation updates. Consumers should avoid relying on undocumented fields.
Viewing Logged Activity Details
Webhooks are delivered as HTTP GET requests. The request includes query parameters that identify the Logged Activity so you can retrieve the full record via the Activities API. For more information see: Viewing Logged Activity Details via API
Permissions & Data Access
Webhook notifications reference Logged Activities, but access to full Activity data depends on API permissions.
The Activities API enforces user and role-based access controls when retrieving Activity records. If the requesting integration lacks permission, the API may return an error. Read Activity Permissions for more details.
What's Next?
Once you understand how webhooks work for Activities, you can:
Design your webhook endpoint to safely receive and process Activity events.
Implement idempotent handling to prevent duplicate processing.
Add logging and monitoring to track delivery success and failures.
Extend your integration by linking Activity events to workflows, external systems, or analytics pipelines.
Last updated
Was this helpful?
