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:

πŸ€–
AI responses β†’ Documentation pages
πŸ“
Form submissions β†’ Project tracker
πŸ”„
GitHub issues β†’ Task database
πŸ“Š
Data reports β†’ Team wiki

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

  1. Go to notion.so/my-integrations
  2. Click "New integration"
  3. Copy the Internal Integration Secret (starts with ntn_)

3. Share Your Notion Page

  1. Open your target Notion page
  2. Click three dots icon on the top right β†’ "Connections" β†’ "Add connection"
  3. 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

POST 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

POST 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:

  1. Copy the JSON above
  2. In Make.com: Open Scenario and Ctrl+V / Cmd+V
  3. Replace YOUR_API_KEY_HERE
  4. 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:

  1. Copy the JSON above
  2. In Make.com: Open Scenario and Ctrl+V / Cmd+V
  3. Replace: YOUR_API_KEY_HERE, YOUR_PAGE_ID_HERE, ntn_YOUR_TOKEN_HERE
  4. Connect to your data source and execute
Make.com HTTP module configured for Mark2Notion

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
Markdown not formatting correctly
  • Check that markdown is valid
  • Check that markdown is properly escaped in JSON

Ready to automate your Notion workspace?

100 requests/month included