Triggers

When something happens, your agent knows.

Subscribe to events in your users' apps: a new email, a closed deal, a failed payment. Hoook delivers each one to your agent or webhook in real time.

Event source

await hoook.triggers.deploy({ userId, id: "stripe-payment-failed", webhookUrl })

✓ listening to Stripe for u_42

invoice.payment_failed · verified · deduplicated

POST https://your-app.com/agent/events

agent: opened Linear issue ENG-812 and told #billing

Before and after

The same integration, shipped.

Without Hoook

  • Polling APIs on a timer and missing what changed in between
  • Registering and renewing webhooks with every provider
  • Events that arrive twice, or not at all
  • Agents that only act when someone asks them to

With Hoook

  • Real-time events wherever the app supports them, polling where it does not
  • Hoook registers, renews and verifies every subscription
  • Each event deduped, queued and delivered until it is accepted
  • Agents that start work the moment something happens
How it comes together

From event to action

  1. 01

    Deploy a trigger

    Pick an event, like a new Zendesk ticket, for a connected account.

    Event source

    await hoook.triggers.deploy({ userId, id: "stripe-payment-failed", webhookUrl })

    ✓ listening to Stripe for u_42

    invoice.payment_failed · verified · deduplicated

    POST https://your-app.com/agent/events

    agent: opened Linear issue ENG-812 and told #billing

  2. 02

    Hoook watches the app

    Webhooks or polling, whichever the app supports, with signatures checked.

    Event source

    await hoook.triggers.deploy({ userId, id: "stripe-payment-failed", webhookUrl })

    ✓ listening to Stripe for u_42

    invoice.payment_failed · verified · deduplicated

    POST https://your-app.com/agent/events

    agent: opened Linear issue ENG-812 and told #billing

  3. 03

    The event reaches your agent

    Delivered with the full payload, once, and retried until it lands.

    Event source

    await hoook.triggers.deploy({ userId, id: "stripe-payment-failed", webhookUrl })

    ✓ listening to Stripe for u_42

    invoice.payment_failed · verified · deduplicated

    POST https://your-app.com/agent/events

    agent: opened Linear issue ENG-812 and told #billing

  4. 04

    Your agent responds

    Triage the ticket, reply in the thread or open an incident, straight away.

    Your agent, on ClaudeHoook connected

    Find the HubSpot deals that went quiet this month and send each owner a nudge from my Gmail.

    Hoookhubspot.search_deals
    Hoookgmail.send_email

    Five deals have had no activity for 21 days. I sent a short nudge to each owner from your Gmail.

    5 emails sent
    Message your agent
What you get

What Hoook takes off your plate.

Proactive agents

An assistant that notices the failed payment before the customer writes in.

Sync without polling

Keep your product in step with the tools your customers use.

Alerts where people work

Turn events in one app into messages in another.

The evidence

The numbers behind agent integrations

Public documentation from the providers, and our own figures, each labelled with its source.

3 days

is how long Stripe keeps retrying a webhook your endpoint did not accept, so the same event can arrive late or more than once.

Stripe webhooks documentation
0

automatic redeliveries of a failed GitHub webhook. If your endpoint was down, the event is gone unless you redeliver it.

GitHub webhooks documentation
Thousands

of prebuilt tools and triggers, across the apps your users already work in.

Hoook app catalogue
Why Hoook

Built for agents that act.

Real time where possible

Native webhooks first, with polling as the fallback.

Replay and inspect

Every event is kept in the history so you can see it and send it again.

Per user

Triggers run on each user's connected account, not a shared one.

Nothing to renew

Subscriptions that expire are renewed before they lapse.

Book a demo

Thirty minutes on what you are building, with the engineers behind Hoook.

Ask Ivy nowOur assistant answers straight away, then passes you to the team.

We answer within one business day.

Powered bydayrun.ai