Blue Reacher
Make44 / 50

Make

Make scenarios that send iMessage and handle replies, including the raw-body setting that makes signature verification possible.

Outbound module

  1. Add your trigger module (Watch Records, Watch Rows, a webhook, whatever starts the scenario).
  2. Add module: HTTP, Make a request.
    • URL https://api.bluereacher.com/v1/messages
    • Method POST
    • Headers: Authorization with Bearer brk_your_api_key, and Content-Type with application/json
    • Body type: Raw, Content type JSON
{
  "to": "{{1.phone}}",
  "message": "Hi {{1.first_name}}, it's Marcus from Northside. Saw your enquiry, want me to send times?",
  "metadata": { "crm_id": "{{1.id}}" }
}
  1. Turn on Parse response so downstream modules can read message_id and mode.

Store the key in a Make connection or a data store rather than pasting it into every scenario, so a rotation is one edit.

Phone formatting

Make has no built-in E.164 formatter. Use a Text parser or a formula:

{{ "+1" + replace(replace(replace(1.phone; " "; ""); "-"; ""); "("; "") }}

Strip the leading +1 logic if your list is international, and store country separately rather than guessing.

Error handling

Right-click the HTTP module, Add error handler. Route 429 to a Sleep module (use the retryAfter value from the response) then a retry path, and route 4xx other than 429 to a data store or a notification, since those need a human. Capacity never surfaces as an error on the drip lane; excess cold volume queues, per rate limits.

Inbound scenario

  1. New scenario, first module: Webhooks, Custom webhook. Add it, copy the URL.
  2. Open the webhook's settings and enable Get request headers and Get request body as raw. Without the raw body you cannot verify the signature, because Make re-serializes parsed JSON and the hash will never match.
  3. Register the URL as your Blue Reacher webhook endpoint.
  4. Send a test message, reply to it, and click Redetermine data structure so Make learns the payload.
  5. Add a Tools, Set variable module computing the HMAC:
{{ sha256(3.rawBody; "hex"; "your_signing_secret") }}

Make's sha256 with a key argument produces the HMAC. Compare it to the x-bluereacher-signature header in a Router filter, and drop anything that does not match.

  1. Router: one branch filtered on event equals message.received writing the reply to your CRM, one on contact.opted_out setting your suppression flag.

Keep the acknowledgment fast

Add a Webhook response module early in the scenario returning status 200, before the CRM work. Blue Reacher retries non-200 responses with backoff for 24 hours, so a slow scenario produces duplicate replies in your CRM. Acknowledge first, process after.

On this page