Webhooks & Integrations

What are Webhooks?

Webhooks allow Finitu to send real-time notifications to external services when events occur. This enables integration with tools like Slack, Microsoft Teams, or custom applications.

  • Receive instant notifications when tasks are created, assigned, or completed
  • Track project status changes in real-time
  • Monitor time tracking check-ins and check-outs
  • Get notified when checklists are completed

Available Events

Task Events

task.created
task.assigned
task.status_changed
task.completed
task.comment_added

Project Events

project.status_changed

Time Tracking Events

time_entry.check_in
time_entry.check_out

Checklist Events

list.completed

Integration Types

Standard
Raw JSON

Sends raw JSON payloads with HMAC-SHA256 signature verification. Ideal for custom integrations and automation platforms.

Slack
Native Integration

Automatically formats messages using Slack Block Kit with color-coded event types, priority badges, and formatted links. No external middleware required.

Microsoft Teams
Native Integration

Automatically formats messages using Microsoft Adaptive Cards with color-coded headers, priority badges, and structured fact sets. Posts directly to Teams channels.

Slack Integration Guide

Step 1: Create a Slack Incoming Webhook

  1. Go to api.slack.com/apps
  2. Create a new app or select an existing one
  3. Navigate to "Incoming Webhooks" and enable them
  4. Click "Add New Webhook to Workspace"
  5. Select the channel where you want notifications
  6. Copy the Webhook URL (starts with https://hooks.slack.com/)

Step 2: Configure in Finitu

  1. Navigate to Admin → Webhooks
  2. Click
    Add Webhook
  3. Enter a name (e.g., "Slack - Task Notifications")
  4. Select
    Slack
    as the integration type
  5. Paste your Slack Incoming Webhook URL
  6. Select the events you want to receive
  7. Optionally add filters for specific projects or users
  8. Click
    Create

Message Formatting

Slack messages are automatically formatted with:

  • Blue accent for new tasks
  • Yellow accent for assignments
  • Purple accent for status changes
  • Green accent for completions
  • Priority badges (🔴 Urgent, 🟠 High, 🔵 Medium, ⚪ Low)
  • Formatted timestamps and user mentions

Microsoft Teams Integration Guide

Step 1: Create a Teams Incoming Webhook

  1. Open Microsoft Teams and go to your desired channel
  2. Click the channel name, then select "Manage channel"
  3. Go to "Connectors" (or "Apps") and search for "Incoming Webhook"
  4. Click "Add" or "Configure" on Incoming Webhook
  5. Name it (e.g., "Finitu Notifications") and optionally upload an icon
  6. Click "Create" and copy the webhook URL

Step 2: Configure in Finitu

  1. Navigate to Admin → Webhooks
  2. Click
    Add Webhook
  3. Enter a name (e.g., "Teams - Task Notifications")
  4. Select
    Microsoft Teams
    as the integration type
  5. Paste your Teams Incoming Webhook URL
  6. Select the events you want to receive
  7. Optionally add filters for specific projects or users
  8. Click
    Create

Message Formatting

Teams messages are automatically formatted as Adaptive Cards with:

  • Color-coded headers for each event type
  • Structured fact sets with key details (assignee, status, due date)
  • Priority badges (🔴 Urgent, 🟠 High, 🟡 Medium, 🟢 Low)
  • Formatted timestamps and Finitu branding footer
  • Task descriptions and completion notes when available

Webhook Filters

Reduce noise by filtering which events trigger webhooks:

  • Projects: Only receive events from specific projects
  • Users: Only receive events involving specific users
  • Task Status: Filter by task status (e.g., only "Completed" status)
  • Priority: Filter by priority level (e.g., only "Urgent" and "High")

Security & Verification

Standard webhooks include HMAC-SHA256 signature verification:

  • Each webhook has a unique secret key
  • Payloads are signed with the X-Webhook-Signature header
  • Verify signatures to ensure requests are from Finitu
  • Failed deliveries are retried 3 times (1s, 5s, 30s delays)
  • View delivery logs and debug failed webhooks in the admin panel

// Node.js signature verification example
const crypto = require('crypto');
const signature = crypto.createHmac('sha256', secret)
  .update(JSON.stringify(payload)).digest('hex');
const isValid = signature === receivedSignature;

Common Scenarios

Scenario 1

Getting Slack Alerts for Urgent Tasks Only

Your team uses Slack and only wants to be notified about high-priority work.

  1. Create a Slack Incoming Webhook pointed at your desired channel.
  2. In Finitu, navigate to Admin → Webhooks and add a new webhook.
  3. Select 'Slack' as the integration type and paste the webhook URL.
  4. Choose events: 'task.created' and 'task.assigned'.
  5. Add a priority filter for 'Urgent' and 'High' only — your channel stays focused.
Scenario 2

Sending Task Completions to a Custom Dashboard

You have an internal reporting tool that needs to receive task completion data.

  1. Set up an API endpoint on your reporting tool to receive POST requests.
  2. In Finitu, create a new webhook with 'Standard' (Raw JSON) type.
  3. Enter your endpoint URL and copy the generated signing secret.
  4. Select 'task.completed' and 'list.completed' events.
  5. Implement HMAC signature verification on your endpoint for security.
Scenario 3

Setting Up Microsoft Teams Notifications for a Specific Project

A project team wants Teams notifications only for their project's activity.

  1. Create a Teams Incoming Webhook in the project team's channel.
  2. In Finitu, add a new webhook with 'Microsoft Teams' type.
  3. Paste the Teams webhook URL.
  4. Select all relevant events (task created, assigned, completed, etc.).
  5. Add a project filter to only send events from the specific project.

Need more help? Contact us at support@finitu.app