Ideas de publicaciones
Genera, revisa y publica ideas de publicaciones redactadas por IA.
create_post_idea
Create (or idempotently upsert) a post idea generated by the agent for a location. Use the same `externalId` on retries to avoid duplicates. `origin` decides review: channel/routine ideas land pending (inbox review); os_button ideas are immediate drafts.
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "create_post_idea",
"arguments": {
"locationId": "string",
"title": "string",
"externalId": "string",
"origin": "channel"
}
}
}{
"jsonrpc": "2.0",
"id": 1,
"result": {
"content": [
{
"type": "text",
"text": "..."
}
]
}
}La forma de la respuesta se muestra a modo ilustrativo — el contenido real depende de la herramienta y de tus datos.
update_post_idea
Update fields of an existing post idea (agency-scoped).
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "update_post_idea",
"arguments": {
"id": "string"
}
}
}{
"jsonrpc": "2.0",
"id": 1,
"result": {
"content": [
{
"type": "text",
"text": "..."
}
]
}
}La forma de la respuesta se muestra a modo ilustrativo — el contenido real depende de la herramienta y de tus datos.
archive_post_idea
Soft-delete (archive) a post idea. Keeps the externalId reference valid.
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "archive_post_idea",
"arguments": {
"id": "string"
}
}
}{
"jsonrpc": "2.0",
"id": 1,
"result": {
"content": [
{
"type": "text",
"text": "..."
}
]
}
}La forma de la respuesta se muestra a modo ilustrativo — el contenido real depende de la herramienta y de tus datos.
list_post_ideas
List post ideas for a location (agency-scoped). Excludes archived and rejected ideas.
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "list_post_ideas",
"arguments": {
"locationId": "string"
}
}
}{
"jsonrpc": "2.0",
"id": 1,
"result": {
"content": [
{
"type": "text",
"text": "..."
}
]
}
}La forma de la respuesta se muestra a modo ilustrativo — el contenido real depende de la herramienta y de tus datos.
list_client_post_ideas
List location-tied post ideas across EVERY location of a client in one call (the Posts → Ideas "All locations" view). Only the "idea" bucket (not holiday/calendar/series ideas) — matches what the rollup page shows. Excludes archived ideas; excludes rejected ones unless includeRejected is set. Each idea carries locationName for display. Use list_post_ideas instead when you already know which single location you want.
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "list_client_post_ideas",
"arguments": {
"clientId": "string"
}
}
}{
"jsonrpc": "2.0",
"id": 1,
"result": {
"content": [
{
"type": "text",
"text": "..."
}
]
}
}La forma de la respuesta se muestra a modo ilustrativo — el contenido real depende de la herramienta y de tus datos.
list_brand_post_ideas
List brand-level post ideas for a client — ideas not tied to any single location (the Posts → Ideas "Brand Ideas" section), e.g. company-wide announcements meant to post across every channel at once. Excludes archived ideas; excludes rejected ones unless includeRejected is set.
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "list_brand_post_ideas",
"arguments": {
"clientId": "string"
}
}
}{
"jsonrpc": "2.0",
"id": 1,
"result": {
"content": [
{
"type": "text",
"text": "..."
}
]
}
}La forma de la respuesta se muestra a modo ilustrativo — el contenido real depende de la herramienta y de tus datos.
get_post_idea
Get a single post idea by id (agency-scoped).
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_post_idea",
"arguments": {
"id": "string"
}
}
}{
"jsonrpc": "2.0",
"id": 1,
"result": {
"content": [
{
"type": "text",
"text": "..."
}
]
}
}La forma de la respuesta se muestra a modo ilustrativo — el contenido real depende de la herramienta y de tus datos.
publish_post
Publish a post idea: create a real post from it (+ platform submissions) and submit through the single OS publish pipeline, then mark the idea published. The one common path to go live — do not post elsewhere directly. Location ideas publish at location scope; brand ideas (no location) publish at their client's scope. A platform with no active connection never fails this call — the post is still created (as a draft if nothing resolved), and the response is `{ status: "no_connection", missingPlatforms, scope, postId, ideaId }` instead of the usual `{ postId, status, ideaId }` for whichever platforms couldn't resolve a connection. Compose what to tell the user from that data; do not assume the call failed just because `status` is "no_connection" — the content was saved. Likewise a post that cannot go live yet because a REQUIRED FIELD is absent (an event with no start/end date, a caption-less announcement, Instagram with no image) is saved as a draft and answers `{ status: "incomplete", missingFields, scope, postId, ideaId }`. Both gaps can appear together, in which case `status` is "no_connection" and `missingFields` rides alongside it — tell the user about BOTH in one message rather than letting them discover the second after fixing the first. In every one of these cases the content EXISTS as a draft: say what was saved, name what it needs, and point at where to fix it. Never report it as a failure and never silently retry.
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "publish_post",
"arguments": {
"ideaId": "string"
}
}
}{
"jsonrpc": "2.0",
"id": 1,
"result": {
"content": [
{
"type": "text",
"text": "..."
}
]
}
}La forma de la respuesta se muestra a modo ilustrativo — el contenido real depende de la herramienta y de tus datos.
regenerate_post_idea
Rewrite an existing post idea's title/content/image prompt with a fresh angle, generated by the agency's Sydekick. Rewrites in place (same idea id) rather than creating a new one. Optionally pass a topic to steer the new angle. If the idea is already linked to a pending approval, its caption is updated there too.
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "regenerate_post_idea",
"arguments": {
"id": "string"
}
}
}{
"jsonrpc": "2.0",
"id": 1,
"result": {
"content": [
{
"type": "text",
"text": "..."
}
]
}
}La forma de la respuesta se muestra a modo ilustrativo — el contenido real depende de la herramienta y de tus datos.
generate_post_ideas_for_date
Generate one new post idea for a location, targeted at a specific calendar date or observance (e.g. a holiday), via the agency's Sydekick. Creates a new draft idea in the "calendar" bucket by default, targeting google + facebook. Pass observanceName for a holiday/occasion tie-in, or hint for other creative direction.
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "generate_post_ideas_for_date",
"arguments": {
"locationId": "string",
"date": "string"
}
}
}{
"jsonrpc": "2.0",
"id": 1,
"result": {
"content": [
{
"type": "text",
"text": "..."
}
]
}
}La forma de la respuesta se muestra a modo ilustrativo — el contenido real depende de la herramienta y de tus datos.