Write
set_social_links
Replaces the full list of social links on an outline with the provided array of platform/URL pairs, or clears them all by passing an empty array.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| outlineId | string | — | ID of the outline to update. Omit to target the authenticated creator's own outline. |
| links | array | Yes | Full replacement list of social links. Each element needs a url (must use https:// or http://) and may include a platform (numeric social-icon id from list_social_icons) and an includeInStructuredData flag. Pass an empty array to clear all social links. |
| links[].platform | string | — | Numeric id of the social icon, as a string. Optional — omit it to auto-assign the icon from the URL (e.g. an instagram.com link gets the Instagram icon). When provided it must be a valid integer id returned by list_social_icons; a non-integer string fails validation before any write occurs. |
| links[].url | string | Yes | Full URL for the social profile (https:// or http:// only). Validated as a URL at input. |
| links[].includeInStructuredData | boolean | — | Whether this link appears in the profile's sameAs[] structured data (JSON-LD). Optional — omit it to preserve the existing flag for a link with a matching url (new links default to false). Pass true or false to set it explicitly. |
Response
| Field | Type | What it means |
|---|---|---|
| outlineId | string | The ID of the outline that was updated. |
| socialLinks | array | The resolved links that were saved — each element has platform (the string icon id, including any auto-assigned from the URL), url, and the persisted includeInStructuredData flag (including any preserved from existing links). |
Example
Request
json
{
"outlineId": "42",
"links": [
{ "platform": "3", "url": "https://instagram.com/janedoe", "includeInStructuredData": true },
{ "platform": "7", "url": "https://tiktok.com/@janedoe" }
]
}Response
json
{
"outlineId": "42",
"socialLinks": [
{ "platform": "3", "url": "https://instagram.com/janedoe", "includeInStructuredData": true },
{ "platform": "7", "url": "https://tiktok.com/@janedoe", "includeInStructuredData": false }
]
}When to use
Call after the outline's stacks and cards are in place, as part of the identity-finishing step (step 5 in the create→curate→optimize loop), just before set_seo and publish. Also call whenever the creator updates or adds a social profile handle.
Gotchas
Watch out
- Always call
list_social_iconsfirst —platformmust be a valid numeric id string from that tool's response; guessing icon ids will either fail validation or silently write NULL to the database. - This tool does a full replacement, not a merge — omitting an existing link removes it. Read current links before calling if you want to preserve any.
includeInStructuredDatais preserved per-link by matchingurl: re-sending a link without the flag keeps whatever the creator already chose. To turn it off you must passfalseexplicitly — omission never clears it.- The
platformfield is typed as string in the input schema but must be parseable as a positive integer; non-numeric strings (e.g. ‘instagram’) return a VALIDATION_ERROR. - Pass an empty array
[]to intentionally clear all social links — there is no separate delete operation for individual links.