I am integrating onOffice with n8n to fetch property details using an object ID from a webhook, but the API call returns no data—likely due to incorrect action type or field parameters—so the task is to fix the setup so n8n reliably retrieves it

Describe the problem/error/question

I’m working with onOffice and n8n, and I’ve set up a webhook that sends an object ID when a process starts. The problem is, even though the API connection and HMAC signature are correct, the request returns empty or no data. I suspect it’s due to the wrong action type or field parameters, and I need to adjust the integration so n8n can reliably fetch the property data using that object ID.

What is the error message (if any)?

There’s no explicit error message being returned from the onOffice API — the request goes through successfully, but the response is either empty or missing the expected property data.

Please share your workflow

{
“nodes”: [
{
“parameters”: {
“path”: “b6231738-3233-4c32-af30-104a588ac686”,
“options”: {}
},
“type”: “n8n-nodes-base.webhook”,
“typeVersion”: 2.1,
“position”: [
0,
0
],
“id”: “40b2c2c6-9523-40ae-9b92-73b7f7d53ade”,
“name”: “Webhook”,
“webhookId”: “b6231738-3233-4c32-af30-104a588ac686”
},
{
“parameters”: {
“assignments”: {
“assignments”: [
{
“id”: “f888b602-1d2b-4a36-91a6-50f5d8658ac9”,
“name”: “estateId”,
“value”: “={{ $json.query.Objektnummer }}”,
“type”: “string”
},
{
“id”: “06901238-32ff-4775-96f5-e4da77a8ae59”,
“name”: “token”,
“value”: “={{ $vars.onOfficeToken }}”,
“type”: “string”
},
{
“id”: “c06df727-1abb-48d3-bdf2-e6c1dc882df1”,
“name”: “secret”,
“value”: “={{ $vars.onOfficeSecret }}”,
“type”: “string”
}
]
},
“includeOtherFields”: true,
“options”: {}
},
“type”: “n8n-nodes-base.set”,
“typeVersion”: 3.4,
“position”: [
224,
0
],
“id”: “23455f93-0139-4151-8d15-b1acc5415d94”,
“name”: “Edit Fields”
},
{
“parameters”: {
“jsCode”: “const crypto = require(‘crypto’);\n\n// Get values from Webhook\nconst token = $json.token || “c2ee2e782aba6dbd123103a82db96657”;\nconst secret = $json.secret || “8ff353e0b068e0edbd1044c6c0ddd5e71353e4b0894602f98009819e6e0daf7d”;\nconst estateIntern = $json.estateId;\n\n// :white_check_mark: Handle empty input gracefully\nif (!estateIntern) {\n return {\n json: {\n error: true,\n message: “No estateId received in webhook body. Please POST JSON like { \“estateId\”: \“51\” }”,\n receivedInput: $json\n }\n };\n}\n\nconst hmacVersion = “1.0”;\nconst timestamp = Math.floor(Date.now() / 1000) - 5;\n\nconst requestObject = {\n actions: [\n {\n actionid: “urn:onoffice-de-ns:smart:2.5:smartml:action:list”,\n resourcetype: “estate”,\n parameters: {\n listlimit: 1,\n filter: {\n fieldname: “objektnr_intern”,\n value: estateIntern,\n operator: “=”\n },\n fields: [“Id”, “objektnr_intern”, “objektnr_extern”, “objekttitel”]\n }\n }\n ]\n};\n\nconst message = JSON.stringify(requestObject) + timestamp + token + hmacVersion;\n\nconst hmacSignature = crypto\n .createHmac(“sha256”, secret)\n .update(message, “utf8”)\n .digest(“base64”);\n\nreturn {\n json: {\n token,\n signature: hmacSignature,\n hmac_version: hmacVersion,\n timestamp,\n request: requestObject\n }\n};\n”
},
“type”: “n8n-nodes-base.code”,
“typeVersion”: 2,
“position”: [
448,
0
],
“id”: “009649c6-0842-4e12-baeb-87d641bcc183”,
“name”: “Code”
},
{
“parameters”: {
“method”: “POST”,
“url”: “https://api.onoffice.de/api/stable/api.php”,
“sendHeaders”: true,
“headerParameters”: {
“parameters”: [
{
“name”: “Content-Type”,
“value”: “application/json”
}
]
},
“sendBody”: true,
“specifyBody”: “json”,
“jsonBody”: “={{$json}}”,
“options”: {}
},
“type”: “n8n-nodes-base.httpRequest”,
“typeVersion”: 4.2,
“position”: [
672,
0
],
“id”: “6229fe29-b1e1-494b-956b-3df19a88646f”,
“name”: “HTTP Request”
}
],
“connections”: {
“Webhook”: {
“main”: [
[
{
“node”: “Edit Fields”,
“type”: “main”,
“index”: 0
}
]
]
},
“Edit Fields”: {
“main”: [
[
{
“node”: “Code”,
“type”: “main”,
“index”: 0
}
]
]
},
“Code”: {
“main”: [
[
{
“node”: “HTTP Request”,
“type”: “main”,
“index”: 0
}
]
]
}
},
“pinData”: {
“Edit Fields”: [
{
“headers”: {
“host”: “timo0806.app.n8n.cloud”,
“accept”: “/”,
“accept-encoding”: “gzip, br”,
“cdn-loop”: “cloudflare; loops=1; subreqs=1”,
“cf-connecting-ip”: “95.130.253.253”,
“cf-ew-via”: “15”,
“cf-ipcountry”: “DE”,
“cf-ray”: “976558d617c9cef6-FRA”,
“cf-visitor”: “{“scheme”:“https”}”,
“cf-worker”: “n8n.cloud”,
“x-forwarded-for”: “95.130.253.253, 172.70.248.183”,
“x-forwarded-host”: “timo0806.app.n8n.cloud”,
“x-forwarded-port”: “443”,
“x-forwarded-proto”: “https”,
“x-forwarded-server”: “traefik-prod-users-gwc-63-757945c69-fw6gx”,
“x-is-trusted”: “yes”,
“x-real-ip”: “95.130.253.253”
},
“params”: {},
“query”: {
“Objektnummer”: “51”
},
“body”: {},
“webhookUrl”: “https://timo0806.app.n8n.cloud/webhook-test/b6231738-3233-4c32-af30-104a588ac686”,
“executionMode”: “test”,
“estateId”: “51”,
“token”: “”,
“secret”: “”
}
]
},
“meta”: {
“instanceId”: “7154d1dc63df3778a88c096dd1a3f82ca5c3815dacc57a9eb37e3359e94a44d9”
}
}

(Select the nodes on your canvas and use the keyboard shortcuts CMD+C/CTRL+C and CMD+V/CTRL+V to copy and paste the workflow.)

Share the output returned by the last node

Information on your n8n setup

  • n8n version: cloud
  • Database (default: SQLite):
  • n8n EXECUTIONS_PROCESS setting (default: own, main):
  • Running n8n via (Docker, npm, n8n cloud, desktop app):
  • Operating system:
hi there  , can you paste your workflow wrapped inside a code block like this? it will make it easier for us to take your workflow and debug it

I used pinned data given in your workflow.

it make sucessful request.

here is code I also made some changes too:

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.