SiftDocs
Developer

Referencia de campos MCP

Usa esta referencia para construir una solicitud MCP. Los campos obligatorios están marcados como Obligatorio. Los campos opcionales se pueden omitir a menos que una fuente agregue una condición.

De un vistazo

ContratoDónde leerlo
Entradas de herramientasTablas a continuación y la lista de herramientas conectadas
Entradas y salidas exactas de operacionesexecute → sift.spec(id)
Campos específicos de la organizaciónOperaciones de descubrimiento de campos y guías de tareas
Resultados de búsquedaitems, nextCursor; total en la primera página de un agente, o con includeTotal
Resultados de analíticarows, meta, comparison opcional
Resultados de la app integradastructuredContent, texto y enlace de Sift
Campos de conexión personalGuía de conexiones MCP

Qué estás viendo

La herramienta execute ejecuta un programa. sift.call(id, input) recibe directamente la entrada de la operación. Por ejemplo, sift.call("query.analytics.<source>", query) recibe la consulta. No agregues campos de paginación REST a una operación MCP.

Campos principales de herramientas

HerramientaCampoTipo, requisito y comportamiento
executecodeObligatorio string no vacío. Cuerpo de función JavaScript async. Usa return para el resultado.
executetimeoutMsEntero positivo opcional. Establécelo explícitamente para ejecuciones predecibles; valor predeterminado en tiempo de ejecución 90000, máximo 120000 milisegundos.
executeuserIdString de compatibilidad opcional. La autenticación determina la identidad; este campo no puede sobreescribirla.
list_skillsSin camposEnvía un objeto vacío.
read_skillnameObligatorio string no vacío. ID de skill de list_skills.
read_skill_filenameObligatorio string no vacío. ID de skill.
read_skill_filefileObligatorio string no vacío. Ruta de referencia relativa listada por read_skill.

Operaciones de búsqueda

FuenteOperaciónÚsala para
actionsquery.search.actionsUna fila por caso
action_recordsquery.search.action_recordsUna fila por registro, con interacción y autores
messagesquery.search.messagesRegistros de mensajes
reviewsquery.search.reviewsRevisiones solicitadas o completadas
usersquery.search.usersPersonas
user_identitiesquery.search.user_identitiesIdentidades por plataforma
user_idsquery.search.user_idsUna página ordenada de IDs de persona
commentsactions.case.comment.listRegistros de comentarios
lifecycle_eventssearch.case.event.listAsignaciones, cambios de estado, envíos y actividad
listening_resultsquery.search.listeningPosts de Listening almacenados en un scope explícito

Las colas, agentes, temas, etiquetas y otras entidades de configuración son operaciones de catálogo. Descúbrelas con sift.spec() en execute. No son valores adicionales de search.source.

Entrada de búsqueda común

Estos campos describen la selección de registros común. Las excepciones específicas de cada fuente siguen a continuación.

CampoTipo y comportamiento
filterÁrbol de filtros estructurado opcional. Cada fuente acepta sus propios campos y operadores. No envíes un string DSL aquí.
dateRangeObjeto de fecha absoluta o relativa opcional. Ver campos de fecha a continuación.
timeObjeto de zona horaria y franja horaria opcional. Algunas fuentes rechazan el filtrado por franja horaria.
sortObjeto opcional con field y direction opcional (asc o desc). Los campos válidos dependen de la fuente.
limitEntero positivo opcional. La mayoría de los esquemas de registros aceptan 1–10000, predeterminado 50; los límites de página en tiempo de ejecución pueden ser menores.
cursorString opcional. Pasa el nextCursor anterior sin cambios con la misma selección.

Campos del árbol de filtros

CampoTipo y comportamiento
filterTypeObligatorio string. Un campo hoja compatible con la fuente, o and / or para un grupo.
operatorObligatorio para una hoja. Usa el operador declarado para ese campo.
valueValor de hoja. El tipo depende del campo: lista de strings, escalar, booleano u objeto de rango.
filtersObligatorio para un grupo and / or. Array de árboles de filtros anidados.
fieldObligatorio para filtros como actionCustomField, agentCustomField o formField. Nombra el campo registrado.
formIdOpcional en formField. Limita la comparación a un formulario.
tagTypesOpcional en cláusulas tag / tagId compatibles: USER, SYSTEM, GEN_AI.

Usa sift.spec para la unión completa de hojas. Un campo compatible con actions puede fallar en otra fuente. Los campos, operadores o valores desconocidos no deben ampliar tu consulta silenciosamente.

Campos específicos de actions

CampoTipo y comportamiento
dateFieldReloj opcional. Lee su enum en query.search.actions. Una lista de casos lee la fecha de la action; una lista de registros lee createdAt.
idsOnlyBooleano opcional. Omite el enriquecimiento y devuelve identificadores y hora de creación.
includeModerationSummaryBooleano opcional, desactivado por defecto. Agrega el resumen de evaluación seleccionado donde la moderación está disponible.

Actions tiene un predeterminado de 50 filas por llamada y devuelve como máximo 500. Una lista de casos se ordena por easyId, createdAt desc o updatedAt desc.

query.search.action_records lista una fila por registro. Acepta los mismos filter, dateRange, time, dateField, idsOnly, includeModerationSummary, cursor y limit. También acepta estos campos y cualquier orden que liste el esquema:

CampoTipo y comportamiento
includeBrandAuthoredBooleano opcional. Incluye registros creados por la marca, excluidos por defecto.
projectArray opcional de nombres de columnas adicionales permitidas, por ejemplo ["author", "score", "numComments"]. Descubre los nombres válidos en el esquema.

query.search.actions rechaza grain, project e includeBrandAuthored, y el rechazo nombra query.search.action_records.

Campos de contexto y mensajes

FuenteCampoTipo y comportamiento
actionscontextlean o full opcional. Actívalo para leer cada caso con su contexto; full agrega más casos previos e historial entre casos.
actionscontextFormattext o json opcional. Predeterminado text; JSON separa perfil, mensajes, notas e historial.
actions (with context)limitPredeterminado 5; máximo en tiempo de ejecución 20. Usa páginas pequeñas para contexto completo.
messagesexternalScopeexclude, include u only opcional. Predeterminado exclude; controla los registros de contexto externo de ambassador.

Messages ordena por createdAt o id. Reviews ordena por createdAt. Comments ordena por createdAt. Lifecycle events solo admite createdAt desc. Users, comments y lifecycle events no admiten ventanas de franja horaria.

Campos de personas

CampoTipo y comportamiento
windowKindcommunity, activity, first_activity o snapshot opcional.
userProfilesObjeto opcional.
userProfiles.fetchCustomFieldsBooleano opcional, predeterminado false. Agrega campos de usuario definidos por la organización.
userProfiles.filterObjeto opcional con los interruptores a continuación. Todo lo demás sobre quién es una persona va en filter.

scope se retiró. Las identidades por plataforma son query.search.user_identities (solo un filtro keyword y paginación). Una página ordenada de IDs de perfil es query.search.user_ids (solo un filtro de personas y paginación). Busca a una persona por nombre, handle o correo con una hoja keyword en filter. Envía los límites de volumen como una hoja volume30d. La ventana de comunidad es windowKind y dateRange del nivel superior. Un rango de fechas solo no convierte un snapshot de People en una población de usuarios activos.

Campo de userProfiles.filterTipo y comportamiento
filterEmptyRecordsBooleano opcional, predeterminado true. Conserva perfiles con registros vinculados y no eliminados.
championsOnly, excludeChampionsBooleanos opcionales. Incluye solo champions o los excluye.
championTermsArray de strings opcional. Términos de coincidencia de champions.
staffOnly, excludeStaffBooleanos opcionales. Incluye solo personal de la comunidad o lo excluye.
staffTermsArray de strings opcional. Términos de coincidencia del personal de la comunidad.
requirePeriodActivityBooleano opcional. Modo comunidad con ventana; requiere contribución dentro de la ventana.
sortModelArray opcional con string colId obligatorio y sort (asc / desc) por elemento.

Campos de Listening

CampoTipo y comportamiento
scopeObjeto opcional con from y to obligatorios, y filters opcional. No lo combines con dateRange.
scope.filters.filterTreeÁrbol de filtros de vista guardada opcional. El filter de nivel superior lo reduce.
filterÁrbol de filtros de Listening estructurado opcional.
dateRange, timeCampos de ventana comunes opcionales. Usa la ventana de Listening prevista.
sortCampo de engagement almacenado opcional, authorFollowers u observedAt. Predeterminado observedAt desc; el orden de observación ascendente se rechaza.
limitEntero opcional, 1–100; predeterminado 50.
cursorToken de continuación previo opcional.

Listening requiere autenticación personal y la funcionalidad de Listening de la organización. Su from de scope es inclusivo y to es exclusivo. El análisis clasificado puede detenerse en un límite acotado. Lee los metadatos de ventana y scope devueltos. No reportes un conjunto acotado como todos los posts coincidentes.

Fechas, zona horaria y ordenamiento

CampoTipo y comportamiento
dateRange.from, dateRange.toStrings obligatorios para una ventana absoluta. Fecha o fecha-hora ISO. El fin no debe preceder al inicio.
dateRange.relative.unitObligatorio day, week, month o year.
dateRange.relative.countObligatorio entero, 1–3660.
dateRange.relative.calendarObligatorio booleano. true comienza en el límite de una unidad de calendario.
dateRange.relative.includeCurrentObligatorio booleano. Incluye el día actual o termina antes de él.
time.timezoneZona horaria IANA opcional. Usa por defecto la zona horaria de la organización, luego UTC.
time.timeOfDay.from, time.timeOfDay.toStrings HH:mm obligatorios cuando hay una ventana de reloj. Un inicio posterior al fin cruza la medianoche.
sort.fieldCampo de ordenamiento específico de la fuente. Obligatorio en objetos de ordenamiento de registros; opcional en analítica.
sort.directionasc o desc opcional. Analítica usa desc por defecto.

Usa una ventana absoluta o relativa. Las ventanas de consulta resueltas usan un límite UTC to exclusivo. Los límites de solo fecha representan días de calendario en la zona horaria seleccionada. Lee los límites resueltos en los metadatos del resultado. El endpoint REST de lista de actions tiene reglas de fecha diferentes; consulta su referencia.

Campos de entrada de analítica

Pasa esta consulta directamente a sift.call("query.analytics.<source>", query).

CampoTipo y comportamiento
vObligatorio literal 1.
sourceObligatorio fuente de datos compatible. Descubre los IDs de fuente en el esquema y la guía de analítica.
filterÁrbol estructurado opcional para toda la consulta.
dateRange, timeCampos de ventana y zona horaria opcionales descritos anteriormente.
linesObligatorio array con al menos una línea medida.
groupByObligatorio array de dimensiones. Usa un array vacío para un resultado sin agrupación.
sortOrdenamiento de resultados opcional.
limitEntero positivo opcional; máximo de filas de resultado.
optionsOpciones específicas de la fuente opcionales a continuación.

Campos de línea medida

CampoTipo y comportamiento
measureObligatorio ID de métrica no vacío. La validez depende de la fuente.
aggregationObligatorio sum, avg, median, p75, p90, p95, p99, count, min, max o percentage.
labelString de visualización opcional; se repite en los metadatos.
filterÁrbol opcional. Reduce esta línea dentro del filtro de la consulta.
customFieldKeyCampo de action numérico registrado opcional.
sampleCountLiteral rows opcional. Agrega el tamaño de muestra de la línea.
formulaLínea calculada opcional; reemplaza la agregación simple.
formula.opObligatorio divide, percent_of, subtract o add.
formula.left, formula.rightObjetos de operando obligatorios.
Operando measure, aggregationObligatorio ID de métrica y agregación.
Operando filterÁrbol opcional. Reduce el operando dentro del filtro de línea.
formula.roundEntero opcional. Decimales; omite para evitar redondeo.

Cada objeto de agrupación tiene field obligatorio y customFieldKey opcional. La compatibilidad de métricas y dimensiones depende de la fuente. Lee la guía de analítica y el contrato exacto de la operación antes de adivinar IDs.

Opciones de analítica

CampoTipo y comportamiento
windowKindcommunity, activity, first_activity o snapshot opcional para poblaciones de Users.
dateFieldReloj de action opcional del esquema.
thresholdUmbral numérico opcional para una métrica de umbral.
asOfrange_end opcional. Lee el estado histórico de la action al final de la ventana.
comparisonprevious_period o previous_year opcional.
comparisonOutputpaired, delta, percent_change o new_members opcional.
excludeSystemAgentsBooleano opcional. Excluye agentes del sistema.
includeAgentAttributionBooleano opcional. Agrega el agente que realizó el trabajo.
fillEmptyBooleano opcional. Rellena con cero los intervalos de tiempo vacíos.
resultKindLiteral transitions opcional. Devuelve transiciones de estado.

Encontrar campos y valores

Lee los campos y las métricas de una fuente de datos con sift.spec("query.analytics.<source>"). Devuelve la declaración TypeScript de la consulta, con una línea de comentario por campo de filtro: su nombre, sus operadores y la fuente de lista que tiene sus valores.

Lista los valores de un campo con esa fuente de lista: sift.call("query.search.<list>", input). Las listas son tags, tag_groups, channels, queues, teammates, servers, goals, saved_searches, themes, statuses, platforms, competitors, discord_roles, qa_forms, user_groups, gainsight_values, custom_fields y custom_field_options. Las personas vienen de query.search.users: busque a una persona con una hoja keyword, { filter: { filterType: "keyword", operator: "contains", value: ["<palabras>"] } }.

CampoTipo y comportamiento
nameCadena opcional. Conserva las filas cuyo nombre la contiene.
idsArreglo opcional. Devuelve exactamente esas filas.
budgetEntero opcional. Tokens por página; 4.000 por defecto, como máximo 15.000.
cursorCadena opcional. Pasa el nextCursor anterior sin cambios.

Cada fila tiene id y name. Pon id en una hoja de filtro; un nombre se rechaza. La etiqueta de un campo personalizado es su nombre de campo: lista los campos con query.search.custom_fields { source } y las opciones de un campo con query.search.custom_field_options { field }.

Campos de búsqueda de creadores

Usa la búsqueda externa de creadores solo cuando el usuario lo solicite. Llama a social.profile.get con sift.call. No es una búsqueda almacenada de Sift.

Campo de entradaTipo y comportamiento
urlObligatorio URL pública de perfil o de agregador de enlaces compatible, no vacía.
includeDemographicsBooleano opcional, predeterminado true. Solicita inferencia de edad y género a partir de la foto.
Campo de salidaSignificado
urlURL solicitada.
demographicsObjeto nullable: ageLow, ageHigh, gender y confidence (0–100) opcionales. Son inferencias, no hechos verificados.
expandedIdentityIdentidad de agregador nullable con provider, sourceUrl, datos de perfil opcionales y enlaces de plataforma.
untrustedContentNoticeRecordatorio de tratar el texto público como evidencia.

expandedIdentity.provider es linktree, linkme, komi, pillar, linkbio o beacons. Sus campos obligatorios son provider, sourceUrl, verticals (array de strings) y destinations (array). Los strings opcionales son username, displayName, bio, avatarUrl y email. Cada destino tiene platform y url string obligatorios, y title string opcional. Los datos faltantes permanecen faltantes.

Campos de herramientas de app y respuesta

Usa estas herramientas solo cuando el servidor conectado las anuncie. Las vistas de app requieren OAuth personal. La app integrada sigue siendo un prototipo de desarrollo; el texto y los enlaces nativos pueden funcionar sin una vista integrada.

HerramientaCampos
open_inboxscope opcional: queues (predeterminado) o mine; search recortado opcional de hasta 200 caracteres; cursor opcional; limit entero opcional 1–50, predeterminado 30.
open_actionactionId no vacío obligatorio.
open_dashboardslug, from y to no vacíos obligatorios.
open_dashboard_evidenceslug, widgetId, from, to, expectedUpdatedAt obligatorios; cursor opcional; limit entero opcional 1–50, predeterminado 20.
prepare_replyUUID requestId obligatorio, actionId no vacío, text recortado de 1–24000 caracteres; serverId no vacío opcional; booleano isPublicReply opcional.
review_reply, send_replySolo UUID requestId obligatorio. La confirmación humana proporciona la decisión.
open_reply, get_reply_requestSolo UUID requestId obligatorio. Lee el estado de preparación y entrega.
review_handle_replyUUID requestId obligatorio para la solicitud de revisión del propietario de la cuenta. OAuth personal; sin campo de decisión.
save_reply_draftSolo app. actionId obligatorio, expectedRevision (64 caracteres), clientMutationId (8–128 caracteres), text recortado (1–10000 caracteres) y replyAccountId. Guarda una revisión de correo electrónico pendiente; nunca envía.

expectedUpdatedAt vincula la evidencia a la revisión guardada del dashboard. expectedRevision vincula un borrador al contexto de respuesta actual. Usa los valores devueltos por la lectura anterior. clientMutationId es una clave de reintento. Reutilízala solo para el mismo borrador. serverId selecciona la cuenta de envío. isPublicReply selecciona el modo público o privado. requestId vincula una respuesta inmutable; un borrador modificado requiere un nuevo UUID.

Campos de Events

Events requiere un cliente moderno, una capacidad de Events anunciada y OAuth personal. Usa events/list para descubrir el evento action.message_received compatible y su esquema de payload. Cubre mensajes futuros entrantes de Instagram y Messenger en una action. Excluye el backfill y las respuestas de la marca.

MétodoCampos
events/listcursor opcional; omítelo para el catálogo de eventos de una sola página actual.
events/subscribename obligatorio: action.message_received; arguments.actionId obligatorio; delivery.mode obligatorio: webhook; delivery.url y delivery.secret obligatorios; cursor opcional: null; entero positivo o null ttlMs opcional.
events/unsubscribeUUID id obligatorio de la suscripción.

El callback debe usar HTTPS y pasar la verificación. El secret usa whsec_ con 24–64 bytes de clave codificados en base64. Guárdalo en un almacén de secrets. La suscripción tiene una vida útil finita; conserva su expiración devuelta.

Los campos del payload son eventId (UUID), name, timestamp (fecha-hora ISO), data.actionId, data.recordId, data.url y cursor (null). Verifica los encabezados de webhook firmados antes de procesar. Lee la action para obtener evidencia actual; un evento no es permiso para enviar.

Campos de resultado y descubrimiento de esquema

Dentro de execute, sift.call devuelve el resultado de la operación. Si la operación falla, lanza un Error cuyo mensaje indica el code, el message y los campos con error. Un resultado que requiere aprobación no contiene una escritura completada.

// La declaración TypeScript de la operación: sus tipos de entrada y de salida.
return await sift.spec("query.analytics.actions")

sift.spec(id) devuelve una operación como declaración TypeScript: declare function call(id, input: XInput): Promise<XOutput>, con la descripción de cada campo como comentario. La entrada y la salida son tipos con nombre en el mismo texto. Un tipo que se repite, como el árbol de filtros, se escribe una vez y se usa por su nombre. La declaración se genera del mismo esquema con el que valida el servidor, así que sigue al día cuando el servidor cambia. Los clientes HTTP leen el mismo contrato como JSON Schema en OpenAPI.

sift.spec() sin id devuelve el índice del catálogo: id, productFamily, aliases opcional, summary, description, domain, effect, access, ui, url, discovery, examples opcional, inputSchema y outputSchema. Fíltralo en código y devuelve solo lo que necesitas.

Salida de búsqueda

Lee items y nextCursor. Un cursor null termina la lista. La búsqueda no devuelve un total. Los metadatos de fuente varían; inspecciona el esquema de salida. Una primera página vacía incluye emptyReason. Las filas de action pueden incluir id, actionId, threadId, userId, username, author, engagement, platform, operationStatus, channelId, channel, summary, description, matchedText, easyId, easyIdNumber, link y url.

Usa actionId para un caso, link para su página en Sift y url para evidencia pública de la fuente. Los campos pueden ser null o estar ausentes. Las proyecciones agregan columnas específicas de la fuente; no asumas que todas las filas contienen todos los campos.

Salida de analítica

CampoSignificado
rowsValores de agrupación y valores de líneas medidas.
_filter de filaSelección de registros detrás del grupo. Combínala con los filtros de consulta y línea para lecturas de evidencia.
_window de filaVentana opcional para un intervalo de reloj de action.
meta.queryJSONConsulta exacta que se ejecutó, incluyendo scope resuelto y valores predeterminados.
meta.sourceFuente resuelta.
meta.dateFieldReloj de action resuelto opcional.
meta.dateRangeVentana from / to resuelta opcional; to es exclusivo.
meta.appliedDefaultsArray de id y summary para los valores predeterminados aplicados.
meta.truncatedSi existen más filas de las devueltas.
meta.linesPor línea: key, label, measure, aggregation, sampleCountKey y windowKind opcionales.
meta.unitsUnidades opcionales. Lee antes de mostrar duraciones o puntuaciones.
comparisondateRange y rows del período anterior opcionales.

Lee los valores por meta.lines[].key, no por un nombre de columna adivinado. Las herramientas de app devuelven su vista en structuredContent. Conserva la URL nativa y los campos de vista versionados. Usa el esquema de salida conectado para una proyección completa de la app; no trates un resultado de app como un envelope de búsqueda.

Consejos

  • Lee los esquemas antes de nuevas operaciones. No inferas campos a partir de nombres de herramientas.
  • Usa IDs reales devueltos. Las etiquetas y nombres de usuario no reemplazan todos los campos de ID.
  • Conserva el scope de paginación y los enlaces de evidencia devueltos.
  • Mantén las credenciales fuera de code y otros argumentos de herramientas.

Consulta el Diccionario de campos de registros para entender pmid, prid, otras claves cortas y los campos anidados de los resultados.

Relacionado

On this page