Any other tool

FlowProofs doesn't need to know your tool. If it can send an HTTP request, and almost everything can, this works.

Nothing existing is touched

Adding a ping is additive: one extra outbound call dropped in next to whatever's already there, never a replacement for a field or setting your system depends on.

Adding the start ping

Add one action that sends a POST request to your FlowProofs URL, right at the point where this begins. Most tools that can call a webhook or make an HTTP request can do this, whatever the exact menu is called.

The universal ping, source side
POST https://flowproof-ok3mquge8-hitenbs-projects.vercel.app/api/v1/events
Authorization: Bearer fp_live_YOUR_API_KEY
Content-Type: application/json

{
  "flow": "your-flow-slug",
  "endpoint": "source",
  "external_id": "USE-YOUR-OWN-REFERENCE",
  "match": {
    "phone": "+15551234567"
  }
}

Include the same external_id (or phone/email) you use on the other side, so FlowProofs can pair the two. See the matching key.

Adding the finish ping

Add one action that sends a POST request to your FlowProofs URL, right at the point where this lands. Most tools that can call a webhook or make an HTTP request can do this, whatever the exact menu is called.

The universal ping, destination side
POST https://flowproof-ok3mquge8-hitenbs-projects.vercel.app/api/v1/events
Authorization: Bearer fp_live_YOUR_API_KEY
Content-Type: application/json

{
  "flow": "your-flow-slug",
  "endpoint": "destination",
  "external_id": "USE-YOUR-OWN-REFERENCE",
  "match": {
    "phone": "+15551234567"
  }
}

Include the same external_id (or phone/email) you use on the other side, so FlowProofs can pair the two. See the matching key.

Customizing the match block

Every template includes a match object, whichever fields uniquely identify the record on both ends. Toggle which ones apply and the template below updates to match, then copy the pieces you need.

Source side

Two pings total. Add one BEFORE your work step (endpoint: source), one AFTER (endpoint: destination).

URL

URL
https://flowproof-ok3mquge8-hitenbs-projects.vercel.app/api/v1/events

Authorization header value

Authorization value
Bearer fp_live_YOUR_API_KEY

Match on

Body template

Body template
{
  "flow": "your-flow-slug",
  "endpoint": "source",
  "external_id": "USE-YOUR-OWN-REFERENCE",
  "match": {
    "phone": "+15551234567"
  }
}

Common field examples

Destination side

Two pings total. Add one BEFORE your work step (endpoint: source), one AFTER (endpoint: destination).

URL

URL
https://flowproof-ok3mquge8-hitenbs-projects.vercel.app/api/v1/events

Authorization header value

Authorization value
Bearer fp_live_YOUR_API_KEY

Match on

Body template

Body template
{
  "flow": "your-flow-slug",
  "endpoint": "destination",
  "external_id": "USE-YOUR-OWN-REFERENCE",
  "match": {
    "phone": "+15551234567"
  }
}

Common field examples

In your own code

The same request as above, as one line in any language: a plain fetch, curl, or your HTTP client of choice, right where your handler already does its job.