The best way to know if Quailrunner is right for you is to try it out for free!
Quailrunner
Pencil drawing of a quail running

Build automated |
using your Postgres database in minutes, not months.

A low-code solution to declaratively trigger webhooks using just your Postgres database.
Designed by developers, for developers.

1. Connect to your database2. Write your trigger query3. Define your webhook endpoint4. We’ll handle the rest

Let us deal with the annoying stuff

Idempotency

Each triggered action will only succeed once, meaning you don’t need to worry about duplicate notifications or double charges.

Retries

If an action fails, easily queue it up for us to retry until it succeeds.

Observability

See what’s going right or wrong with your actions and what you might need to do to fix them.

Compatibility

Integrate with any third-party service that has an API, and send them data directly from the source.

How are developers and businesses using Quailrunner?

Check out some examples of how the developers at Quke, a pickleball tournament platform, use Quailrunner to help operate their business
// Trigger every time new tournament results are available
// and fetch relevant details about the corresponding player
SELECT tr.uuid AS entity_pk, tr.self_placement, u.name, u.email
FROM public.user_tournament_results tr
JOIN public.users u ON u.uuid = tr.user_uuid
// When triggered, send a request to Postmark with the player's results
POST https://api.postmarkapp.com/email
Accept: application/json
Content-Type: application/json
X-Postmark-Server-Token: <server token>
{
  "From": "hello@qukepb.com",
  "To": "{{.email}}",
  "TemplateId": 123,
  "TemplateModel": {
    "playerUuid": "{{.entity_pk}}",
    "playerName": "{{.name}}",
    "playerResult": "{{.self_placement}}"
  }
}

Under the hood

So how does Quailrunner actually work?
1
After being granted access, Quailrunner runs all of your queries against your database every 10 seconds.
2
For every row returned that has not been successfully actioned upon before (typically because the row is new or requires a retry), Quailrunner sends a request to the accompanying webhook URL.
Curious to learn more? Check out our docs and guides

Pricing that is simple and transparent

Pay as you go, for whatever stage your project is in

Starter

Free

  • Single user
  • 2 max
  • 50 max
  • No additional allowed

Standard

$10/mo

  • Single user
  • 10 max
  • 1,000 included
  • $8/additional 1000

Growth

$50/mo

  • Team
  • 50 max
  • 10,000 included
  • $4/additional 1000

Enterprise

Need more than our current plans offer? We’re happy to craft a custom plan for you.

By signing up, you agree to our Terms of Service and Privacy Policy.