N8N and Fibery Integration Error (RichText)

Hello everyone. I really need your help. I’ve been trying to solve this issue for two days already.

I’m trying to send data from Telegram to Fibery into a specific database. I’m creating a very simple workflow in N8N.

Workflow:

  1. A message is sent to a Telegram bot.
  2. The first line of the message is used for the Name field to create an entity in the “Content” database of the “Idea” space.
    The rest of the message content should be added to the Description (RichText) field.

The first and second steps work. However, I can’t manage to send the text to the Description (RichText) field.

No AI model has been able to help with this, even when I provided almost all the Fibery API details. I keep getting errors.

It seems like I need to create two additional steps to retrieve the secret for the Description field and then update it. I tried setting up two sequential HTTP Requests in N8N, but it hasn’t worked so far.

Maybe someone has a ready-made solution for this task? Or could you suggest what I need to study to implement this?

I suspect I might have missed something in the setup process.

Sorry for jumping in, I have no knowledge about N8N. But as far as you’re using http request you can try graphql mutation. It can create an Entity and set (append) Description in one call.

look at this example Fibery

Hope this helps

1 Like

Now I’m in the following situation.
Here’s the general workflow:

Here’s the JSON in the block for the “secret” request.

{{ JSON.stringify([{
  command: "fibery.entity/query",
  args: {
    query: {
      from: "My Space/My DB",
      select: [
        "fibery/id",
        {
          path: ["My Space/Description", "Collaboration~Documents/secret"]
        }
      ],
      where: {
        "My Space/Name": {
          eq: $json.result["My Space/Name"]
        }
      },
      limit: 1
    }
  }
}]) }}

But I keep getting the following response.

[
  {
    "success": false,
    "result": {
      "name": "entity.error/schema-type-not-found",
      "message": "null database was not found.",
      "data": {
        "top": {
          "error/name": "entity.error/schema-type-not-found",
          "error/schema-version": 8080,
          "type": null,
          "query": {
            "from": "My Space/My DB",
            "select": [
              "fibery/id",
              {
                "path": [
                  "My Space/Description",
                  "Collaboration~Documents/secret"
                ]
              }
            ],
            "where": {
              "My Space/Name": {
                "eq": "test"
              }
            },
            "limit": 1
          }
        },
        "cause": {
          "error/name": "entity.error/schema-type-not-found",
          "error/schema-version": 8080,
          "type": null,
          "query": {
            "from": "My Space/My DB",
            "select": [
              "fibery/id",
              {
                "path": [
                  "My Space/Description",
                  "Collaboration~Documents/secret"
                ]
              }
            ],
            "where": {
              "My Space/Name": {
                "eq": "test"
              }
            },
            "limit": 1
          }
        },
        "error/schema-version": 8080,
        "type": null,
        "query": {
          "from": "My Space/My DB",
          "select": [
            "fibery/id",
            {
              "path": [
                "My Space/Description",
                "Collaboration~Documents/secret"
              ]
            }
          ],
          "where": {
            "My Space/Name": {
              "eq": "test"
            }
          },
          "limit": 1
        }
      }
    }
  }
]

The database and space names have been verified, and everything matches in the schema. I can’t figure out why the request isn’t going through.

I haven’t used N8N, but wouldn’t you structure the body of the http POST request according to the user guide.

e.g.

[
   {
     "command": "fibery.entity/query",
     "args": {
       "query": {
         "q/from": "My Space/My DB",
         "q/select": [
           "fibery/id",
           { "My Space/Description": [ "Collaboration~Documents/secret" ] }
         ],
         "q/limit": 1
       }
     }
   }
]
1 Like

Thanks.
It looks like it worked. I’m just far from programming and simply provided the instruction to the neural network. But they didn’t give me such a response))).
Now it remains to complete the step of updating the Description.

In the last module, the JSON is as follows:

{{ JSON.stringify({
  command: "Collaboration~Document/patch",
  args: {
    secret: $json.result0"My Space/Description""Collaboration~Documents/secret",
    patch: {
      type: "md",
      content: $('Edit Fields').item.json.description"fibery/rich-text"0.text
    }
  }
}) }}

This causes an error.

{
  "errorMessage": "JSON parameter needs to be valid JSON",
  "errorDetails": {},
  "n8nDetails": {
    "nodeName": "HTTP Request2",
    "nodeType": "n8n-nodes-base.httpRequest",
    "nodeVersion": 4.2,
    "itemIndex": 0,
    "time": "6/11/2025, 1:44:04 PM",
    "n8nVersion": "1.95.3 (Self Hosted)",
    "binaryDataMode": "default",
    "stackTrace": [
      "NodeOperationError: JSON parameter needs to be valid JSON",
      "    at ExecuteContext.execute (/usr/local/lib/node_modules/n8n/node_modules/.pnpm/n8n-nodes-base@file+packages+nodes-base_@aws-sdk+credential-providers@3.808.0_asn1.js@5_12b981d6b49d407a163f4d5244314033/node_modules/n8n-nodes-base/nodes/HttpRequest/V3/HttpRequestV3.node.ts:355:15)",
      "    at WorkflowExecute.runNode (/usr/local/lib/node_modules/n8n/node_modules/.pnpm/n8n-core@file+packages+core_openai@4.78.1_encoding@0.1.13_zod@3.24.1_/node_modules/n8n-core/src/execution-engine/workflow-execute.ts:1185:9)",
      "    at /usr/local/lib/node_modules/n8n/node_modules/.pnpm/n8n-core@file+packages+core_openai@4.78.1_encoding@0.1.13_zod@3.24.1_/node_modules/n8n-core/src/execution-engine/workflow-execute.ts:1534:27",
      "    at /usr/local/lib/node_modules/n8n/node_modules/.pnpm/n8n-core@file+packages+core_openai@4.78.1_encoding@0.1.13_zod@3.24.1_/node_modules/n8n-core/src/execution-engine/workflow-execute.ts:2098:11"
    ]
  }
}

Perhaps this is also mentioned somewhere in the documentation. But everything I found doesn’t work.

If you’re trying to update a document/rich text field, then you can use the method shown in the guide, e.g. something similar to this:

Yes, I tried doing that. But the examples provided there don’t work after being formatted into clean JSON. There likely needs to be some specific request structure for Fibery to accept it and update the Description field.

We urgently need integration with N8N without these complications. If it’s not frequently requested, that’s because no one knows about the possibilities that could be available. The lack of established demand doesn’t mean there’s no market opportunity.

Even if it’s not a full-fledged integration, at least a description of basic use cases: creating entities, retrieving data from entities, and so on. This could be done in a single article in 1-2 hours by someone familiar with Fibery’s API and APIs in general. The value of such a solution would be hard to overestimate.

This is just a wish ))).

What does your POST request look like?

We will probably get round to it at some point, but there are currently other priorities.
Out of curiosity, what advantages do you see that N8N has over say Zapier or make.com ?

I don’t mean to sound churlish, but if you’re using N8N to sent http POST requests, then there is not much specific to Fibery+N8N to be explained. POST is just a standard mechanism, so it shouldn’t matter if you’re using N8N to send a POST request or using any other REST API client.

Of course, there are plenty of people who think that the Fibery API is hard to understand, but I don’t think that’s an issue exclusive to N8N.

:ok_hand:t2:

The ability to host locally or on your own server. Control over data.

Sure, the issue isn’t that, but rather that I’m not a programmer. The advantage is that even a non-programmer can connect a lot in N8N without knowing anything about standard POST requests. But not with Fibery :grin:. Fibery has tons of features I’d love to use with N8N. That’s why I’m spending my time on this.

Now I’m in the following situation.
Here’s the general workflow:

Here’s how the module looks inside.

URL:

https://workspace.fibery.io/api/documents/{{ $json.result[0]['My Space/Description']['Collaboration~Documents/secret'] }}?format=md

When
{{ $json.result[0]['My Space/Description']['Collaboration~Documents/secret'] }}
is secret (Description)

JSON. Body

{
  "content": "{{ $('HTTP Request').item.json.result['My Space/Name'] }}"
}

If I make a request like in this video, then

[
  true
]

And the Description doesn’t get updated.

I tried adding text that should go into the Description, consisting of multiple paragraphs. But then an error is returned.

JSON. Body

{
  "content": "{{ $('Edit Fields').item.json.description['fibery/rich-text'][0].text }}"
}

Error

  "errorMessage": "JSON parameter needs to be valid JSON",

Have you tried updating the Description with static text, rather than a dynamic value, just to check that the API call is working OK?
I wonder if {{ $('HTTP Request').item.json.result['My Space/Name'] }} is empty or not valid markdown.

Yes, I tried this:

{
  "content": "Message"
}

and didn’t see the Description updated in any of the entities.

It might be necessary to add some identifier to this JSON, like fibery/id or something similar. Perhaps Fibery doesn’t understand what needs to be updated.

P.S. It was the third day :grinning_face_with_smiling_eyes:

Oh, I found the word “Message” in the Description field of one of my entities.

So the JSON itself works. But it updates a random entity.

It is updating whatever rich text field has the secret that you pass in the URL for the PUT request:

1 Like

With the help of Fibery’s support bot, I figured out that in the previous step, the HTTP Request Query needed a JSON change. Also, earlier, I had to set a variable to store the fibery/id.

SET

HTTP Request Query

[
  {
    "command": "fibery.entity/query",
    "args": {
      "query": {
        "q/from": "My Space/Content Ideas",
        "q/select": [
          "fibery/id",
          {
            "My Space/Description": [
              "Collaboration~Documents/secret"
            ]
          }
        ],
        "q/where": ["=", ["fibery/id"], "$id"],
        "q/limit": 1
      },
      "params": {
        "$id": "{{ $json.entityId }}"
      }
    }
  }
]

And it worked))). “Message” was added to the correct Description.

Now, I just need to check how to send text with multiple paragraphs))).

If you haven’t already seen it, you will probably want to read this

The issue turned out to be with N8N’s internal interpretations, as I understand it.
With the help of Fibery’s support bot, we got to the bottom of the issue and, after a few iterations, reworked some modules.

Now it works.

I’ll share some key points shortly.

:partying_face:

1 Like