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.
Prerequisites
Section titled “Prerequisites”- 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).
Get your matool API key
Section titled “Get your matool API key”In matool: Administration → Zugänge → Zapier API-Key.
Copy the key. You’ll paste it into the RocketLead automation’s headers below.
Direction 1: RocketLead → matool
Section titled “Direction 1: RocketLead → matool”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”Step 1 — Create the automation
Section titled “Step 1 — Create the automation”- In the RocketLead console → Automations → New automation.
- 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).
- 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”| Field | Value |
|---|---|
| Method | POST |
| URL | https://api.matool.de/service/?todo=prospect |
| Headers | see below |
| Body | see below |
| Raw dates | Enable |
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.
Step 3 — Activate and test
Section titled “Step 3 — Activate and test”- Save and activate the automation.
- Trigger it once (create a test lead).
- Check matool — the prospect should appear within a few seconds.
- 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.
Field reference
Section titled “Field reference”Required
Section titled “Required”These fields must be present and non-empty for matool to accept the prospect:
| Field | Description |
|---|---|
firstName | Lead’s first name |
lastName | Lead’s last name |
phone | Phone number (any format matool accepts — they don’t require a specific normalization) |
eMail | Email address (note the camelCase eMail, not email) |
source | A free-text source label. Use "RocketLead" so prospects are easy to filter in matool. |
Optional but recommended
Section titled “Optional but recommended”| Field | Use |
|---|---|
memo | Free-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. |
Optional
Section titled “Optional”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”Field mapping
Section titled “Field mapping”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:
- Open the Lead Pool in the console.
- Edit the custom field’s column header.
- 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.
Common gotchas
Section titled “Common gotchas”| Symptom | Cause |
|---|---|
401 Unauthorized from matool | X-API-KEY header missing, wrong, or revoked. Re-copy from Administration → Zugänge → Zapier API-Key. |
400 rejection with no clear message | Often creationDate malformed, or a required field empty (most commonly eMail — note the camelCase). |
| Prospect created but missing fields | Field name typo. matool’s JSON keys are case-sensitive — eMail not email, zipCode not zipcode. |
| Empty values arriving in matool | RocketLead placeholder path typo. Test the automation in dev and check the request body in the run history. |
| Automation keeps retrying | Network failure between RocketLead and matool — retries are automatic. Persistent failure → check matool status. |
Caveats
Section titled “Caveats”- 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-KEYheader is the only authentication. Rotate the key in matool admin if it leaks. - Field names are case-sensitive —
eMailandzipCodeare 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.
Inbound: matool → RocketLead
Section titled “Inbound: matool → RocketLead”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:
- Set up a Zapier trigger using matool’s Zapier app.
- 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.
Related
Section titled “Related”- Connect API → Leads — for richer lookup-and-update patterns when Ingress isn’t enough.
- Zapier integration — for matool’s inbound side.
- Make.com integration — same
HTTP Requestnode pattern, different intermediary. - Automation triggers — events you can hang this automation on (
Neuer Lead hinzugefügt,Leadstatus geändert, etc.).