Knowledge
Propose Granola meeting-note sync
Propose turning continuous Granola meeting-note import on or off and choosing who can read the imported notes. Requires a connected Granola account; when it is missing, the error carries the link that opens the Granola form. Nothing is saved: the user approves the returned plan at reviewUrl, and the first import starts when they do. The destination grants its audience access to every note visible to the connected key, so confirm it with the user. Send an Idempotency-Key header.
Method
POST
Path
/v1/knowledge/granola-sync
Required scope
changes:proposeRequest
curl -X POST "https://api.endurancehq.app/v1/knowledge/granola-sync" \
-H "Authorization: Bearer $EHQ_API_KEY" \
-H "Idempotency-Key: $(uuidgen)"JSON body schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"enabled": {
"default": true,
"description": "True to import meeting notes continuously, false to pause.",
"type": "boolean"
},
"destination": {
"oneOf": [
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "personal"
}
},
"required": [
"kind"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "platform"
}
},
"required": [
"kind"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "organization"
},
"organizationId": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
},
"required": [
"kind",
"organizationId"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "event"
},
"eventId": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
},
"required": [
"kind",
"eventId"
],
"additionalProperties": false
}
],
"description": "Who can read the imported notes. The choice grants that audience access to every note visible to the connected Granola key: \"personal\" keeps them in your own workspace, \"platform\" shares them with the Endurance HQ platform team (admins only), \"organization\" or \"event\" with that team."
}
},
"required": [
"enabled",
"destination"
],
"additionalProperties": false
}Response
Success status: 201
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"data": {
"type": "object",
"properties": {
"planId": {
"type": "string"
},
"title": {
"type": "string"
},
"summary": {
"type": "string"
},
"risk": {
"type": "string",
"enum": [
"low",
"medium",
"high"
]
},
"fidelity": {
"type": "string",
"enum": [
"kind_module",
"raw_input"
]
},
"diff": {
"type": "array",
"items": {
"type": "object",
"properties": {
"field": {
"type": [
"string",
"null"
]
},
"label": {
"type": "string"
},
"before": {},
"after": {},
"beforeText": {
"type": [
"string",
"null"
]
},
"afterText": {
"type": [
"string",
"null"
]
}
},
"required": [
"field",
"label",
"before",
"after",
"beforeText",
"afterText"
],
"additionalProperties": false
}
},
"effects": {
"type": "array",
"items": {
"type": "string"
}
},
"reviewHref": {
"type": "string"
},
"expiresAt": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
"reviewUrl": {
"type": "string"
}
},
"required": [
"planId",
"title",
"summary",
"risk",
"fidelity",
"diff",
"effects",
"reviewHref",
"expiresAt",
"reviewUrl"
],
"additionalProperties": false
}
},
"required": [
"data"
],
"additionalProperties": false
}Other surfaces
MCP tool: ehq_knowledge_granola_sync_propose