Automate sending Markdown to Notion with Make.com
Turn any Make.com workflow into beautiful Notion pages. Perfect for AI outputs, form submissions, and automated documentation.
Use cases
Transform any data source into formatted Notion content:
Setup
For Converting Markdown β Notion Blocks Only
Just need one thing:
-
Get Your Mark2Notion API Key
Sign up free β’ 100 requests/month included
That's it! Use the /convert
endpoint to get Notion-compatible JSON blocks.
For Sending Markdown β Notion Pages (Full Integration)
Need all four items:
1. Get Your Mark2Notion API Key
Sign up free β’ 100 requests/month included
2. Create a Notion Integration
- Go to notion.so/my-integrations
- Click "New integration"
- Copy the Internal Integration Secret (starts with
ntn_
)
3. Share Your Notion Page
- Open your target Notion page
- Click three dots icon on the top right β "Connections" β "Add connection"
- Select your integration
4. Get Your Page ID
Copy from your Notion page URL:
https://notion.so/Your-Page-Title-[PAGE_ID_HERE]
Quick Example
Add a single "HTTP - Make a request" module in Make.com. Here are two configurations depending on your goal.
Convert Markdown to Notion Blocks
https://api.mark2notion.com/api/convert
Add headers
- x-api-key YOUR_API_KEY
Settings
- Body Type Raw
- Content Type Application/x-www-form-urlencoded
Body
- markdown your_markdown_here
Send Markdown to Notion Page
https://api.mark2notion.com/api/append
Add headers
- x-api-key YOUR_API_KEY
Settings
- Body Type Raw
- Content Type Application/x-www-form-urlencoded
Body
- markdown your_markdown_here
- pageId your-page-id
- notionToken ntn_your_token
Copy & Paste Module Configs
Drop these pre-configured HTTP Request modules directly into your Make.com workflow.
Convert Endpoint (Markdown β Notion Blocks)
Perfect when you need Notion blocks JSON for further processing.
π Copy HTTP Request Module
{
"subflows": [
{
"flow": [
{
"id": 1,
"module": "http:ActionSendData",
"version": 3,
"parameters": {
"handleErrors": true,
"useNewZLibDeCompress": true
},
"mapper": {
"url": "https://api.mark2notion.com/api/convert",
"serializeUrl": false,
"method": "post",
"headers": [
{
"name": "x-api-key",
"value": "YOUR_API_KEY_HERE"
}
],
"qs": [],
"bodyType": "x_www_form_urlencoded",
"parseResponse": false,
"authUser": "",
"authPass": "",
"timeout": "",
"shareCookies": false,
"ca": "",
"rejectUnauthorized": true,
"followRedirect": true,
"useQuerystring": false,
"gzip": true,
"useMtls": false,
"formFields": [
{
"key": "markdown",
"value": "# hello"
}
],
"followAllRedirects": false
},
"metadata": {
"designer": {
"x": 0,
"y": 0
},
"restore": {
"expect": {
"method": {
"mode": "chose",
"label": "POST"
},
"headers": {
"mode": "chose",
"items": [
null
]
},
"qs": {
"mode": "chose"
},
"bodyType": {
"label": "Application/x-www-form-urlencoded"
},
"formFields": {
"mode": "chose",
"items": [
null
]
}
}
},
"parameters": [
{
"name": "handleErrors",
"type": "boolean",
"label": "Evaluate all states as errors (except for 2xx and 3xx )",
"required": true
},
{
"name": "useNewZLibDeCompress",
"type": "hidden"
}
],
"expect": [
{
"name": "url",
"type": "url",
"label": "URL",
"required": true
},
{
"name": "serializeUrl",
"type": "boolean",
"label": "Serialize URL",
"required": true
},
{
"name": "method",
"type": "select",
"label": "Method",
"required": true,
"validate": {
"enum": [
"get",
"head",
"post",
"put",
"patch",
"delete",
"options"
]
}
},
{
"name": "headers",
"type": "array",
"label": "Headers",
"spec": [
{
"name": "name",
"label": "Name",
"type": "text",
"required": true
},
{
"name": "value",
"label": "Value",
"type": "text"
}
]
},
{
"name": "qs",
"type": "array",
"label": "Query String",
"spec": [
{
"name": "name",
"label": "Name",
"type": "text",
"required": true
},
{
"name": "value",
"label": "Value",
"type": "text"
}
]
},
{
"name": "bodyType",
"type": "select",
"label": "Body type",
"validate": {
"enum": [
"raw",
"x_www_form_urlencoded",
"multipart_form_data"
]
}
},
{
"name": "parseResponse",
"type": "boolean",
"label": "Parse response",
"required": true
},
{
"name": "authUser",
"type": "text",
"label": "User name"
},
{
"name": "authPass",
"type": "password",
"label": "Password"
},
{
"name": "timeout",
"type": "uinteger",
"label": "Timeout",
"validate": {
"max": 300,
"min": 1
}
},
{
"name": "shareCookies",
"type": "boolean",
"label": "Share cookies with other HTTP modules",
"required": true
},
{
"name": "ca",
"type": "cert",
"label": "Self-signed certificate"
},
{
"name": "rejectUnauthorized",
"type": "boolean",
"label": "Reject connections that are using unverified (self-signed) certificates",
"required": true
},
{
"name": "followRedirect",
"type": "boolean",
"label": "Follow redirect",
"required": true
},
{
"name": "useQuerystring",
"type": "boolean",
"label": "Disable serialization of multiple same query string keys as arrays",
"required": true
},
{
"name": "gzip",
"type": "boolean",
"label": "Request compressed content",
"required": true
},
{
"name": "useMtls",
"type": "boolean",
"label": "Use Mutual TLS",
"required": true
},
{
"name": "formFields",
"type": "array",
"label": "Fields",
"spec": [
{
"name": "key",
"label": "Key",
"type": "text",
"required": true
},
{
"name": "value",
"label": "Value",
"type": "text"
}
]
},
{
"name": "followAllRedirects",
"type": "boolean",
"label": "Follow all redirect",
"required": true
}
]
}
}
]
}
],
"metadata": {
"version": 1
}
}
How to use:
- Copy the JSON above
- In Make.com: Open Scenario and Ctrl+V / Cmd+V
- Replace
YOUR_API_KEY_HERE
- Connect to your trigger/data source
Append Endpoint (Markdown β Notion Page)
Directly sends markdown content to your Notion page.
π Copy HTTP Request Module
{
"subflows": [
{
"flow": [
{
"id": 1,
"module": "http:ActionSendData",
"version": 3,
"parameters": {
"handleErrors": true,
"useNewZLibDeCompress": true
},
"mapper": {
"url": "https://api.mark2notion.com/api/append",
"serializeUrl": false,
"method": "post",
"headers": [
{
"name": "x-api-key",
"value": "YOUR_API_KEY_HERE"
}
],
"qs": [],
"bodyType": "x_www_form_urlencoded",
"parseResponse": false,
"authUser": "",
"authPass": "",
"timeout": "",
"shareCookies": false,
"ca": "",
"rejectUnauthorized": true,
"followRedirect": true,
"useQuerystring": false,
"gzip": true,
"useMtls": false,
"formFields": [
{
"key": "markdown",
"value": "# hello"
},
{
"key": "notionToken",
"value": "ntn_YOUR_TOKEN_HERE"
},
{
"key": "pageId",
"value": "YOUR_PAGE_ID_HERE"
}
],
"followAllRedirects": false
},
"metadata": {
"designer": {
"x": 0,
"y": 0
},
"restore": {
"expect": {
"method": {
"mode": "chose",
"label": "POST"
},
"headers": {
"mode": "chose",
"items": [
null
]
},
"qs": {
"mode": "chose"
},
"bodyType": {
"label": "Application/x-www-form-urlencoded"
},
"formFields": {
"mode": "chose",
"items": [
null,
null,
null
]
}
}
},
"parameters": [
{
"name": "handleErrors",
"type": "boolean",
"label": "Evaluate all states as errors (except for 2xx and 3xx )",
"required": true
},
{
"name": "useNewZLibDeCompress",
"type": "hidden"
}
],
"expect": [
{
"name": "url",
"type": "url",
"label": "URL",
"required": true
},
{
"name": "serializeUrl",
"type": "boolean",
"label": "Serialize URL",
"required": true
},
{
"name": "method",
"type": "select",
"label": "Method",
"required": true,
"validate": {
"enum": [
"get",
"head",
"post",
"put",
"patch",
"delete",
"options"
]
}
},
{
"name": "headers",
"type": "array",
"label": "Headers",
"spec": [
{
"name": "name",
"label": "Name",
"type": "text",
"required": true
},
{
"name": "value",
"label": "Value",
"type": "text"
}
]
},
{
"name": "qs",
"type": "array",
"label": "Query String",
"spec": [
{
"name": "name",
"label": "Name",
"type": "text",
"required": true
},
{
"name": "value",
"label": "Value",
"type": "text"
}
]
},
{
"name": "bodyType",
"type": "select",
"label": "Body type",
"validate": {
"enum": [
"raw",
"x_www_form_urlencoded",
"multipart_form_data"
]
}
},
{
"name": "parseResponse",
"type": "boolean",
"label": "Parse response",
"required": true
},
{
"name": "authUser",
"type": "text",
"label": "User name"
},
{
"name": "authPass",
"type": "password",
"label": "Password"
},
{
"name": "timeout",
"type": "uinteger",
"label": "Timeout",
"validate": {
"max": 300,
"min": 1
}
},
{
"name": "shareCookies",
"type": "boolean",
"label": "Share cookies with other HTTP modules",
"required": true
},
{
"name": "ca",
"type": "cert",
"label": "Self-signed certificate"
},
{
"name": "rejectUnauthorized",
"type": "boolean",
"label": "Reject connections that are using unverified (self-signed) certificates",
"required": true
},
{
"name": "followRedirect",
"type": "boolean",
"label": "Follow redirect",
"required": true
},
{
"name": "useQuerystring",
"type": "boolean",
"label": "Disable serialization of multiple same query string keys as arrays",
"required": true
},
{
"name": "gzip",
"type": "boolean",
"label": "Request compressed content",
"required": true
},
{
"name": "useMtls",
"type": "boolean",
"label": "Use Mutual TLS",
"required": true
},
{
"name": "formFields",
"type": "array",
"label": "Fields",
"spec": [
{
"name": "key",
"label": "Key",
"type": "text",
"required": true
},
{
"name": "value",
"label": "Value",
"type": "text"
}
]
},
{
"name": "followAllRedirects",
"type": "boolean",
"label": "Follow all redirect",
"required": true
}
]
}
}
]
}
],
"metadata": {
"version": 1
}
}
How to use:
- Copy the JSON above
- In Make.com: Open Scenario and Ctrl+V / Cmd+V
- Replace:
YOUR_API_KEY_HERE
,YOUR_PAGE_ID_HERE
,ntn_YOUR_TOKEN_HERE
- Connect to your data source and execute

Troubleshooting
Canβt find the answer youβre looking for? Reach out to our customer support team or see the API documentation.
- "Page not found" or "Unauthorized"
-
- Make sure your integration has access to the page
- Verify the page ID is correct (copy from URL)
- "Invalid API key"
-
- Check for extra spaces in your API key
- Make sure you're using the
x-api-key
header
- Rate limit exceeded
-
- Free plan: 100 requests/month
- Check your usage at dashboard.mark2notion.com
- Markdown not formatting correctly
-
- Check that markdown is valid
- Check that markdown is properly escaped in JSON
- Getting Help