Changes the composition’s label, its blocks, or both, and records the result as a new version. It sends nothing. Needs the editor role (studio_role), so a composition shared as viewer or commenter is a 403. Refused with a 400 once it has been sent or while it is sending, and with a 409 when expected_revision is stale.
The message, as a Slack Block Kit payload. Block types and URLs are checked when it is saved, and the whole payload against Slack’s schema before it is sent; a refusal names each problem by its block path.
Who can open it in Studio. Always studio, shared with every Studio user who can use Message Blaster: an API key never sees a composition its owner kept to themselves and the people they named.
Where it is set to go, and once sent, each send and how it went, oldest first. Present only when deliveries is expanded.
Show child attributes
Was this page helpful?
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Tightknit","colors":{"primary":"#0ea5e9","light":"#0ea5e9","dark":"#0ea5e9"},"logo":{"light":"https://mintcdn.com/tightknit/8RgBfwvyxlVVp-GI/assets/logo/light.png?fit=max\u0026auto=format\u0026n=8RgBfwvyxlVVp-GI\u0026q=85\u0026s=35c245944b73607d7c7b4b7c6fd4f080","dark":"https://mintcdn.com/tightknit/8RgBfwvyxlVVp-GI/assets/logo/dark.png?fit=max\u0026auto=format\u0026n=8RgBfwvyxlVVp-GI\u0026q=85\u0026s=6cd06fb7afb28cdae7bca4f7b6806906","href":"https://tightknit.ai/"},"favicon":"https://mintcdn.com/tightknit/510fnWGbA38NwHOk/favicon.png?fit=max\u0026auto=format\u0026n=510fnWGbA38NwHOk\u0026q=85\u0026s=ca1f972d807039e1bc2acbeb8f00326a","background":{"decoration":"gradient"},"navbar":{"links":[{"href":"https://tightknit.ai/","label":"Homepage ↗"}],"primary":{"type":"button","label":"Book a Demo","href":"https://cal.com/zhawtof/30min"}},"footer":{"socials":{"slack":"https://community.tightknit.ai","linkedin":"https://www.linkedin.com/company/tightknitai","youtube":"https://www.youtube.com/@tightknitai"}},"fonts":{"heading":{"family":"Inter","weight":600,"source":"https://framerusercontent.com/assets/1ZFS7N918ojhhd0nQWdj3jz4w.woff2","format":"woff2"}},"icons":{"library":"fontawesome"},"styling":{"latex":false},"navigation":{"global":{"anchors":[{"anchor":"Community","icon":"slack","href":"https://community.tightknit.ai/"},{"anchor":"Changelog","icon":"bullhorn","href":"https://community.tightknit.ai/x/changelog"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"tightknit","hasAudioNarration":false,"actualSubdomain":"tightknit","customDomains":["docs.tightknit.ai"],"gitSource":{"type":"github","owner":"tightknitai","repo":"tightknit-app","deployBranch":"main","contentDirectory":"packages/docs","isPrivate":true,"mountPath":"","label":""},"feedback":{"thumbs":true,"edits":true,"issues":true,"agentFeedback":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6af55cd92e698a8a3f24ca19","clientVersion":"0.0.4111","searchFilterCounts":[{"language":"default","tag":"API Reference","count":120},{"language":"default","tag":"Admin API","count":117},{"language":"default","tag":"Documentation","count":108},{"language":"default","tag":"App Guides","count":45},{"language":"default","tag":"Platform","count":40},{"language":"default","tag":"Events","count":19},{"language":"default","tag":"Slack App","count":17},{"language":"default","tag":"Community Site","count":15},{"language":"default","tag":"Compositions","count":15},{"language":"default","tag":"Guides","count":13}]},"assistantConfig":{"deflection":{"enabled":true,"email":"[email protected]","showHelpButton":true}},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"styles/plan-availability.css","content":".plan-availability{display:flex;align-items:center;justify-content:space-between;gap:1.25rem;flex-wrap:wrap;margin:1rem 0;padding:0.875rem 1.125rem;border:1px solid rgb(14 165 233 / 0.35);border-radius:0.75rem;background:linear-gradient(\n 135deg,\n rgb(14 165 233 / 0.09),\n rgb(56 189 248 / 0.02)\n )}.dark .plan-availability{border-color:rgb(14 165 233 / 0.4);background:linear-gradient(\n 135deg,\n rgb(14 165 233 / 0.14),\n rgb(14 165 233 / 0.03)\n )}.plan-availability-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border:0}.plan-availability-content{flex:1 1 14rem;min-width:0}.plan-availability-feature{font-size:0.9375rem;font-weight:600;line-height:1.4}.plan-availability-body{margin-top:0.375rem;font-size:0.8125rem;line-height:1.55}.plan-availability-body a{color:#0284c7;font-weight:600;text-decoration:underline;text-underline-offset:2px}.dark .plan-availability-body a{color:#38bdf8}.plan-availability-matrix{display:flex;gap:0.5rem;flex-shrink:0}.plan-availability-plan{display:flex;flex-direction:column;align-items:center;gap:0.3rem;min-width:5rem;padding:0.5rem 0.625rem;border:1px solid rgb(14 165 233 / 0.25);border-radius:0.5rem;background:rgb(255 255 255 / 0.5)}.dark .plan-availability-plan{border-color:rgb(14 165 233 / 0.3);background:rgb(2 6 23 / 0.35)}.plan-availability-plan-name{font-size:0.65rem;font-weight:700;letter-spacing:0.06em;text-transform:uppercase;opacity:0.7;white-space:nowrap}.plan-availability-check{width:1rem;height:1rem;color:#0284c7}.dark .plan-availability-check{color:#38bdf8}.plan-availability-addon{padding:0 0.45rem;border-radius:9999px;font-size:0.65rem;font-weight:700;letter-spacing:0.04em;text-transform:uppercase;line-height:1rem;color:#fff;background:linear-gradient(135deg, #0284c7, #38bdf8);white-space:nowrap}.plan-availability-none{font-size:0.875rem;line-height:1rem;opacity:0.35}"}],"page":{"pagePath":"v1/api-reference/compositions/update-a-composition","slug":"/v1/api-reference/compositions/update-a-composition","pageMetadata":{"title":"Update a composition","description":"Changes the composition’s `label`, its `blocks`, or both, and records the result as a new version. It sends nothing. Needs the `editor` role (`studio_role`), so a composition shared as `viewer` or `commenter` is a 403. Refused with a 400 once it has been sent or while it is sending, and with a 409 when `expected_revision` is stale.","deprecated":null,"version":null,"playground":"none","openapi":"/openapi-v1.json patch /v1/compositions/{composition_id}","href":"/v1/api-reference/compositions/update-a-composition","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_components.p, {\n children: [\"Changes the composition’s \", _jsx(_components.code, {\n children: \"label\"\n }), \", its \", _jsx(_components.code, {\n children: \"blocks\"\n }), \", or both, and records the result as a new version. It sends nothing. Needs the \", _jsx(_components.code, {\n children: \"editor\"\n }), \" role (\", _jsx(_components.code, {\n children: \"studio_role\"\n }), \"), so a composition shared as \", _jsx(_components.code, {\n children: \"viewer\"\n }), \" or \", _jsx(_components.code, {\n children: \"commenter\"\n }), \" is a 403. Refused with a 400 once it has been sent or while it is sending, and with a 409 when \", _jsx(_components.code, {\n children: \"expected_revision\"\n }), \" is stale.\"]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Update a composition","description":"Changes the composition’s `label`, its `blocks`, or both, and records the result as a new version. It sends nothing. Needs the `editor` role (`studio_role`), so a composition shared as `viewer` or `commenter` is a 403. Refused with a 400 once it has been sent or while it is sending, and with a 409 when `expected_revision` is stale.","deprecated":null,"version":null,"playground":"none","openapi":"/openapi-v1.json patch /v1/compositions/{composition_id}","href":"/v1/api-reference/compositions/update-a-composition","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"description":"Changes the composition’s `label`, its `blocks`, or both, and records the result as a new version. It sends nothing. Needs the `editor` role (`studio_role`), so a composition shared as `viewer` or `commenter` is a 403. Refused with a 400 once it has been sent or while it is sending, and with a 409 when `expected_revision` is stale.","operationId":"updateComposition","summary":"Update a composition","tags":["Compositions"],"security":["b963e2d5-8804-4bd6-88d9-2089b032f0c6"],"parameters":["e52fe7b5-fe9c-4061-aa39-cf5269ce9d80","ecb821ba-2dbd-4a89-8445-f6b7cb2549ca"],"requestBody":"a0abc6a4-9d78-4f3f-be8d-72d8e58cd824","responses":{"200":"f3cb75f5-c8ce-4409-bfea-374436eb74a7","default":"05efc193-9d40-45a8-ac6f-b87896639ca3"},"x-mint":{"metadata":{"playground":"none"}},"method":"patch","type":"path","servers":["0a9771c8-9003-4dc7-aa40-7ed293ec076d"],"path":"/v1/compositions/{composition_id}","baseUrlOptions":["https://api.tightknit.ai"],"title":"Update a composition","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"e52fe7b5-fe9c-4061-aa39-cf5269ce9d80":{"schema":{"type":"string","pattern":"^cmps_[a-zA-Z0-9]{12}$","description":"The composition's id.","isRequired":true,"uniqueKey":"","typeLabel":"string"},"required":true,"description":"The composition's id.","name":"composition_id","in":"path"},"ecb821ba-2dbd-4a89-8445-f6b7cb2549ca":{"schema":{"oneOf":[{"type":"string","description":"Repeatable. Returns the named relation inline. One of: `owner`, `scheduled_by`, `created_by`, `updated_by`, `deliveries`.","enum":["owner","scheduled_by","created_by","updated_by","deliveries"],"uniqueKey":"oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"array","items":{"type":"string","enum":["owner","scheduled_by","created_by","updated_by","deliveries"],"uniqueKey":"oneOf.1.items.[INDEX]","typeLabel":"enum\u003cstring>"},"description":"Repeatable. Returns the named relation inline. One of: `owner`, `scheduled_by`, `created_by`, `updated_by`, `deliveries`.","maxItems":5,"uniqueKey":"oneOf.1","typeLabel":"enum\u003cstring>[]"}],"isRequired":false,"uniqueKey":"","typeLabel":"enum\u003cstring> | enum\u003cstring>[]"},"required":false,"description":"Repeatable. Returns the named relation inline. One of: `owner`, `scheduled_by`, `created_by`, `updated_by`, `deliveries`.","name":"expand","in":"query","style":"form","explode":true}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"label":{"type":"string","minLength":1,"maxLength":200,"description":"The name the composition is listed under in Message Blaster. Members never see it.","uniqueKey":"label","typeLabel":"string"},"blocks":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","description":"The Block Kit block type, such as `section`.","isRequired":true,"uniqueKey":"blocks.items.[INDEX].type","typeLabel":"string"}},"required":["type"],"additionalProperties":{"oneOf":[{}],"uniqueKey":"blocks.items.[INDEX].additionalProperties","typeLabel":"any"},"uniqueKey":"blocks.items.[INDEX]","typeLabel":"object"},"minItems":1,"maxItems":50,"description":"The message, as a Slack Block Kit payload. Block types and URLs are checked when it is saved, and the whole payload against Slack’s schema before it is sent; a refusal names each problem by its block path.","uniqueKey":"blocks","typeLabel":"object[]"},"expected_revision":{"type":"integer","minimum":0,"description":"The `revision` you last read. A composition changed since is refused with a 409 rather than overwritten. Omit to change whatever is stored.","uniqueKey":"expected_revision","typeLabel":"integer"}},"additionalProperties":false,"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"label":"\u003cstring>","blocks":[{"type":"\u003cstring>"}],"expected_revision":1}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"f3cb75f5-c8ce-4409-bfea-374436eb74a7":{"description":"Success","headers":{"Request-Id":{"description":"Identifier for this request, quote it in support tickets.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string","enum":["composition"],"description":"Always `composition`.","isRequired":true,"uniqueKey":"object","typeLabel":"enum\u003cstring>"},"id":{"type":"string","description":"Unique identifier for the object.","example":"cmps_7h2k9m4n1p6q","isRequired":true,"uniqueKey":"id","typeLabel":"string"},"created_at":{"type":"string","format":"date-time","description":"When the object was created.","isRequired":true,"uniqueKey":"created_at","typeLabel":"string\u003cdate-time>"},"updated_at":{"type":"string","format":"date-time","description":"When the object was last changed.","isRequired":true,"uniqueKey":"updated_at","typeLabel":"string\u003cdate-time>"},"label":{"type":"string","description":"The name the composition is listed under in Message Blaster. Members never see it.","isRequired":true,"uniqueKey":"label","typeLabel":"string"},"blocks":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","description":"The Block Kit block type, such as `section`.","isRequired":true,"uniqueKey":"blocks.items.[INDEX].type","typeLabel":"string"}},"required":["type"],"additionalProperties":{"oneOf":[{}],"uniqueKey":"blocks.items.[INDEX].additionalProperties","typeLabel":"any"},"uniqueKey":"blocks.items.[INDEX]","typeLabel":"object"},"description":"The message, as a Slack Block Kit payload. Each block carries a `block_id` once it is saved.","isRequired":true,"uniqueKey":"blocks","typeLabel":"object[]"},"status":{"type":"string","enum":["draft","scheduled","delivering","delivered","partially_delivered","failed","archived"],"description":"Where the composition is in its life. One of:\n- `draft`: not sent, and not scheduled.\n- `scheduled`: set to send at `scheduled_at`.\n- `delivering`: sending now; its deliveries report how it goes.\n- `delivered`: every delivery reached every recipient it could.\n- `partially_delivered`: some recipients were reached and some failed.\n- `failed`: no recipient was reached.\n- `archived`: put away in Studio.","isRequired":true,"uniqueKey":"status","typeLabel":"enum\u003cstring>"},"visibility":{"type":"string","enum":["studio"],"description":"Who can open it in Studio. Always `studio`, shared with every Studio user who can use Message Blaster: an API key never sees a composition its owner kept to themselves and the people they named.","isRequired":true,"uniqueKey":"visibility","typeLabel":"enum\u003cstring>"},"studio_role":{"type":"string","enum":["viewer","commenter","editor"],"description":"What every Studio user may do with it, and what an API key may do. One of:\n- `viewer`: read it.\n- `commenter`: read it and comment on it.\n- `editor`: also change it, set where it goes, and send it. A composition an API key creates is shared with `editor`.","isRequired":true,"uniqueKey":"studio_role","typeLabel":"enum\u003cstring>"},"revision":{"type":"integer","minimum":0,"description":"A number every change increases. Send it back as `expected_revision` to refuse a change that would overwrite someone else’s with a 409.","isRequired":true,"uniqueKey":"revision","typeLabel":"integer"},"current_version_number":{"type":"integer","minimum":0,"description":"The number of its latest version: each deliberate save, and each send, records one.","isRequired":true,"uniqueKey":"current_version_number","typeLabel":"integer"},"scheduled_at":{"oneOf":[{"type":"string","description":"When its scheduled send goes out, or went out. Null when it was never scheduled, was sent at once, or its schedule was canceled.","format":"date-time","isRequired":true,"uniqueKey":"scheduled_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","description":"When its scheduled send goes out, or went out. Null when it was never scheduled, was sent at once, or its schedule was canceled.","isRequired":true,"uniqueKey":"scheduled_at.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"scheduled_at","typeLabel":"string\u003cdate-time> | null"},"owner_profile_id":{"oneOf":[{"type":"string","description":"The id of the profile that owns it in Studio. Null for one an API key created, or once its owner’s profile is deleted.","isRequired":true,"uniqueKey":"owner_profile_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"The id of the profile that owns it in Studio. Null for one an API key created, or once its owner’s profile is deleted.","isRequired":true,"uniqueKey":"owner_profile_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"owner_profile_id","typeLabel":"string | null"},"scheduled_by_id":{"oneOf":[{"type":"string","description":"The id of the profile that scheduled its send. Null when it is not scheduled, when an API key scheduled it, or once that profile is deleted.","isRequired":true,"uniqueKey":"scheduled_by_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"The id of the profile that scheduled its send. Null when it is not scheduled, when an API key scheduled it, or once that profile is deleted.","isRequired":true,"uniqueKey":"scheduled_by_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"scheduled_by_id","typeLabel":"string | null"},"created_by_id":{"oneOf":[{"type":"string","description":"The id of the profile that created it. Null when an API key did, or once that profile is deleted.","isRequired":true,"uniqueKey":"created_by_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"The id of the profile that created it. Null when an API key did, or once that profile is deleted.","isRequired":true,"uniqueKey":"created_by_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"created_by_id","typeLabel":"string | null"},"updated_by_id":{"oneOf":[{"type":"string","description":"The id of the profile that last changed it. Null when an API key did, or once that profile is deleted.","isRequired":true,"uniqueKey":"updated_by_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"The id of the profile that last changed it. Null when an API key did, or once that profile is deleted.","isRequired":true,"uniqueKey":"updated_by_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"updated_by_id","typeLabel":"string | null"},"owner":{"oneOf":[{"type":"object","description":"The profile that owns it. Present only when `owner` is expanded.","required":["object","id","created_at","updated_at","name","full_name","display_name","first_name","last_name","avatar_url","email","email_domain","locale","is_team_member","is_deactivated","opt_out_of_public_profile","member_since","invited_at","signed_up_at","source","has_account","flair_group_id","slack_profile_id"],"properties":{"object":{"type":"string","enum":["profile"],"description":"Always `profile`.","isRequired":true,"uniqueKey":"owner.oneOf.0.object","typeLabel":"enum\u003cstring>"},"id":{"type":"string","description":"Unique identifier for the object.","example":"prof_9f2b8c1d4e5a","isRequired":true,"uniqueKey":"owner.oneOf.0.id","typeLabel":"string"},"created_at":{"type":"string","format":"date-time","description":"When the object was created.","isRequired":true,"uniqueKey":"owner.oneOf.0.created_at","typeLabel":"string\u003cdate-time>"},"updated_at":{"type":"string","format":"date-time","description":"When the object was last changed.","isRequired":true,"uniqueKey":"owner.oneOf.0.updated_at","typeLabel":"string\u003cdate-time>"},"name":{"oneOf":[{"type":"string","description":"The name the community shows for the member. With a linked Slack profile it follows the community’s name preference, or reads `🔒[private profile]` when `opt_out_of_public_profile` is true; without one it is `display_name`, falling back to `full_name`.","example":"Ada Lovelace","isRequired":true,"uniqueKey":"owner.oneOf.0.name.oneOf.0","typeLabel":"string"},{"type":"null","description":"The name the community shows for the member. With a linked Slack profile it follows the community’s name preference, or reads `🔒[private profile]` when `opt_out_of_public_profile` is true; without one it is `display_name`, falling back to `full_name`.","example":"Ada Lovelace","isRequired":true,"uniqueKey":"owner.oneOf.0.name.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"owner.oneOf.0.name","typeLabel":"string | null"},"full_name":{"type":"string","description":"The member’s full name. Always set.","example":"Ada Lovelace","isRequired":true,"uniqueKey":"owner.oneOf.0.full_name","typeLabel":"string"},"display_name":{"oneOf":[{"type":"string","description":"The shorter name the member goes by, when they set one. Null otherwise.","isRequired":true,"uniqueKey":"owner.oneOf.0.display_name.oneOf.0","typeLabel":"string"},{"type":"null","description":"The shorter name the member goes by, when they set one. Null otherwise.","isRequired":true,"uniqueKey":"owner.oneOf.0.display_name.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"owner.oneOf.0.display_name","typeLabel":"string | null"},"first_name":{"oneOf":[{"type":"string","description":"The member’s first name, when known.","isRequired":true,"uniqueKey":"owner.oneOf.0.first_name.oneOf.0","typeLabel":"string"},{"type":"null","description":"The member’s first name, when known.","isRequired":true,"uniqueKey":"owner.oneOf.0.first_name.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"owner.oneOf.0.first_name","typeLabel":"string | null"},"last_name":{"oneOf":[{"type":"string","description":"The member’s last name, when known.","isRequired":true,"uniqueKey":"owner.oneOf.0.last_name.oneOf.0","typeLabel":"string"},{"type":"null","description":"The member’s last name, when known.","isRequired":true,"uniqueKey":"owner.oneOf.0.last_name.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"owner.oneOf.0.last_name","typeLabel":"string | null"},"avatar_url":{"oneOf":[{"type":"string","description":"The URL of the member’s avatar, from their Slack profile when one is linked. Null when they have none, or when a member with a linked Slack profile has `opt_out_of_public_profile` on.","isRequired":true,"uniqueKey":"owner.oneOf.0.avatar_url.oneOf.0","typeLabel":"string"},{"type":"null","description":"The URL of the member’s avatar, from their Slack profile when one is linked. Null when they have none, or when a member with a linked Slack profile has `opt_out_of_public_profile` on.","isRequired":true,"uniqueKey":"owner.oneOf.0.avatar_url.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"owner.oneOf.0.avatar_url","typeLabel":"string | null"},"email":{"oneOf":[{"type":"string","description":"The member’s email address. Null when it is not known.","example":"[email protected]","isRequired":true,"uniqueKey":"owner.oneOf.0.email.oneOf.0","typeLabel":"string"},{"type":"null","description":"The member’s email address. Null when it is not known.","example":"[email protected]","isRequired":true,"uniqueKey":"owner.oneOf.0.email.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"owner.oneOf.0.email","typeLabel":"string | null"},"email_domain":{"oneOf":[{"type":"string","description":"The lowercased domain of `email`, maintained by the database.","example":"example.com","isRequired":true,"uniqueKey":"owner.oneOf.0.email_domain.oneOf.0","typeLabel":"string"},{"type":"null","description":"The lowercased domain of `email`, maintained by the database.","example":"example.com","isRequired":true,"uniqueKey":"owner.oneOf.0.email_domain.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"owner.oneOf.0.email_domain","typeLabel":"string | null"},"locale":{"oneOf":[{"type":"string","description":"The member’s language and region, such as `en-US`, when known.","isRequired":true,"uniqueKey":"owner.oneOf.0.locale.oneOf.0","typeLabel":"string"},{"type":"null","description":"The member’s language and region, such as `en-US`, when known.","isRequired":true,"uniqueKey":"owner.oneOf.0.locale.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"owner.oneOf.0.locale","typeLabel":"string | null"},"is_team_member":{"type":"boolean","description":"Whether the member is staff of the community rather than one of its people.","isRequired":true,"uniqueKey":"owner.oneOf.0.is_team_member","typeLabel":"boolean"},"is_deactivated":{"type":"boolean","description":"Whether the member has been deactivated in the community.","isRequired":true,"uniqueKey":"owner.oneOf.0.is_deactivated","typeLabel":"boolean"},"opt_out_of_public_profile":{"type":"boolean","description":"Whether the member asked to be left out of the public member directory.","isRequired":true,"uniqueKey":"owner.oneOf.0.opt_out_of_public_profile","typeLabel":"boolean"},"member_since":{"oneOf":[{"type":"string","description":"When the member joined the community: their first site sign-in or Slack join. Null while they are invited and have not joined yet.","format":"date-time","isRequired":true,"uniqueKey":"owner.oneOf.0.member_since.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","description":"When the member joined the community: their first site sign-in or Slack join. Null while they are invited and have not joined yet.","isRequired":true,"uniqueKey":"owner.oneOf.0.member_since.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"owner.oneOf.0.member_since","typeLabel":"string\u003cdate-time> | null"},"invited_at":{"oneOf":[{"type":"string","description":"When an admin added the member before they joined (Studio, Admin API, MCP or CSV import), whether or not an invitation was sent. Kept after they join; null for members never added this way.","format":"date-time","isRequired":true,"uniqueKey":"owner.oneOf.0.invited_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","description":"When an admin added the member before they joined (Studio, Admin API, MCP or CSV import), whether or not an invitation was sent. Kept after they join; null for members never added this way.","isRequired":true,"uniqueKey":"owner.oneOf.0.invited_at.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"owner.oneOf.0.invited_at","typeLabel":"string\u003cdate-time> | null"},"signed_up_at":{"oneOf":[{"type":"string","description":"When the member first signed in to the community site. Unlike `member_since`, a Slack join never sets it. Null for members who have never signed in.","format":"date-time","isRequired":true,"uniqueKey":"owner.oneOf.0.signed_up_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","description":"When the member first signed in to the community site. Unlike `member_since`, a Slack join never sets it. Null for members who have never signed in.","isRequired":true,"uniqueKey":"owner.oneOf.0.signed_up_at.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"owner.oneOf.0.signed_up_at","typeLabel":"string\u003cdate-time> | null"},"source":{"type":"string","enum":["slack_sync","import","api","studio_signin","sso_signin","legacy","unknown"],"description":"How the profile was created. A Slack invitee who had not joined yet takes `api` or `import` when an admin then adds them. One of:\n- `slack_sync`: from Slack, through the member roster sync or the member joining or acting in the workspace.\n- `import`: from an admin’s bulk member import.\n- `api`: from the Admin API, Studio’s add-member form or the MCP server.\n- `studio_signin`: on an admin’s first Studio sign-in.\n- `sso_signin`: on a member’s first single sign-on (SSO) sign-in, where the site creates accounts automatically.\n- `legacy`: created before the origin was recorded.\n- `unknown`: created before the origin was recorded and before its Slack link, with no way left to tell how.","example":"slack_sync","isRequired":true,"uniqueKey":"owner.oneOf.0.source","typeLabel":"enum\u003cstring>"},"has_account":{"type":"boolean","description":"Whether the member has a sign-in account. False for a Slack identity nobody has claimed.","isRequired":true,"uniqueKey":"owner.oneOf.0.has_account","typeLabel":"boolean"},"flair_group_id":{"oneOf":[{"type":"string","description":"The group whose flair the member shows beside their name.","example":"grup_7m3x9k4t8plz","isRequired":true,"uniqueKey":"owner.oneOf.0.flair_group_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"The group whose flair the member shows beside their name.","example":"grup_7m3x9k4t8plz","isRequired":true,"uniqueKey":"owner.oneOf.0.flair_group_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"owner.oneOf.0.flair_group_id","typeLabel":"string | null"},"slack_profile_id":{"oneOf":[{"type":"string","description":"Slack’s id for the member’s linked Slack profile. Null when the member has no Slack identity.","example":"U0BRY4S6LNQ","isRequired":true,"uniqueKey":"owner.oneOf.0.slack_profile_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"Slack’s id for the member’s linked Slack profile. Null when the member has no Slack identity.","example":"U0BRY4S6LNQ","isRequired":true,"uniqueKey":"owner.oneOf.0.slack_profile_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"owner.oneOf.0.slack_profile_id","typeLabel":"string | null"},"integrations":{"type":"object","properties":{"slack":{"type":"object","properties":{"profile":{"oneOf":[{"type":"object","description":"The linked Slack profile, or null when the member has none.","required":["object","id","created_at","updated_at","workspace_id","display_name","real_name","email","pronouns","avatar_url","locale","tz","is_bot","is_app_user","is_workflow_bot","is_admin","is_owner","is_restricted","is_invited_user","is_deleted"],"properties":{"object":{"type":"string","enum":["slack_profile"],"description":"Always `slack_profile`.","isRequired":true,"uniqueKey":"owner.oneOf.0.integrations.slack.profile.oneOf.0.object","typeLabel":"enum\u003cstring>"},"id":{"type":"string","description":"Slack’s id for the member.","example":"U0BRY4S6LNQ","isRequired":true,"uniqueKey":"owner.oneOf.0.integrations.slack.profile.oneOf.0.id","typeLabel":"string"},"created_at":{"type":"string","format":"date-time","description":"When the object was created.","isRequired":true,"uniqueKey":"owner.oneOf.0.integrations.slack.profile.oneOf.0.created_at","typeLabel":"string\u003cdate-time>"},"updated_at":{"type":"string","format":"date-time","description":"When the object was last changed.","isRequired":true,"uniqueKey":"owner.oneOf.0.integrations.slack.profile.oneOf.0.updated_at","typeLabel":"string\u003cdate-time>"},"workspace_id":{"type":"string","description":"Slack’s id for the workspace the member belongs to.","example":"T01ABC123","isRequired":true,"uniqueKey":"owner.oneOf.0.integrations.slack.profile.oneOf.0.workspace_id","typeLabel":"string"},"display_name":{"oneOf":[{"type":"string","description":"The display name the member set in Slack. Empty or null when they set none.","isRequired":true,"uniqueKey":"owner.oneOf.0.integrations.slack.profile.oneOf.0.display_name.oneOf.0","typeLabel":"string"},{"type":"null","description":"The display name the member set in Slack. Empty or null when they set none.","isRequired":true,"uniqueKey":"owner.oneOf.0.integrations.slack.profile.oneOf.0.display_name.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"owner.oneOf.0.integrations.slack.profile.oneOf.0.display_name","typeLabel":"string | null"},"real_name":{"oneOf":[{"type":"string","description":"The member’s full name in Slack. Null when Slack has none.","isRequired":true,"uniqueKey":"owner.oneOf.0.integrations.slack.profile.oneOf.0.real_name.oneOf.0","typeLabel":"string"},{"type":"null","description":"The member’s full name in Slack. Null when Slack has none.","isRequired":true,"uniqueKey":"owner.oneOf.0.integrations.slack.profile.oneOf.0.real_name.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"owner.oneOf.0.integrations.slack.profile.oneOf.0.real_name","typeLabel":"string | null"},"email":{"oneOf":[{"type":"string","description":"The email address on the Slack account. Null when Slack does not share it, as for bots.","example":"[email protected]","isRequired":true,"uniqueKey":"owner.oneOf.0.integrations.slack.profile.oneOf.0.email.oneOf.0","typeLabel":"string"},{"type":"null","description":"The email address on the Slack account. Null when Slack does not share it, as for bots.","example":"[email protected]","isRequired":true,"uniqueKey":"owner.oneOf.0.integrations.slack.profile.oneOf.0.email.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"owner.oneOf.0.integrations.slack.profile.oneOf.0.email","typeLabel":"string | null"},"pronouns":{"oneOf":[{"type":"string","description":"The pronouns the member set in Slack. Empty or null when they set none.","isRequired":true,"uniqueKey":"owner.oneOf.0.integrations.slack.profile.oneOf.0.pronouns.oneOf.0","typeLabel":"string"},{"type":"null","description":"The pronouns the member set in Slack. Empty or null when they set none.","isRequired":true,"uniqueKey":"owner.oneOf.0.integrations.slack.profile.oneOf.0.pronouns.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"owner.oneOf.0.integrations.slack.profile.oneOf.0.pronouns","typeLabel":"string | null"},"avatar_url":{"oneOf":[{"type":"string","description":"The URL of the member’s Slack avatar. Null when Slack has none.","isRequired":true,"uniqueKey":"owner.oneOf.0.integrations.slack.profile.oneOf.0.avatar_url.oneOf.0","typeLabel":"string"},{"type":"null","description":"The URL of the member’s Slack avatar. Null when Slack has none.","isRequired":true,"uniqueKey":"owner.oneOf.0.integrations.slack.profile.oneOf.0.avatar_url.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"owner.oneOf.0.integrations.slack.profile.oneOf.0.avatar_url","typeLabel":"string | null"},"locale":{"oneOf":[{"type":"string","description":"The member’s Slack language and region, such as `en-US`, when known.","isRequired":true,"uniqueKey":"owner.oneOf.0.integrations.slack.profile.oneOf.0.locale.oneOf.0","typeLabel":"string"},{"type":"null","description":"The member’s Slack language and region, such as `en-US`, when known.","isRequired":true,"uniqueKey":"owner.oneOf.0.integrations.slack.profile.oneOf.0.locale.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"owner.oneOf.0.integrations.slack.profile.oneOf.0.locale","typeLabel":"string | null"},"tz":{"oneOf":[{"type":"string","description":"The member’s time zone in Slack, as an IANA name such as `America/New_York`, when known.","isRequired":true,"uniqueKey":"owner.oneOf.0.integrations.slack.profile.oneOf.0.tz.oneOf.0","typeLabel":"string"},{"type":"null","description":"The member’s time zone in Slack, as an IANA name such as `America/New_York`, when known.","isRequired":true,"uniqueKey":"owner.oneOf.0.integrations.slack.profile.oneOf.0.tz.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"owner.oneOf.0.integrations.slack.profile.oneOf.0.tz","typeLabel":"string | null"},"is_bot":{"type":"boolean","description":"Whether the account is a bot rather than a person.","isRequired":true,"uniqueKey":"owner.oneOf.0.integrations.slack.profile.oneOf.0.is_bot","typeLabel":"boolean"},"is_app_user":{"type":"boolean","description":"Whether Slack reports the member as an authorized user of the Tightknit app.","isRequired":true,"uniqueKey":"owner.oneOf.0.integrations.slack.profile.oneOf.0.is_app_user","typeLabel":"boolean"},"is_workflow_bot":{"type":"boolean","description":"Whether the account is the bot behind a Slack workflow.","isRequired":true,"uniqueKey":"owner.oneOf.0.integrations.slack.profile.oneOf.0.is_workflow_bot","typeLabel":"boolean"},"is_admin":{"type":"boolean","description":"Whether the member is an admin of the Slack workspace.","isRequired":true,"uniqueKey":"owner.oneOf.0.integrations.slack.profile.oneOf.0.is_admin","typeLabel":"boolean"},"is_owner":{"type":"boolean","description":"Whether the member is an owner of the Slack workspace.","isRequired":true,"uniqueKey":"owner.oneOf.0.integrations.slack.profile.oneOf.0.is_owner","typeLabel":"boolean"},"is_restricted":{"type":"boolean","description":"Whether the member is a Slack guest, limited to the channels they were invited to.","isRequired":true,"uniqueKey":"owner.oneOf.0.integrations.slack.profile.oneOf.0.is_restricted","typeLabel":"boolean"},"is_invited_user":{"type":"boolean","description":"Whether the member holds nothing but a still-open Slack invitation.","isRequired":true,"uniqueKey":"owner.oneOf.0.integrations.slack.profile.oneOf.0.is_invited_user","typeLabel":"boolean"},"is_deleted":{"type":"boolean","description":"Whether Slack deactivated the account.","isRequired":true,"uniqueKey":"owner.oneOf.0.integrations.slack.profile.oneOf.0.is_deleted","typeLabel":"boolean"}},"isRequired":true,"uniqueKey":"owner.oneOf.0.integrations.slack.profile.oneOf.0","typeLabel":"object"},{"type":"null","description":"The linked Slack profile, or null when the member has none.","isRequired":true,"uniqueKey":"owner.oneOf.0.integrations.slack.profile.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"owner.oneOf.0.integrations.slack.profile","typeLabel":"object | null"}},"required":["profile"],"description":"The member’s Slack identity.","isRequired":true,"uniqueKey":"owner.oneOf.0.integrations.slack","typeLabel":"object"}},"required":["slack"],"description":"Where the member connects to other platforms. Present only when `slack_profile` is expanded.","uniqueKey":"owner.oneOf.0.integrations","typeLabel":"object"}},"uniqueKey":"owner.oneOf.0","typeLabel":"object"},{"type":"null","description":"The profile that owns it. Present only when `owner` is expanded.","uniqueKey":"owner.oneOf.1","typeLabel":"null"}],"uniqueKey":"owner","typeLabel":"object | null"},"scheduled_by":{"oneOf":[{"type":"object","description":"The profile that scheduled its send. Present only when `scheduled_by` is expanded.","required":["object","id","created_at","updated_at","name","full_name","display_name","first_name","last_name","avatar_url","email","email_domain","locale","is_team_member","is_deactivated","opt_out_of_public_profile","member_since","invited_at","signed_up_at","source","has_account","flair_group_id","slack_profile_id"],"properties":{"object":{"type":"string","enum":["profile"],"description":"Always `profile`.","isRequired":true,"uniqueKey":"scheduled_by.oneOf.0.object","typeLabel":"enum\u003cstring>"},"id":{"type":"string","description":"Unique identifier for the object.","example":"prof_9f2b8c1d4e5a","isRequired":true,"uniqueKey":"scheduled_by.oneOf.0.id","typeLabel":"string"},"created_at":{"type":"string","format":"date-time","description":"When the object was created.","isRequired":true,"uniqueKey":"scheduled_by.oneOf.0.created_at","typeLabel":"string\u003cdate-time>"},"updated_at":{"type":"string","format":"date-time","description":"When the object was last changed.","isRequired":true,"uniqueKey":"scheduled_by.oneOf.0.updated_at","typeLabel":"string\u003cdate-time>"},"name":{"oneOf":[{"type":"string","description":"The name the community shows for the member. With a linked Slack profile it follows the community’s name preference, or reads `🔒[private profile]` when `opt_out_of_public_profile` is true; without one it is `display_name`, falling back to `full_name`.","example":"Ada Lovelace","isRequired":true,"uniqueKey":"scheduled_by.oneOf.0.name.oneOf.0","typeLabel":"string"},{"type":"null","description":"The name the community shows for the member. With a linked Slack profile it follows the community’s name preference, or reads `🔒[private profile]` when `opt_out_of_public_profile` is true; without one it is `display_name`, falling back to `full_name`.","example":"Ada Lovelace","isRequired":true,"uniqueKey":"scheduled_by.oneOf.0.name.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"scheduled_by.oneOf.0.name","typeLabel":"string | null"},"full_name":{"type":"string","description":"The member’s full name. Always set.","example":"Ada Lovelace","isRequired":true,"uniqueKey":"scheduled_by.oneOf.0.full_name","typeLabel":"string"},"display_name":{"oneOf":[{"type":"string","description":"The shorter name the member goes by, when they set one. Null otherwise.","isRequired":true,"uniqueKey":"scheduled_by.oneOf.0.display_name.oneOf.0","typeLabel":"string"},{"type":"null","description":"The shorter name the member goes by, when they set one. Null otherwise.","isRequired":true,"uniqueKey":"scheduled_by.oneOf.0.display_name.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"scheduled_by.oneOf.0.display_name","typeLabel":"string | null"},"first_name":{"oneOf":[{"type":"string","description":"The member’s first name, when known.","isRequired":true,"uniqueKey":"scheduled_by.oneOf.0.first_name.oneOf.0","typeLabel":"string"},{"type":"null","description":"The member’s first name, when known.","isRequired":true,"uniqueKey":"scheduled_by.oneOf.0.first_name.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"scheduled_by.oneOf.0.first_name","typeLabel":"string | null"},"last_name":{"oneOf":[{"type":"string","description":"The member’s last name, when known.","isRequired":true,"uniqueKey":"scheduled_by.oneOf.0.last_name.oneOf.0","typeLabel":"string"},{"type":"null","description":"The member’s last name, when known.","isRequired":true,"uniqueKey":"scheduled_by.oneOf.0.last_name.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"scheduled_by.oneOf.0.last_name","typeLabel":"string | null"},"avatar_url":{"oneOf":[{"type":"string","description":"The URL of the member’s avatar, from their Slack profile when one is linked. Null when they have none, or when a member with a linked Slack profile has `opt_out_of_public_profile` on.","isRequired":true,"uniqueKey":"scheduled_by.oneOf.0.avatar_url.oneOf.0","typeLabel":"string"},{"type":"null","description":"The URL of the member’s avatar, from their Slack profile when one is linked. Null when they have none, or when a member with a linked Slack profile has `opt_out_of_public_profile` on.","isRequired":true,"uniqueKey":"scheduled_by.oneOf.0.avatar_url.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"scheduled_by.oneOf.0.avatar_url","typeLabel":"string | null"},"email":{"oneOf":[{"type":"string","description":"The member’s email address. Null when it is not known.","example":"[email protected]","isRequired":true,"uniqueKey":"scheduled_by.oneOf.0.email.oneOf.0","typeLabel":"string"},{"type":"null","description":"The member’s email address. Null when it is not known.","example":"[email protected]","isRequired":true,"uniqueKey":"scheduled_by.oneOf.0.email.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"scheduled_by.oneOf.0.email","typeLabel":"string | null"},"email_domain":{"oneOf":[{"type":"string","description":"The lowercased domain of `email`, maintained by the database.","example":"example.com","isRequired":true,"uniqueKey":"scheduled_by.oneOf.0.email_domain.oneOf.0","typeLabel":"string"},{"type":"null","description":"The lowercased domain of `email`, maintained by the database.","example":"example.com","isRequired":true,"uniqueKey":"scheduled_by.oneOf.0.email_domain.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"scheduled_by.oneOf.0.email_domain","typeLabel":"string | null"},"locale":{"oneOf":[{"type":"string","description":"The member’s language and region, such as `en-US`, when known.","isRequired":true,"uniqueKey":"scheduled_by.oneOf.0.locale.oneOf.0","typeLabel":"string"},{"type":"null","description":"The member’s language and region, such as `en-US`, when known.","isRequired":true,"uniqueKey":"scheduled_by.oneOf.0.locale.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"scheduled_by.oneOf.0.locale","typeLabel":"string | null"},"is_team_member":{"type":"boolean","description":"Whether the member is staff of the community rather than one of its people.","isRequired":true,"uniqueKey":"scheduled_by.oneOf.0.is_team_member","typeLabel":"boolean"},"is_deactivated":{"type":"boolean","description":"Whether the member has been deactivated in the community.","isRequired":true,"uniqueKey":"scheduled_by.oneOf.0.is_deactivated","typeLabel":"boolean"},"opt_out_of_public_profile":{"type":"boolean","description":"Whether the member asked to be left out of the public member directory.","isRequired":true,"uniqueKey":"scheduled_by.oneOf.0.opt_out_of_public_profile","typeLabel":"boolean"},"member_since":{"oneOf":[{"type":"string","description":"When the member joined the community: their first site sign-in or Slack join. Null while they are invited and have not joined yet.","format":"date-time","isRequired":true,"uniqueKey":"scheduled_by.oneOf.0.member_since.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","description":"When the member joined the community: their first site sign-in or Slack join. Null while they are invited and have not joined yet.","isRequired":true,"uniqueKey":"scheduled_by.oneOf.0.member_since.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"scheduled_by.oneOf.0.member_since","typeLabel":"string\u003cdate-time> | null"},"invited_at":{"oneOf":[{"type":"string","description":"When an admin added the member before they joined (Studio, Admin API, MCP or CSV import), whether or not an invitation was sent. Kept after they join; null for members never added this way.","format":"date-time","isRequired":true,"uniqueKey":"scheduled_by.oneOf.0.invited_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","description":"When an admin added the member before they joined (Studio, Admin API, MCP or CSV import), whether or not an invitation was sent. Kept after they join; null for members never added this way.","isRequired":true,"uniqueKey":"scheduled_by.oneOf.0.invited_at.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"scheduled_by.oneOf.0.invited_at","typeLabel":"string\u003cdate-time> | null"},"signed_up_at":{"oneOf":[{"type":"string","description":"When the member first signed in to the community site. Unlike `member_since`, a Slack join never sets it. Null for members who have never signed in.","format":"date-time","isRequired":true,"uniqueKey":"scheduled_by.oneOf.0.signed_up_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","description":"When the member first signed in to the community site. Unlike `member_since`, a Slack join never sets it. Null for members who have never signed in.","isRequired":true,"uniqueKey":"scheduled_by.oneOf.0.signed_up_at.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"scheduled_by.oneOf.0.signed_up_at","typeLabel":"string\u003cdate-time> | null"},"source":{"type":"string","enum":["slack_sync","import","api","studio_signin","sso_signin","legacy","unknown"],"description":"How the profile was created. A Slack invitee who had not joined yet takes `api` or `import` when an admin then adds them. One of:\n- `slack_sync`: from Slack, through the member roster sync or the member joining or acting in the workspace.\n- `import`: from an admin’s bulk member import.\n- `api`: from the Admin API, Studio’s add-member form or the MCP server.\n- `studio_signin`: on an admin’s first Studio sign-in.\n- `sso_signin`: on a member’s first single sign-on (SSO) sign-in, where the site creates accounts automatically.\n- `legacy`: created before the origin was recorded.\n- `unknown`: created before the origin was recorded and before its Slack link, with no way left to tell how.","example":"slack_sync","isRequired":true,"uniqueKey":"scheduled_by.oneOf.0.source","typeLabel":"enum\u003cstring>"},"has_account":{"type":"boolean","description":"Whether the member has a sign-in account. False for a Slack identity nobody has claimed.","isRequired":true,"uniqueKey":"scheduled_by.oneOf.0.has_account","typeLabel":"boolean"},"flair_group_id":{"oneOf":[{"type":"string","description":"The group whose flair the member shows beside their name.","example":"grup_7m3x9k4t8plz","isRequired":true,"uniqueKey":"scheduled_by.oneOf.0.flair_group_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"The group whose flair the member shows beside their name.","example":"grup_7m3x9k4t8plz","isRequired":true,"uniqueKey":"scheduled_by.oneOf.0.flair_group_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"scheduled_by.oneOf.0.flair_group_id","typeLabel":"string | null"},"slack_profile_id":{"oneOf":[{"type":"string","description":"Slack’s id for the member’s linked Slack profile. Null when the member has no Slack identity.","example":"U0BRY4S6LNQ","isRequired":true,"uniqueKey":"scheduled_by.oneOf.0.slack_profile_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"Slack’s id for the member’s linked Slack profile. Null when the member has no Slack identity.","example":"U0BRY4S6LNQ","isRequired":true,"uniqueKey":"scheduled_by.oneOf.0.slack_profile_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"scheduled_by.oneOf.0.slack_profile_id","typeLabel":"string | null"},"integrations":{"type":"object","properties":{"slack":{"type":"object","properties":{"profile":{"oneOf":[{"type":"object","description":"The linked Slack profile, or null when the member has none.","required":["object","id","created_at","updated_at","workspace_id","display_name","real_name","email","pronouns","avatar_url","locale","tz","is_bot","is_app_user","is_workflow_bot","is_admin","is_owner","is_restricted","is_invited_user","is_deleted"],"properties":{"object":{"type":"string","enum":["slack_profile"],"description":"Always `slack_profile`.","isRequired":true,"uniqueKey":"scheduled_by.oneOf.0.integrations.slack.profile.oneOf.0.object","typeLabel":"enum\u003cstring>"},"id":{"type":"string","description":"Slack’s id for the member.","example":"U0BRY4S6LNQ","isRequired":true,"uniqueKey":"scheduled_by.oneOf.0.integrations.slack.profile.oneOf.0.id","typeLabel":"string"},"created_at":{"type":"string","format":"date-time","description":"When the object was created.","isRequired":true,"uniqueKey":"scheduled_by.oneOf.0.integrations.slack.profile.oneOf.0.created_at","typeLabel":"string\u003cdate-time>"},"updated_at":{"type":"string","format":"date-time","description":"When the object was last changed.","isRequired":true,"uniqueKey":"scheduled_by.oneOf.0.integrations.slack.profile.oneOf.0.updated_at","typeLabel":"string\u003cdate-time>"},"workspace_id":{"type":"string","description":"Slack’s id for the workspace the member belongs to.","example":"T01ABC123","isRequired":true,"uniqueKey":"scheduled_by.oneOf.0.integrations.slack.profile.oneOf.0.workspace_id","typeLabel":"string"},"display_name":{"oneOf":[{"type":"string","description":"The display name the member set in Slack. Empty or null when they set none.","isRequired":true,"uniqueKey":"scheduled_by.oneOf.0.integrations.slack.profile.oneOf.0.display_name.oneOf.0","typeLabel":"string"},{"type":"null","description":"The display name the member set in Slack. Empty or null when they set none.","isRequired":true,"uniqueKey":"scheduled_by.oneOf.0.integrations.slack.profile.oneOf.0.display_name.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"scheduled_by.oneOf.0.integrations.slack.profile.oneOf.0.display_name","typeLabel":"string | null"},"real_name":{"oneOf":[{"type":"string","description":"The member’s full name in Slack. Null when Slack has none.","isRequired":true,"uniqueKey":"scheduled_by.oneOf.0.integrations.slack.profile.oneOf.0.real_name.oneOf.0","typeLabel":"string"},{"type":"null","description":"The member’s full name in Slack. Null when Slack has none.","isRequired":true,"uniqueKey":"scheduled_by.oneOf.0.integrations.slack.profile.oneOf.0.real_name.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"scheduled_by.oneOf.0.integrations.slack.profile.oneOf.0.real_name","typeLabel":"string | null"},"email":{"oneOf":[{"type":"string","description":"The email address on the Slack account. Null when Slack does not share it, as for bots.","example":"[email protected]","isRequired":true,"uniqueKey":"scheduled_by.oneOf.0.integrations.slack.profile.oneOf.0.email.oneOf.0","typeLabel":"string"},{"type":"null","description":"The email address on the Slack account. Null when Slack does not share it, as for bots.","example":"[email protected]","isRequired":true,"uniqueKey":"scheduled_by.oneOf.0.integrations.slack.profile.oneOf.0.email.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"scheduled_by.oneOf.0.integrations.slack.profile.oneOf.0.email","typeLabel":"string | null"},"pronouns":{"oneOf":[{"type":"string","description":"The pronouns the member set in Slack. Empty or null when they set none.","isRequired":true,"uniqueKey":"scheduled_by.oneOf.0.integrations.slack.profile.oneOf.0.pronouns.oneOf.0","typeLabel":"string"},{"type":"null","description":"The pronouns the member set in Slack. Empty or null when they set none.","isRequired":true,"uniqueKey":"scheduled_by.oneOf.0.integrations.slack.profile.oneOf.0.pronouns.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"scheduled_by.oneOf.0.integrations.slack.profile.oneOf.0.pronouns","typeLabel":"string | null"},"avatar_url":{"oneOf":[{"type":"string","description":"The URL of the member’s Slack avatar. Null when Slack has none.","isRequired":true,"uniqueKey":"scheduled_by.oneOf.0.integrations.slack.profile.oneOf.0.avatar_url.oneOf.0","typeLabel":"string"},{"type":"null","description":"The URL of the member’s Slack avatar. Null when Slack has none.","isRequired":true,"uniqueKey":"scheduled_by.oneOf.0.integrations.slack.profile.oneOf.0.avatar_url.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"scheduled_by.oneOf.0.integrations.slack.profile.oneOf.0.avatar_url","typeLabel":"string | null"},"locale":{"oneOf":[{"type":"string","description":"The member’s Slack language and region, such as `en-US`, when known.","isRequired":true,"uniqueKey":"scheduled_by.oneOf.0.integrations.slack.profile.oneOf.0.locale.oneOf.0","typeLabel":"string"},{"type":"null","description":"The member’s Slack language and region, such as `en-US`, when known.","isRequired":true,"uniqueKey":"scheduled_by.oneOf.0.integrations.slack.profile.oneOf.0.locale.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"scheduled_by.oneOf.0.integrations.slack.profile.oneOf.0.locale","typeLabel":"string | null"},"tz":{"oneOf":[{"type":"string","description":"The member’s time zone in Slack, as an IANA name such as `America/New_York`, when known.","isRequired":true,"uniqueKey":"scheduled_by.oneOf.0.integrations.slack.profile.oneOf.0.tz.oneOf.0","typeLabel":"string"},{"type":"null","description":"The member’s time zone in Slack, as an IANA name such as `America/New_York`, when known.","isRequired":true,"uniqueKey":"scheduled_by.oneOf.0.integrations.slack.profile.oneOf.0.tz.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"scheduled_by.oneOf.0.integrations.slack.profile.oneOf.0.tz","typeLabel":"string | null"},"is_bot":{"type":"boolean","description":"Whether the account is a bot rather than a person.","isRequired":true,"uniqueKey":"scheduled_by.oneOf.0.integrations.slack.profile.oneOf.0.is_bot","typeLabel":"boolean"},"is_app_user":{"type":"boolean","description":"Whether Slack reports the member as an authorized user of the Tightknit app.","isRequired":true,"uniqueKey":"scheduled_by.oneOf.0.integrations.slack.profile.oneOf.0.is_app_user","typeLabel":"boolean"},"is_workflow_bot":{"type":"boolean","description":"Whether the account is the bot behind a Slack workflow.","isRequired":true,"uniqueKey":"scheduled_by.oneOf.0.integrations.slack.profile.oneOf.0.is_workflow_bot","typeLabel":"boolean"},"is_admin":{"type":"boolean","description":"Whether the member is an admin of the Slack workspace.","isRequired":true,"uniqueKey":"scheduled_by.oneOf.0.integrations.slack.profile.oneOf.0.is_admin","typeLabel":"boolean"},"is_owner":{"type":"boolean","description":"Whether the member is an owner of the Slack workspace.","isRequired":true,"uniqueKey":"scheduled_by.oneOf.0.integrations.slack.profile.oneOf.0.is_owner","typeLabel":"boolean"},"is_restricted":{"type":"boolean","description":"Whether the member is a Slack guest, limited to the channels they were invited to.","isRequired":true,"uniqueKey":"scheduled_by.oneOf.0.integrations.slack.profile.oneOf.0.is_restricted","typeLabel":"boolean"},"is_invited_user":{"type":"boolean","description":"Whether the member holds nothing but a still-open Slack invitation.","isRequired":true,"uniqueKey":"scheduled_by.oneOf.0.integrations.slack.profile.oneOf.0.is_invited_user","typeLabel":"boolean"},"is_deleted":{"type":"boolean","description":"Whether Slack deactivated the account.","isRequired":true,"uniqueKey":"scheduled_by.oneOf.0.integrations.slack.profile.oneOf.0.is_deleted","typeLabel":"boolean"}},"isRequired":true,"uniqueKey":"scheduled_by.oneOf.0.integrations.slack.profile.oneOf.0","typeLabel":"object"},{"type":"null","description":"The linked Slack profile, or null when the member has none.","isRequired":true,"uniqueKey":"scheduled_by.oneOf.0.integrations.slack.profile.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"scheduled_by.oneOf.0.integrations.slack.profile","typeLabel":"object | null"}},"required":["profile"],"description":"The member’s Slack identity.","isRequired":true,"uniqueKey":"scheduled_by.oneOf.0.integrations.slack","typeLabel":"object"}},"required":["slack"],"description":"Where the member connects to other platforms. Present only when `slack_profile` is expanded.","uniqueKey":"scheduled_by.oneOf.0.integrations","typeLabel":"object"}},"uniqueKey":"scheduled_by.oneOf.0","typeLabel":"object"},{"type":"null","description":"The profile that scheduled its send. Present only when `scheduled_by` is expanded.","uniqueKey":"scheduled_by.oneOf.1","typeLabel":"null"}],"uniqueKey":"scheduled_by","typeLabel":"object | null"},"created_by":{"oneOf":[{"type":"object","description":"The profile that created it. Present only when `created_by` is expanded.","required":["object","id","created_at","updated_at","name","full_name","display_name","first_name","last_name","avatar_url","email","email_domain","locale","is_team_member","is_deactivated","opt_out_of_public_profile","member_since","invited_at","signed_up_at","source","has_account","flair_group_id","slack_profile_id"],"properties":{"object":{"type":"string","enum":["profile"],"description":"Always `profile`.","isRequired":true,"uniqueKey":"created_by.oneOf.0.object","typeLabel":"enum\u003cstring>"},"id":{"type":"string","description":"Unique identifier for the object.","example":"prof_9f2b8c1d4e5a","isRequired":true,"uniqueKey":"created_by.oneOf.0.id","typeLabel":"string"},"created_at":{"type":"string","format":"date-time","description":"When the object was created.","isRequired":true,"uniqueKey":"created_by.oneOf.0.created_at","typeLabel":"string\u003cdate-time>"},"updated_at":{"type":"string","format":"date-time","description":"When the object was last changed.","isRequired":true,"uniqueKey":"created_by.oneOf.0.updated_at","typeLabel":"string\u003cdate-time>"},"name":{"oneOf":[{"type":"string","description":"The name the community shows for the member. With a linked Slack profile it follows the community’s name preference, or reads `🔒[private profile]` when `opt_out_of_public_profile` is true; without one it is `display_name`, falling back to `full_name`.","example":"Ada Lovelace","isRequired":true,"uniqueKey":"created_by.oneOf.0.name.oneOf.0","typeLabel":"string"},{"type":"null","description":"The name the community shows for the member. With a linked Slack profile it follows the community’s name preference, or reads `🔒[private profile]` when `opt_out_of_public_profile` is true; without one it is `display_name`, falling back to `full_name`.","example":"Ada Lovelace","isRequired":true,"uniqueKey":"created_by.oneOf.0.name.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"created_by.oneOf.0.name","typeLabel":"string | null"},"full_name":{"type":"string","description":"The member’s full name. Always set.","example":"Ada Lovelace","isRequired":true,"uniqueKey":"created_by.oneOf.0.full_name","typeLabel":"string"},"display_name":{"oneOf":[{"type":"string","description":"The shorter name the member goes by, when they set one. Null otherwise.","isRequired":true,"uniqueKey":"created_by.oneOf.0.display_name.oneOf.0","typeLabel":"string"},{"type":"null","description":"The shorter name the member goes by, when they set one. Null otherwise.","isRequired":true,"uniqueKey":"created_by.oneOf.0.display_name.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"created_by.oneOf.0.display_name","typeLabel":"string | null"},"first_name":{"oneOf":[{"type":"string","description":"The member’s first name, when known.","isRequired":true,"uniqueKey":"created_by.oneOf.0.first_name.oneOf.0","typeLabel":"string"},{"type":"null","description":"The member’s first name, when known.","isRequired":true,"uniqueKey":"created_by.oneOf.0.first_name.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"created_by.oneOf.0.first_name","typeLabel":"string | null"},"last_name":{"oneOf":[{"type":"string","description":"The member’s last name, when known.","isRequired":true,"uniqueKey":"created_by.oneOf.0.last_name.oneOf.0","typeLabel":"string"},{"type":"null","description":"The member’s last name, when known.","isRequired":true,"uniqueKey":"created_by.oneOf.0.last_name.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"created_by.oneOf.0.last_name","typeLabel":"string | null"},"avatar_url":{"oneOf":[{"type":"string","description":"The URL of the member’s avatar, from their Slack profile when one is linked. Null when they have none, or when a member with a linked Slack profile has `opt_out_of_public_profile` on.","isRequired":true,"uniqueKey":"created_by.oneOf.0.avatar_url.oneOf.0","typeLabel":"string"},{"type":"null","description":"The URL of the member’s avatar, from their Slack profile when one is linked. Null when they have none, or when a member with a linked Slack profile has `opt_out_of_public_profile` on.","isRequired":true,"uniqueKey":"created_by.oneOf.0.avatar_url.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"created_by.oneOf.0.avatar_url","typeLabel":"string | null"},"email":{"oneOf":[{"type":"string","description":"The member’s email address. Null when it is not known.","example":"[email protected]","isRequired":true,"uniqueKey":"created_by.oneOf.0.email.oneOf.0","typeLabel":"string"},{"type":"null","description":"The member’s email address. Null when it is not known.","example":"[email protected]","isRequired":true,"uniqueKey":"created_by.oneOf.0.email.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"created_by.oneOf.0.email","typeLabel":"string | null"},"email_domain":{"oneOf":[{"type":"string","description":"The lowercased domain of `email`, maintained by the database.","example":"example.com","isRequired":true,"uniqueKey":"created_by.oneOf.0.email_domain.oneOf.0","typeLabel":"string"},{"type":"null","description":"The lowercased domain of `email`, maintained by the database.","example":"example.com","isRequired":true,"uniqueKey":"created_by.oneOf.0.email_domain.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"created_by.oneOf.0.email_domain","typeLabel":"string | null"},"locale":{"oneOf":[{"type":"string","description":"The member’s language and region, such as `en-US`, when known.","isRequired":true,"uniqueKey":"created_by.oneOf.0.locale.oneOf.0","typeLabel":"string"},{"type":"null","description":"The member’s language and region, such as `en-US`, when known.","isRequired":true,"uniqueKey":"created_by.oneOf.0.locale.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"created_by.oneOf.0.locale","typeLabel":"string | null"},"is_team_member":{"type":"boolean","description":"Whether the member is staff of the community rather than one of its people.","isRequired":true,"uniqueKey":"created_by.oneOf.0.is_team_member","typeLabel":"boolean"},"is_deactivated":{"type":"boolean","description":"Whether the member has been deactivated in the community.","isRequired":true,"uniqueKey":"created_by.oneOf.0.is_deactivated","typeLabel":"boolean"},"opt_out_of_public_profile":{"type":"boolean","description":"Whether the member asked to be left out of the public member directory.","isRequired":true,"uniqueKey":"created_by.oneOf.0.opt_out_of_public_profile","typeLabel":"boolean"},"member_since":{"oneOf":[{"type":"string","description":"When the member joined the community: their first site sign-in or Slack join. Null while they are invited and have not joined yet.","format":"date-time","isRequired":true,"uniqueKey":"created_by.oneOf.0.member_since.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","description":"When the member joined the community: their first site sign-in or Slack join. Null while they are invited and have not joined yet.","isRequired":true,"uniqueKey":"created_by.oneOf.0.member_since.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"created_by.oneOf.0.member_since","typeLabel":"string\u003cdate-time> | null"},"invited_at":{"oneOf":[{"type":"string","description":"When an admin added the member before they joined (Studio, Admin API, MCP or CSV import), whether or not an invitation was sent. Kept after they join; null for members never added this way.","format":"date-time","isRequired":true,"uniqueKey":"created_by.oneOf.0.invited_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","description":"When an admin added the member before they joined (Studio, Admin API, MCP or CSV import), whether or not an invitation was sent. Kept after they join; null for members never added this way.","isRequired":true,"uniqueKey":"created_by.oneOf.0.invited_at.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"created_by.oneOf.0.invited_at","typeLabel":"string\u003cdate-time> | null"},"signed_up_at":{"oneOf":[{"type":"string","description":"When the member first signed in to the community site. Unlike `member_since`, a Slack join never sets it. Null for members who have never signed in.","format":"date-time","isRequired":true,"uniqueKey":"created_by.oneOf.0.signed_up_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","description":"When the member first signed in to the community site. Unlike `member_since`, a Slack join never sets it. Null for members who have never signed in.","isRequired":true,"uniqueKey":"created_by.oneOf.0.signed_up_at.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"created_by.oneOf.0.signed_up_at","typeLabel":"string\u003cdate-time> | null"},"source":{"type":"string","enum":["slack_sync","import","api","studio_signin","sso_signin","legacy","unknown"],"description":"How the profile was created. A Slack invitee who had not joined yet takes `api` or `import` when an admin then adds them. One of:\n- `slack_sync`: from Slack, through the member roster sync or the member joining or acting in the workspace.\n- `import`: from an admin’s bulk member import.\n- `api`: from the Admin API, Studio’s add-member form or the MCP server.\n- `studio_signin`: on an admin’s first Studio sign-in.\n- `sso_signin`: on a member’s first single sign-on (SSO) sign-in, where the site creates accounts automatically.\n- `legacy`: created before the origin was recorded.\n- `unknown`: created before the origin was recorded and before its Slack link, with no way left to tell how.","example":"slack_sync","isRequired":true,"uniqueKey":"created_by.oneOf.0.source","typeLabel":"enum\u003cstring>"},"has_account":{"type":"boolean","description":"Whether the member has a sign-in account. False for a Slack identity nobody has claimed.","isRequired":true,"uniqueKey":"created_by.oneOf.0.has_account","typeLabel":"boolean"},"flair_group_id":{"oneOf":[{"type":"string","description":"The group whose flair the member shows beside their name.","example":"grup_7m3x9k4t8plz","isRequired":true,"uniqueKey":"created_by.oneOf.0.flair_group_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"The group whose flair the member shows beside their name.","example":"grup_7m3x9k4t8plz","isRequired":true,"uniqueKey":"created_by.oneOf.0.flair_group_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"created_by.oneOf.0.flair_group_id","typeLabel":"string | null"},"slack_profile_id":{"oneOf":[{"type":"string","description":"Slack’s id for the member’s linked Slack profile. Null when the member has no Slack identity.","example":"U0BRY4S6LNQ","isRequired":true,"uniqueKey":"created_by.oneOf.0.slack_profile_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"Slack’s id for the member’s linked Slack profile. Null when the member has no Slack identity.","example":"U0BRY4S6LNQ","isRequired":true,"uniqueKey":"created_by.oneOf.0.slack_profile_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"created_by.oneOf.0.slack_profile_id","typeLabel":"string | null"},"integrations":{"type":"object","properties":{"slack":{"type":"object","properties":{"profile":{"oneOf":[{"type":"object","description":"The linked Slack profile, or null when the member has none.","required":["object","id","created_at","updated_at","workspace_id","display_name","real_name","email","pronouns","avatar_url","locale","tz","is_bot","is_app_user","is_workflow_bot","is_admin","is_owner","is_restricted","is_invited_user","is_deleted"],"properties":{"object":{"type":"string","enum":["slack_profile"],"description":"Always `slack_profile`.","isRequired":true,"uniqueKey":"created_by.oneOf.0.integrations.slack.profile.oneOf.0.object","typeLabel":"enum\u003cstring>"},"id":{"type":"string","description":"Slack’s id for the member.","example":"U0BRY4S6LNQ","isRequired":true,"uniqueKey":"created_by.oneOf.0.integrations.slack.profile.oneOf.0.id","typeLabel":"string"},"created_at":{"type":"string","format":"date-time","description":"When the object was created.","isRequired":true,"uniqueKey":"created_by.oneOf.0.integrations.slack.profile.oneOf.0.created_at","typeLabel":"string\u003cdate-time>"},"updated_at":{"type":"string","format":"date-time","description":"When the object was last changed.","isRequired":true,"uniqueKey":"created_by.oneOf.0.integrations.slack.profile.oneOf.0.updated_at","typeLabel":"string\u003cdate-time>"},"workspace_id":{"type":"string","description":"Slack’s id for the workspace the member belongs to.","example":"T01ABC123","isRequired":true,"uniqueKey":"created_by.oneOf.0.integrations.slack.profile.oneOf.0.workspace_id","typeLabel":"string"},"display_name":{"oneOf":[{"type":"string","description":"The display name the member set in Slack. Empty or null when they set none.","isRequired":true,"uniqueKey":"created_by.oneOf.0.integrations.slack.profile.oneOf.0.display_name.oneOf.0","typeLabel":"string"},{"type":"null","description":"The display name the member set in Slack. Empty or null when they set none.","isRequired":true,"uniqueKey":"created_by.oneOf.0.integrations.slack.profile.oneOf.0.display_name.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"created_by.oneOf.0.integrations.slack.profile.oneOf.0.display_name","typeLabel":"string | null"},"real_name":{"oneOf":[{"type":"string","description":"The member’s full name in Slack. Null when Slack has none.","isRequired":true,"uniqueKey":"created_by.oneOf.0.integrations.slack.profile.oneOf.0.real_name.oneOf.0","typeLabel":"string"},{"type":"null","description":"The member’s full name in Slack. Null when Slack has none.","isRequired":true,"uniqueKey":"created_by.oneOf.0.integrations.slack.profile.oneOf.0.real_name.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"created_by.oneOf.0.integrations.slack.profile.oneOf.0.real_name","typeLabel":"string | null"},"email":{"oneOf":[{"type":"string","description":"The email address on the Slack account. Null when Slack does not share it, as for bots.","example":"[email protected]","isRequired":true,"uniqueKey":"created_by.oneOf.0.integrations.slack.profile.oneOf.0.email.oneOf.0","typeLabel":"string"},{"type":"null","description":"The email address on the Slack account. Null when Slack does not share it, as for bots.","example":"[email protected]","isRequired":true,"uniqueKey":"created_by.oneOf.0.integrations.slack.profile.oneOf.0.email.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"created_by.oneOf.0.integrations.slack.profile.oneOf.0.email","typeLabel":"string | null"},"pronouns":{"oneOf":[{"type":"string","description":"The pronouns the member set in Slack. Empty or null when they set none.","isRequired":true,"uniqueKey":"created_by.oneOf.0.integrations.slack.profile.oneOf.0.pronouns.oneOf.0","typeLabel":"string"},{"type":"null","description":"The pronouns the member set in Slack. Empty or null when they set none.","isRequired":true,"uniqueKey":"created_by.oneOf.0.integrations.slack.profile.oneOf.0.pronouns.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"created_by.oneOf.0.integrations.slack.profile.oneOf.0.pronouns","typeLabel":"string | null"},"avatar_url":{"oneOf":[{"type":"string","description":"The URL of the member’s Slack avatar. Null when Slack has none.","isRequired":true,"uniqueKey":"created_by.oneOf.0.integrations.slack.profile.oneOf.0.avatar_url.oneOf.0","typeLabel":"string"},{"type":"null","description":"The URL of the member’s Slack avatar. Null when Slack has none.","isRequired":true,"uniqueKey":"created_by.oneOf.0.integrations.slack.profile.oneOf.0.avatar_url.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"created_by.oneOf.0.integrations.slack.profile.oneOf.0.avatar_url","typeLabel":"string | null"},"locale":{"oneOf":[{"type":"string","description":"The member’s Slack language and region, such as `en-US`, when known.","isRequired":true,"uniqueKey":"created_by.oneOf.0.integrations.slack.profile.oneOf.0.locale.oneOf.0","typeLabel":"string"},{"type":"null","description":"The member’s Slack language and region, such as `en-US`, when known.","isRequired":true,"uniqueKey":"created_by.oneOf.0.integrations.slack.profile.oneOf.0.locale.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"created_by.oneOf.0.integrations.slack.profile.oneOf.0.locale","typeLabel":"string | null"},"tz":{"oneOf":[{"type":"string","description":"The member’s time zone in Slack, as an IANA name such as `America/New_York`, when known.","isRequired":true,"uniqueKey":"created_by.oneOf.0.integrations.slack.profile.oneOf.0.tz.oneOf.0","typeLabel":"string"},{"type":"null","description":"The member’s time zone in Slack, as an IANA name such as `America/New_York`, when known.","isRequired":true,"uniqueKey":"created_by.oneOf.0.integrations.slack.profile.oneOf.0.tz.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"created_by.oneOf.0.integrations.slack.profile.oneOf.0.tz","typeLabel":"string | null"},"is_bot":{"type":"boolean","description":"Whether the account is a bot rather than a person.","isRequired":true,"uniqueKey":"created_by.oneOf.0.integrations.slack.profile.oneOf.0.is_bot","typeLabel":"boolean"},"is_app_user":{"type":"boolean","description":"Whether Slack reports the member as an authorized user of the Tightknit app.","isRequired":true,"uniqueKey":"created_by.oneOf.0.integrations.slack.profile.oneOf.0.is_app_user","typeLabel":"boolean"},"is_workflow_bot":{"type":"boolean","description":"Whether the account is the bot behind a Slack workflow.","isRequired":true,"uniqueKey":"created_by.oneOf.0.integrations.slack.profile.oneOf.0.is_workflow_bot","typeLabel":"boolean"},"is_admin":{"type":"boolean","description":"Whether the member is an admin of the Slack workspace.","isRequired":true,"uniqueKey":"created_by.oneOf.0.integrations.slack.profile.oneOf.0.is_admin","typeLabel":"boolean"},"is_owner":{"type":"boolean","description":"Whether the member is an owner of the Slack workspace.","isRequired":true,"uniqueKey":"created_by.oneOf.0.integrations.slack.profile.oneOf.0.is_owner","typeLabel":"boolean"},"is_restricted":{"type":"boolean","description":"Whether the member is a Slack guest, limited to the channels they were invited to.","isRequired":true,"uniqueKey":"created_by.oneOf.0.integrations.slack.profile.oneOf.0.is_restricted","typeLabel":"boolean"},"is_invited_user":{"type":"boolean","description":"Whether the member holds nothing but a still-open Slack invitation.","isRequired":true,"uniqueKey":"created_by.oneOf.0.integrations.slack.profile.oneOf.0.is_invited_user","typeLabel":"boolean"},"is_deleted":{"type":"boolean","description":"Whether Slack deactivated the account.","isRequired":true,"uniqueKey":"created_by.oneOf.0.integrations.slack.profile.oneOf.0.is_deleted","typeLabel":"boolean"}},"isRequired":true,"uniqueKey":"created_by.oneOf.0.integrations.slack.profile.oneOf.0","typeLabel":"object"},{"type":"null","description":"The linked Slack profile, or null when the member has none.","isRequired":true,"uniqueKey":"created_by.oneOf.0.integrations.slack.profile.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"created_by.oneOf.0.integrations.slack.profile","typeLabel":"object | null"}},"required":["profile"],"description":"The member’s Slack identity.","isRequired":true,"uniqueKey":"created_by.oneOf.0.integrations.slack","typeLabel":"object"}},"required":["slack"],"description":"Where the member connects to other platforms. Present only when `slack_profile` is expanded.","uniqueKey":"created_by.oneOf.0.integrations","typeLabel":"object"}},"uniqueKey":"created_by.oneOf.0","typeLabel":"object"},{"type":"null","description":"The profile that created it. Present only when `created_by` is expanded.","uniqueKey":"created_by.oneOf.1","typeLabel":"null"}],"uniqueKey":"created_by","typeLabel":"object | null"},"updated_by":{"oneOf":[{"type":"object","description":"The profile that last changed it. Present only when `updated_by` is expanded.","required":["object","id","created_at","updated_at","name","full_name","display_name","first_name","last_name","avatar_url","email","email_domain","locale","is_team_member","is_deactivated","opt_out_of_public_profile","member_since","invited_at","signed_up_at","source","has_account","flair_group_id","slack_profile_id"],"properties":{"object":{"type":"string","enum":["profile"],"description":"Always `profile`.","isRequired":true,"uniqueKey":"updated_by.oneOf.0.object","typeLabel":"enum\u003cstring>"},"id":{"type":"string","description":"Unique identifier for the object.","example":"prof_9f2b8c1d4e5a","isRequired":true,"uniqueKey":"updated_by.oneOf.0.id","typeLabel":"string"},"created_at":{"type":"string","format":"date-time","description":"When the object was created.","isRequired":true,"uniqueKey":"updated_by.oneOf.0.created_at","typeLabel":"string\u003cdate-time>"},"updated_at":{"type":"string","format":"date-time","description":"When the object was last changed.","isRequired":true,"uniqueKey":"updated_by.oneOf.0.updated_at","typeLabel":"string\u003cdate-time>"},"name":{"oneOf":[{"type":"string","description":"The name the community shows for the member. With a linked Slack profile it follows the community’s name preference, or reads `🔒[private profile]` when `opt_out_of_public_profile` is true; without one it is `display_name`, falling back to `full_name`.","example":"Ada Lovelace","isRequired":true,"uniqueKey":"updated_by.oneOf.0.name.oneOf.0","typeLabel":"string"},{"type":"null","description":"The name the community shows for the member. With a linked Slack profile it follows the community’s name preference, or reads `🔒[private profile]` when `opt_out_of_public_profile` is true; without one it is `display_name`, falling back to `full_name`.","example":"Ada Lovelace","isRequired":true,"uniqueKey":"updated_by.oneOf.0.name.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"updated_by.oneOf.0.name","typeLabel":"string | null"},"full_name":{"type":"string","description":"The member’s full name. Always set.","example":"Ada Lovelace","isRequired":true,"uniqueKey":"updated_by.oneOf.0.full_name","typeLabel":"string"},"display_name":{"oneOf":[{"type":"string","description":"The shorter name the member goes by, when they set one. Null otherwise.","isRequired":true,"uniqueKey":"updated_by.oneOf.0.display_name.oneOf.0","typeLabel":"string"},{"type":"null","description":"The shorter name the member goes by, when they set one. Null otherwise.","isRequired":true,"uniqueKey":"updated_by.oneOf.0.display_name.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"updated_by.oneOf.0.display_name","typeLabel":"string | null"},"first_name":{"oneOf":[{"type":"string","description":"The member’s first name, when known.","isRequired":true,"uniqueKey":"updated_by.oneOf.0.first_name.oneOf.0","typeLabel":"string"},{"type":"null","description":"The member’s first name, when known.","isRequired":true,"uniqueKey":"updated_by.oneOf.0.first_name.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"updated_by.oneOf.0.first_name","typeLabel":"string | null"},"last_name":{"oneOf":[{"type":"string","description":"The member’s last name, when known.","isRequired":true,"uniqueKey":"updated_by.oneOf.0.last_name.oneOf.0","typeLabel":"string"},{"type":"null","description":"The member’s last name, when known.","isRequired":true,"uniqueKey":"updated_by.oneOf.0.last_name.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"updated_by.oneOf.0.last_name","typeLabel":"string | null"},"avatar_url":{"oneOf":[{"type":"string","description":"The URL of the member’s avatar, from their Slack profile when one is linked. Null when they have none, or when a member with a linked Slack profile has `opt_out_of_public_profile` on.","isRequired":true,"uniqueKey":"updated_by.oneOf.0.avatar_url.oneOf.0","typeLabel":"string"},{"type":"null","description":"The URL of the member’s avatar, from their Slack profile when one is linked. Null when they have none, or when a member with a linked Slack profile has `opt_out_of_public_profile` on.","isRequired":true,"uniqueKey":"updated_by.oneOf.0.avatar_url.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"updated_by.oneOf.0.avatar_url","typeLabel":"string | null"},"email":{"oneOf":[{"type":"string","description":"The member’s email address. Null when it is not known.","example":"[email protected]","isRequired":true,"uniqueKey":"updated_by.oneOf.0.email.oneOf.0","typeLabel":"string"},{"type":"null","description":"The member’s email address. Null when it is not known.","example":"[email protected]","isRequired":true,"uniqueKey":"updated_by.oneOf.0.email.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"updated_by.oneOf.0.email","typeLabel":"string | null"},"email_domain":{"oneOf":[{"type":"string","description":"The lowercased domain of `email`, maintained by the database.","example":"example.com","isRequired":true,"uniqueKey":"updated_by.oneOf.0.email_domain.oneOf.0","typeLabel":"string"},{"type":"null","description":"The lowercased domain of `email`, maintained by the database.","example":"example.com","isRequired":true,"uniqueKey":"updated_by.oneOf.0.email_domain.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"updated_by.oneOf.0.email_domain","typeLabel":"string | null"},"locale":{"oneOf":[{"type":"string","description":"The member’s language and region, such as `en-US`, when known.","isRequired":true,"uniqueKey":"updated_by.oneOf.0.locale.oneOf.0","typeLabel":"string"},{"type":"null","description":"The member’s language and region, such as `en-US`, when known.","isRequired":true,"uniqueKey":"updated_by.oneOf.0.locale.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"updated_by.oneOf.0.locale","typeLabel":"string | null"},"is_team_member":{"type":"boolean","description":"Whether the member is staff of the community rather than one of its people.","isRequired":true,"uniqueKey":"updated_by.oneOf.0.is_team_member","typeLabel":"boolean"},"is_deactivated":{"type":"boolean","description":"Whether the member has been deactivated in the community.","isRequired":true,"uniqueKey":"updated_by.oneOf.0.is_deactivated","typeLabel":"boolean"},"opt_out_of_public_profile":{"type":"boolean","description":"Whether the member asked to be left out of the public member directory.","isRequired":true,"uniqueKey":"updated_by.oneOf.0.opt_out_of_public_profile","typeLabel":"boolean"},"member_since":{"oneOf":[{"type":"string","description":"When the member joined the community: their first site sign-in or Slack join. Null while they are invited and have not joined yet.","format":"date-time","isRequired":true,"uniqueKey":"updated_by.oneOf.0.member_since.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","description":"When the member joined the community: their first site sign-in or Slack join. Null while they are invited and have not joined yet.","isRequired":true,"uniqueKey":"updated_by.oneOf.0.member_since.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"updated_by.oneOf.0.member_since","typeLabel":"string\u003cdate-time> | null"},"invited_at":{"oneOf":[{"type":"string","description":"When an admin added the member before they joined (Studio, Admin API, MCP or CSV import), whether or not an invitation was sent. Kept after they join; null for members never added this way.","format":"date-time","isRequired":true,"uniqueKey":"updated_by.oneOf.0.invited_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","description":"When an admin added the member before they joined (Studio, Admin API, MCP or CSV import), whether or not an invitation was sent. Kept after they join; null for members never added this way.","isRequired":true,"uniqueKey":"updated_by.oneOf.0.invited_at.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"updated_by.oneOf.0.invited_at","typeLabel":"string\u003cdate-time> | null"},"signed_up_at":{"oneOf":[{"type":"string","description":"When the member first signed in to the community site. Unlike `member_since`, a Slack join never sets it. Null for members who have never signed in.","format":"date-time","isRequired":true,"uniqueKey":"updated_by.oneOf.0.signed_up_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","description":"When the member first signed in to the community site. Unlike `member_since`, a Slack join never sets it. Null for members who have never signed in.","isRequired":true,"uniqueKey":"updated_by.oneOf.0.signed_up_at.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"updated_by.oneOf.0.signed_up_at","typeLabel":"string\u003cdate-time> | null"},"source":{"type":"string","enum":["slack_sync","import","api","studio_signin","sso_signin","legacy","unknown"],"description":"How the profile was created. A Slack invitee who had not joined yet takes `api` or `import` when an admin then adds them. One of:\n- `slack_sync`: from Slack, through the member roster sync or the member joining or acting in the workspace.\n- `import`: from an admin’s bulk member import.\n- `api`: from the Admin API, Studio’s add-member form or the MCP server.\n- `studio_signin`: on an admin’s first Studio sign-in.\n- `sso_signin`: on a member’s first single sign-on (SSO) sign-in, where the site creates accounts automatically.\n- `legacy`: created before the origin was recorded.\n- `unknown`: created before the origin was recorded and before its Slack link, with no way left to tell how.","example":"slack_sync","isRequired":true,"uniqueKey":"updated_by.oneOf.0.source","typeLabel":"enum\u003cstring>"},"has_account":{"type":"boolean","description":"Whether the member has a sign-in account. False for a Slack identity nobody has claimed.","isRequired":true,"uniqueKey":"updated_by.oneOf.0.has_account","typeLabel":"boolean"},"flair_group_id":{"oneOf":[{"type":"string","description":"The group whose flair the member shows beside their name.","example":"grup_7m3x9k4t8plz","isRequired":true,"uniqueKey":"updated_by.oneOf.0.flair_group_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"The group whose flair the member shows beside their name.","example":"grup_7m3x9k4t8plz","isRequired":true,"uniqueKey":"updated_by.oneOf.0.flair_group_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"updated_by.oneOf.0.flair_group_id","typeLabel":"string | null"},"slack_profile_id":{"oneOf":[{"type":"string","description":"Slack’s id for the member’s linked Slack profile. Null when the member has no Slack identity.","example":"U0BRY4S6LNQ","isRequired":true,"uniqueKey":"updated_by.oneOf.0.slack_profile_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"Slack’s id for the member’s linked Slack profile. Null when the member has no Slack identity.","example":"U0BRY4S6LNQ","isRequired":true,"uniqueKey":"updated_by.oneOf.0.slack_profile_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"updated_by.oneOf.0.slack_profile_id","typeLabel":"string | null"},"integrations":{"type":"object","properties":{"slack":{"type":"object","properties":{"profile":{"oneOf":[{"type":"object","description":"The linked Slack profile, or null when the member has none.","required":["object","id","created_at","updated_at","workspace_id","display_name","real_name","email","pronouns","avatar_url","locale","tz","is_bot","is_app_user","is_workflow_bot","is_admin","is_owner","is_restricted","is_invited_user","is_deleted"],"properties":{"object":{"type":"string","enum":["slack_profile"],"description":"Always `slack_profile`.","isRequired":true,"uniqueKey":"updated_by.oneOf.0.integrations.slack.profile.oneOf.0.object","typeLabel":"enum\u003cstring>"},"id":{"type":"string","description":"Slack’s id for the member.","example":"U0BRY4S6LNQ","isRequired":true,"uniqueKey":"updated_by.oneOf.0.integrations.slack.profile.oneOf.0.id","typeLabel":"string"},"created_at":{"type":"string","format":"date-time","description":"When the object was created.","isRequired":true,"uniqueKey":"updated_by.oneOf.0.integrations.slack.profile.oneOf.0.created_at","typeLabel":"string\u003cdate-time>"},"updated_at":{"type":"string","format":"date-time","description":"When the object was last changed.","isRequired":true,"uniqueKey":"updated_by.oneOf.0.integrations.slack.profile.oneOf.0.updated_at","typeLabel":"string\u003cdate-time>"},"workspace_id":{"type":"string","description":"Slack’s id for the workspace the member belongs to.","example":"T01ABC123","isRequired":true,"uniqueKey":"updated_by.oneOf.0.integrations.slack.profile.oneOf.0.workspace_id","typeLabel":"string"},"display_name":{"oneOf":[{"type":"string","description":"The display name the member set in Slack. Empty or null when they set none.","isRequired":true,"uniqueKey":"updated_by.oneOf.0.integrations.slack.profile.oneOf.0.display_name.oneOf.0","typeLabel":"string"},{"type":"null","description":"The display name the member set in Slack. Empty or null when they set none.","isRequired":true,"uniqueKey":"updated_by.oneOf.0.integrations.slack.profile.oneOf.0.display_name.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"updated_by.oneOf.0.integrations.slack.profile.oneOf.0.display_name","typeLabel":"string | null"},"real_name":{"oneOf":[{"type":"string","description":"The member’s full name in Slack. Null when Slack has none.","isRequired":true,"uniqueKey":"updated_by.oneOf.0.integrations.slack.profile.oneOf.0.real_name.oneOf.0","typeLabel":"string"},{"type":"null","description":"The member’s full name in Slack. Null when Slack has none.","isRequired":true,"uniqueKey":"updated_by.oneOf.0.integrations.slack.profile.oneOf.0.real_name.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"updated_by.oneOf.0.integrations.slack.profile.oneOf.0.real_name","typeLabel":"string | null"},"email":{"oneOf":[{"type":"string","description":"The email address on the Slack account. Null when Slack does not share it, as for bots.","example":"[email protected]","isRequired":true,"uniqueKey":"updated_by.oneOf.0.integrations.slack.profile.oneOf.0.email.oneOf.0","typeLabel":"string"},{"type":"null","description":"The email address on the Slack account. Null when Slack does not share it, as for bots.","example":"[email protected]","isRequired":true,"uniqueKey":"updated_by.oneOf.0.integrations.slack.profile.oneOf.0.email.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"updated_by.oneOf.0.integrations.slack.profile.oneOf.0.email","typeLabel":"string | null"},"pronouns":{"oneOf":[{"type":"string","description":"The pronouns the member set in Slack. Empty or null when they set none.","isRequired":true,"uniqueKey":"updated_by.oneOf.0.integrations.slack.profile.oneOf.0.pronouns.oneOf.0","typeLabel":"string"},{"type":"null","description":"The pronouns the member set in Slack. Empty or null when they set none.","isRequired":true,"uniqueKey":"updated_by.oneOf.0.integrations.slack.profile.oneOf.0.pronouns.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"updated_by.oneOf.0.integrations.slack.profile.oneOf.0.pronouns","typeLabel":"string | null"},"avatar_url":{"oneOf":[{"type":"string","description":"The URL of the member’s Slack avatar. Null when Slack has none.","isRequired":true,"uniqueKey":"updated_by.oneOf.0.integrations.slack.profile.oneOf.0.avatar_url.oneOf.0","typeLabel":"string"},{"type":"null","description":"The URL of the member’s Slack avatar. Null when Slack has none.","isRequired":true,"uniqueKey":"updated_by.oneOf.0.integrations.slack.profile.oneOf.0.avatar_url.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"updated_by.oneOf.0.integrations.slack.profile.oneOf.0.avatar_url","typeLabel":"string | null"},"locale":{"oneOf":[{"type":"string","description":"The member’s Slack language and region, such as `en-US`, when known.","isRequired":true,"uniqueKey":"updated_by.oneOf.0.integrations.slack.profile.oneOf.0.locale.oneOf.0","typeLabel":"string"},{"type":"null","description":"The member’s Slack language and region, such as `en-US`, when known.","isRequired":true,"uniqueKey":"updated_by.oneOf.0.integrations.slack.profile.oneOf.0.locale.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"updated_by.oneOf.0.integrations.slack.profile.oneOf.0.locale","typeLabel":"string | null"},"tz":{"oneOf":[{"type":"string","description":"The member’s time zone in Slack, as an IANA name such as `America/New_York`, when known.","isRequired":true,"uniqueKey":"updated_by.oneOf.0.integrations.slack.profile.oneOf.0.tz.oneOf.0","typeLabel":"string"},{"type":"null","description":"The member’s time zone in Slack, as an IANA name such as `America/New_York`, when known.","isRequired":true,"uniqueKey":"updated_by.oneOf.0.integrations.slack.profile.oneOf.0.tz.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"updated_by.oneOf.0.integrations.slack.profile.oneOf.0.tz","typeLabel":"string | null"},"is_bot":{"type":"boolean","description":"Whether the account is a bot rather than a person.","isRequired":true,"uniqueKey":"updated_by.oneOf.0.integrations.slack.profile.oneOf.0.is_bot","typeLabel":"boolean"},"is_app_user":{"type":"boolean","description":"Whether Slack reports the member as an authorized user of the Tightknit app.","isRequired":true,"uniqueKey":"updated_by.oneOf.0.integrations.slack.profile.oneOf.0.is_app_user","typeLabel":"boolean"},"is_workflow_bot":{"type":"boolean","description":"Whether the account is the bot behind a Slack workflow.","isRequired":true,"uniqueKey":"updated_by.oneOf.0.integrations.slack.profile.oneOf.0.is_workflow_bot","typeLabel":"boolean"},"is_admin":{"type":"boolean","description":"Whether the member is an admin of the Slack workspace.","isRequired":true,"uniqueKey":"updated_by.oneOf.0.integrations.slack.profile.oneOf.0.is_admin","typeLabel":"boolean"},"is_owner":{"type":"boolean","description":"Whether the member is an owner of the Slack workspace.","isRequired":true,"uniqueKey":"updated_by.oneOf.0.integrations.slack.profile.oneOf.0.is_owner","typeLabel":"boolean"},"is_restricted":{"type":"boolean","description":"Whether the member is a Slack guest, limited to the channels they were invited to.","isRequired":true,"uniqueKey":"updated_by.oneOf.0.integrations.slack.profile.oneOf.0.is_restricted","typeLabel":"boolean"},"is_invited_user":{"type":"boolean","description":"Whether the member holds nothing but a still-open Slack invitation.","isRequired":true,"uniqueKey":"updated_by.oneOf.0.integrations.slack.profile.oneOf.0.is_invited_user","typeLabel":"boolean"},"is_deleted":{"type":"boolean","description":"Whether Slack deactivated the account.","isRequired":true,"uniqueKey":"updated_by.oneOf.0.integrations.slack.profile.oneOf.0.is_deleted","typeLabel":"boolean"}},"isRequired":true,"uniqueKey":"updated_by.oneOf.0.integrations.slack.profile.oneOf.0","typeLabel":"object"},{"type":"null","description":"The linked Slack profile, or null when the member has none.","isRequired":true,"uniqueKey":"updated_by.oneOf.0.integrations.slack.profile.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"updated_by.oneOf.0.integrations.slack.profile","typeLabel":"object | null"}},"required":["profile"],"description":"The member’s Slack identity.","isRequired":true,"uniqueKey":"updated_by.oneOf.0.integrations.slack","typeLabel":"object"}},"required":["slack"],"description":"Where the member connects to other platforms. Present only when `slack_profile` is expanded.","uniqueKey":"updated_by.oneOf.0.integrations","typeLabel":"object"}},"uniqueKey":"updated_by.oneOf.0","typeLabel":"object"},{"type":"null","description":"The profile that last changed it. Present only when `updated_by` is expanded.","uniqueKey":"updated_by.oneOf.1","typeLabel":"null"}],"uniqueKey":"updated_by","typeLabel":"object | null"},"deliveries":{"type":"array","items":{"type":"object","properties":{"object":{"type":"string","enum":["composition_delivery"],"description":"Always `composition_delivery`.","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].object","typeLabel":"enum\u003cstring>"},"id":{"type":"string","description":"Unique identifier for the object.","example":"cpdl_4k8m2n6p9q3r","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].id","typeLabel":"string"},"created_at":{"type":"string","format":"date-time","description":"When the object was created.","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].created_at","typeLabel":"string\u003cdate-time>"},"updated_at":{"type":"string","format":"date-time","description":"When the object was last changed.","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].updated_at","typeLabel":"string\u003cdate-time>"},"composition_id":{"type":"string","description":"The id of the composition this delivery sends.","example":"cmps_7h2k9m4n1p6q","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].composition_id","typeLabel":"string"},"composition_version_id":{"oneOf":[{"type":"string","description":"The id of the composition version this delivery sent. Null until the composition is sent, while it is only where the composition is set to go.","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].composition_version_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"The id of the composition version this delivery sent. Null until the composition is sent, while it is only where the composition is set to go.","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].composition_version_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"deliveries.items.[INDEX].composition_version_id","typeLabel":"string | null"},"destination":{"type":"string","enum":["slack_channel","slack_dm"],"description":"Where it goes. One of:\n- `slack_channel`: a post in each of `slack_channel.channel_ids`.\n- `slack_dm`: a direct message to each member `slack_dm` names, directly or through a group, feed or event.","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].destination","typeLabel":"enum\u003cstring>"},"status":{"type":"string","enum":["pending","scheduled","delivering","delivered","partially_delivered","failed","canceled"],"description":"How the delivery stands. One of:\n- `pending`: set up, and not sent yet; or sent and waiting to start.\n- `scheduled`: set to go out at the composition’s `scheduled_at`.\n- `delivering`: sending now.\n- `delivered`: reached every recipient it could.\n- `partially_delivered`: reached some recipients, and some failed.\n- `failed`: reached nobody, because every recipient failed or the delivery could not start.\n- `canceled`: called off before it was sent.","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].status","typeLabel":"enum\u003cstring>"},"identity":{"oneOf":[{"type":"string","description":"Who it sends as. One of:\n- `bot`: the Tightknit app.\n- `community`: the app under the community name and logo; channel posts only.\n- `user`: the Studio user who sent it, from their own Slack account. An API key cannot send as one.\n\nNull when its settings cannot be read.","enum":["user","bot","community"],"isRequired":true,"uniqueKey":"deliveries.items.[INDEX].identity.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"Who it sends as. One of:\n- `bot`: the Tightknit app.\n- `community`: the app under the community name and logo; channel posts only.\n- `user`: the Studio user who sent it, from their own Slack account. An API key cannot send as one.\n\nNull when its settings cannot be read.","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].identity.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"deliveries.items.[INDEX].identity","typeLabel":"enum\u003cstring> | null"},"unfurl_links":{"oneOf":[{"type":"boolean","description":"Whether Slack previews the message’s links. Null when left to Slack.","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].unfurl_links.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"Whether Slack previews the message’s links. Null when left to Slack.","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].unfurl_links.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"deliveries.items.[INDEX].unfurl_links","typeLabel":"boolean | null"},"slack_channel":{"oneOf":[{"type":"object","description":"Where it posts. Null unless `destination` is `slack_channel`.","required":["channel_ids","publish_to_site","thread_ts"],"properties":{"channel_ids":{"type":"array","items":{"type":"string","uniqueKey":"deliveries.items.[INDEX].slack_channel.oneOf.0.channel_ids.items.[INDEX]","typeLabel":"string"},"description":"The Slack channels it posts in, by Slack channel id.","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].slack_channel.oneOf.0.channel_ids","typeLabel":"string[]"},"publish_to_site":{"type":"boolean","description":"Whether each post is also published to its channel's feed on the community site.","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].slack_channel.oneOf.0.publish_to_site","typeLabel":"boolean"},"thread_ts":{"oneOf":[{"type":"string","description":"The Slack message whose thread it replies in, by its `ts`. Null for a top-level post.","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].slack_channel.oneOf.0.thread_ts.oneOf.0","typeLabel":"string"},{"type":"null","description":"The Slack message whose thread it replies in, by its `ts`. Null for a top-level post.","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].slack_channel.oneOf.0.thread_ts.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"deliveries.items.[INDEX].slack_channel.oneOf.0.thread_ts","typeLabel":"string | null"}},"isRequired":true,"uniqueKey":"deliveries.items.[INDEX].slack_channel.oneOf.0","typeLabel":"object"},{"type":"null","description":"Where it posts. Null unless `destination` is `slack_channel`.","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].slack_channel.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"deliveries.items.[INDEX].slack_channel","typeLabel":"object | null"},"slack_dm":{"oneOf":[{"type":"object","description":"Who it messages. Null unless `destination` is `slack_dm`.","required":["member_ids","group_ids","feed_ids","event_ids"],"properties":{"member_ids":{"type":"array","items":{"type":"string","uniqueKey":"deliveries.items.[INDEX].slack_dm.oneOf.0.member_ids.items.[INDEX]","typeLabel":"string"},"description":"The ids of the profiles it messages directly.","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].slack_dm.oneOf.0.member_ids","typeLabel":"string[]"},"group_ids":{"type":"array","items":{"type":"string","uniqueKey":"deliveries.items.[INDEX].slack_dm.oneOf.0.group_ids.items.[INDEX]","typeLabel":"string"},"description":"The ids of the groups whose members it messages.","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].slack_dm.oneOf.0.group_ids","typeLabel":"string[]"},"feed_ids":{"type":"array","items":{"type":"string","uniqueKey":"deliveries.items.[INDEX].slack_dm.oneOf.0.feed_ids.items.[INDEX]","typeLabel":"string"},"description":"The ids of the feeds whose members it messages.","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].slack_dm.oneOf.0.feed_ids","typeLabel":"string[]"},"event_ids":{"type":"array","items":{"type":"string","uniqueKey":"deliveries.items.[INDEX].slack_dm.oneOf.0.event_ids.items.[INDEX]","typeLabel":"string"},"description":"The ids of the events whose registrants it messages.","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].slack_dm.oneOf.0.event_ids","typeLabel":"string[]"}},"isRequired":true,"uniqueKey":"deliveries.items.[INDEX].slack_dm.oneOf.0","typeLabel":"object"},{"type":"null","description":"Who it messages. Null unless `destination` is `slack_dm`.","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].slack_dm.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"deliveries.items.[INDEX].slack_dm","typeLabel":"object | null"},"counts":{"type":"object","properties":{"pending":{"type":"integer","minimum":0,"description":"How many recipients are waiting to be sent to.","uniqueKey":"deliveries.items.[INDEX].counts.pending","typeLabel":"integer"},"claimed":{"type":"integer","minimum":0,"description":"How many recipients are being sent to now.","uniqueKey":"deliveries.items.[INDEX].counts.claimed","typeLabel":"integer"},"sent":{"type":"integer","minimum":0,"description":"How many recipients were sent to.","uniqueKey":"deliveries.items.[INDEX].counts.sent","typeLabel":"integer"},"failed":{"type":"integer","minimum":0,"description":"How many recipients could not be sent to.","uniqueKey":"deliveries.items.[INDEX].counts.failed","typeLabel":"integer"},"skipped":{"type":"integer","minimum":0,"description":"How many recipients were left out, such as a member who cannot get DMs.","uniqueKey":"deliveries.items.[INDEX].counts.skipped","typeLabel":"integer"}},"description":"Its recipients by how their send stands, as last rolled up. Empty until the delivery starts; a status with none is absent.","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].counts","typeLabel":"object"},"error_code":{"oneOf":[{"type":"string","description":"Why it failed as a whole, or the reason every recipient that failed shares, such as `outcome_unknown` when Slack could not say whether a message landed. Null otherwise.","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].error_code.oneOf.0","typeLabel":"string"},{"type":"null","description":"Why it failed as a whole, or the reason every recipient that failed shares, such as `outcome_unknown` when Slack could not say whether a message landed. Null otherwise.","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].error_code.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"deliveries.items.[INDEX].error_code","typeLabel":"string | null"},"delivered_at":{"oneOf":[{"type":"string","description":"When it finished sending. Null until then.","format":"date-time","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].delivered_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","description":"When it finished sending. Null until then.","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].delivered_at.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"deliveries.items.[INDEX].delivered_at","typeLabel":"string\u003cdate-time> | null"},"created_by_id":{"oneOf":[{"type":"string","description":"The id of the profile that set it up or sent it. Null when an API key did, or once that profile is deleted.","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].created_by_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"The id of the profile that set it up or sent it. Null when an API key did, or once that profile is deleted.","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].created_by_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"deliveries.items.[INDEX].created_by_id","typeLabel":"string | null"},"updated_by_id":{"oneOf":[{"type":"string","description":"The id of the profile that last changed it. Null when an API key or the send itself did, or once that profile is deleted.","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].updated_by_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"The id of the profile that last changed it. Null when an API key or the send itself did, or once that profile is deleted.","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].updated_by_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"deliveries.items.[INDEX].updated_by_id","typeLabel":"string | null"},"created_by":{"oneOf":[{"type":"object","description":"The profile that set it up or sent it. Present only when `created_by` is expanded.","required":["object","id","created_at","updated_at","name","full_name","display_name","first_name","last_name","avatar_url","email","email_domain","locale","is_team_member","is_deactivated","opt_out_of_public_profile","member_since","invited_at","signed_up_at","source","has_account","flair_group_id","slack_profile_id"],"properties":{"object":{"type":"string","enum":["profile"],"description":"Always `profile`.","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].created_by.oneOf.0.object","typeLabel":"enum\u003cstring>"},"id":{"type":"string","description":"Unique identifier for the object.","example":"prof_9f2b8c1d4e5a","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].created_by.oneOf.0.id","typeLabel":"string"},"created_at":{"type":"string","format":"date-time","description":"When the object was created.","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].created_by.oneOf.0.created_at","typeLabel":"string\u003cdate-time>"},"updated_at":{"type":"string","format":"date-time","description":"When the object was last changed.","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].created_by.oneOf.0.updated_at","typeLabel":"string\u003cdate-time>"},"name":{"oneOf":[{"type":"string","description":"The name the community shows for the member. With a linked Slack profile it follows the community’s name preference, or reads `🔒[private profile]` when `opt_out_of_public_profile` is true; without one it is `display_name`, falling back to `full_name`.","example":"Ada Lovelace","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].created_by.oneOf.0.name.oneOf.0","typeLabel":"string"},{"type":"null","description":"The name the community shows for the member. With a linked Slack profile it follows the community’s name preference, or reads `🔒[private profile]` when `opt_out_of_public_profile` is true; without one it is `display_name`, falling back to `full_name`.","example":"Ada Lovelace","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].created_by.oneOf.0.name.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"deliveries.items.[INDEX].created_by.oneOf.0.name","typeLabel":"string | null"},"full_name":{"type":"string","description":"The member’s full name. Always set.","example":"Ada Lovelace","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].created_by.oneOf.0.full_name","typeLabel":"string"},"display_name":{"oneOf":[{"type":"string","description":"The shorter name the member goes by, when they set one. Null otherwise.","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].created_by.oneOf.0.display_name.oneOf.0","typeLabel":"string"},{"type":"null","description":"The shorter name the member goes by, when they set one. Null otherwise.","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].created_by.oneOf.0.display_name.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"deliveries.items.[INDEX].created_by.oneOf.0.display_name","typeLabel":"string | null"},"first_name":{"oneOf":[{"type":"string","description":"The member’s first name, when known.","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].created_by.oneOf.0.first_name.oneOf.0","typeLabel":"string"},{"type":"null","description":"The member’s first name, when known.","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].created_by.oneOf.0.first_name.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"deliveries.items.[INDEX].created_by.oneOf.0.first_name","typeLabel":"string | null"},"last_name":{"oneOf":[{"type":"string","description":"The member’s last name, when known.","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].created_by.oneOf.0.last_name.oneOf.0","typeLabel":"string"},{"type":"null","description":"The member’s last name, when known.","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].created_by.oneOf.0.last_name.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"deliveries.items.[INDEX].created_by.oneOf.0.last_name","typeLabel":"string | null"},"avatar_url":{"oneOf":[{"type":"string","description":"The URL of the member’s avatar, from their Slack profile when one is linked. Null when they have none, or when a member with a linked Slack profile has `opt_out_of_public_profile` on.","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].created_by.oneOf.0.avatar_url.oneOf.0","typeLabel":"string"},{"type":"null","description":"The URL of the member’s avatar, from their Slack profile when one is linked. Null when they have none, or when a member with a linked Slack profile has `opt_out_of_public_profile` on.","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].created_by.oneOf.0.avatar_url.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"deliveries.items.[INDEX].created_by.oneOf.0.avatar_url","typeLabel":"string | null"},"email":{"oneOf":[{"type":"string","description":"The member’s email address. Null when it is not known.","example":"[email protected]","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].created_by.oneOf.0.email.oneOf.0","typeLabel":"string"},{"type":"null","description":"The member’s email address. Null when it is not known.","example":"[email protected]","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].created_by.oneOf.0.email.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"deliveries.items.[INDEX].created_by.oneOf.0.email","typeLabel":"string | null"},"email_domain":{"oneOf":[{"type":"string","description":"The lowercased domain of `email`, maintained by the database.","example":"example.com","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].created_by.oneOf.0.email_domain.oneOf.0","typeLabel":"string"},{"type":"null","description":"The lowercased domain of `email`, maintained by the database.","example":"example.com","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].created_by.oneOf.0.email_domain.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"deliveries.items.[INDEX].created_by.oneOf.0.email_domain","typeLabel":"string | null"},"locale":{"oneOf":[{"type":"string","description":"The member’s language and region, such as `en-US`, when known.","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].created_by.oneOf.0.locale.oneOf.0","typeLabel":"string"},{"type":"null","description":"The member’s language and region, such as `en-US`, when known.","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].created_by.oneOf.0.locale.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"deliveries.items.[INDEX].created_by.oneOf.0.locale","typeLabel":"string | null"},"is_team_member":{"type":"boolean","description":"Whether the member is staff of the community rather than one of its people.","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].created_by.oneOf.0.is_team_member","typeLabel":"boolean"},"is_deactivated":{"type":"boolean","description":"Whether the member has been deactivated in the community.","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].created_by.oneOf.0.is_deactivated","typeLabel":"boolean"},"opt_out_of_public_profile":{"type":"boolean","description":"Whether the member asked to be left out of the public member directory.","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].created_by.oneOf.0.opt_out_of_public_profile","typeLabel":"boolean"},"member_since":{"oneOf":[{"type":"string","description":"When the member joined the community: their first site sign-in or Slack join. Null while they are invited and have not joined yet.","format":"date-time","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].created_by.oneOf.0.member_since.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","description":"When the member joined the community: their first site sign-in or Slack join. Null while they are invited and have not joined yet.","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].created_by.oneOf.0.member_since.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"deliveries.items.[INDEX].created_by.oneOf.0.member_since","typeLabel":"string\u003cdate-time> | null"},"invited_at":{"oneOf":[{"type":"string","description":"When an admin added the member before they joined (Studio, Admin API, MCP or CSV import), whether or not an invitation was sent. Kept after they join; null for members never added this way.","format":"date-time","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].created_by.oneOf.0.invited_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","description":"When an admin added the member before they joined (Studio, Admin API, MCP or CSV import), whether or not an invitation was sent. Kept after they join; null for members never added this way.","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].created_by.oneOf.0.invited_at.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"deliveries.items.[INDEX].created_by.oneOf.0.invited_at","typeLabel":"string\u003cdate-time> | null"},"signed_up_at":{"oneOf":[{"type":"string","description":"When the member first signed in to the community site. Unlike `member_since`, a Slack join never sets it. Null for members who have never signed in.","format":"date-time","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].created_by.oneOf.0.signed_up_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","description":"When the member first signed in to the community site. Unlike `member_since`, a Slack join never sets it. Null for members who have never signed in.","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].created_by.oneOf.0.signed_up_at.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"deliveries.items.[INDEX].created_by.oneOf.0.signed_up_at","typeLabel":"string\u003cdate-time> | null"},"source":{"type":"string","enum":["slack_sync","import","api","studio_signin","sso_signin","legacy","unknown"],"description":"How the profile was created. A Slack invitee who had not joined yet takes `api` or `import` when an admin then adds them. One of:\n- `slack_sync`: from Slack, through the member roster sync or the member joining or acting in the workspace.\n- `import`: from an admin’s bulk member import.\n- `api`: from the Admin API, Studio’s add-member form or the MCP server.\n- `studio_signin`: on an admin’s first Studio sign-in.\n- `sso_signin`: on a member’s first single sign-on (SSO) sign-in, where the site creates accounts automatically.\n- `legacy`: created before the origin was recorded.\n- `unknown`: created before the origin was recorded and before its Slack link, with no way left to tell how.","example":"slack_sync","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].created_by.oneOf.0.source","typeLabel":"enum\u003cstring>"},"has_account":{"type":"boolean","description":"Whether the member has a sign-in account. False for a Slack identity nobody has claimed.","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].created_by.oneOf.0.has_account","typeLabel":"boolean"},"flair_group_id":{"oneOf":[{"type":"string","description":"The group whose flair the member shows beside their name.","example":"grup_7m3x9k4t8plz","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].created_by.oneOf.0.flair_group_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"The group whose flair the member shows beside their name.","example":"grup_7m3x9k4t8plz","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].created_by.oneOf.0.flair_group_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"deliveries.items.[INDEX].created_by.oneOf.0.flair_group_id","typeLabel":"string | null"},"slack_profile_id":{"oneOf":[{"type":"string","description":"Slack’s id for the member’s linked Slack profile. Null when the member has no Slack identity.","example":"U0BRY4S6LNQ","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].created_by.oneOf.0.slack_profile_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"Slack’s id for the member’s linked Slack profile. Null when the member has no Slack identity.","example":"U0BRY4S6LNQ","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].created_by.oneOf.0.slack_profile_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"deliveries.items.[INDEX].created_by.oneOf.0.slack_profile_id","typeLabel":"string | null"},"integrations":{"type":"object","properties":{"slack":{"type":"object","properties":{"profile":{"oneOf":[{"type":"object","description":"The linked Slack profile, or null when the member has none.","required":["object","id","created_at","updated_at","workspace_id","display_name","real_name","email","pronouns","avatar_url","locale","tz","is_bot","is_app_user","is_workflow_bot","is_admin","is_owner","is_restricted","is_invited_user","is_deleted"],"properties":{"object":{"type":"string","enum":["slack_profile"],"description":"Always `slack_profile`.","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].created_by.oneOf.0.integrations.slack.profile.oneOf.0.object","typeLabel":"enum\u003cstring>"},"id":{"type":"string","description":"Slack’s id for the member.","example":"U0BRY4S6LNQ","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].created_by.oneOf.0.integrations.slack.profile.oneOf.0.id","typeLabel":"string"},"created_at":{"type":"string","format":"date-time","description":"When the object was created.","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].created_by.oneOf.0.integrations.slack.profile.oneOf.0.created_at","typeLabel":"string\u003cdate-time>"},"updated_at":{"type":"string","format":"date-time","description":"When the object was last changed.","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].created_by.oneOf.0.integrations.slack.profile.oneOf.0.updated_at","typeLabel":"string\u003cdate-time>"},"workspace_id":{"type":"string","description":"Slack’s id for the workspace the member belongs to.","example":"T01ABC123","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].created_by.oneOf.0.integrations.slack.profile.oneOf.0.workspace_id","typeLabel":"string"},"display_name":{"oneOf":[{"type":"string","description":"The display name the member set in Slack. Empty or null when they set none.","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].created_by.oneOf.0.integrations.slack.profile.oneOf.0.display_name.oneOf.0","typeLabel":"string"},{"type":"null","description":"The display name the member set in Slack. Empty or null when they set none.","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].created_by.oneOf.0.integrations.slack.profile.oneOf.0.display_name.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"deliveries.items.[INDEX].created_by.oneOf.0.integrations.slack.profile.oneOf.0.display_name","typeLabel":"string | null"},"real_name":{"oneOf":[{"type":"string","description":"The member’s full name in Slack. Null when Slack has none.","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].created_by.oneOf.0.integrations.slack.profile.oneOf.0.real_name.oneOf.0","typeLabel":"string"},{"type":"null","description":"The member’s full name in Slack. Null when Slack has none.","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].created_by.oneOf.0.integrations.slack.profile.oneOf.0.real_name.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"deliveries.items.[INDEX].created_by.oneOf.0.integrations.slack.profile.oneOf.0.real_name","typeLabel":"string | null"},"email":{"oneOf":[{"type":"string","description":"The email address on the Slack account. Null when Slack does not share it, as for bots.","example":"[email protected]","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].created_by.oneOf.0.integrations.slack.profile.oneOf.0.email.oneOf.0","typeLabel":"string"},{"type":"null","description":"The email address on the Slack account. Null when Slack does not share it, as for bots.","example":"[email protected]","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].created_by.oneOf.0.integrations.slack.profile.oneOf.0.email.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"deliveries.items.[INDEX].created_by.oneOf.0.integrations.slack.profile.oneOf.0.email","typeLabel":"string | null"},"pronouns":{"oneOf":[{"type":"string","description":"The pronouns the member set in Slack. Empty or null when they set none.","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].created_by.oneOf.0.integrations.slack.profile.oneOf.0.pronouns.oneOf.0","typeLabel":"string"},{"type":"null","description":"The pronouns the member set in Slack. Empty or null when they set none.","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].created_by.oneOf.0.integrations.slack.profile.oneOf.0.pronouns.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"deliveries.items.[INDEX].created_by.oneOf.0.integrations.slack.profile.oneOf.0.pronouns","typeLabel":"string | null"},"avatar_url":{"oneOf":[{"type":"string","description":"The URL of the member’s Slack avatar. Null when Slack has none.","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].created_by.oneOf.0.integrations.slack.profile.oneOf.0.avatar_url.oneOf.0","typeLabel":"string"},{"type":"null","description":"The URL of the member’s Slack avatar. Null when Slack has none.","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].created_by.oneOf.0.integrations.slack.profile.oneOf.0.avatar_url.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"deliveries.items.[INDEX].created_by.oneOf.0.integrations.slack.profile.oneOf.0.avatar_url","typeLabel":"string | null"},"locale":{"oneOf":[{"type":"string","description":"The member’s Slack language and region, such as `en-US`, when known.","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].created_by.oneOf.0.integrations.slack.profile.oneOf.0.locale.oneOf.0","typeLabel":"string"},{"type":"null","description":"The member’s Slack language and region, such as `en-US`, when known.","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].created_by.oneOf.0.integrations.slack.profile.oneOf.0.locale.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"deliveries.items.[INDEX].created_by.oneOf.0.integrations.slack.profile.oneOf.0.locale","typeLabel":"string | null"},"tz":{"oneOf":[{"type":"string","description":"The member’s time zone in Slack, as an IANA name such as `America/New_York`, when known.","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].created_by.oneOf.0.integrations.slack.profile.oneOf.0.tz.oneOf.0","typeLabel":"string"},{"type":"null","description":"The member’s time zone in Slack, as an IANA name such as `America/New_York`, when known.","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].created_by.oneOf.0.integrations.slack.profile.oneOf.0.tz.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"deliveries.items.[INDEX].created_by.oneOf.0.integrations.slack.profile.oneOf.0.tz","typeLabel":"string | null"},"is_bot":{"type":"boolean","description":"Whether the account is a bot rather than a person.","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].created_by.oneOf.0.integrations.slack.profile.oneOf.0.is_bot","typeLabel":"boolean"},"is_app_user":{"type":"boolean","description":"Whether Slack reports the member as an authorized user of the Tightknit app.","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].created_by.oneOf.0.integrations.slack.profile.oneOf.0.is_app_user","typeLabel":"boolean"},"is_workflow_bot":{"type":"boolean","description":"Whether the account is the bot behind a Slack workflow.","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].created_by.oneOf.0.integrations.slack.profile.oneOf.0.is_workflow_bot","typeLabel":"boolean"},"is_admin":{"type":"boolean","description":"Whether the member is an admin of the Slack workspace.","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].created_by.oneOf.0.integrations.slack.profile.oneOf.0.is_admin","typeLabel":"boolean"},"is_owner":{"type":"boolean","description":"Whether the member is an owner of the Slack workspace.","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].created_by.oneOf.0.integrations.slack.profile.oneOf.0.is_owner","typeLabel":"boolean"},"is_restricted":{"type":"boolean","description":"Whether the member is a Slack guest, limited to the channels they were invited to.","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].created_by.oneOf.0.integrations.slack.profile.oneOf.0.is_restricted","typeLabel":"boolean"},"is_invited_user":{"type":"boolean","description":"Whether the member holds nothing but a still-open Slack invitation.","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].created_by.oneOf.0.integrations.slack.profile.oneOf.0.is_invited_user","typeLabel":"boolean"},"is_deleted":{"type":"boolean","description":"Whether Slack deactivated the account.","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].created_by.oneOf.0.integrations.slack.profile.oneOf.0.is_deleted","typeLabel":"boolean"}},"isRequired":true,"uniqueKey":"deliveries.items.[INDEX].created_by.oneOf.0.integrations.slack.profile.oneOf.0","typeLabel":"object"},{"type":"null","description":"The linked Slack profile, or null when the member has none.","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].created_by.oneOf.0.integrations.slack.profile.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"deliveries.items.[INDEX].created_by.oneOf.0.integrations.slack.profile","typeLabel":"object | null"}},"required":["profile"],"description":"The member’s Slack identity.","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].created_by.oneOf.0.integrations.slack","typeLabel":"object"}},"required":["slack"],"description":"Where the member connects to other platforms. Present only when `slack_profile` is expanded.","uniqueKey":"deliveries.items.[INDEX].created_by.oneOf.0.integrations","typeLabel":"object"}},"uniqueKey":"deliveries.items.[INDEX].created_by.oneOf.0","typeLabel":"object"},{"type":"null","description":"The profile that set it up or sent it. Present only when `created_by` is expanded.","uniqueKey":"deliveries.items.[INDEX].created_by.oneOf.1","typeLabel":"null"}],"uniqueKey":"deliveries.items.[INDEX].created_by","typeLabel":"object | null"},"updated_by":{"oneOf":[{"type":"object","description":"The profile that last changed it. Present only when `updated_by` is expanded.","required":["object","id","created_at","updated_at","name","full_name","display_name","first_name","last_name","avatar_url","email","email_domain","locale","is_team_member","is_deactivated","opt_out_of_public_profile","member_since","invited_at","signed_up_at","source","has_account","flair_group_id","slack_profile_id"],"properties":{"object":{"type":"string","enum":["profile"],"description":"Always `profile`.","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].updated_by.oneOf.0.object","typeLabel":"enum\u003cstring>"},"id":{"type":"string","description":"Unique identifier for the object.","example":"prof_9f2b8c1d4e5a","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].updated_by.oneOf.0.id","typeLabel":"string"},"created_at":{"type":"string","format":"date-time","description":"When the object was created.","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].updated_by.oneOf.0.created_at","typeLabel":"string\u003cdate-time>"},"updated_at":{"type":"string","format":"date-time","description":"When the object was last changed.","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].updated_by.oneOf.0.updated_at","typeLabel":"string\u003cdate-time>"},"name":{"oneOf":[{"type":"string","description":"The name the community shows for the member. With a linked Slack profile it follows the community’s name preference, or reads `🔒[private profile]` when `opt_out_of_public_profile` is true; without one it is `display_name`, falling back to `full_name`.","example":"Ada Lovelace","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].updated_by.oneOf.0.name.oneOf.0","typeLabel":"string"},{"type":"null","description":"The name the community shows for the member. With a linked Slack profile it follows the community’s name preference, or reads `🔒[private profile]` when `opt_out_of_public_profile` is true; without one it is `display_name`, falling back to `full_name`.","example":"Ada Lovelace","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].updated_by.oneOf.0.name.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"deliveries.items.[INDEX].updated_by.oneOf.0.name","typeLabel":"string | null"},"full_name":{"type":"string","description":"The member’s full name. Always set.","example":"Ada Lovelace","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].updated_by.oneOf.0.full_name","typeLabel":"string"},"display_name":{"oneOf":[{"type":"string","description":"The shorter name the member goes by, when they set one. Null otherwise.","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].updated_by.oneOf.0.display_name.oneOf.0","typeLabel":"string"},{"type":"null","description":"The shorter name the member goes by, when they set one. Null otherwise.","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].updated_by.oneOf.0.display_name.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"deliveries.items.[INDEX].updated_by.oneOf.0.display_name","typeLabel":"string | null"},"first_name":{"oneOf":[{"type":"string","description":"The member’s first name, when known.","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].updated_by.oneOf.0.first_name.oneOf.0","typeLabel":"string"},{"type":"null","description":"The member’s first name, when known.","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].updated_by.oneOf.0.first_name.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"deliveries.items.[INDEX].updated_by.oneOf.0.first_name","typeLabel":"string | null"},"last_name":{"oneOf":[{"type":"string","description":"The member’s last name, when known.","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].updated_by.oneOf.0.last_name.oneOf.0","typeLabel":"string"},{"type":"null","description":"The member’s last name, when known.","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].updated_by.oneOf.0.last_name.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"deliveries.items.[INDEX].updated_by.oneOf.0.last_name","typeLabel":"string | null"},"avatar_url":{"oneOf":[{"type":"string","description":"The URL of the member’s avatar, from their Slack profile when one is linked. Null when they have none, or when a member with a linked Slack profile has `opt_out_of_public_profile` on.","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].updated_by.oneOf.0.avatar_url.oneOf.0","typeLabel":"string"},{"type":"null","description":"The URL of the member’s avatar, from their Slack profile when one is linked. Null when they have none, or when a member with a linked Slack profile has `opt_out_of_public_profile` on.","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].updated_by.oneOf.0.avatar_url.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"deliveries.items.[INDEX].updated_by.oneOf.0.avatar_url","typeLabel":"string | null"},"email":{"oneOf":[{"type":"string","description":"The member’s email address. Null when it is not known.","example":"[email protected]","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].updated_by.oneOf.0.email.oneOf.0","typeLabel":"string"},{"type":"null","description":"The member’s email address. Null when it is not known.","example":"[email protected]","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].updated_by.oneOf.0.email.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"deliveries.items.[INDEX].updated_by.oneOf.0.email","typeLabel":"string | null"},"email_domain":{"oneOf":[{"type":"string","description":"The lowercased domain of `email`, maintained by the database.","example":"example.com","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].updated_by.oneOf.0.email_domain.oneOf.0","typeLabel":"string"},{"type":"null","description":"The lowercased domain of `email`, maintained by the database.","example":"example.com","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].updated_by.oneOf.0.email_domain.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"deliveries.items.[INDEX].updated_by.oneOf.0.email_domain","typeLabel":"string | null"},"locale":{"oneOf":[{"type":"string","description":"The member’s language and region, such as `en-US`, when known.","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].updated_by.oneOf.0.locale.oneOf.0","typeLabel":"string"},{"type":"null","description":"The member’s language and region, such as `en-US`, when known.","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].updated_by.oneOf.0.locale.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"deliveries.items.[INDEX].updated_by.oneOf.0.locale","typeLabel":"string | null"},"is_team_member":{"type":"boolean","description":"Whether the member is staff of the community rather than one of its people.","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].updated_by.oneOf.0.is_team_member","typeLabel":"boolean"},"is_deactivated":{"type":"boolean","description":"Whether the member has been deactivated in the community.","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].updated_by.oneOf.0.is_deactivated","typeLabel":"boolean"},"opt_out_of_public_profile":{"type":"boolean","description":"Whether the member asked to be left out of the public member directory.","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].updated_by.oneOf.0.opt_out_of_public_profile","typeLabel":"boolean"},"member_since":{"oneOf":[{"type":"string","description":"When the member joined the community: their first site sign-in or Slack join. Null while they are invited and have not joined yet.","format":"date-time","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].updated_by.oneOf.0.member_since.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","description":"When the member joined the community: their first site sign-in or Slack join. Null while they are invited and have not joined yet.","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].updated_by.oneOf.0.member_since.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"deliveries.items.[INDEX].updated_by.oneOf.0.member_since","typeLabel":"string\u003cdate-time> | null"},"invited_at":{"oneOf":[{"type":"string","description":"When an admin added the member before they joined (Studio, Admin API, MCP or CSV import), whether or not an invitation was sent. Kept after they join; null for members never added this way.","format":"date-time","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].updated_by.oneOf.0.invited_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","description":"When an admin added the member before they joined (Studio, Admin API, MCP or CSV import), whether or not an invitation was sent. Kept after they join; null for members never added this way.","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].updated_by.oneOf.0.invited_at.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"deliveries.items.[INDEX].updated_by.oneOf.0.invited_at","typeLabel":"string\u003cdate-time> | null"},"signed_up_at":{"oneOf":[{"type":"string","description":"When the member first signed in to the community site. Unlike `member_since`, a Slack join never sets it. Null for members who have never signed in.","format":"date-time","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].updated_by.oneOf.0.signed_up_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","description":"When the member first signed in to the community site. Unlike `member_since`, a Slack join never sets it. Null for members who have never signed in.","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].updated_by.oneOf.0.signed_up_at.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"deliveries.items.[INDEX].updated_by.oneOf.0.signed_up_at","typeLabel":"string\u003cdate-time> | null"},"source":{"type":"string","enum":["slack_sync","import","api","studio_signin","sso_signin","legacy","unknown"],"description":"How the profile was created. A Slack invitee who had not joined yet takes `api` or `import` when an admin then adds them. One of:\n- `slack_sync`: from Slack, through the member roster sync or the member joining or acting in the workspace.\n- `import`: from an admin’s bulk member import.\n- `api`: from the Admin API, Studio’s add-member form or the MCP server.\n- `studio_signin`: on an admin’s first Studio sign-in.\n- `sso_signin`: on a member’s first single sign-on (SSO) sign-in, where the site creates accounts automatically.\n- `legacy`: created before the origin was recorded.\n- `unknown`: created before the origin was recorded and before its Slack link, with no way left to tell how.","example":"slack_sync","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].updated_by.oneOf.0.source","typeLabel":"enum\u003cstring>"},"has_account":{"type":"boolean","description":"Whether the member has a sign-in account. False for a Slack identity nobody has claimed.","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].updated_by.oneOf.0.has_account","typeLabel":"boolean"},"flair_group_id":{"oneOf":[{"type":"string","description":"The group whose flair the member shows beside their name.","example":"grup_7m3x9k4t8plz","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].updated_by.oneOf.0.flair_group_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"The group whose flair the member shows beside their name.","example":"grup_7m3x9k4t8plz","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].updated_by.oneOf.0.flair_group_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"deliveries.items.[INDEX].updated_by.oneOf.0.flair_group_id","typeLabel":"string | null"},"slack_profile_id":{"oneOf":[{"type":"string","description":"Slack’s id for the member’s linked Slack profile. Null when the member has no Slack identity.","example":"U0BRY4S6LNQ","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].updated_by.oneOf.0.slack_profile_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"Slack’s id for the member’s linked Slack profile. Null when the member has no Slack identity.","example":"U0BRY4S6LNQ","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].updated_by.oneOf.0.slack_profile_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"deliveries.items.[INDEX].updated_by.oneOf.0.slack_profile_id","typeLabel":"string | null"},"integrations":{"type":"object","properties":{"slack":{"type":"object","properties":{"profile":{"oneOf":[{"type":"object","description":"The linked Slack profile, or null when the member has none.","required":["object","id","created_at","updated_at","workspace_id","display_name","real_name","email","pronouns","avatar_url","locale","tz","is_bot","is_app_user","is_workflow_bot","is_admin","is_owner","is_restricted","is_invited_user","is_deleted"],"properties":{"object":{"type":"string","enum":["slack_profile"],"description":"Always `slack_profile`.","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].updated_by.oneOf.0.integrations.slack.profile.oneOf.0.object","typeLabel":"enum\u003cstring>"},"id":{"type":"string","description":"Slack’s id for the member.","example":"U0BRY4S6LNQ","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].updated_by.oneOf.0.integrations.slack.profile.oneOf.0.id","typeLabel":"string"},"created_at":{"type":"string","format":"date-time","description":"When the object was created.","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].updated_by.oneOf.0.integrations.slack.profile.oneOf.0.created_at","typeLabel":"string\u003cdate-time>"},"updated_at":{"type":"string","format":"date-time","description":"When the object was last changed.","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].updated_by.oneOf.0.integrations.slack.profile.oneOf.0.updated_at","typeLabel":"string\u003cdate-time>"},"workspace_id":{"type":"string","description":"Slack’s id for the workspace the member belongs to.","example":"T01ABC123","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].updated_by.oneOf.0.integrations.slack.profile.oneOf.0.workspace_id","typeLabel":"string"},"display_name":{"oneOf":[{"type":"string","description":"The display name the member set in Slack. Empty or null when they set none.","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].updated_by.oneOf.0.integrations.slack.profile.oneOf.0.display_name.oneOf.0","typeLabel":"string"},{"type":"null","description":"The display name the member set in Slack. Empty or null when they set none.","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].updated_by.oneOf.0.integrations.slack.profile.oneOf.0.display_name.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"deliveries.items.[INDEX].updated_by.oneOf.0.integrations.slack.profile.oneOf.0.display_name","typeLabel":"string | null"},"real_name":{"oneOf":[{"type":"string","description":"The member’s full name in Slack. Null when Slack has none.","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].updated_by.oneOf.0.integrations.slack.profile.oneOf.0.real_name.oneOf.0","typeLabel":"string"},{"type":"null","description":"The member’s full name in Slack. Null when Slack has none.","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].updated_by.oneOf.0.integrations.slack.profile.oneOf.0.real_name.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"deliveries.items.[INDEX].updated_by.oneOf.0.integrations.slack.profile.oneOf.0.real_name","typeLabel":"string | null"},"email":{"oneOf":[{"type":"string","description":"The email address on the Slack account. Null when Slack does not share it, as for bots.","example":"[email protected]","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].updated_by.oneOf.0.integrations.slack.profile.oneOf.0.email.oneOf.0","typeLabel":"string"},{"type":"null","description":"The email address on the Slack account. Null when Slack does not share it, as for bots.","example":"[email protected]","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].updated_by.oneOf.0.integrations.slack.profile.oneOf.0.email.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"deliveries.items.[INDEX].updated_by.oneOf.0.integrations.slack.profile.oneOf.0.email","typeLabel":"string | null"},"pronouns":{"oneOf":[{"type":"string","description":"The pronouns the member set in Slack. Empty or null when they set none.","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].updated_by.oneOf.0.integrations.slack.profile.oneOf.0.pronouns.oneOf.0","typeLabel":"string"},{"type":"null","description":"The pronouns the member set in Slack. Empty or null when they set none.","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].updated_by.oneOf.0.integrations.slack.profile.oneOf.0.pronouns.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"deliveries.items.[INDEX].updated_by.oneOf.0.integrations.slack.profile.oneOf.0.pronouns","typeLabel":"string | null"},"avatar_url":{"oneOf":[{"type":"string","description":"The URL of the member’s Slack avatar. Null when Slack has none.","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].updated_by.oneOf.0.integrations.slack.profile.oneOf.0.avatar_url.oneOf.0","typeLabel":"string"},{"type":"null","description":"The URL of the member’s Slack avatar. Null when Slack has none.","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].updated_by.oneOf.0.integrations.slack.profile.oneOf.0.avatar_url.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"deliveries.items.[INDEX].updated_by.oneOf.0.integrations.slack.profile.oneOf.0.avatar_url","typeLabel":"string | null"},"locale":{"oneOf":[{"type":"string","description":"The member’s Slack language and region, such as `en-US`, when known.","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].updated_by.oneOf.0.integrations.slack.profile.oneOf.0.locale.oneOf.0","typeLabel":"string"},{"type":"null","description":"The member’s Slack language and region, such as `en-US`, when known.","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].updated_by.oneOf.0.integrations.slack.profile.oneOf.0.locale.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"deliveries.items.[INDEX].updated_by.oneOf.0.integrations.slack.profile.oneOf.0.locale","typeLabel":"string | null"},"tz":{"oneOf":[{"type":"string","description":"The member’s time zone in Slack, as an IANA name such as `America/New_York`, when known.","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].updated_by.oneOf.0.integrations.slack.profile.oneOf.0.tz.oneOf.0","typeLabel":"string"},{"type":"null","description":"The member’s time zone in Slack, as an IANA name such as `America/New_York`, when known.","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].updated_by.oneOf.0.integrations.slack.profile.oneOf.0.tz.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"deliveries.items.[INDEX].updated_by.oneOf.0.integrations.slack.profile.oneOf.0.tz","typeLabel":"string | null"},"is_bot":{"type":"boolean","description":"Whether the account is a bot rather than a person.","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].updated_by.oneOf.0.integrations.slack.profile.oneOf.0.is_bot","typeLabel":"boolean"},"is_app_user":{"type":"boolean","description":"Whether Slack reports the member as an authorized user of the Tightknit app.","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].updated_by.oneOf.0.integrations.slack.profile.oneOf.0.is_app_user","typeLabel":"boolean"},"is_workflow_bot":{"type":"boolean","description":"Whether the account is the bot behind a Slack workflow.","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].updated_by.oneOf.0.integrations.slack.profile.oneOf.0.is_workflow_bot","typeLabel":"boolean"},"is_admin":{"type":"boolean","description":"Whether the member is an admin of the Slack workspace.","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].updated_by.oneOf.0.integrations.slack.profile.oneOf.0.is_admin","typeLabel":"boolean"},"is_owner":{"type":"boolean","description":"Whether the member is an owner of the Slack workspace.","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].updated_by.oneOf.0.integrations.slack.profile.oneOf.0.is_owner","typeLabel":"boolean"},"is_restricted":{"type":"boolean","description":"Whether the member is a Slack guest, limited to the channels they were invited to.","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].updated_by.oneOf.0.integrations.slack.profile.oneOf.0.is_restricted","typeLabel":"boolean"},"is_invited_user":{"type":"boolean","description":"Whether the member holds nothing but a still-open Slack invitation.","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].updated_by.oneOf.0.integrations.slack.profile.oneOf.0.is_invited_user","typeLabel":"boolean"},"is_deleted":{"type":"boolean","description":"Whether Slack deactivated the account.","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].updated_by.oneOf.0.integrations.slack.profile.oneOf.0.is_deleted","typeLabel":"boolean"}},"isRequired":true,"uniqueKey":"deliveries.items.[INDEX].updated_by.oneOf.0.integrations.slack.profile.oneOf.0","typeLabel":"object"},{"type":"null","description":"The linked Slack profile, or null when the member has none.","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].updated_by.oneOf.0.integrations.slack.profile.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"deliveries.items.[INDEX].updated_by.oneOf.0.integrations.slack.profile","typeLabel":"object | null"}},"required":["profile"],"description":"The member’s Slack identity.","isRequired":true,"uniqueKey":"deliveries.items.[INDEX].updated_by.oneOf.0.integrations.slack","typeLabel":"object"}},"required":["slack"],"description":"Where the member connects to other platforms. Present only when `slack_profile` is expanded.","uniqueKey":"deliveries.items.[INDEX].updated_by.oneOf.0.integrations","typeLabel":"object"}},"uniqueKey":"deliveries.items.[INDEX].updated_by.oneOf.0","typeLabel":"object"},{"type":"null","description":"The profile that last changed it. Present only when `updated_by` is expanded.","uniqueKey":"deliveries.items.[INDEX].updated_by.oneOf.1","typeLabel":"null"}],"uniqueKey":"deliveries.items.[INDEX].updated_by","typeLabel":"object | null"}},"required":["object","id","created_at","updated_at","composition_id","composition_version_id","destination","status","identity","unfurl_links","slack_channel","slack_dm","counts","error_code","delivered_at","created_by_id","updated_by_id"],"uniqueKey":"deliveries.items.[INDEX]","typeLabel":"object"},"description":"Where it is set to go, and once sent, each send and how it went, oldest first. Present only when `deliveries` is expanded.","uniqueKey":"deliveries","typeLabel":"object[]"}},"required":["object","id","created_at","updated_at","label","blocks","status","visibility","studio_role","revision","current_version_number","scheduled_at","owner_profile_id","scheduled_by_id","created_by_id","updated_by_id"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"object":"composition","id":"cmps_7h2k9m4n1p6q","created_at":"2023-11-07T05:31:56Z","updated_at":"2023-11-07T05:31:56Z","label":"\u003cstring>","blocks":[{"type":"\u003cstring>"}],"status":"draft","visibility":"studio","studio_role":"viewer","revision":1,"current_version_number":1,"scheduled_at":"2023-11-07T05:31:56Z","owner_profile_id":"\u003cstring>","scheduled_by_id":"\u003cstring>","created_by_id":"\u003cstring>","updated_by_id":"\u003cstring>","owner":{"object":"profile","id":"prof_9f2b8c1d4e5a","created_at":"2023-11-07T05:31:56Z","updated_at":"2023-11-07T05:31:56Z","name":"Ada Lovelace","full_name":"Ada Lovelace","display_name":"\u003cstring>","first_name":"\u003cstring>","last_name":"\u003cstring>","avatar_url":"\u003cstring>","email":"[email protected]","email_domain":"example.com","locale":"\u003cstring>","is_team_member":true,"is_deactivated":true,"opt_out_of_public_profile":true,"member_since":"2023-11-07T05:31:56Z","invited_at":"2023-11-07T05:31:56Z","signed_up_at":"2023-11-07T05:31:56Z","source":"slack_sync","has_account":true,"flair_group_id":"grup_7m3x9k4t8plz","slack_profile_id":"U0BRY4S6LNQ","integrations":{"slack":{"profile":{"object":"slack_profile","id":"U0BRY4S6LNQ","created_at":"2023-11-07T05:31:56Z","updated_at":"2023-11-07T05:31:56Z","workspace_id":"T01ABC123","display_name":"\u003cstring>","real_name":"\u003cstring>","email":"[email protected]","pronouns":"\u003cstring>","avatar_url":"\u003cstring>","locale":"\u003cstring>","tz":"\u003cstring>","is_bot":true,"is_app_user":true,"is_workflow_bot":true,"is_admin":true,"is_owner":true,"is_restricted":true,"is_invited_user":true,"is_deleted":true}}}},"scheduled_by":{"object":"profile","id":"prof_9f2b8c1d4e5a","created_at":"2023-11-07T05:31:56Z","updated_at":"2023-11-07T05:31:56Z","name":"Ada Lovelace","full_name":"Ada Lovelace","display_name":"\u003cstring>","first_name":"\u003cstring>","last_name":"\u003cstring>","avatar_url":"\u003cstring>","email":"[email protected]","email_domain":"example.com","locale":"\u003cstring>","is_team_member":true,"is_deactivated":true,"opt_out_of_public_profile":true,"member_since":"2023-11-07T05:31:56Z","invited_at":"2023-11-07T05:31:56Z","signed_up_at":"2023-11-07T05:31:56Z","source":"slack_sync","has_account":true,"flair_group_id":"grup_7m3x9k4t8plz","slack_profile_id":"U0BRY4S6LNQ","integrations":{"slack":{"profile":{"object":"slack_profile","id":"U0BRY4S6LNQ","created_at":"2023-11-07T05:31:56Z","updated_at":"2023-11-07T05:31:56Z","workspace_id":"T01ABC123","display_name":"\u003cstring>","real_name":"\u003cstring>","email":"[email protected]","pronouns":"\u003cstring>","avatar_url":"\u003cstring>","locale":"\u003cstring>","tz":"\u003cstring>","is_bot":true,"is_app_user":true,"is_workflow_bot":true,"is_admin":true,"is_owner":true,"is_restricted":true,"is_invited_user":true,"is_deleted":true}}}},"created_by":{"object":"profile","id":"prof_9f2b8c1d4e5a","created_at":"2023-11-07T05:31:56Z","updated_at":"2023-11-07T05:31:56Z","name":"Ada Lovelace","full_name":"Ada Lovelace","display_name":"\u003cstring>","first_name":"\u003cstring>","last_name":"\u003cstring>","avatar_url":"\u003cstring>","email":"[email protected]","email_domain":"example.com","locale":"\u003cstring>","is_team_member":true,"is_deactivated":true,"opt_out_of_public_profile":true,"member_since":"2023-11-07T05:31:56Z","invited_at":"2023-11-07T05:31:56Z","signed_up_at":"2023-11-07T05:31:56Z","source":"slack_sync","has_account":true,"flair_group_id":"grup_7m3x9k4t8plz","slack_profile_id":"U0BRY4S6LNQ","integrations":{"slack":{"profile":{"object":"slack_profile","id":"U0BRY4S6LNQ","created_at":"2023-11-07T05:31:56Z","updated_at":"2023-11-07T05:31:56Z","workspace_id":"T01ABC123","display_name":"\u003cstring>","real_name":"\u003cstring>","email":"[email protected]","pronouns":"\u003cstring>","avatar_url":"\u003cstring>","locale":"\u003cstring>","tz":"\u003cstring>","is_bot":true,"is_app_user":true,"is_workflow_bot":true,"is_admin":true,"is_owner":true,"is_restricted":true,"is_invited_user":true,"is_deleted":true}}}},"updated_by":{"object":"profile","id":"prof_9f2b8c1d4e5a","created_at":"2023-11-07T05:31:56Z","updated_at":"2023-11-07T05:31:56Z","name":"Ada Lovelace","full_name":"Ada Lovelace","display_name":"\u003cstring>","first_name":"\u003cstring>","last_name":"\u003cstring>","avatar_url":"\u003cstring>","email":"[email protected]","email_domain":"example.com","locale":"\u003cstring>","is_team_member":true,"is_deactivated":true,"opt_out_of_public_profile":true,"member_since":"2023-11-07T05:31:56Z","invited_at":"2023-11-07T05:31:56Z","signed_up_at":"2023-11-07T05:31:56Z","source":"slack_sync","has_account":true,"flair_group_id":"grup_7m3x9k4t8plz","slack_profile_id":"U0BRY4S6LNQ","integrations":{"slack":{"profile":{"object":"slack_profile","id":"U0BRY4S6LNQ","created_at":"2023-11-07T05:31:56Z","updated_at":"2023-11-07T05:31:56Z","workspace_id":"T01ABC123","display_name":"\u003cstring>","real_name":"\u003cstring>","email":"[email protected]","pronouns":"\u003cstring>","avatar_url":"\u003cstring>","locale":"\u003cstring>","tz":"\u003cstring>","is_bot":true,"is_app_user":true,"is_workflow_bot":true,"is_admin":true,"is_owner":true,"is_restricted":true,"is_invited_user":true,"is_deleted":true}}}},"deliveries":[{"object":"composition_delivery","id":"cpdl_4k8m2n6p9q3r","created_at":"2023-11-07T05:31:56Z","updated_at":"2023-11-07T05:31:56Z","composition_id":"cmps_7h2k9m4n1p6q","composition_version_id":"\u003cstring>","destination":"slack_channel","status":"pending","identity":"user","unfurl_links":true,"slack_channel":{"channel_ids":["\u003cstring>"],"publish_to_site":true,"thread_ts":"\u003cstring>"},"slack_dm":{"member_ids":["\u003cstring>"],"group_ids":["\u003cstring>"],"feed_ids":["\u003cstring>"],"event_ids":["\u003cstring>"]},"counts":{"pending":1,"claimed":1,"sent":1,"failed":1,"skipped":1},"error_code":"\u003cstring>","delivered_at":"2023-11-07T05:31:56Z","created_by_id":"\u003cstring>","updated_by_id":"\u003cstring>","created_by":{"object":"profile","id":"prof_9f2b8c1d4e5a","created_at":"2023-11-07T05:31:56Z","updated_at":"2023-11-07T05:31:56Z","name":"Ada Lovelace","full_name":"Ada Lovelace","display_name":"\u003cstring>","first_name":"\u003cstring>","last_name":"\u003cstring>","avatar_url":"\u003cstring>","email":"[email protected]","email_domain":"example.com","locale":"\u003cstring>","is_team_member":true,"is_deactivated":true,"opt_out_of_public_profile":true,"member_since":"2023-11-07T05:31:56Z","invited_at":"2023-11-07T05:31:56Z","signed_up_at":"2023-11-07T05:31:56Z","source":"slack_sync","has_account":true,"flair_group_id":"grup_7m3x9k4t8plz","slack_profile_id":"U0BRY4S6LNQ","integrations":{"slack":{"profile":{"object":"slack_profile","id":"U0BRY4S6LNQ","created_at":"2023-11-07T05:31:56Z","updated_at":"2023-11-07T05:31:56Z","workspace_id":"T01ABC123","display_name":"\u003cstring>","real_name":"\u003cstring>","email":"[email protected]","pronouns":"\u003cstring>","avatar_url":"\u003cstring>","locale":"\u003cstring>","tz":"\u003cstring>","is_bot":true,"is_app_user":true,"is_workflow_bot":true,"is_admin":true,"is_owner":true,"is_restricted":true,"is_invited_user":true,"is_deleted":true}}}},"updated_by":{"object":"profile","id":"prof_9f2b8c1d4e5a","created_at":"2023-11-07T05:31:56Z","updated_at":"2023-11-07T05:31:56Z","name":"Ada Lovelace","full_name":"Ada Lovelace","display_name":"\u003cstring>","first_name":"\u003cstring>","last_name":"\u003cstring>","avatar_url":"\u003cstring>","email":"[email protected]","email_domain":"example.com","locale":"\u003cstring>","is_team_member":true,"is_deactivated":true,"opt_out_of_public_profile":true,"member_since":"2023-11-07T05:31:56Z","invited_at":"2023-11-07T05:31:56Z","signed_up_at":"2023-11-07T05:31:56Z","source":"slack_sync","has_account":true,"flair_group_id":"grup_7m3x9k4t8plz","slack_profile_id":"U0BRY4S6LNQ","integrations":{"slack":{"profile":{"object":"slack_profile","id":"U0BRY4S6LNQ","created_at":"2023-11-07T05:31:56Z","updated_at":"2023-11-07T05:31:56Z","workspace_id":"T01ABC123","display_name":"\u003cstring>","real_name":"\u003cstring>","email":"[email protected]","pronouns":"\u003cstring>","avatar_url":"\u003cstring>","locale":"\u003cstring>","tz":"\u003cstring>","is_bot":true,"is_app_user":true,"is_workflow_bot":true,"is_admin":true,"is_owner":true,"is_restricted":true,"is_invited_user":true,"is_deleted":true}}}}}]}}},"exampleType":"generated"}},"exampleType":"generated"},"05efc193-9d40-45a8-ac6f-b87896639ca3":{"description":"Error","headers":{"Request-Id":{"description":"Identifier for this request, quote it in support tickets.","schema":{"type":"string"}}},"content":{"application/problem+json":{"schema":{"type":"object","properties":{"type":{"type":"string","description":"A URI naming the problem type. Always `about:blank`.","example":"about:blank","isRequired":true,"uniqueKey":"type","typeLabel":"string"},"title":{"type":"string","description":"A short summary of the HTTP status.","example":"Not found","isRequired":true,"uniqueKey":"title","typeLabel":"string"},"status":{"type":"integer","description":"The HTTP status code.","example":404,"isRequired":true,"uniqueKey":"status","typeLabel":"integer"},"code":{"type":"string","description":"A stable, machine-readable error code to branch on, unlike `title` and `detail`.","example":"not_found","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"detail":{"type":"string","description":"What went wrong with this request, when there is more to say.","uniqueKey":"detail","typeLabel":"string"},"param":{"type":"string","description":"The request field or parameter the error is about, when one is.","uniqueKey":"param","typeLabel":"string"},"request_id":{"type":"string","description":"The id of the request, also sent as the `Request-Id` header. Quote it in support tickets.","example":"req_9f2b8c1d4e5a6b7c8d9e0f1a2b3c4d5e","uniqueKey":"request_id","typeLabel":"string"}},"required":["type","title","status","code"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"type":"about:blank","title":"Not found","status":404,"code":"not_found","detail":"\u003cstring>","param":"\u003cstring>","request_id":"req_9f2b8c1d4e5a6b7c8d9e0f1a2b3c4d5e"}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"b963e2d5-8804-4bd6-88d9-2089b032f0c6":{"Bearer":{"type":"http","scheme":"bearer","bearerFormat":"Tightknit API key","description":"A Tightknit admin API key, sent as `Authorization: Bearer \u003ckey>`.","scopes":[],"schemeName":"Bearer"}}},"servers":{"0a9771c8-9003-4dc7-aa40-7ed293ec076d":{"url":"https://api.tightknit.ai"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","bearerFormat":"Tightknit API key","description":"A Tightknit admin API key, sent as `Authorization: Bearer \u003ckey>`.","scopes":[],"schemeName":"Bearer"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"A Tightknit admin API key, sent as `Authorization: Bearer \u003ckey>`.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"Bearer","name":"Authorization"}],"title":"Bearer"}]},"originalFileLocation":"openapi-v1.json"},"subdomain":"tightknit","siteName":"Tightknit","title":"Update a composition - Tightknit","relatedPagesConfig":{"enabled":true,"limit":5,"mode":"automatic"},"navMaps":{"firstHrefInVersion":{"v0":{"href":"/api-reference/api-keys/introspect-current-api-key","matchLevel":2},"v1":{"href":"/v1/api-reference/compositions/update-a-composition","matchLevel":0}},"firstHrefInLanguage":{}},"lastModified":"2026-11-11T07:33:16.671Z","originalFileLocation":"v1/api-reference/compositions/update-a-composition.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Changes the composition’s label, its blocks, or both, and records the result as a new version. It sends nothing. Needs the editor role (studio_role), so a composition shared as viewer or commenter is a 403. Refused with a 400 once it has been sent or while it is sending, and with a 409 when expected_revision is stale.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Tightknit\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/tightknit/K2mBJECqjK-Pb2jD/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/tightknit/K2mBJECqjK-Pb2jD/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/tightknit/K2mBJECqjK-Pb2jD/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/tightknit/K2mBJECqjK-Pb2jD/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/tightknit/K2mBJECqjK-Pb2jD/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/tightknit/K2mBJECqjK-Pb2jD/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/tightknit/K2mBJECqjK-Pb2jD/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/tightknit/K2mBJECqjK-Pb2jD/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/tightknit/K2mBJECqjK-Pb2jD/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Update a composition - Tightknit\">\u003cmeta data-mint-head property=\"og:description\" content=\"Changes the composition’s label, its blocks, or both, and records the result as a new version. It sends nothing. Needs the editor role (studio_role), so a composition shared as viewer or commenter is a 403. Refused with a 400 once it has been sent or while it is sending, and with a 409 when expected_revision is stale.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Tightknit\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.tightknit.ai/v1/api-reference/compositions/update-a-composition\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://tightknit.mintlify.site/_mintlify/api/og/v2?division=Compositions\u0026amp;title=Update+a+composition\u0026amp;description=Changes+the+composition%E2%80%99s+%60label%60%2C+its+%60blocks%60%2C+or+both%2C+and+records+the+result+as+a+new+version.+It+sends+nothing.+Needs+the+%60editor%60+role+%28%60studio_role%60%29%2C+so\u0026amp;theme=59eb19bf3c88cda9a0e5e6f0\u0026amp;signature=b670a418c51f626bf087f5cfa89fd42b9735c5c44cb482ec6220ee3fb7506218\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Update a composition - Tightknit\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Changes the composition’s label, its blocks, or both, and records the result as a new version. It sends nothing. Needs the editor role (studio_role), so a composition shared as viewer or commenter is a 403. Refused with a 400 once it has been sent or while it is sending, and with a 409 when expected_revision is stale.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://tightknit.mintlify.site/_mintlify/api/og/v2?division=Compositions\u0026amp;title=Update+a+composition\u0026amp;description=Changes+the+composition%E2%80%99s+%60label%60%2C+its+%60blocks%60%2C+or+both%2C+and+records+the+result+as+a+new+version.+It+sends+nothing.+Needs+the+%60editor%60+role+%28%60studio_role%60%29%2C+so\u0026amp;theme=59eb19bf3c88cda9a0e5e6f0\u0026amp;signature=b670a418c51f626bf087f5cfa89fd42b9735c5c44cb482ec6220ee3fb7506218\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/tightknit/K2mBJECqjK-Pb2jD/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Tightknit\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#0ea5e9\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.tightknit.ai/v1/api-reference/compositions/update-a-composition\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/v1/api-reference/compositions/update-a-composition.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.tightknit.ai/#organization\",\"name\":\"Tightknit\",\"url\":\"https://docs.tightknit.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/tightknit/8RgBfwvyxlVVp-GI/assets/logo/light.png?fit=max\u0026auto=format\u0026n=8RgBfwvyxlVVp-GI\u0026q=85\u0026s=35c245944b73607d7c7b4b7c6fd4f080\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.tightknit.ai#website\",\"name\":\"Tightknit\",\"url\":\"https://docs.tightknit.ai\",\"publisher\":{\"@id\":\"https://docs.tightknit.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.tightknit.ai/v1/api-reference/compositions/update-a-composition#webpage\",\"url\":\"https://docs.tightknit.ai/v1/api-reference/compositions/update-a-composition\",\"name\":\"Update a composition\",\"description\":\"Changes the composition’s label, its blocks, or both, and records the result as a new version. It sends nothing. Needs the editor role (studio_role), so a composition shared as viewer or commenter is a 403. Refused with a 400 once it has been sent or while it is sending, and with a 409 when expected_revision is stale.\",\"dateModified\":\"2026-11-11T07:33:16.671Z\",\"isPartOf\":{\"@id\":\"https://docs.tightknit.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.tightknit.ai/v1/api-reference/compositions/update-a-composition#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.tightknit.ai/v1/api-reference/compositions/update-a-composition#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Admin API\",\"item\":\"https://docs.tightknit.ai/v1/api-reference/system/liveness-check\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Compositions\",\"item\":\"https://docs.tightknit.ai/v1/api-reference/compositions/list-compositions\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Update a composition\",\"item\":\"https://docs.tightknit.ai/v1/api-reference/compositions/update-a-composition\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.tightknit.ai/v1/api-reference/compositions/update-a-composition#apireference\",\"headline\":\"Update a composition\",\"name\":\"Update a composition\",\"description\":\"Changes the composition’s label, its blocks, or both, and records the result as a new version. It sends nothing. Needs the editor role (studio_role), so a composition shared as viewer or commenter is a 403. Refused with a 400 once it has been sent or while it is sending, and with a 409 when expected_revision is stale.\",\"url\":\"https://docs.tightknit.ai/v1/api-reference/compositions/update-a-composition\",\"mainEntityOfPage\":{\"@id\":\"https://docs.tightknit.ai/v1/api-reference/compositions/update-a-composition#webpage\"},\"dateModified\":\"2026-11-11T07:33:16.671Z\",\"publisher\":{\"@id\":\"https://docs.tightknit.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.tightknit.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Tightknit\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Tightknit\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/v1/api-reference/compositions/update-a-composition.md","siteName":"Tightknit","nav":{"global":{"anchors":[{"anchor":"Community","icon":"slack","href":"https://community.tightknit.ai/"},{"anchor":"Changelog","icon":"bullhorn","href":"https://community.tightknit.ai/x/changelog"}]},"tabs":[{"tab":"Documentation","pages":[{"title":"Documentation","href":"/introduction"}]},{"tab":"API Reference","versions":[{"version":"v0","default":true,"pages":[{"title":"v0","href":"/api-reference/api-keys/introspect-current-api-key"}]},{"version":"v1","groups":[{"group":"Overview","pages":[{"title":"Tightknit Admin API v1 Introduction","sidebarTitle":"Introduction","href":"/v1/api-reference/introduction"}]},{"group":"Admin API","pages":[{"group":"System","pages":[{"title":"Liveness check","deprecated":null,"version":null,"playground":"none","openapi":"/openapi-v1.json get /v1/health","href":"/v1/api-reference/system/liveness-check"}]},{"group":"API keys","pages":[{"title":"Retrieve the calling API key","deprecated":null,"version":null,"playground":"none","openapi":"/openapi-v1.json get /v1/api_key","href":"/v1/api-reference/api-keys/retrieve-the-calling-api-key"}]},{"group":"Awards","pages":[{"title":"List awards","deprecated":null,"version":null,"playground":"none","openapi":"/openapi-v1.json get /v1/awards","href":"/v1/api-reference/awards/list-awards"},{"title":"Retrieve an award","deprecated":null,"version":null,"playground":"none","openapi":"/openapi-v1.json get /v1/awards/{award_id}","href":"/v1/api-reference/awards/retrieve-an-award"},{"title":"List award assignments","deprecated":null,"version":null,"playground":"none","openapi":"/openapi-v1.json get /v1/award_assignments","href":"/v1/api-reference/awards/list-award-assignments"},{"title":"Create an award assignment","deprecated":null,"version":null,"playground":"none","openapi":"/openapi-v1.json post /v1/award_assignments","href":"/v1/api-reference/awards/create-an-award-assignment"},{"title":"Retrieve an award assignment","deprecated":null,"version":null,"playground":"none","openapi":"/openapi-v1.json get /v1/award_assignments/{award_assignment_id}","href":"/v1/api-reference/awards/retrieve-an-award-assignment"},{"title":"Delete an award assignment","deprecated":null,"version":null,"playground":"none","openapi":"/openapi-v1.json delete /v1/award_assignments/{award_assignment_id}","href":"/v1/api-reference/awards/delete-an-award-assignment"}]},{"group":"Events","pages":[{"title":"List calendar events","deprecated":null,"version":null,"playground":"none","openapi":"/openapi-v1.json get /v1/events","href":"/v1/api-reference/events/list-calendar-events"},{"title":"Create a calendar event","deprecated":null,"version":null,"playground":"none","openapi":"/openapi-v1.json post /v1/events","href":"/v1/api-reference/events/create-a-calendar-event"},{"title":"Retrieve a calendar event","deprecated":null,"version":null,"playground":"none","openapi":"/openapi-v1.json get /v1/events/{event_id}","href":"/v1/api-reference/events/retrieve-a-calendar-event"},{"title":"Delete a calendar event","deprecated":null,"version":null,"playground":"none","openapi":"/openapi-v1.json delete /v1/events/{event_id}","href":"/v1/api-reference/events/delete-a-calendar-event"},{"title":"Update a calendar event","deprecated":null,"version":null,"playground":"none","openapi":"/openapi-v1.json patch /v1/events/{event_id}","href":"/v1/api-reference/events/update-a-calendar-event"},{"title":"List event participants","deprecated":null,"version":null,"playground":"none","openapi":"/openapi-v1.json get /v1/event_participants","href":"/v1/api-reference/events/list-event-participants"},{"title":"Create an event participant","deprecated":null,"version":null,"playground":"none","openapi":"/openapi-v1.json post /v1/event_participants","href":"/v1/api-reference/events/create-an-event-participant"},{"title":"Retrieve an event participant","deprecated":null,"version":null,"playground":"none","openapi":"/openapi-v1.json get /v1/event_participants/{event_participant_id}","href":"/v1/api-reference/events/retrieve-an-event-participant"},{"title":"Update an event participant","deprecated":null,"version":null,"playground":"none","openapi":"/openapi-v1.json patch /v1/event_participants/{event_participant_id}","href":"/v1/api-reference/events/update-an-event-participant"}]},{"group":"Journeys","pages":[{"title":"List journeys","deprecated":null,"version":null,"playground":"none","openapi":"/openapi-v1.json get /v1/journeys","href":"/v1/api-reference/journeys/list-journeys"},{"title":"Retrieve a journey","deprecated":null,"version":null,"playground":"none","openapi":"/openapi-v1.json get /v1/journeys/{journey_id}","href":"/v1/api-reference/journeys/retrieve-a-journey"},{"title":"List journey achievements","deprecated":null,"version":null,"playground":"none","openapi":"/openapi-v1.json get /v1/journey_achievements","href":"/v1/api-reference/journeys/list-journey-achievements"},{"title":"Retrieve a journey achievement","deprecated":null,"version":null,"playground":"none","openapi":"/openapi-v1.json get /v1/journey_achievements/{journey_achievement_id}","href":"/v1/api-reference/journeys/retrieve-a-journey-achievement"},{"title":"List milestones","deprecated":null,"version":null,"playground":"none","openapi":"/openapi-v1.json get /v1/milestones","href":"/v1/api-reference/journeys/list-milestones"},{"title":"Retrieve a milestone","deprecated":null,"version":null,"playground":"none","openapi":"/openapi-v1.json get /v1/milestones/{milestone_id}","href":"/v1/api-reference/journeys/retrieve-a-milestone"},{"title":"List milestone achievements","deprecated":null,"version":null,"playground":"none","openapi":"/openapi-v1.json get /v1/milestone_achievements","href":"/v1/api-reference/journeys/list-milestone-achievements"},{"title":"Retrieve a milestone achievement","deprecated":null,"version":null,"playground":"none","openapi":"/openapi-v1.json get /v1/milestone_achievements/{milestone_achievement_id}","href":"/v1/api-reference/journeys/retrieve-a-milestone-achievement"},{"title":"List milestone Slack channels","deprecated":null,"version":null,"playground":"none","openapi":"/openapi-v1.json get /v1/milestone_slack_channels","href":"/v1/api-reference/journeys/list-milestone-slack-channels"},{"title":"Create a milestone Slack channel","deprecated":null,"version":null,"playground":"none","openapi":"/openapi-v1.json post /v1/milestone_slack_channels","href":"/v1/api-reference/journeys/create-a-milestone-slack-channel"},{"title":"Retrieve a milestone Slack channel","deprecated":null,"version":null,"playground":"none","openapi":"/openapi-v1.json get /v1/milestone_slack_channels/{milestone_slack_channel_id}","href":"/v1/api-reference/journeys/retrieve-a-milestone-slack-channel"},{"title":"Delete a milestone Slack channel","deprecated":null,"version":null,"playground":"none","openapi":"/openapi-v1.json delete /v1/milestone_slack_channels/{milestone_slack_channel_id}","href":"/v1/api-reference/journeys/delete-a-milestone-slack-channel"},{"title":"Update a milestone Slack channel","deprecated":null,"version":null,"playground":"none","openapi":"/openapi-v1.json patch /v1/milestone_slack_channels/{milestone_slack_channel_id}","href":"/v1/api-reference/journeys/update-a-milestone-slack-channel"}]},{"group":"Tags","pages":[{"title":"List tags","deprecated":null,"version":null,"playground":"none","openapi":"/openapi-v1.json get /v1/tags","href":"/v1/api-reference/tags/list-tags"},{"title":"Retrieve a tag","deprecated":null,"version":null,"playground":"none","openapi":"/openapi-v1.json get /v1/tags/{tag_id}","href":"/v1/api-reference/tags/retrieve-a-tag"},{"title":"List tag groups","deprecated":null,"version":null,"playground":"none","openapi":"/openapi-v1.json get /v1/tag_groups","href":"/v1/api-reference/tags/list-tag-groups"},{"title":"Retrieve a tag group","deprecated":null,"version":null,"playground":"none","openapi":"/openapi-v1.json get /v1/tag_groups/{tag_group_id}","href":"/v1/api-reference/tags/retrieve-a-tag-group"}]},{"group":"Groups","pages":[{"title":"List groups","deprecated":null,"version":null,"playground":"none","openapi":"/openapi-v1.json get /v1/groups","href":"/v1/api-reference/groups/list-groups"},{"title":"Retrieve a group","deprecated":null,"version":null,"playground":"none","openapi":"/openapi-v1.json get /v1/groups/{group_id}","href":"/v1/api-reference/groups/retrieve-a-group"},{"title":"List group memberships","deprecated":null,"version":null,"playground":"none","openapi":"/openapi-v1.json get /v1/group_memberships","href":"/v1/api-reference/groups/list-group-memberships"},{"title":"Create a group membership","deprecated":null,"version":null,"playground":"none","openapi":"/openapi-v1.json post /v1/group_memberships","href":"/v1/api-reference/groups/create-a-group-membership"},{"title":"Retrieve a group membership","deprecated":null,"version":null,"playground":"none","openapi":"/openapi-v1.json get /v1/group_memberships/{group_membership_id}","href":"/v1/api-reference/groups/retrieve-a-group-membership"},{"title":"Delete a group membership","deprecated":null,"version":null,"playground":"none","openapi":"/openapi-v1.json delete /v1/group_memberships/{group_membership_id}","href":"/v1/api-reference/groups/delete-a-group-membership"}]},{"group":"Content","pages":[{"title":"List content collections","deprecated":null,"version":null,"playground":"none","openapi":"/openapi-v1.json get /v1/content_collections","href":"/v1/api-reference/content/list-content-collections"},{"title":"Retrieve a content collection","deprecated":null,"version":null,"playground":"none","openapi":"/openapi-v1.json get /v1/content_collections/{content_collection_id}","href":"/v1/api-reference/content/retrieve-a-content-collection"},{"title":"List content resources","deprecated":null,"version":null,"playground":"none","openapi":"/openapi-v1.json get /v1/content_resources","href":"/v1/api-reference/content/list-content-resources"},{"title":"Retrieve a content resource","deprecated":null,"version":null,"playground":"none","openapi":"/openapi-v1.json get /v1/content_resources/{content_resource_id}","href":"/v1/api-reference/content/retrieve-a-content-resource"}]},{"group":"Feeds","pages":[{"title":"List feeds","deprecated":null,"version":null,"playground":"none","openapi":"/openapi-v1.json get /v1/feeds","href":"/v1/api-reference/feeds/list-feeds"},{"title":"Retrieve a feed","deprecated":null,"version":null,"playground":"none","openapi":"/openapi-v1.json get /v1/feeds/{feed_id}","href":"/v1/api-reference/feeds/retrieve-a-feed"},{"title":"List feed members","deprecated":null,"version":null,"playground":"none","openapi":"/openapi-v1.json get /v1/feed_members","href":"/v1/api-reference/feeds/list-feed-members"},{"title":"Create a feed member","deprecated":null,"version":null,"playground":"none","openapi":"/openapi-v1.json post /v1/feed_members","href":"/v1/api-reference/feeds/create-a-feed-member"},{"title":"Retrieve a feed member","deprecated":null,"version":null,"playground":"none","openapi":"/openapi-v1.json get /v1/feed_members/{feed_member_id}","href":"/v1/api-reference/feeds/retrieve-a-feed-member"},{"title":"Delete a feed member","deprecated":null,"version":null,"playground":"none","openapi":"/openapi-v1.json delete /v1/feed_members/{feed_member_id}","href":"/v1/api-reference/feeds/delete-a-feed-member"},{"title":"List pinned messages","deprecated":null,"version":null,"playground":"none","openapi":"/openapi-v1.json get /v1/pinned_messages","href":"/v1/api-reference/feeds/list-pinned-messages"},{"title":"Retrieve a pinned message","deprecated":null,"version":null,"playground":"none","openapi":"/openapi-v1.json get /v1/pinned_messages/{pinned_message_id}","href":"/v1/api-reference/feeds/retrieve-a-pinned-message"}]},{"group":"Files","pages":[{"title":"Upload a file","deprecated":null,"version":null,"playground":"none","openapi":"/openapi-v1.json post /v1/files","href":"/v1/api-reference/files/upload-a-file"}]},{"group":"Members","pages":[{"title":"List members","deprecated":null,"version":null,"playground":"none","openapi":"/openapi-v1.json get /v1/profiles","href":"/v1/api-reference/members/list-members"},{"title":"Create a member","deprecated":null,"version":null,"playground":"none","openapi":"/openapi-v1.json post /v1/profiles","href":"/v1/api-reference/members/create-a-member"},{"title":"Retrieve a member","deprecated":null,"version":null,"playground":"none","openapi":"/openapi-v1.json get /v1/profiles/{profile_id}","href":"/v1/api-reference/members/retrieve-a-member"},{"title":"Delete a member","deprecated":null,"version":null,"playground":"none","openapi":"/openapi-v1.json delete /v1/profiles/{profile_id}","href":"/v1/api-reference/members/delete-a-member"},{"title":"Activate a member","deprecated":null,"version":null,"playground":"none","openapi":"/openapi-v1.json post /v1/profiles/{profile_id}/activate","href":"/v1/api-reference/members/activate-a-member"},{"title":"Deactivate a member","deprecated":null,"version":null,"playground":"none","openapi":"/openapi-v1.json post /v1/profiles/{profile_id}/deactivate","href":"/v1/api-reference/members/deactivate-a-member"}]},{"group":"Follows","pages":[{"title":"List follows","deprecated":null,"version":null,"playground":"none","openapi":"/openapi-v1.json get /v1/follows","href":"/v1/api-reference/follows/list-follows"},{"title":"Retrieve a follow","deprecated":null,"version":null,"playground":"none","openapi":"/openapi-v1.json get /v1/follows/{follow_id}","href":"/v1/api-reference/follows/retrieve-a-follow"}]},{"group":"Messages","pages":[{"title":"List messages","deprecated":null,"version":null,"playground":"none","openapi":"/openapi-v1.json get /v1/messages","href":"/v1/api-reference/messages/list-messages"},{"title":"Retrieve a message","deprecated":null,"version":null,"playground":"none","openapi":"/openapi-v1.json get /v1/messages/{message_id}","href":"/v1/api-reference/messages/retrieve-a-message"},{"title":"Publish a message","deprecated":null,"version":null,"playground":"none","openapi":"/openapi-v1.json post /v1/messages/{message_id}/publish","href":"/v1/api-reference/messages/publish-a-message"},{"title":"Unpublish a message","deprecated":null,"version":null,"playground":"none","openapi":"/openapi-v1.json post /v1/messages/{message_id}/unpublish","href":"/v1/api-reference/messages/unpublish-a-message"},{"title":"Set a post’s notice","deprecated":null,"version":null,"playground":"none","openapi":"/openapi-v1.json post /v1/messages/{message_id}/notice","href":"/v1/api-reference/messages/set-a-post’s-notice"},{"title":"List message attachments","deprecated":null,"version":null,"playground":"none","openapi":"/openapi-v1.json get /v1/messages/{message_id}/attachments","href":"/v1/api-reference/messages/list-message-attachments"},{"title":"Retrieve a message attachment","deprecated":null,"version":null,"playground":"none","openapi":"/openapi-v1.json get /v1/messages/{message_id}/attachments/{file_id}","href":"/v1/api-reference/messages/retrieve-a-message-attachment"},{"title":"List message versions","deprecated":null,"version":null,"playground":"none","openapi":"/openapi-v1.json get /v1/messages/{message_id}/versions","href":"/v1/api-reference/messages/list-message-versions"},{"title":"Retrieve a message version","deprecated":null,"version":null,"playground":"none","openapi":"/openapi-v1.json get /v1/messages/{message_id}/versions/{version_id}","href":"/v1/api-reference/messages/retrieve-a-message-version"},{"title":"Search messages","deprecated":null,"version":null,"playground":"none","openapi":"/openapi-v1.json get /v1/search","href":"/v1/api-reference/messages/search-messages"}]},{"group":"Polls","pages":[{"title":"List polls","deprecated":null,"version":null,"playground":"none","openapi":"/openapi-v1.json get /v1/polls","href":"/v1/api-reference/polls/list-polls"},{"title":"Retrieve a poll","deprecated":null,"version":null,"playground":"none","openapi":"/openapi-v1.json get /v1/polls/{poll_id}","href":"/v1/api-reference/polls/retrieve-a-poll"},{"title":"List poll responses","deprecated":null,"version":null,"playground":"none","openapi":"/openapi-v1.json get /v1/poll_responses","href":"/v1/api-reference/polls/list-poll-responses"},{"title":"Retrieve a poll response","deprecated":null,"version":null,"playground":"none","openapi":"/openapi-v1.json get /v1/poll_responses/{poll_response_id}","href":"/v1/api-reference/polls/retrieve-a-poll-response"}]},{"group":"Slack messages","pages":[{"title":"Create a Slack message","deprecated":null,"version":null,"playground":"none","openapi":"/openapi-v1.json post /v1/slack_messages","href":"/v1/api-reference/slack-messages/create-a-slack-message"}]},{"group":"Compositions","pages":[{"title":"List compositions","deprecated":null,"version":null,"playground":"none","openapi":"/openapi-v1.json get /v1/compositions","href":"/v1/api-reference/compositions/list-compositions"},{"title":"Create a composition","deprecated":null,"version":null,"playground":"none","openapi":"/openapi-v1.json post /v1/compositions","href":"/v1/api-reference/compositions/create-a-composition"},{"title":"Retrieve a composition","deprecated":null,"version":null,"playground":"none","openapi":"/openapi-v1.json get /v1/compositions/{composition_id}","href":"/v1/api-reference/compositions/retrieve-a-composition"},{"title":"Delete a composition","description":"Deletes a composition that has no owner, such as one an API key created, with its versions, deliveries and comments; a scheduled send is canceled with it. A composition a Studio user owns stays theirs to delete, so it is a 403, as is one shared as `viewer` or `commenter`. Once sent, or while it is sending, it stays on record and is refused with a 400. This cannot be undone.","deprecated":null,"version":null,"playground":"none","openapi":"/openapi-v1.json delete /v1/compositions/{composition_id}","href":"/v1/api-reference/compositions/delete-a-composition"},{"title":"Update a composition","deprecated":null,"version":null,"playground":"none","openapi":"/openapi-v1.json patch /v1/compositions/{composition_id}","href":"/v1/api-reference/compositions/update-a-composition"},{"title":"Send or schedule a composition","description":"Sends the composition to the destinations its deliveries name, now or at `send_at`, from the bot or the community. It reaches the community and cannot be unsent. The content is checked in full and recorded as a version first; the composition answers `delivering` or `scheduled`, and `GET /v1/compositions/{composition_id}?expand=deliveries` follows the send. On a scheduled composition a time moves its send, keeping where it goes, and `now` sends it at once instead. A composition already sent, or sending, is returned unchanged, so a repeated call sends nothing new. Each destination was checked against Slack when it was added and is not checked again, so a channel archived since fails on its own rather than refusing the send. A destination saved in Studio to go out from a member’s own Slack account is refused with a 400. Needs both `api:admin:compositions` and `api:admin:composition-sends`, and the `editor` role. Refused with a 400 when it has no destinations or no blocks, and with a 409 when `expected_revision` is stale. The audit log records the key that sent it.","deprecated":null,"version":null,"playground":"none","openapi":"/openapi-v1.json post /v1/compositions/{composition_id}/deliver","href":"/v1/api-reference/compositions/send-or-schedule-a-composition"},{"title":"Cancel a composition’s scheduled send","deprecated":null,"version":null,"playground":"none","openapi":"/openapi-v1.json post /v1/compositions/{composition_id}/cancel_schedule","href":"/v1/api-reference/compositions/cancel-a-composition’s-scheduled-send"},{"title":"List composition versions","deprecated":null,"version":null,"playground":"none","openapi":"/openapi-v1.json get /v1/compositions/{composition_id}/versions","href":"/v1/api-reference/compositions/list-composition-versions"},{"title":"Retrieve a composition version","deprecated":null,"version":null,"playground":"none","openapi":"/openapi-v1.json get /v1/compositions/{composition_id}/versions/{version_id}","href":"/v1/api-reference/compositions/retrieve-a-composition-version"},{"title":"List composition deliveries","deprecated":null,"version":null,"playground":"none","openapi":"/openapi-v1.json get /v1/composition_deliveries","href":"/v1/api-reference/compositions/list-composition-deliveries"},{"title":"Create a composition delivery","deprecated":null,"version":null,"playground":"none","openapi":"/openapi-v1.json post /v1/composition_deliveries","href":"/v1/api-reference/compositions/create-a-composition-delivery"},{"title":"Retrieve a composition delivery","deprecated":null,"version":null,"playground":"none","openapi":"/openapi-v1.json get /v1/composition_deliveries/{composition_delivery_id}","href":"/v1/api-reference/compositions/retrieve-a-composition-delivery"},{"title":"Delete a composition delivery","deprecated":null,"version":null,"playground":"none","openapi":"/openapi-v1.json delete /v1/composition_deliveries/{composition_delivery_id}","href":"/v1/api-reference/compositions/delete-a-composition-delivery"},{"title":"List composition comments","deprecated":null,"version":null,"playground":"none","openapi":"/openapi-v1.json get /v1/composition_comments","href":"/v1/api-reference/compositions/list-composition-comments"},{"title":"Retrieve a composition comment","deprecated":null,"version":null,"playground":"none","openapi":"/openapi-v1.json get /v1/composition_comments/{composition_comment_id}","href":"/v1/api-reference/compositions/retrieve-a-composition-comment"}]},{"group":"Activity logs","pages":[{"title":"List activity logs","deprecated":null,"version":null,"playground":"none","openapi":"/openapi-v1.json get /v1/activity_logs","href":"/v1/api-reference/activity-logs/list-activity-logs"},{"title":"Retrieve an activity log","deprecated":null,"version":null,"playground":"none","openapi":"/openapi-v1.json get /v1/activity_logs/{activity_log_id}","href":"/v1/api-reference/activity-logs/retrieve-an-activity-log"}]}]}]}]},{"tab":"Guides","pages":[{"title":"Guides","href":"/guides"}]}]},"basePath":"","title":"Update a composition - Tightknit","buildId":"dpl_DqYu5MPb49gWBBbUGgpHQUmCHY3P","deploymentId":"dpl_DqYu5MPb49gWBBbUGgpHQUmCHY3P","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-CybtLBIt.js","utils-BMLj2fvV.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-B6In562Y.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-Dr8Mfhp9.js","snippetPresets-2rmQvMVl.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","ApiExamples-WMqJYdZj.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-CJ-MlPHu.js","shallow-dY3TMRCk.js","getApiPlaygroundDisplay-v-1B2bKm.js","CodeSnippet-BDhiTB7U.js","CodeSnippets-D9hnzQcS.js","Page-C4GwDT3_.js","getPastedJson-Th2V45jI.js","icon-BQXch1W9.js","MethodPill-BCqUneP3.js","DuplicateIcon-Q_-bhurZ.js","createIcon-DUjLHRqp.js","DynamicMarkdown-B-f2cqXQ.js","SectionHeading-Da5NsV4v.js","axios-vUo_bRtp.js","Markdown-D13FWkIM.js","clsx-D3Isdib3.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-C-XZBk9h.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink--qIqmmVG.js"]}