Back to Documentation

Dynamic Webhook

Extract specific fields from your webhook payload to use as the notification title, body, or link. Field matching is case-insensitive and handles spaces, underscores, and hyphens interchangeably.

Endpoint

POST https://thenotification.app/api/webhook/dynamic/

Query Parameters

ParameterRequiredDescription
app_keyYesYour application API key
titleNoField name to extract as notification title
bodyNoField name to extract as notification body
urlNoField name to extract as clickable link
excludeNoComma-separated field names to exclude from body

GitHub Pull Request Example

# GitHub webhook URL with field extraction:
https://thenotification.app/api/webhook/dynamic/?app_key=YOUR_API_KEY&title=action&url=html_url&exclude=sender,repository

# When GitHub sends:
{
  "action": "opened",
  "html_url": "https://github.com/user/repo/pull/1",
  "sender": { ... },
  "repository": { ... },
  "pull_request": {
    "title": "Add new feature",
    "body": "This PR adds..."
  }
}

# You receive a notification with:
# Title: "opened"
# Body: Pull Request: Title: Add new feature, Body: This PR adds...
# Tap to open: https://github.com/user/repo/pull/1

Field Matching

Field names are matched case-insensitively with flexible formatting. For example, deployment_url will match Deployment Url, deployment-url, or DeploymentUrl.

Response

{
  "success": true,
  "message": "Notification sent to 1 device(s)",
  "devices_sent": 1,
  "failed_count": 0,
  "extracted": {
    "title": "opened",
    "body_length": 156,
    "has_link": true
  }
}

Notification Format

JSON payloads are automatically formatted into clean, readable text:

  • Removes JSON syntax (braces, brackets, quotes)
  • Converts keys to Title Case
  • Formats nested objects with indentation
  • Displays arrays as bulleted lists

Use Cases

GitHub Events

Track pushes, pull requests, and issues

Custom Automations

Any service that sends webhooks with specific fields