Works with n8n

Your docs site
in n8n workflows

Start an n8n workflow when a support ticket of your docs gets a new message. The workflow can post its subject to Slack or open an issue. Another workflow can publish the docs site, or make a 24-hour preview for review first.

Start Free Questions? Ask AI in our docs

No card required.

  • Publishes from GitHub on every push
  • Works with Mintlify repositories
  • API console from your OpenAPI file
  • MCP server and llms.txt for AI agents
  • Ask AI and support tickets
  • Analytics for people and AI agents

Start an n8n workflow when a support ticket gets a message

A support ticket of a Revdoku docs site starts with an email, a message left on the site or page feedback. Revdoku can call a webhook (a URL that receives an event) for each new message of a ticket. In n8n, a Webhook node receives the call and starts the workflow.

In the API, a bucket holds the files of one docs site, the site and its support tickets. The call holds only IDs, for example data.bucket_id, data.ticket_id and data.message_id. The workflow reads the message through the Revdoku REST API with an API key. Revdoku accepts only public HTTPS URLs. If n8n runs on your own computer, give it a public HTTPS address first.

  1. In the Revdoku dashboard, select Connect via API, then Copy API key. By default, this key has admin access to all buckets. Only an admin key can set a webhook.
  2. Find the ID of the bucket. It starts with bkt_:
    curl https://api.revdoku.com/v1/buckets \
      -H "Authorization: Bearer $REVDOKU_API_KEY"
  3. In n8n, add a Webhook node. Set HTTP Method to POST and Respond to Immediately. Copy the Production URL.
  4. Before you run this command, replace BUCKET_ID and the URL:
    curl -X PUT https://api.revdoku.com/v1/buckets/BUCKET_ID/webhook \
      -H "Authorization: Bearer $REVDOKU_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{"webhook_url": "YOUR_N8N_PRODUCTION_URL"}'
    Keep the signing_secret from the answer. Revdoku shows it only for a new URL.
  5. Add an HTTP Request node. Set Authentication to Generic Credential Type and Generic Auth Type to Bearer Auth. Put your Revdoku key in Bearer Token.
  6. Use this URL in the node: https://api.revdoku.com/v1/buckets/{{ $json.body.data.bucket_id }}/tickets/{{ $json.body.data.ticket_id }}/messages/{{ $json.body.data.message_id }}
  7. In n8n, select Publish. n8n uses the Production URL only for a published workflow.
  8. Send an email to the support address of the docs, or leave a message on the docs site. Make sure that a new run shows in the Executions tab.

The answer has data.message with subject, from_addresses, body_text and an attachments list. The event also has data.channel: email, chat (a message left on the site) or feedback.

Example workflow: a support ticket to Slack, with the matching docs page

This workflow continues the setup. For each new message of a support ticket, it searches your docs for the subject. Then it posts the subject, the best docs page and a link to the ticket in a Slack channel.

Webhook        HTTP Method: POST, Respond: Immediately
Get message    HTTP Request, Bearer Auth, GET
               https://api.revdoku.com/v1/buckets/{{ $('Webhook').item.json.body.data.bucket_id }}/tickets/{{ $('Webhook').item.json.body.data.ticket_id }}/messages/{{ $('Webhook').item.json.body.data.message_id }}
Find page      HTTP Request, Authentication: None, GET
               https://docs.example.com/_revdoku/search
               Send Query Parameters: q = {{ $json.data.message.subject }}, limit = 1
Slack          Message, Send, to your support channel
               Text: New support message: {{ $('Get message').item.json.data.message.subject }}
               Docs page: {{ $json.data.results[0]?.url }}
               Open: https://app.revdoku.com/buckets/view?account_id={{ $('Webhook').item.json.body.data.account_id }}&id={{ $('Webhook').item.json.body.data.bucket_id }}&view=mailbox&email_id={{ $('Webhook').item.json.body.data.message_id }}

The search of a public docs site needs no key. The last link opens the ticket in the Revdoku dashboard, only for signed-in members of your account. There, the built-in support agent can write a draft reply from your docs. A person reads the draft and sends it.

To open an issue instead, replace the Slack node with the GitHub node: Issue → Create. Put the subject and the link in the issue, and keep the message text in Revdoku.

Publish the docs site from n8n

Each push to the connected GitHub branch publishes the docs site. To publish at a time that you choose, turn off Auto-publish GitHub updates on the Settings page of the site. Then a workflow publishes with the Revdoku API.

With this setting off, a push to another branch gets no 24-hour preview. The workflow in this example makes a preview, asks for approval in Slack and then publishes:

Schedule Trigger   the day and time of your release
Preview            HTTP Request, Bearer Auth, POST
                   https://api.revdoku.com/v1/buckets/BUCKET_ID/publication/preview
Ask in Slack       Slack, Message, Send and Wait for Response
                   Response Type: Approval
                   Message: Docs preview for review: {{ $json.data.publication.url }}
If                 {{ $json.data.approved }} is true
Publish            HTTP Request, Bearer Auth, POST
                   https://api.revdoku.com/v1/buckets/BUCKET_ID/publication

The preview shows the current files at a separate address for 24 hours, and the live site does not change. Each build runs in the background, so a link works when its build is done.

Both calls need a key with admin access to the bucket, for example the Connect via API key. To report the result, add a Wait node after Publish and read GET https://api.revdoku.com/v1/buckets/BUCKET_ID/publication. Its publish_state is ready or failed, with the url and the publish_error.

Keep Retry On Fail off on the Publish node. After an unknown result, read the site before you publish again. The Publications API reference lists all fields.

MCP in n8n

MCP is a standard way for AI apps to use outside tools. Each public docs site has its own MCP server at /mcp, with no sign-in. In an MCP Client node, set MCP Endpoint URL to https://docs.example.com/mcp, Server Transport to HTTP Streamable and Authentication to None. Then select the tool search_docs, read_page or list_pages.

For an AI Agent node, use the MCP Client Tool node with the same settings in Endpoint, Server Transport and Authentication. The agent can then search and read your docs. To manage your Revdoku account from n8n, use https://mcp.revdoku.com with MCP OAuth2 authentication. n8n registers itself as an OAuth client by default, and you sign in to Revdoku in the browser.

Limits and safety for n8n workflows

  • Keep Respond on the Webhook node set to Immediately. Revdoku waits at most 15 seconds for an answer and makes up to 8 delivery attempts.
  • Revdoku can deliver the same event twice, and n8n then starts two executions. Use the event id to skip an event that the workflow already handled.
  • Each call has an X-Revdoku-Signature header. It is an HMAC-SHA256 code (a hash made with your signing secret) of the timestamp and the raw body. The n8n Crypto node has an Hmac action that can compute it.
  • The AI filter of Revdoku checks each new message first. The event waits until the check ends, at most about one minute. A message that the filter labels Junk sends no event.
  • Give the HTTP Request nodes that read tickets a second key that can only read this bucket. Create it in Account → Access. Use the admin key only to set the webhook and to publish.
  • To stop the events, unpublish the workflow in n8n. Then remove the webhook with DELETE https://api.revdoku.com/v1/buckets/BUCKET_ID/webhook.

n8n Webhook node · n8n MCP Client node · Revdoku ticket events · Docs for AI agents · Revdoku API guide

Markdown version
↧
Loading PDF…