Skip to content
Lampline
Concept product by Flickode

Every lead lands in your CRM, or you'll know exactly why.

From your website form to HubSpot, Slack and your pipeline sheet, with retries, a duplicate guard and a plain-English reason when something can't go through.

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. Website form in

    Done

  2. Mapped, then HubSpotSimulated

    Done

  3. HubSpot · Create dealSimulated

    Diego A.

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

    Held at HubSpot, not dropped

    HubSpot rejected the deal because the amount arrived as a range (for example 10k-25k), and the amount field needs a number.

    Map the amount with “Budget range → lower bound”, then replay. The steps that already happened won't repeat.

  4. Then Slack and Google SheetsSimulated

    Post to #new-leads, Add to the pipeline sheet

  • 10:01:17 AMretry 2 → 400 invalid_property_value
  • 10:01:17 AMheld R-1001 · not retried: won't fix itself

Step 8 of 9

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

What happens to every lead

  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 lead, then let it go.

Open the live demo