Skip to content
KnockDevelopers
Knowledge

Update an FAQ

Chat with a Developer
patch/v1/knowledge/faqs/{faqId}

No “Try it” here: this call changes data. Run the code samples from your own backend.

Changes the fields you send and returns the FAQ. Any update with at least one field marks the FAQ reviewed and moves updatedAt, even when the values are the ones it already had, and an answer makes your API key its author (answeredBy api). An empty body changes nothing.

Turn an FAQ off with enabled: false rather than deleting it: the starter FAQs Knock added (source default) cannot be deleted. Send Content-Type: application/json. Unknown fields are ignored.

Authorization

ApiKeyAuth
headerx-api-key<token>

Your Knock API key. Ask your Knock account team for one: a key with the Enrichment API role to enrich and route leads, the Viewer role to read chats, meetings, routing rules and FAQs, or the Admin, Editor or AI Manager role to change FAQs.

Path Parameters

faqId*string

The faqId of one of your FAQs.

Formatuuid

Request Body

application/json
  1. body

The fields to change. A field you leave out keeps its value; none can be null.

question?string

The question. The question of a default FAQ, or of one the AI agent drafted (automatic), can't be changed: sending it unchanged is fine.

Length1 <= length <= 1000
answer?string

The answer. Changing it makes your API key its author (answeredBy api).

Length1 <= length <= 10000
humanOnly?boolean

Set to true so the AI agent hands this question to your team instead of answering it. The answer, if any, is kept for your team only. Setting it to false needs an answer in the same request.

categoryId?string

One of your categories, from GET /v1/knowledge/faqs/categories. A default FAQ's category can't be changed.

Formatuuid
intent?enum<string>

Which contacts the FAQ answers:

  • buying: Contacts interested in buying.
  • support: Existing customers asking for support.
  • partnership: Contacts interested in a partnership.
  • job_seeker: Contacts looking for a job.
Show 4 valuesHide values
buyingsupportpartnershipjob_seeker
enabled?boolean

Set to false so the AI agent stops using the FAQ. It is then left out of GET /v1/knowledge/faqs.

published?boolean

Set to false to hide the FAQ from your public FAQ page.

Response Body

The FAQ after the change.

application/json
  1. response

An FAQ of your AI agent: your team's question and answer.

faqId*string

ID of the FAQ.

Formatuuid
question*string

The question.

answer*|

The answer. Null when the FAQ has none yet. Returned even when humanOnly is true, although the AI agent never uses it then.

categoryId*string

ID of the FAQ category, from GET /v1/knowledge/faqs/categories. Knock picks it from the question when the FAQ is created.

Formatuuid
intent*|

Which contacts the FAQ answers, null when Knock does not know. Knock picks it from the question when the FAQ is created:

  • buying: Contacts interested in buying.
  • support: Existing customers asking for support.
  • partnership: Contacts interested in a partnership.
  • job_seeker: Contacts looking for a job.
Show 5 valuesHide values
buyingsupportpartnershipjob_seekernull
source*enum<string>

Where the FAQ comes from:

  • manual: A member of your team (or your API key) added the FAQ.
  • automatic: Knock's AI agent drafted the FAQ from a question contacts asked in conversations, or Knock added it for you.
  • default: One of the starter FAQs Knock added when you set up your AI agent. It cannot be deleted.
Show 3 valuesHide values
manualautomaticdefault
answeredBy*enum<string>

Who wrote the current answer:

  • member: A member of your team (answeredByMemberId).
  • ai_agent: Knock's AI agent, or the Knock team on your behalf.
  • api: A call with your API key.
Show 3 valuesHide values
memberai_agentapi
answeredByMemberId*|

ID of the team member who wrote the current answer. Null unless answeredBy is member.

Formatuuid
humanOnly*boolean

Whether the AI agent hands the question to your team instead of answering it. The answer is then kept for your team only.

enabled*boolean

Whether the FAQ is on. The AI agent answers with an FAQ that is on and whose answer your team or your API key wrote: an answer the AI agent drafted (answeredBy ai_agent) is used once you replace it.

published*boolean

Whether the FAQ is shown on your public FAQ page.

reviewed*boolean

Whether your team has reviewed the FAQ. False while an FAQ the AI agent drafted waits in your review queue.

createdAt*string

When the FAQ was created.

Formatdate-time
updatedAt*string

When the FAQ was last changed (its createdAt until then).

Formatdate-time
Example Request
curl -X PATCH 'https://app.knock-ai.com/v1/knowledge/faqs/8f1e2d3c-4b5a-4c6d-9e7f-0a1b2c3d4e5f' \  -H 'x-api-key: <YOUR_API_KEY>' \  -H 'Content-Type: application/json' \  -d '{}'
Example Response
{  "faqId": "8f1e2d3c-4b5a-4c6d-9e7f-0a1b2c3d4e5f",  "question": "Do you offer a free trial?",  "answer": "Yes. Every plan starts with a 14-day free trial, no credit card needed.",  "categoryId": "2b4d6f8a-1c3e-4a5b-9d7f-0e2c4a6b8d1f",  "intent": "buying",  "source": "manual",  "answeredBy": "api",  "answeredByMemberId": null,  "humanOnly": false,  "enabled": true,  "published": true,  "reviewed": true,  "createdAt": "2026-11-02T12:00:00.000Z",  "updatedAt": "2026-11-02T12:00:00.000Z"}