Make

Add an HTTP module to the scenario that already handles this, at the start, and again at the finish.

Adding the start ping

1

Decide where this module goes: right after the very first step of the scenario, before any of the real work happens.

2

Open your Make scenario. Click the plus icon on the connector line at that point and add an HTTP module, then choose "Make a request."

3

Authentication type: select "No authentication." FlowProofs authenticates via the header you add in step 5, not Make's built-in auth.

4

URL: paste this into the URL field.

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

Method: set to POST.

6

Headers: click "Add item" under Headers. Name: Authorization. Value:

Header value
Bearer fp_live_YOUR_API_KEY
7

Body type: select Raw.

8

Content type: select JSON (application/json).

9

Request content: paste the template below, then replace external_id and match with your own fields (see the table underneath).

Request content
{
  "flow": "your-flow-slug",
  "endpoint": "source",
  "external_id": "USE-YOUR-OWN-REFERENCE",
  "match": {
    "phone": "+15551234567"
  }
}
KeyWhat it isWhat to replace with
flowYour flow's identifierLeave as shown
endpointWhich side of the run this is"source" for the start ping, "destination" for the finish ping
external_idUnique reference for this specific runA row ID, order ID, or unique field from the incoming data. Use the tool's variable syntax.
matchFields used to pair start and finish pingsInclude whichever unique identifier is available (email, phone, order_id). Use the tool's variable syntax.

Make references a previous step's output with {{1.fieldname}} (the module number, a dot, then the field). For example:

Example: matching on email
"external_id": "{{1.row_id}}",
"match": { "email": "{{1.email}}" }
Example: matching on phone
"external_id": "{{1.order_id}}",
"match": { "phone": "{{1.phone}}" }
10

Parse response: leave set to No. FlowProofs's response isn't something this scenario needs to act on.

11

Timeout: leave at its default.

12

Share cookies with other HTTP modules: leave at its default (off).

13

Click OK, then "Run once" to send a real test and confirm it fires without errors.

You'll add TWO of these modules total: one BEFORE the work step with endpoint: source, and one AFTER the work step with endpoint: destination. They share the same external_id so FlowProofs can pair them.

START OF YOUR FLOW
   |
   +--> FlowProofs HTTP module (endpoint: source)      <- add this first
   |
   v
  ...your existing steps, untouched...
   |
   +--> FlowProofs HTTP module (endpoint: destination) <- add this last
   v
END OF YOUR FLOW

Run once. Return to FlowProofs. The pending indicator turns green when your first ping arrives.

Screenshot placeholder

Make HTTP module: Make a request, method POST

drop a PNG at /public/docs/make-http-module.png

Adding the finish ping

1

Decide where this module goes: right after the very last step, once the record has actually landed where it should.

2

Open your Make scenario. Click the plus icon on the connector line at that point and add an HTTP module, then choose "Make a request."

3

Authentication type: select "No authentication." FlowProofs authenticates via the header you add in step 5, not Make's built-in auth.

4

URL: paste this into the URL field.

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

Method: set to POST.

6

Headers: click "Add item" under Headers. Name: Authorization. Value:

Header value
Bearer fp_live_YOUR_API_KEY
7

Body type: select Raw.

8

Content type: select JSON (application/json).

9

Request content: paste the template below, then replace external_id and match with your own fields (see the table underneath).

Request content
{
  "flow": "your-flow-slug",
  "endpoint": "destination",
  "external_id": "USE-YOUR-OWN-REFERENCE",
  "match": {
    "phone": "+15551234567"
  }
}
KeyWhat it isWhat to replace with
flowYour flow's identifierLeave as shown
endpointWhich side of the run this is"source" for the start ping, "destination" for the finish ping
external_idUnique reference for this specific runA row ID, order ID, or unique field from the incoming data. Use the tool's variable syntax.
matchFields used to pair start and finish pingsInclude whichever unique identifier is available (email, phone, order_id). Use the tool's variable syntax.

Make references a previous step's output with {{1.fieldname}} (the module number, a dot, then the field). For example:

Example: matching on email
"external_id": "{{1.row_id}}",
"match": { "email": "{{1.email}}" }
Example: matching on phone
"external_id": "{{1.order_id}}",
"match": { "phone": "{{1.phone}}" }
10

Parse response: leave set to No. FlowProofs's response isn't something this scenario needs to act on.

11

Timeout: leave at its default.

12

Share cookies with other HTTP modules: leave at its default (off).

13

Click OK, then "Run once" to send a real test and confirm it fires without errors.

You'll add TWO of these modules total: one BEFORE the work step with endpoint: source, and one AFTER the work step with endpoint: destination. They share the same external_id so FlowProofs can pair them.

START OF YOUR FLOW
   |
   +--> FlowProofs HTTP module (endpoint: source)      <- add this first
   |
   v
  ...your existing steps, untouched...
   |
   +--> FlowProofs HTTP module (endpoint: destination) <- add this last
   v
END OF YOUR FLOW

Run once. Return to FlowProofs. The pending indicator turns green when your first ping arrives.

Screenshot placeholder

Make module body set to Raw / JSON with fields mapped

drop a PNG at /public/docs/make-body-raw-json.png