Skip to content

Integrate with MATOOL

matool.de exposes a direct REST API for creating prospects (leads). Integrating with RocketLead is a single HTTP Request automation node — no Zapier or Make intermediary required.

This guide covers the supported direct-API path. For the reverse direction (matool → RocketLead), matool currently only exposes events via their Zapier app — see Inbound: matool → RocketLead at the bottom.

  • A matool.de account with an API key.
  • A RocketLead Lead Pool with the fields you want to push (typically firstName, lastName, phone, email — but in some setups these live in custom fields, see the Field mapping section).

In matool: Administration → Zugänge → Zapier API-Key.

Copy the key. You’ll paste it into the RocketLead automation’s headers below.

Use case: when a lead is won in RocketLead, hand it off to matool as a prospect — and then stop managing that lead in RocketLead.

Trigger on the final state, not on lead creation

Section titled “Trigger on the final state, not on lead creation”
  1. In the RocketLead console → Automations → New automation.
  2. Auslöser → Leadstatus geändert — configure:
    • Lead Pool(s): pick the pool(s) the leads come from.
    • Neuer Status (Trigger fires when lead enters this state): select your Gewonnen state (or whatever you’ve named your final won state).
    • Vorheriger Status: leave empty unless you want to constrain which state someone transitions from (usually you don’t).
    • Auch bei Lead-Erstellung auslösen: leave off. You only want the trigger when a lead transitions into “won” — not when one is created already in that state (which would be unusual for an inbound funnel).
  3. From Aktionen, drag in HTTP Request and wire it to the trigger.

Step 2 — Configure the HTTP Request node

Section titled “Step 2 — Configure the HTTP Request node”
FieldValue
MethodPOST
URLhttps://api.matool.de/service/?todo=prospect
Headerssee below
Bodysee below
Raw datesEnable

Headers:

{
"Content-Type": "application/json",
"X-API-KEY": "<your-matool-api-key>"
}

Body — JSON with {{...}} placeholders. Every field matool accepts is listed; required fields are marked, the rest can be empty strings or omitted:

{
"creationDate": "",
"firstName": "{{<triggerNodeId>.tableEntry.data.firstName}}",
"lastName": "{{<triggerNodeId>.tableEntry.data.lastName}}",
"street": "",
"zipCode": "",
"city": "",
"phone": "{{<triggerNodeId>.tableEntry.data.phone}}",
"mobile": "",
"eMail": "{{<triggerNodeId>.tableEntry.data.email}}",
"source": "RocketLead",
"contact": "",
"contactType": "",
"service": "",
"status": "",
"memo": "Gewonnen am: {{<triggerNodeId>.tableEntry.updatedAt}}. Name Kind: {{<triggerNodeId>.tableEntry.data.childFirstName}}"
}

Replace <triggerNodeId> with the actual ID of your trigger node — the editor’s variable picker generates the paths for you when you drag a variable into the body.

  1. Save and activate the automation.
  2. Trigger it once (create a test lead).
  3. Check matool — the prospect should appear within a few seconds.
  4. Check the RocketLead run history for the automation. The HTTP Request node’s response is captured on success and failure; debug from there if matool’s prospect view stays empty.

These fields must be present and non-empty for matool to accept the prospect:

FieldDescription
firstNameLead’s first name
lastNameLead’s last name
phonePhone number (any format matool accepts — they don’t require a specific normalization)
eMailEmail address (note the camelCase eMail, not email)
sourceA free-text source label. Use "RocketLead" so prospects are easy to filter in matool.
FieldUse
memoFree-text note attached to the prospect. Great place to surface context that doesn’t fit standard fields — when the lead was won, course interest, child’s name for kids’ classes, etc. Use {{...}} placeholders freely.

street, zipCode, city, mobile, contact, contactType, service, status — pass through if your RocketLead form collects them; otherwise leave as empty strings.

Don’t touch unless you know matool’s format

Section titled “Don’t touch unless you know matool’s format”

The example body above pulls firstName, lastName, phone, and email from tableEntry.data.* (standard Lead Pool columns). In some RocketLead orgs, contact details live in custom fields instead — pull them from tableEntry.customFieldData.<custom-field-uuid>:

{
"phone": "{{<triggerNodeId>.tableEntry.customFieldData.<phone-field-uuid>}}",
"eMail": "{{<triggerNodeId>.tableEntry.customFieldData.<email-field-uuid>}}"
}

To find a custom field’s UUID:

  1. Open the Lead Pool in the console.
  2. Edit the custom field’s column header.
  3. The field’s UUID is in the URL or visible in the edit dialog.

Use whichever path matches your data model. If unsure, send a test lead and check the RocketLead automation run history — the trigger’s captured tableEntry object shows exactly what’s in data versus customFieldData.

SymptomCause
401 Unauthorized from matoolX-API-KEY header missing, wrong, or revoked. Re-copy from Administration → Zugänge → Zapier API-Key.
400 rejection with no clear messageOften creationDate malformed, or a required field empty (most commonly eMail — note the camelCase).
Prospect created but missing fieldsField name typo. matool’s JSON keys are case-sensitive — eMail not email, zipCode not zipcode.
Empty values arriving in matoolRocketLead placeholder path typo. Test the automation in dev and check the request body in the run history.
Automation keeps retryingNetwork failure between RocketLead and matool — retries are automatic. Persistent failure → check matool status.
  • One-way only via this direct API. matool’s REST API exposes prospect creation but doesn’t push events back out. For matool → RocketLead, see below.
  • No HMAC signature on the call. The X-API-KEY header is the only authentication. Rotate the key in matool admin if it leaks.
  • Field names are case-sensitiveeMail and zipCode are matool’s canonical spellings.
  • source: "RocketLead" is convention, not required. matool accepts any free-text source. Setting it consistently makes filtering and reporting in matool much easier later.

matool doesn’t expose webhooks via the direct REST API — only their Zapier app can emit events. If you need matool events to land in RocketLead (e.g., “new matool member created” → create a RocketLead lead), the supported path is:

  1. Set up a Zapier trigger using matool’s Zapier app.
  2. Action step in Zapier: POST to a RocketLead Ingress webhook, or to the Connect API for richer lookup-and-update.

The same pattern is documented in the Zapier integration guide. If matool ships outbound webhooks via their direct API in the future, this guide will be updated.