Skip to content
Developer

N8n Webhooks

Smart home and automation4 EndpointsDataWarehouse / N8n Webhooks

Register (or update) an n8n webhook for ERP entity changes.

POST/api/nodered/webhook

Expects JSON body: { "webhook_url": "https://n8n.example.com/webhook/inwendo-erp", "reference_class_name": "CRMCompany", // optional, null = all classes "database_action": "update", // optional, null = all actions "webhook_token": "...", // optional shared secret "delivery": "mqtt", // Node-RED only: over the ERP's MQTT broker "instance_id": "..." // mqtt only, instead of webhook_url }

database_action may also be a timed booking event (booking_pre_start, booking_start, booking_end, booking_post_end or booking_timed for all four, integration_booking_timed_events_enabled); such a webhook gets only those events.

With delivery mqtt (integration_mqtt_trigger_enabled) the ERP publishes the webhook on its broker and the answer carries "mqtt" (url, username, password, client_id, topic, valid_until) like the lock bridge's registration; the node registers again before valid_until.

If a non-deleted webhook with the same notificationUrl and notificationClientId = 'n8n' already exists, it is updated in place (or returned unchanged if every field already matches).

Responses

default

Request
curl --request POST \
  --url https://your-instance.iw-erp.de/api/nodered/webhook \
  --header 'x-iw-jwt-token: <TOKEN>'

Unregister all n8n webhooks for a given webhook URL.

DELETE/api/nodered/webhook

Expects JSON body: { "webhook_url": "https://n8n.example.com/webhook/inwendo-erp" } or, for a Node-RED trigger with MQTT delivery, {"instance_id": "..."}.

Soft-deletes all non-deleted rows whose notificationUrl matches and whose notificationClientId is 'n8n'. Other clients' webhooks are untouched.

Responses

default

Request
curl --request DELETE \
  --url https://your-instance.iw-erp.de/api/nodered/webhook \
  --header 'x-iw-jwt-token: <TOKEN>'

Register (or update) an n8n webhook for ERP entity changes.

POST/api/n8n/webhook

Expects JSON body: { "webhook_url": "https://n8n.example.com/webhook/inwendo-erp", "reference_class_name": "CRMCompany", // optional, null = all classes "database_action": "update", // optional, null = all actions "webhook_token": "...", // optional shared secret "delivery": "mqtt", // Node-RED only: over the ERP's MQTT broker "instance_id": "..." // mqtt only, instead of webhook_url }

database_action may also be a timed booking event (booking_pre_start, booking_start, booking_end, booking_post_end or booking_timed for all four, integration_booking_timed_events_enabled); such a webhook gets only those events.

With delivery mqtt (integration_mqtt_trigger_enabled) the ERP publishes the webhook on its broker and the answer carries "mqtt" (url, username, password, client_id, topic, valid_until) like the lock bridge's registration; the node registers again before valid_until.

If a non-deleted webhook with the same notificationUrl and notificationClientId = 'n8n' already exists, it is updated in place (or returned unchanged if every field already matches).

Responses

default

Request
curl --request POST \
  --url https://your-instance.iw-erp.de/api/n8n/webhook \
  --header 'x-iw-jwt-token: <TOKEN>'

Unregister all n8n webhooks for a given webhook URL.

DELETE/api/n8n/webhook

Expects JSON body: { "webhook_url": "https://n8n.example.com/webhook/inwendo-erp" } or, for a Node-RED trigger with MQTT delivery, {"instance_id": "..."}.

Soft-deletes all non-deleted rows whose notificationUrl matches and whose notificationClientId is 'n8n'. Other clients' webhooks are untouched.

Responses

default

Request
curl --request DELETE \
  --url https://your-instance.iw-erp.de/api/n8n/webhook \
  --header 'x-iw-jwt-token: <TOKEN>'