Agents / REST API

Save knowledge draft

Save the full merged knowledge object as an inactive draft. Read first, preserve existing entries, show proposed changes, and use current draft createdAt (null only when no draft exists).

PUT /api/agents/knowledgeDeterministic operation

Parameters

workspaceIdOptional · string
See the input schema for this field.
knowledgeRequired · object
See the input schema for this field.
changeSummaryRequired · string
See the input schema for this field.
expectedDraftCreatedAtRequired · string | null
See the input schema for this field.
Request example
curl -X PUT "https://app.pipeline.help/api/agents/knowledge" \
  -H "Authorization: Bearer $PIPELINE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"knowledge":{"offer":"example","approvedFacts":["example"],"faqs":[{"question":"example","answer":"example"}],"objections":[{"objection":"example","response":"example"}],"proof":["example"],"assets":[{"name":"example","description":"example","url":"https://example.com"}],"tone":["example"],"booking":["example"],"escalation":["example"]},"changeSummary":"example","expectedDraftCreatedAt":"2026-01-01T00:00:00.000Z"}'
Full input schema
Input schema
{
  "type": "object",
  "properties": {
    "workspaceId": {
      "type": "string"
    },
    "knowledge": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "offer": {
          "type": "string",
          "maxLength": 4000
        },
        "approvedFacts": {
          "type": "array",
          "maxItems": 100,
          "items": {
            "type": "string",
            "maxLength": 4000
          }
        },
        "proof": {
          "type": "array",
          "maxItems": 100,
          "items": {
            "type": "string",
            "maxLength": 4000
          }
        },
        "tone": {
          "type": "array",
          "maxItems": 50,
          "items": {
            "type": "string",
            "maxLength": 4000
          }
        },
        "booking": {
          "type": "array",
          "maxItems": 50,
          "items": {
            "type": "string",
            "maxLength": 4000
          }
        },
        "escalation": {
          "type": "array",
          "maxItems": 50,
          "items": {
            "type": "string",
            "maxLength": 4000
          }
        },
        "faqs": {
          "type": "array",
          "maxItems": 100,
          "items": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "question": {
                "type": "string",
                "maxLength": 4000
              },
              "answer": {
                "type": "string",
                "maxLength": 4000
              }
            },
            "required": [
              "question",
              "answer"
            ]
          }
        },
        "objections": {
          "type": "array",
          "maxItems": 100,
          "items": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "objection": {
                "type": "string",
                "maxLength": 4000
              },
              "response": {
                "type": "string",
                "maxLength": 4000
              }
            },
            "required": [
              "objection",
              "response"
            ]
          }
        },
        "assets": {
          "type": "array",
          "maxItems": 100,
          "items": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "name": {
                "type": "string",
                "maxLength": 4000
              },
              "description": {
                "type": "string",
                "maxLength": 4000
              },
              "url": {
                "type": "string",
                "maxLength": 2000
              }
            },
            "required": [
              "name",
              "description",
              "url"
            ]
          }
        }
      },
      "required": [
        "offer",
        "approvedFacts",
        "faqs",
        "objections",
        "proof",
        "assets",
        "tone",
        "booking",
        "escalation"
      ]
    },
    "changeSummary": {
      "type": "string",
      "minLength": 1,
      "maxLength": 240
    },
    "expectedDraftCreatedAt": {
      "type": [
        "string",
        "null"
      ]
    }
  },
  "required": [
    "knowledge",
    "changeSummary",
    "expectedDraftCreatedAt"
  ]
}
See this operation inCLI MCP TypeScript SDK
API reference | Pipeline v2 preview