> ## Documentation Index
> Fetch the complete documentation index at: https://docs.hooksnode.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Introduction

> hooksnode turns webhooks, inboxes, watched URLs and bank alerts into events, and delivers each event to your apps.

hooksnode is an event delivery service. It gets events from many kinds of systems. Then it sends each event to one or more of your endpoints, with retries, filters, transforms and signing.

Some systems send webhooks. Many systems do not. hooksnode connects to both:

* **Push sources** give you a URL. Paystack, Flutterwave, Stripe, GitHub, WhatsApp or your own code send events to it.
* **Mail sources** read Gmail, Outlook or any IMAP mailbox. Each new message becomes an `email.received` event.
* **Polled sources** check a URL on a schedule. You get an event only when the data changes.
* **Bank alerts** turn bank alert emails into `bank.credit.received` and `bank.debit.posted` events.

<CardGroup cols={2}>
  <Card title="Quickstart" icon="rocket" href="/quickstart">
    Send your first event in five minutes.
  </Card>

  <Card title="How it works" icon="diagram-project" href="/concepts/how-it-works">
    Learn about workspaces, projects, sources and destinations.
  </Card>

  <Card title="Sources" icon="plug" href="/sources/overview">
    Connect webhooks, WhatsApp, mailboxes and URLs.
  </Card>

  <Card title="Bank alerts" icon="building-columns" href="/sources/bank-alerts">
    Get JSON for each credit and debit on your account.
  </Card>

  <Card title="CLI" icon="terminal" href="/cli/listen">
    Send live webhooks to `localhost`.
  </Card>

  <Card title="API reference" icon="code" href="/api-reference/introduction">
    List events, fetch the raw request and retry.
  </Card>
</CardGroup>

## What hooksnode does for each event

1. It saves the event to the database. Then it queues the event. A queue outage does not lose it.
2. It makes one delivery for each destination. Each delivery has its own queue and log.
3. It applies the destination's transform, filter and extra headers.
4. It signs the body if you turned on signing for that destination.
5. It sends the request. If the request fails, it tries again, up to 25 attempts in about 17.5 hours.
6. It shows each attempt in the live inspector. You can retry or replay any event.

## Where to go next

<Columns cols={2}>
  <Card title="Payment webhooks" icon="credit-card" href="/sources/webhook">
    Send one Paystack callback to your ledger, CRM and wallet service.
  </Card>

  <Card title="Watch a URL" icon="eye" href="/sources/watch-a-url">
    Get an event when an API or page changes.
  </Card>
</Columns>
