Hello everyone,
I’m experiencing a persistent issue with an n8n workflow for user registration that uses Notion as a database. The workflow consistently fails at the **“Create Coach in Notion”** node with the error visible in the attached screenshots.
##
Problem Description
**Error**: `Bad request - please check your parameters`
**Detail**: `Error parsing JSON body`
**Node**: HTTP Request to `https://api.notion.com/v1/pages\` (POST)
The workflow successfully executes all previous nodes:
-
User input validation
-
Check existing email in Notion database
Password hashing and ID generation
But it systematically fails when attempting to create the record in the Notion database.
##
HTTP Request Node Configuration
**Method**: POST
**URL**: `https://api.notion.com/v1/pages\`
**Authentication**: Bearer Token (NOTION_API_KEY correctly configured)
**Headers**: ``` Authorization: Bearer {{$env.NOTION_API_KEY}} Notion-Version: 2022-06-28 Content-Type: application/json
`` **JSON Body**: ```json ={ “parent”: { “database_id”: “{{$env.NOTION_COACHES_DB_ID}}” }, “properties”: { “Coach_ID”: { “title”: [{“text”: {“content”: “{{$json.coach_id}}”}}] }, “Nome”: { “rich_text”: [{“text”: {“content”: “{{$json.nome}}”}}] }, “Cognome”: { “rich_text”: [{“text”: {“content”: “{{$json.cognome}}”}}] }, “Email”: { “email”: “{{$json.email}}” }, “Telefono”: { “number”: {{$json.telefono_number}} }, “Password_Hash”: { “rich_text”: [{“text”: {“content”: “{{$json.password_hash}}”}}] }, “Sport”: { “select”: {“name”: “{{$json.sport}}”} }, “Categoria”: { “rich_text”: [{“text”: {“content”: “{{$json.categoria}}”}}] }, “Club”: { “rich_text”: [{“text”: {“content”: “{{$json.club}}”}}] }, “Plan”: { “select”: {“name”: “FREE”} }, “Status”: { “select”: {“name”: “active”} }, “Privacy_Accepted”: { “rich_text”: [{“text”: {“content”: “TRUE”}}] }, “Marketing_Accepted”: { “rich_text”: [{“text”: {“content”: “{{$json.marketing_text}}”}}] }, “Created_At”: { “date”: {“start”: “{{$json.created_at}}”} } } } ```
##
Input Data (from previous node)
The node correctly receives this data from the “Hash Password & Generate ID” node:
```json { “nome”: “Paolo”, “cognome”: “…”, “email”: “…”, “coach_id”: “coach_1763213768318_i3xlpn6”, “telefono_number”: 3311349468, “password_hash”: “hash_…”, “created_at”: “2025-11-15T…”, “marketing_text”: “TRUE” } ```
##
What I’ve Already Checked
-
Environment variables are correctly configured -
The Notion database exists and has all defined properties
-
The Notion integration has permissions on the database
The Notion API Key is valid
-
Input data to the node is correct and complete
-
The `Notion-Version: 2022-06-28` header is present
-
The JSON body is set as “Expression” with `=` at the beginning
##
Questions
1. **Is the JSON body syntax correct?** Could there be issues with curly braces in n8n expressions?
2. **Could the problem be related to the `{{$json.field}}` expressions?** Should I use a different syntax?
3. **Is there a way to see the actual JSON sent to Notion** before the parsing error?
4. **Could the typeVersion 4.1 of the httpRequest node be causing issues** with this type of JSON body? ##
n8n Version n8n running via Docker (latest version)
-– Has anyone encountered a similar error? Any suggestions are welcome!
Thanks in advance for your help.

