IntegrationsIntermediate

How to Classify Incoming Webhook Data with Claude in Make

Receive a webhook in Make, ask Claude to label it as a category, and route the scenario based on the answer.

9 minIntermediate

Make (formerly Integromat) is great at branching logic. Pair its Webhooks module with Anthropic's Claude and you get a scenario that reads an incoming message, decides what it is about, and sends it down the right path. This is ideal for triaging support tickets or contact form submissions.

What you need

  • A Make account (free tier is enough to test)
  • An Anthropic API key from console.anthropic.com
  • A form or app that can POST JSON to the webhook

Step 1: Add a Custom webhook module

In a new scenario, add the Webhooks module and pick Custom webhook. Click Add, name it, and Make gives you a URL. Click Re-determine data structure, then send one sample POST so Make can read the field shape.

Make - Custom webhook
Webhook: support-intake
URL: https://hook.eu2.make.com/8f3a...c1
[ Re-determine data structure ]
Status: Waiting for data...
Received: { subject, message, email }
Make waits for a sample request to map the JSON keys.

Step 2: Call the Claude Messages API

Add an HTTP module set to Make a request. Use POST to https://api.anthropic.com/v1/messages. Add three headers: x-api-key with your key, anthropic-version with 2023-06-01, and content-type with application/json.

HTTP module - Request body
{
  "model": "claude-haiku-4-5",
  "max_tokens": 20,
  "messages": [
    {
      "role": "user",
      "content": "Reply with ONE word only: billing, bug, or sales. Message: {{1.message}}"
    }
  ]
}
Keep the answer parseable
Ask for one word and cap max_tokens low. A tight, single-word reply is far easier to route on than a paragraph, and it costs less.

Step 3: Parse the JSON response

Claude returns the label inside content[0].text. Add the Parse JSON module (or map the field directly if Make already typed the HTTP response) so the label becomes a clean variable.

Step 4: Add a Router with filters

Drop a Router after the HTTP module and create one route per category. On each route set a filter such as label contains billing. Now each ticket flows to the matching team or tool.

test - send a billing ticket
$curl -X POST https://hook.eu2.make.com/8f3a...c1 \
$ -H "Content-Type: application/json" \
$ -d '{"subject":"Charged twice","message":"I see two charges this month","email":"a@b.com"}'
Accepted
$

Example: the message above makes Claude reply with billing, and the Router pushes it to the finance route where you create a Stripe refund task automatically.

Watch related tutorials

Tags
#make#webhooks#claude#routing