Webhooks Overview
Webhooks are a powerful way to receive real-time updates from the Firstup platform without the need for continuous polling. They allow external systems to be notified whenever specific events occur in your Firstup environment, such as new content being published, user profile updates, or engagement actions like likes and comments.
With Firstup’s Webhook API, you can configure webhook subscriptions to automatically send event data to your specified URL whenever a triggering event occurs. This enables seamless integration with external applications, analytics tools, or internal systems that need to react to platform activity in real time.
Why Use Firstup Webhooks?
With Firstup Webhooks, you can:
- Automate content workflows by sharing published posts to external platforms.
- Synchronize user management across multiple systems by capturing profile updates.
- Track engagement metrics in real-time to analyze likes, comments, and shares.
- Integrate with external tools like CRMs, analytics dashboards, or messaging platforms.
By leveraging webhooks, organizations can ensure their communication and engagement strategies are always up to date and responsive.
How Firstup Webhooks Work
Firstup webhooks operate through an event-driven model. When a relevant event occurs (e.g., content is published, a user profile is updated, or engagement actions happen), Firstup sends a POST request containing event details to the designated webhook URL.
Webhook Event Flow
- Create a Webhook Subscription: Register a webhook with Firstup, specifying which events to listen for and providing a target endpoint URL.
- Receive Event Notifications: When the specified event occurs, Firstup sends a structured JSON payload to your endpoint.
- Process and Respond: Your system processes the webhook data and executes relevant actions, such as updating records, triggering alerts, or syncing data.
- Manage Webhooks: Modify, deactivate, or delete webhooks as needed to maintain control over event processing.
Setting Up a Webhook (Quick start)
To create a webhook in Firstup, provide the following details:
Endpoint
Example Request: Register a Webhook
POST /v2/webhooks/subscriptions
{
"name": "Content Published Webhook",
"url": "https://yourserver.com/webhook-endpoint",
"events": ["content.published"],
"active": true
}
Firstup Attribute | Description |
---|---|
name | A descriptive name for your webhook. |
url | The external system’s endpoint that will receive webhook notifications. |
events | The event type(s) to listen for. |
active | A boolean value that specifies whether the webhook is active. |
Example Webhook Payload: Content Published Event
{
"event": "content.published",
"timestamp": "2025-03-26T14:20:00Z",
"data": {
"contentId": "12345",
"title": "New Company Announcement",
"publishedAt": "2025-03-26T14:19:59Z",
"author": "jane.doe",
"channelId": "67890"
}
}
Your system should parse this payload and handle it accordingly—such as forwarding the content to an external platform or storing it in an internal database.
Click here for a detailed look at creating a subscription.
Authentication
All webhook events sent by Firstup include an optional Authorization header if specified during webhook registration.
Use this header to verify the authenticity of incoming requests.
Delivery and Retry Behavior
Webhooks are delivered via HTTPS POST requests.
A successful delivery is determined by an HTTP status code in the 2xx range.
Failed deliveries (non-2xx responses) will be retried:
- Up to 5 times
- With exponential backoff delays
To ensure delivery, your endpoint must respond within 5 seconds.
Validating Webhook Requests
If your webhook subscription includes an Authorization header (e.g., Bearer YOUR_SECRET), validate incoming requests by comparing the Authorization value against your expected token. This ensures that only authorized calls from Firstup are accepted.
Optionally, you may use HMAC signatures or request signing for more advanced validation.
Example Webhook Request with Headers
POST /webhook-endpoint HTTP/1.1
Host: yourserver.com
Content-Type: application/json
Authorization: Bearer secret-token
User-Agent: Firstup-Webhook/1.0
{
"event": "content_published",
"content_id": "abc123",
"channel_id": "newsroom"
}
Testing Webhooks
To verify integration, Firstup allows sending ping events to confirm connectivity and signature validation.
Example:
{
"event": "ping",
"timestamp": "2025-06-27T18:00:00Z"
}
Security Considerations
To ensure webhook security:
- Use HTTPS endpoints to protect data transmission.
- Implement signature validation to verify webhook authenticity.
- Use rate limiting to prevent overloading your system with webhook requests.
Pagination for Webhook Subscriptions
Webhook subscription listings use cursor-based pagination, which is ideal for retrieving large or dynamic result sets efficiently and reliably.
When you request a list of webhook subscriptions:
GET /v2/webhooks/subscriptions
The response includes a meta.pagination
object that contains the current cursor
and the next value (used to fetch the next page):
{
"data": [ ... ],
"meta": {
"pagination": {
"cursor": "cursor123",
"next": "cursor456",
"page_size": 25
}
}
}
To retrieve the next page, pass the cursor
value from meta.pagination.next
in your next request:
GET /v2/webhooks/subscriptions?cursor=cursor456
You can also specify a custom page size:
GET /v2/webhooks/subscriptions?cursor=cursor456&page.size=50
Always use the next
cursor returned by the previous response. Avoid hardcoding or reusing old cursor values, as results may change over time.
Example Flow
Initial request:
GET /v2/webhooks/subscriptions?page.size=25
Response includes:
{
"meta": {
"pagination": {
"cursor": "abc123",
"next": "def456",
"page_size": 25
}
}
}
Request next page:
GET /v2/webhooks/subscriptions?cursor=def456&page.size=25
Repeat this. Continue using the next
value from each response until it is omitted or null.
Managing Webhooks
GET /v2/webhooks/subsciptions
Get a list of all registered webhooks.
GET /v2/webhooks/subscriptions/{subscriptionId}
View details of a specific webhook.
PUT /v2/webhooks/subscriptions/{subscriptionId}
Update webhook configurations (e.g., change the target URL).
DELETE /v2/webhooks/subscriptions/{subscriptionId}
Remove a webhook subscription when it is no longer needed.
Example Use Cases
Automated Content Sharing
Set up a webhook to notify your external CMS or intranet whenever new content is published in Firstup.
User Management Syncing
Automatically update your internal HR system when a user’s profile is modified.
Engagement Tracking
Capture likes, comments, or shares in your external analytics platform for deeper insights.
By leveraging Firstup’s webhooks, you can create a more dynamic and responsive ecosystem that extends the reach and impact of your employee communication strategy.