---
title: "Multi-Platform Webhook Triggers"
summary: "Starts agent workflows from Slack, Notion, and Jira webhooks, emoji reactions, and schedules, with idempotency and signature checks on each event"
status: "emerging"
category: "Tool Use & Environment"
url: "https://agentic-patterns.com/patterns/multi-platform-webhook-triggers"
source: "https://lethain.com/agents-triggers/"
authors: ["Nikola Balic (@nibzard)"]
tags: ["webhooks","triggers","integrations","slack","notion","jira","scheduled-events","event-driven"]
signals: ["Internal agent platform with many integration points","Teams already work in Slack, Notion, or Jira","Document workflows like RFCs and reviews need automatic routing"]
anti_signals: ["Esoteric one-off integrations where Zapier or n8n is enough","Rapid prototype before a custom build","Non-technical users need self-service automation"]
updated_at: "2026-10-13"
---

# Multi-Platform Webhook Triggers

> Starts agent workflows from Slack, Notion, and Jira webhooks, emoji reactions, and schedules, with idempotency and signature checks on each event

## Use when

- Internal agent platform with many integration points
- Teams already work in Slack, Notion, or Jira
- Document workflows like RFCs and reviews need automatic routing

## Avoid when

- Esoteric one-off integrations where Zapier or n8n is enough
- Rapid prototype before a custom build
- Non-technical users need self-service automation

## Problem

An internal agent only provides value when its workflows are initiated. Building out a library of workflow initialization mechanisms (triggers) is core to agent adoption. Without easy triggers, employees can't effectively automate their day-to-day workflows.

## Solution

Implement **multi-platform webhook triggers** that allow external SaaS tools to initiate agent workflows automatically. This pattern leverages a mature ecosystem of workflow automation platforms: n8n lists 400+ integrations and has over 200,000 GitHub stars (October 2026), and Zapier and Make.com advertise integration counts in the thousands as vendor marketing claims.

**Trigger types implemented:**

1. **Notion webhooks**: Fire on page/database modifications
   - Document status changes (draft → "ready for review")
   - Request for Comment (RFC) workflows
   - Auto-assign reviewers based on topic
   - In-line commenting with suggestions

2. **Slack messages**: Bot responds in channels
   - Public channel responses
   - Private channel support (with careful logging)
   - Channel creation triggers for auto-joining
   - Default prompts for new channels (respond only when mentioned)

3. **Jira webhooks**: Issue lifecycle events
   - Issue creation, updates, comments
   - Custom routing logic for ticket assignment

4. **Slack reacji (emoji reactions)**: Quick workflow initiation
   - Listen for specific emojis in any channel
   - Example: `:jira:` reaction turns thread into ticket
   - Centralized routing instructions

5. **Scheduled events**: Periodic triggers
   - Slack workflows publishing to channels
   - GitHub Actions cron jobs

```pseudo
# Trigger flow
Platform Event → Webhook → Agent Trigger → Workflow Execution
```

## How to use it

**Implementation considerations:**

**Authentication and authorization:**
- OAuth2 tokens + SSL where possible
- Platform-specific security (Slack request verification)
- No authorization tokens for platforms that don't support it

**Reliability patterns:**

The idempotency, replay-protection, and queue details below are generalization added by this catalogue. Larson's article documents the five trigger types and the build-versus-buy reasoning, not these reliability mechanics.

```yaml
# Idempotency - handle duplicate webhook deliveries
idempotency:
  key: "${platform}:${eventType}:${entityId}"
  ttl: 3600  # 1 hour
  behavior: "skip_if_processed"

# Replay protection
replay_protection:
  timestamp_validation: true
  max_age: "5 minutes"
  signature_verification: "HMAC-SHA256"

# Queue-based architecture
queue:
  backend: "redis"
  dead_letter_queue: true
  retry_strategy: "exponential_backoff"
```

**Private channel security:**
```yaml
slack_private_channels:
  auto_join: false  # Don't auto-join private channels
  logging:
    # Critical: Don't log evidence of private channel activity
    exclude_private_channels: true
    # Exfiltrating private messages loses trust instantly
```

**Trigger configuration:**

```yaml
# Notion triggers
notion_triggers:
  - database: "RFC Database"
    event: "page_updated"
    filter: "status.draft → status.ready_for_review"
    workflow: "assign_reviewers"

  - database: "Documentation"
    event: "page_created"
    workflow: "suggest_improvements"

# Slack reacji triggers
slack_reacji:
  - emoji: ":jira:"
    scope: "any_channel"
    workflow: "thread_to_ticket"
    routing: "centralized"

# Scheduled triggers
scheduled_triggers:
  - cron: "0 9 * * MON"
    workflow: "weekly_standup_prep"
    via: "github_actions"
```

**Why not Zapier/n8n?**

The author chose custom implementation over existing automation platforms:

- **Full control**: Quality details facilitate adoption better than generic integration constraints
- **Nuanced behavior**: Custom handling of entity resolution, error cases
- **Learning**: Building internal intuition about agents
- **Compatibility**: Can still use Zapier via generic webhook catch-all

**Generic webhook catch-all:**

```yaml
# Fallback for esoteric platforms
generic_webhook:
  endpoint: "/webhooks/generic"
  behavior: "include_full_message_in_context"
  integration: "can_pair_with_zapier"
```

## Trade-offs

**Pros:**

- **Low friction**: Easy workflow initiation enables iterative learning
- **Platform-native**: Users work in existing tools (Slack, Notion, Jira)
- **Reactive**: Agent responds to events, not just explicit requests
- **Flexible**: Support for custom routing and nuanced workflows
- **Scalable**: Easy to add new trigger types by pasting docs to LLM

**Cons:**

- **Maintenance overhead**: Each platform integration requires ongoing work
- **Security complexity**: Private channels, auth tokens, request verification
- **Platform lock-in**: Deep integration with specific tools
- **Observability challenges**: Must avoid logging sensitive data
- **Custom vs off-the-shelf**: Building vs buying (Zapier, n8n)

**Quality details matter:**

> "The quality details facilitate adoption in a way that Zapier integration's constraints simply do not."

Custom implementation allows nuances like:

- Slack entity resolution for seamless experience
- Careful logging behavior in private channels
- Centralized ticket routing logic

**When to use:**

- Internal agent platforms with multiple integration points
- Teams already using Slack, Notion, Jira extensively
- Document-heavy workflows (RFCs, reviews, approvals)
- Need for automated routing and triage

**When to use Zapier/n8n instead:**

- Esoteric one-off integrations
- Rapid prototyping before custom implementation
- Non-technical users who need self-service

## References

* [Building an internal agent: Triggers](https://lethain.com/agents-triggers/) - Will Larson (2025)
* Related: [Proactive Trigger Vocabulary](proactive-trigger-vocabulary.md) - Natural language trigger phrases for skill routing
* [n8n](https://n8n.io) and [n8n on GitHub](https://github.com/n8n-io/n8n) - open-source workflow automation; the repository describes 400+ integrations and passed 200,000 stars in October 2026
* Hohpe, G. "Enterprise Integration Patterns." 2003 - Foundational patterns for event-driven integration
* Omicini et al. "Blending Event-Based and Multi-Agent Systems Around Coordination Abstractions." IFIP WG 6.1, 2015
