Skip to content
Lampline
Concept product by Flickode

Every booking gets its confirmation, or you'll know exactly why.

Bookings trigger SMS confirmations and reminders, the front-desk sheet and a Slack heads-up. Patient details stay in the booking system.

Open the live demo

No sign-up. Your own private sandbox and a 3-minute guided tour.

Or start as Operations (fix failed runs), Developer (webhooks, signed cURL, tests), or Admin (policies, keys, audit).

  1. Booking system in

    Done

  2. Mapped

    Done

  3. Twilio · Text the confirmationSimulated

    SPT-1045

    Held, not dropped: the explanation says what went wrong and names the one change that fixes it.

    Held at Twilio, not dropped

    Twilio rejected the text because the phone number has no country code, and Twilio only accepts E.164 numbers (+1 and ten digits).

    Map the phone number with “Format phone as E.164 (US)”, then replay. Nothing is sent twice.

  4. Then Google Sheets and SlackSimulated

    Add to the front-desk sheet, Post to #front-desk

  • 9:01:05 AMretry 2 → 400 invalid_to_number
  • 9:01:05 AMheld R-1001 · not retried: won't fix itself

Step 6 of 7

Recorded from this build's engine (commit 7eda814); the apps are simulated. In your sandbox it happens live.

What happens to every booking

  1. Received and verified

    The webhook's signature is checked against the sender's secret before anything else happens. A bad signature gets a 401 and is logged.

    HMAC-SHA256 per sender

  2. Duplicate guard

    Senders retry, so the same event can arrive twice. Lampline stores each event once and answers the repeat with the original run.

    unique (sandbox, sender, event id)

  3. Mapped

    Fields are copied and reshaped by rules you can read: paths, fixed transforms and filters. No code runs from a mapping.

    data-only mapping language

  4. Delivered at each app's pace

    Every app has its own rate limit. A call that would exceed it waits for its slot instead of failing.

    GCRA slot per app

  5. Retried or held

    Temporary errors retry with backoff, honoring Retry-After. Errors that won't fix themselves hold the run with the reason and the fix.

    exponential backoff with jitter

  6. Recorded

    Every attempt keeps its request, response and timing. Replays skip what already happened, so nothing is done twice.

    effect ledger + idempotency keys

The engine, queue, retries, API and tests are real and running. The connected apps are simulated so you can break them safely.

Real, running now

  • Signed webhook endpoints
  • Duplicate guard
  • Postgres queue with leases
  • Retries with backoff
  • Failure queue and replay
  • Public API with keys
  • The tests of this build

Simulated

  • Shopify
  • QuickBooks
  • Slack
  • Google Sheets
  • Stripe (test mode, no real charges)
  • HubSpot
  • Email
  • Twilio

They answer like the real services, including their failures and rate limits. Nothing leaves Lampline.

Outgrowing a no‑code automation?

Here is what a built integration gives you, each one something you can check in the demo.

What Flickode would build for you

Lampline is the working sample. Your version runs the same engine, pointed at your tools.

  1. Connectors to your real accounts

    Your keys, your rate limits, the webhooks your apps already send.

  2. Your flows

    The rules your team follows today, written down as steps you can read and change.

  3. Alerts where your team works

    Held runs and expired connections reach the channel you watch.

  4. Deployed in your cloud

    On your infrastructure, with the code and the data in your hands.

1448 tests passed in the build serving this page

The build stops on any failure, on a missing report or on fewer than 1448 tests. Commit 7eda814.

See every test in Under the hood
  • Passed: stores a duplicate delivery once and returns the original runsintegration/engine.test.ts
  • Passed: works a sandbox until its runs finish, sleeping through Retry-Afterintegration/drain.test.ts
  • Passed: fences a stale worker: after its lease expires, its completion writes nothingintegration/engine.test.ts
  • Passed: replays from the failed step on the fixed version; earlier steps are not repeatedintegration/engine.test.ts
  • Passed: spreads a burst with GCRA slots: 12 orders at 5 per 10 s all succeed, throttles don't count as attemptsintegration/engine.test.ts
  • Passed: rejects a bad signature, logging metadata and at most 1 KB of bodyapi/api.test.ts

Watch it hold an booking, then let it go.

Open the live demo