[{"data":1,"prerenderedAt":785},["ShallowReactive",2],{"developers:\u002Fdevelopers\u002Fes\u002Fglossary":3},{"doc":4,"lang":628,"nav":639,"alternatePath":730,"policy":731,"specVersion":775,"reference":7,"layout":776,"toc":777,"prev":782,"next":783,"operations":784,"overview":7,"heroExample":7},{"id":5,"title":6,"apiTag":7,"body":8,"description":625,"draft":626,"extension":627,"lang":628,"meta":629,"navTitle":7,"navigation":630,"order":631,"path":632,"rawbody":633,"section":634,"seo":635,"stem":636,"translationKey":637,"version":7,"__hash__":638},"developers_es\u002Fdevelopers\u002Fes\u002Fglossary.md","Glosario",null,{"type":9,"value":10,"toc":616},"minimark",[11,15,20,53,69,85,108,117,133,137,152,170,184,207,222,242,255,268,285,300,304,325,348,358,368,389,419,431,445,471,485,507,511,536,561,581,599],[12,13,14],"p",{},"Las palabras que usa esta documentación, en un solo lugar. Cada entrada enlaza con la página que la explica por completo.",[16,17,19],"h2",{"id":18},"cuenta","Cuenta",[12,21,22,26,27,30,31,34,35,39,40,47,48,52],{},[23,24,25],"strong",{},"Integración."," La conexión con la API de Totem que un administrador crea en ",[23,28,29],{},"Ajustes → Desarrolladores",": un nombre y los equipos que lee, con descripción y lista de IP permitidas opcionales. La interfaz lo llama ",[23,32,33],{},"Crear clave API",". Su identificador empieza por ",[36,37,38],"code",{},"prn_",", y ",[41,42,44],"a",{"href":43},"\u002Fdevelopers\u002Fes\u002Freference-account#me.get",[36,45,46],{},"GET \u002Fv1\u002Fme"," la describe. Consulta ",[41,49,51],{"href":50},"\u002Fdevelopers\u002Fes\u002Fauthentication","Autenticación",".",[12,54,55,58,59,62,63,66,67,52],{},[23,56,57],{},"Clave."," El secreto, que empieza por ",[36,60,61],{},"tsk_live_",", que tu servidor envía en la cabecera ",[36,64,65],{},"Authorization",". Pertenece a una integración. Totem la muestra una sola vez; puedes rotarla o revocarla en cualquier momento. Consulta ",[41,68,51],{"href":50},[12,70,71,74,75,78,79,82,83,52],{},[23,72,73],{},"Equipo."," Un espacio de trabajo de Totem, con sus propios tableros, miembros, leads, llamadas, conversaciones y citas. Su identificador empieza por ",[36,76,77],{},"team_",". Una clave lee uno o varios equipos, y si lee varios, las peticiones sobre las colecciones de un equipo lo indican en la cabecera ",[36,80,81],{},"Totem-Team",". Consulta ",[41,84,51],{"href":50},[12,86,87,90,91,93,94,97,98,101,102,105,106,52],{},[23,88,89],{},"Organización."," Una cuenta de facturación y sus subequipos. Una integración puede cubrir varios equipos, siempre que pertenezcan a la misma organización. En ",[23,92,29],{},", una integración que cubre varios de sus equipos tiene el ámbito del acceso ",[23,95,96],{},"Equipos elegidos de la familia",", y nombres de la API como ",[36,99,100],{},"family_transfer"," o ",[36,103,104],{},"family_origin"," se refieren a ella. Consulta ",[41,107,51],{"href":50},[12,109,110,113,114,52],{},[23,111,112],{},"Administrador de la familia."," Un administrador de la cuenta de facturación de una organización que figura en ella como administrador de la familia. Solo un administrador de la familia puede crear o modificar una integración que cubra varios equipos. Consulta ",[41,115,51],{"href":116},"\u002Fdevelopers\u002Fes\u002Fauthentication#equipos-y-la-cabecera-totem-team",[12,118,119,122,123,126,127,52],{},[23,120,121],{},"Miembro."," Una persona de un equipo, identificada solo por su nombre visible. Los identificadores de miembro empiezan por ",[36,124,125],{},"mem_"," y son de un solo equipo: la misma persona tiene un identificador distinto en cada equipo. Consulta ",[41,128,130],{"href":129},"\u002Fdevelopers\u002Fes\u002Freference-account#members.list",[36,131,132],{},"GET \u002Fv1\u002Fmembers",[16,134,136],{"id":135},"registros-del-crm","Registros del CRM",[12,138,139,142,143,82,146,52],{},[23,140,141],{},"Tablero."," Un embudo que un equipo usa para organizar sus leads, con sus etapas en orden. Los identificadores de tablero empiezan por ",[36,144,145],{},"brd_",[41,147,149],{"href":148},"\u002Fdevelopers\u002Fes\u002Freference-leads#boards.list",[36,150,151],{},"GET \u002Fv1\u002Fboards",[12,153,154,157,158,161,162,165,166,52],{},[23,155,156],{},"Etapa."," Un paso de un tablero, como «Contactado». Los identificadores de etapa empiezan por ",[36,159,160],{},"stg_",". El ",[36,163,164],{},"stage"," de un lead indica el paso en el que está, y las etapas viajan dentro de su tablero. Consulta ",[41,167,168],{"href":148},[36,169,151],{},[12,171,172,175,176,179,180,52],{},[23,173,174],{},"Lead."," Una persona o empresa con la que trabaja un equipo, con su posición en el embudo, su origen y sus permisos de contacto. Los identificadores de lead empiezan por ",[36,177,178],{},"lead_",". Consulta la ",[41,181,183],{"href":182},"\u002Fdevelopers\u002Fes\u002Freference-leads","referencia de leads",[12,185,186,189,190,193,194,197,198,82,201,52],{},[23,187,188],{},"Cliente."," Un registro de los endpoints de leads con ",[36,191,192],{},"record_kind: \"client\"",". No tiene estado del embudo, así que su ",[36,195,196],{},"status"," es ",[36,199,200],{},"null",[41,202,204],{"href":203},"\u002Fdevelopers\u002Fes\u002Freference-leads#leads.list",[36,205,206],{},"GET \u002Fv1\u002Fleads",[12,208,209,212,213,82,216,52],{},[23,210,211],{},"Actividad."," Un cambio de etapa, de estado o de responsables de un lead. Una actividad no cambia una vez escrita. Los identificadores de actividad empiezan por ",[36,214,215],{},"act_",[41,217,219],{"href":218},"\u002Fdevelopers\u002Fes\u002Freference-leads#leads.activities",[36,220,221],{},"GET \u002Fv1\u002Fleads\u002F{id}\u002Factivities",[12,223,224,227,228,231,232,235,236,52],{},[23,225,226],{},"Faceta."," Una parte de un lead que la API entrega como un objeto propio, con el identificador del lead y su propia versión. Un lead tiene dos: su ",[23,229,230],{},"atribución",", de dónde vino, y su ",[23,233,234],{},"respuesta",", cómo le ha respondido el equipo en sus conversaciones y llamadas. Un mensaje nuevo cambia la respuesta, no el lead. Consulta ",[41,237,239],{"href":238},"\u002Fdevelopers\u002Fes\u002Freference-leads#leads.get",[36,240,241],{},"GET \u002Fv1\u002Fleads\u002F{id}",[12,243,244,247,248,179,251,52],{},[23,245,246],{},"Llamada."," Los metadatos de una llamada telefónica con un lead, como su dirección, su duración y su resultado. Nunca una grabación ni una transcripción. Los identificadores de llamada empiezan por ",[36,249,250],{},"call_",[41,252,254],{"href":253},"\u002Fdevelopers\u002Fes\u002Freference-calls","referencia de llamadas",[12,256,257,260,261,179,264,52],{},[23,258,259],{},"Conversación."," Los metadatos de una conversación con un lead en un canal, como su estado y cuándo llegaron y salieron los últimos mensajes, sin los mensajes en sí. Los identificadores de conversación empiezan por ",[36,262,263],{},"conv_",[41,265,267],{"href":266},"\u002Fdevelopers\u002Fes\u002Freference-conversations","referencia de conversaciones",[12,269,270,273,274,277,278,179,281,52],{},[23,271,272],{},"Cita."," Una cita en el calendario del equipo: reservada para un servicio reservable, un evento del calendario conectado o una importación de un sistema de citas externo. En la API se llama ",[36,275,276],{},"booking",", y su identificador empieza por ",[36,279,280],{},"bkg_",[41,282,284],{"href":283},"\u002Fdevelopers\u002Fes\u002Freference-bookings","referencia de citas",[12,286,287,290,291,82,294,52],{},[23,288,289],{},"Servicio reservable."," Algo que se puede reservar con el equipo, como una primera consulta, en línea, en persona o por teléfono. Su identificador empieza por ",[36,292,293],{},"svc_",[41,295,297],{"href":296},"\u002Fdevelopers\u002Fes\u002Freference-bookings#booking_services.list",[36,298,299],{},"GET \u002Fv1\u002Fbooking_services",[16,301,303],{"id":302},"sincronización","Sincronización",[12,305,306,309,310,316,317,320,321,52],{},[23,307,308],{},"Feed de cambios."," ",[41,311,313],{"href":312},"\u002Fdevelopers\u002Fes\u002Freference-sync#sync.changes",[36,314,315],{},"GET \u002Fv1\u002Fsync\u002Fchanges",": todos los cambios de los registros de un equipo, en orden, página a página. Cada elemento es un registro de un ",[36,318,319],{},"kind"," o una eliminación. Consulta ",[41,322,324],{"href":323},"\u002Fdevelopers\u002Fes\u002Fsync","Sincroniza una copia",[12,326,327,330,331,335,336,338,339,343,344,52],{},[23,328,329],{},"Cursor."," Una cadena opaca que marca tu posición en una lista o en el feed de cambios. Guárdalo tal como lo recibiste, y no lo construyas ni lo modifiques nunca. Un cursor del feed de cambios es de un solo equipo, y deja de funcionar ",[332,333],"api-const",{"name":334},"CURSOR_MAX_AGE_DAYS"," días después del punto del feed al que llegó o, mientras una carga inicial sigue en curso, ",[332,337],{"name":334}," días después de que esta empezara. Consulta ",[41,340,342],{"href":341},"\u002Fdevelopers\u002Fes\u002Fpagination","Listas y paginación"," y ",[41,345,347],{"href":346},"\u002Fdevelopers\u002Fes\u002Fsync#guarda-el-cursor","Guarda el cursor",[12,349,350,353,354,52],{},[23,351,352],{},"Versión."," Un entero que lleva cada registro que entrega el feed de cambios y que crece cada vez que el registro cambia. Aplica un elemento solo si su versión es mayor que la que tienes. Consulta ",[41,355,357],{"href":356},"\u002Fdevelopers\u002Fes\u002Fconventions","Convenciones",[12,359,360,363,364,52],{},[23,361,362],{},"Carga inicial."," La primera pasada por el feed de cambios, sin cursor. Entrega todos los registros del equipo y después se pone al día con los cambios hechos mientras tanto. Consulta ",[41,365,367],{"href":366},"\u002Fdevelopers\u002Fes\u002Fsync#haz-la-carga-inicial","Haz la carga inicial",[12,369,370,373,374,101,377,380,381,384,385,52],{},[23,371,372],{},"Resincronización completa."," Una nueva carga inicial que reconstruye tu copia de un equipo, después de ",[36,375,376],{},"410 sync_cursor_expired",[36,378,379],{},"409 resync_required",". Funciona ",[23,382,383],{},"marcando y barriendo",": olvida las versiones que guardaste, marca cada registro que entrega el feed y, cuando se haya puesto al día, borra todos los registros de ese equipo que no marcaste. Consulta ",[41,386,388],{"href":387},"\u002Fdevelopers\u002Fes\u002Fsync#resincronizaci%C3%B3n-completa","Resincronización completa",[12,390,391,394,395,398,399,402,403,406,407,410,411,414,415,52],{},[23,392,393],{},"Eliminación."," Un elemento del feed de cambios con ",[36,396,397],{},"removed"," en lugar de ",[36,400,401],{},"object",". Borra tu copia de ese registro en todos los sitios a los que lo copiaste. Su ",[36,404,405],{},"reason"," indica el motivo: ",[36,408,409],{},"erased"," si el registro se suprimió, ",[36,412,413],{},"deleted"," si desapareció de Totem de cualquier otra forma. Consulta ",[41,416,418],{"href":417},"\u002Fdevelopers\u002Fes\u002Fsync#eliminaciones","Eliminaciones",[12,420,421,424,425,428,429,52],{},[23,422,423],{},"Borrado."," Una eliminación con ",[36,426,427],{},"reason: \"deleted\"",": el registro desapareció de Totem sin suprimirse. Consulta ",[41,430,418],{"href":417},[12,432,433,424,436,439,440,444],{},[23,434,435],{},"Supresión.",[36,437,438],{},"reason: \"erased\"",": el registro se suprimió por motivos de privacidad, por ejemplo porque la persona ejerció su derecho de supresión (artículo 17 del RGPD), o porque alguien eliminó definitivamente en Totem un lead, una llamada o una conversación, lo que siempre los suprime. Consulta ",[41,441,443],{"href":442},"\u002Fdevelopers\u002Fes\u002Ffaq#c%C3%B3mo-respeto-las-solicitudes-de-supresi%C3%B3n","¿Cómo respeto las solicitudes de supresión?"," en las preguntas frecuentes.",[12,446,447,450,451,453,454,457,458,461,462,466,467,52],{},[23,448,449],{},"Marca de eliminación."," Lo que conservas después de aplicar una eliminación: el ",[36,452,319],{},", el ",[36,455,456],{},"id"," y la ",[36,459,460],{},"version"," del registro, sin sus datos. En inglés se llama ",[463,464,465],"em",{},"tombstone",". Impide que una copia más antigua del registro, entregada de nuevo más tarde, lo haga reaparecer. Consulta ",[41,468,470],{"href":469},"\u002Fdevelopers\u002Fes\u002Fsync#aplica-una-p%C3%A1gina","Aplica una página",[12,472,473,476,477,480,481,52],{},[23,474,475],{},"Fusión."," Dos leads de la misma persona combinados en uno. El lead fusionado no se elimina: queda como un lead archivado cuyo ",[36,478,479],{},"merged_into"," indica el lead que continúa. Consulta ",[41,482,484],{"href":483},"\u002Fdevelopers\u002Fes\u002Fsync#fusiones","Fusiones",[12,486,487,490,491,494,495,498,499,502,503,52],{},[23,488,489],{},"Traspaso."," Un lead que pasa a otro equipo de la misma organización. El original queda como un lead archivado cuyo ",[36,492,493],{},"transferred_to"," indica el ",[36,496,497],{},"team"," de destino y, cuando Totem puede indicarlo, el ",[36,500,501],{},"lead"," de destino. El equipo de destino puede ser uno que tu clave no lee. Consulta ",[41,504,506],{"href":505},"\u002Fdevelopers\u002Fes\u002Fsync#traspasos","Traspasos",[16,508,510],{"id":509},"límites-y-errores","Límites y errores",[12,512,513,516,517,520,521,524,525,528,529,82,532,52],{},[23,514,515],{},"Límite de frecuencia."," La velocidad a la que puede leer una clave: hasta ",[332,518],{"name":519},"SYNC_VELOCITY.perMinute"," elementos por minuto, con ráfagas de hasta ",[332,522],{"name":523},"SYNC_VELOCITY.burst",". Al superarlo, la API responde ",[36,526,527],{},"429 rate_limited"," con ",[36,530,531],{},"Retry-After",[41,533,535],{"href":534},"\u002Fdevelopers\u002Fes\u002Frate-limits#l%C3%ADmite-de-frecuencia","Límite de frecuencia",[12,537,538,541,542,545,546,549,550,552,553,556,557,52],{},[23,539,540],{},"Cuota diaria."," Cuántos elementos puede leer una clave en un día UTC del feed de cambios y de todas las listas, incluidos los equipos, los miembros, los servicios reservables y las actividades de un lead: ",[332,543],{"name":544},"SYNC_DAILY_BUDGET.floor"," elementos, o ",[332,547],{"name":548},"SYNC_DAILY_BUDGET.recordsMultiplier"," veces el número de registros de sus equipos si es mayor. Las consultas de un solo registro, la búsqueda y ",[36,551,46],{}," no cuentan. Al superarla, esos endpoints responden ",[36,554,555],{},"429 quota_exceeded"," hasta las 00:00 UTC. Consulta ",[41,558,560],{"href":559},"\u002Fdevelopers\u002Fes\u002Frate-limits#cuota-diaria","Cuota diaria",[12,562,563,566,567,570,571,574,575,578,579,52],{},[23,564,565],{},"livemode."," Un campo de todo recurso. Es ",[36,568,569],{},"true"," en todo lo que devuelve la API, y ",[36,572,573],{},"false"," en los datos de ejemplo de esta documentación y del archivo ",[36,576,577],{},"fixtures.json"," del kit. Consulta ",[41,580,357],{"href":356},[12,582,583,586,587,590,591,594,595,52],{},[23,584,585],{},"Identificador de petición."," La cabecera ",[36,588,589],{},"Totem-Request-Id"," de cada respuesta que envía la propia API, que el cuerpo de un error repite en ",[36,592,593],{},"request_id",". Cítalo cuando pidas ayuda. Consulta ",[41,596,598],{"href":597},"\u002Fdevelopers\u002Fes\u002Fsupport","Soporte",[12,600,601,604,605,607,608,611,612,52],{},[23,602,603],{},"Código de error."," El ",[36,606,36],{}," del cuerpo de un error, como ",[36,609,610],{},"team_required",". Decide según él, y búscalo en la página de ",[41,613,615],{"href":614},"\u002Fdevelopers\u002Fes\u002Ferrors","Errores",{"title":617,"searchDepth":618,"depth":618,"links":619},"",3,[620,622,623,624],{"id":18,"depth":621,"text":19},2,{"id":135,"depth":621,"text":136},{"id":302,"depth":621,"text":303},{"id":509,"depth":621,"text":510},"Los términos de esta documentación, definidos en un solo lugar, cada uno con un enlace a la página que lo explica.",false,"md","es",{},true,"3","\u002Fdevelopers\u002Fes\u002Fglossary","---\ntitle: Glosario\ndescription: Los términos de esta documentación, definidos en un solo lugar, cada uno con un enlace a la página que lo explica.\nsection: resources\norder: 3\ntranslationKey: glossary\nlang: es\ndraft: false\n---\n\nLas palabras que usa esta documentación, en un solo lugar. Cada entrada enlaza con la página que la explica por completo.\n\n## Cuenta\n\n**Integración.** La conexión con la API de Totem que un administrador crea en **Ajustes → Desarrolladores**: un nombre y los equipos que lee, con descripción y lista de IP permitidas opcionales. La interfaz lo llama **Crear clave API**. Su identificador empieza por `prn_`, y [`GET \u002Fv1\u002Fme`](\u002Fdevelopers\u002Fes\u002Freference-account#me.get) la describe. Consulta [Autenticación](\u002Fdevelopers\u002Fes\u002Fauthentication).\n\n**Clave.** El secreto, que empieza por `tsk_live_`, que tu servidor envía en la cabecera `Authorization`. Pertenece a una integración. Totem la muestra una sola vez; puedes rotarla o revocarla en cualquier momento. Consulta [Autenticación](\u002Fdevelopers\u002Fes\u002Fauthentication).\n\n**Equipo.** Un espacio de trabajo de Totem, con sus propios tableros, miembros, leads, llamadas, conversaciones y citas. Su identificador empieza por `team_`. Una clave lee uno o varios equipos, y si lee varios, las peticiones sobre las colecciones de un equipo lo indican en la cabecera `Totem-Team`. Consulta [Autenticación](\u002Fdevelopers\u002Fes\u002Fauthentication).\n\n**Organización.** Una cuenta de facturación y sus subequipos. Una integración puede cubrir varios equipos, siempre que pertenezcan a la misma organización. En **Ajustes → Desarrolladores**, una integración que cubre varios de sus equipos tiene el ámbito del acceso **Equipos elegidos de la familia**, y nombres de la API como `family_transfer` o `family_origin` se refieren a ella. Consulta [Autenticación](\u002Fdevelopers\u002Fes\u002Fauthentication).\n\n**Administrador de la familia.** Un administrador de la cuenta de facturación de una organización que figura en ella como administrador de la familia. Solo un administrador de la familia puede crear o modificar una integración que cubra varios equipos. Consulta [Autenticación](\u002Fdevelopers\u002Fes\u002Fauthentication#equipos-y-la-cabecera-totem-team).\n\n**Miembro.** Una persona de un equipo, identificada solo por su nombre visible. Los identificadores de miembro empiezan por `mem_` y son de un solo equipo: la misma persona tiene un identificador distinto en cada equipo. Consulta [`GET \u002Fv1\u002Fmembers`](\u002Fdevelopers\u002Fes\u002Freference-account#members.list).\n\n## Registros del CRM\n\n**Tablero.** Un embudo que un equipo usa para organizar sus leads, con sus etapas en orden. Los identificadores de tablero empiezan por `brd_`. Consulta [`GET \u002Fv1\u002Fboards`](\u002Fdevelopers\u002Fes\u002Freference-leads#boards.list).\n\n**Etapa.** Un paso de un tablero, como «Contactado». Los identificadores de etapa empiezan por `stg_`. El `stage` de un lead indica el paso en el que está, y las etapas viajan dentro de su tablero. Consulta [`GET \u002Fv1\u002Fboards`](\u002Fdevelopers\u002Fes\u002Freference-leads#boards.list).\n\n**Lead.** Una persona o empresa con la que trabaja un equipo, con su posición en el embudo, su origen y sus permisos de contacto. Los identificadores de lead empiezan por `lead_`. Consulta la [referencia de leads](\u002Fdevelopers\u002Fes\u002Freference-leads).\n\n**Cliente.** Un registro de los endpoints de leads con `record_kind: \"client\"`. No tiene estado del embudo, así que su `status` es `null`. Consulta [`GET \u002Fv1\u002Fleads`](\u002Fdevelopers\u002Fes\u002Freference-leads#leads.list).\n\n**Actividad.** Un cambio de etapa, de estado o de responsables de un lead. Una actividad no cambia una vez escrita. Los identificadores de actividad empiezan por `act_`. Consulta [`GET \u002Fv1\u002Fleads\u002F{id}\u002Factivities`](\u002Fdevelopers\u002Fes\u002Freference-leads#leads.activities).\n\n**Faceta.** Una parte de un lead que la API entrega como un objeto propio, con el identificador del lead y su propia versión. Un lead tiene dos: su **atribución**, de dónde vino, y su **respuesta**, cómo le ha respondido el equipo en sus conversaciones y llamadas. Un mensaje nuevo cambia la respuesta, no el lead. Consulta [`GET \u002Fv1\u002Fleads\u002F{id}`](\u002Fdevelopers\u002Fes\u002Freference-leads#leads.get).\n\n**Llamada.** Los metadatos de una llamada telefónica con un lead, como su dirección, su duración y su resultado. Nunca una grabación ni una transcripción. Los identificadores de llamada empiezan por `call_`. Consulta la [referencia de llamadas](\u002Fdevelopers\u002Fes\u002Freference-calls).\n\n**Conversación.** Los metadatos de una conversación con un lead en un canal, como su estado y cuándo llegaron y salieron los últimos mensajes, sin los mensajes en sí. Los identificadores de conversación empiezan por `conv_`. Consulta la [referencia de conversaciones](\u002Fdevelopers\u002Fes\u002Freference-conversations).\n\n**Cita.** Una cita en el calendario del equipo: reservada para un servicio reservable, un evento del calendario conectado o una importación de un sistema de citas externo. En la API se llama `booking`, y su identificador empieza por `bkg_`. Consulta la [referencia de citas](\u002Fdevelopers\u002Fes\u002Freference-bookings).\n\n**Servicio reservable.** Algo que se puede reservar con el equipo, como una primera consulta, en línea, en persona o por teléfono. Su identificador empieza por `svc_`. Consulta [`GET \u002Fv1\u002Fbooking_services`](\u002Fdevelopers\u002Fes\u002Freference-bookings#booking_services.list).\n\n## Sincronización\n\n**Feed de cambios.** [`GET \u002Fv1\u002Fsync\u002Fchanges`](\u002Fdevelopers\u002Fes\u002Freference-sync#sync.changes): todos los cambios de los registros de un equipo, en orden, página a página. Cada elemento es un registro de un `kind` o una eliminación. Consulta [Sincroniza una copia](\u002Fdevelopers\u002Fes\u002Fsync).\n\n**Cursor.** Una cadena opaca que marca tu posición en una lista o en el feed de cambios. Guárdalo tal como lo recibiste, y no lo construyas ni lo modifiques nunca. Un cursor del feed de cambios es de un solo equipo, y deja de funcionar :api-const{name=\"CURSOR_MAX_AGE_DAYS\"} días después del punto del feed al que llegó o, mientras una carga inicial sigue en curso, :api-const{name=\"CURSOR_MAX_AGE_DAYS\"} días después de que esta empezara. Consulta [Listas y paginación](\u002Fdevelopers\u002Fes\u002Fpagination) y [Guarda el cursor](\u002Fdevelopers\u002Fes\u002Fsync#guarda-el-cursor).\n\n**Versión.** Un entero que lleva cada registro que entrega el feed de cambios y que crece cada vez que el registro cambia. Aplica un elemento solo si su versión es mayor que la que tienes. Consulta [Convenciones](\u002Fdevelopers\u002Fes\u002Fconventions).\n\n**Carga inicial.** La primera pasada por el feed de cambios, sin cursor. Entrega todos los registros del equipo y después se pone al día con los cambios hechos mientras tanto. Consulta [Haz la carga inicial](\u002Fdevelopers\u002Fes\u002Fsync#haz-la-carga-inicial).\n\n**Resincronización completa.** Una nueva carga inicial que reconstruye tu copia de un equipo, después de `410 sync_cursor_expired` o `409 resync_required`. Funciona **marcando y barriendo**: olvida las versiones que guardaste, marca cada registro que entrega el feed y, cuando se haya puesto al día, borra todos los registros de ese equipo que no marcaste. Consulta [Resincronización completa](\u002Fdevelopers\u002Fes\u002Fsync#resincronización-completa).\n\n**Eliminación.** Un elemento del feed de cambios con `removed` en lugar de `object`. Borra tu copia de ese registro en todos los sitios a los que lo copiaste. Su `reason` indica el motivo: `erased` si el registro se suprimió, `deleted` si desapareció de Totem de cualquier otra forma. Consulta [Eliminaciones](\u002Fdevelopers\u002Fes\u002Fsync#eliminaciones).\n\n**Borrado.** Una eliminación con `reason: \"deleted\"`: el registro desapareció de Totem sin suprimirse. Consulta [Eliminaciones](\u002Fdevelopers\u002Fes\u002Fsync#eliminaciones).\n\n**Supresión.** Una eliminación con `reason: \"erased\"`: el registro se suprimió por motivos de privacidad, por ejemplo porque la persona ejerció su derecho de supresión (artículo 17 del RGPD), o porque alguien eliminó definitivamente en Totem un lead, una llamada o una conversación, lo que siempre los suprime. Consulta [¿Cómo respeto las solicitudes de supresión?](\u002Fdevelopers\u002Fes\u002Ffaq#cómo-respeto-las-solicitudes-de-supresión) en las preguntas frecuentes.\n\n**Marca de eliminación.** Lo que conservas después de aplicar una eliminación: el `kind`, el `id` y la `version` del registro, sin sus datos. En inglés se llama *tombstone*. Impide que una copia más antigua del registro, entregada de nuevo más tarde, lo haga reaparecer. Consulta [Aplica una página](\u002Fdevelopers\u002Fes\u002Fsync#aplica-una-página).\n\n**Fusión.** Dos leads de la misma persona combinados en uno. El lead fusionado no se elimina: queda como un lead archivado cuyo `merged_into` indica el lead que continúa. Consulta [Fusiones](\u002Fdevelopers\u002Fes\u002Fsync#fusiones).\n\n**Traspaso.** Un lead que pasa a otro equipo de la misma organización. El original queda como un lead archivado cuyo `transferred_to` indica el `team` de destino y, cuando Totem puede indicarlo, el `lead` de destino. El equipo de destino puede ser uno que tu clave no lee. Consulta [Traspasos](\u002Fdevelopers\u002Fes\u002Fsync#traspasos).\n\n## Límites y errores\n\n**Límite de frecuencia.** La velocidad a la que puede leer una clave: hasta :api-const{name=\"SYNC_VELOCITY.perMinute\"} elementos por minuto, con ráfagas de hasta :api-const{name=\"SYNC_VELOCITY.burst\"}. Al superarlo, la API responde `429 rate_limited` con `Retry-After`. Consulta [Límite de frecuencia](\u002Fdevelopers\u002Fes\u002Frate-limits#límite-de-frecuencia).\n\n**Cuota diaria.** Cuántos elementos puede leer una clave en un día UTC del feed de cambios y de todas las listas, incluidos los equipos, los miembros, los servicios reservables y las actividades de un lead: :api-const{name=\"SYNC_DAILY_BUDGET.floor\"} elementos, o :api-const{name=\"SYNC_DAILY_BUDGET.recordsMultiplier\"} veces el número de registros de sus equipos si es mayor. Las consultas de un solo registro, la búsqueda y `GET \u002Fv1\u002Fme` no cuentan. Al superarla, esos endpoints responden `429 quota_exceeded` hasta las 00:00 UTC. Consulta [Cuota diaria](\u002Fdevelopers\u002Fes\u002Frate-limits#cuota-diaria).\n\n**livemode.** Un campo de todo recurso. Es `true` en todo lo que devuelve la API, y `false` en los datos de ejemplo de esta documentación y del archivo `fixtures.json` del kit. Consulta [Convenciones](\u002Fdevelopers\u002Fes\u002Fconventions).\n\n**Identificador de petición.** La cabecera `Totem-Request-Id` de cada respuesta que envía la propia API, que el cuerpo de un error repite en `request_id`. Cítalo cuando pidas ayuda. Consulta [Soporte](\u002Fdevelopers\u002Fes\u002Fsupport).\n\n**Código de error.** El `code` del cuerpo de un error, como `team_required`. Decide según él, y búscalo en la página de [Errores](\u002Fdevelopers\u002Fes\u002Ferrors).\n","resources",{"title":6,"description":625},"developers\u002Fes\u002Fglossary","glossary","oJ4jm-MxG3Ep7FvxpofJFK0mUgh5j0cly_WPQXxZRzs",[640,653,676,717],{"section":641,"items":642},"start",[643,647,651],{"path":644,"title":645,"description":646},"\u002Fdevelopers\u002Fes","Introducción","Lee desde tus propios sistemas los leads, las llamadas, las conversaciones y las citas de tus equipos de Totem, y mantén una copia sincronizada.",{"path":648,"title":649,"description":650},"\u002Fdevelopers\u002Fes\u002Fquickstart","Inicio rápido","Haz tus primeras peticiones a la API de Totem en unos minutos. Comprueba tu clave, busca tu equipo, lista leads e inicia una sincronización.",{"path":50,"title":51,"description":652},"Las claves secretas y dónde pueden guardarse, la cabecera Totem-Team de las claves con varios equipos, la lista de IP permitidas y cómo rotar o revocar una clave.",{"section":654,"items":655},"guides",[656,660,662,664,668,672],{"path":657,"title":658,"description":659},"\u002Fdevelopers\u002Fes\u002Ftypescript","SDK de TypeScript","Usa el cliente oficial de TypeScript para leer tus datos de Totem, paginar listas y gestionar errores de la API desde tu servidor.",{"path":323,"title":324,"description":661},"Copia un equipo con el feed de cambios y mantén la copia al día. Aplica las páginas sin riesgos, recupérate de los errores y parte de un cliente de referencia que Totem prueba.",{"path":341,"title":342,"description":663},"Cómo devuelven los endpoints de lista los registros página a página, cómo leer todas las páginas y qué orden y qué filtros admite una lista.",{"path":665,"title":666,"description":667},"\u002Fdevelopers\u002Fes\u002Fcoverage","Cobertura de los datos","Qué registra Totem, desde cuándo y cómo distinguir un valor vacío de un dato que nunca se registró.",{"path":669,"title":670,"description":671},"\u002Fdevelopers\u002Fes\u002Ftesting","Pruebas y puesta en producción","Cómo construir y probar una integración con seguridad mientras la API no tiene entorno de pruebas, y qué comprobar antes de pasar a producción.",{"path":673,"title":674,"description":675},"\u002Fdevelopers\u002Fes\u002Fsecurity","Seguridad y datos personales","Cómo protege Totem las claves de la API y los datos que sirve, qué registra de cada clave, dónde funciona la API y qué hacer con los datos personales que copias.",{"section":677,"items":678},"reference",[679,681,683,687,692,696,700,704,708,713],{"path":356,"title":357,"description":680},"La notación de esta documentación y las reglas que siguen todas las respuestas: identificadores, fechas, valores vacíos, importes, enumeraciones, versiones, estabilidad, errores y textos no fiables.",{"path":614,"title":615,"description":682},"El formato de los errores, cómo debe tratar tu integración cada tipo de error y todos los códigos de error, con cuándo ocurren y qué hacer.",{"path":684,"title":685,"description":686},"\u002Fdevelopers\u002Fes\u002Frate-limits","Límites de frecuencia y cuota","Cuánto puede leer una clave por minuto y por día, qué cuenta para cada límite, cómo reintentar tras un 429 y cuánto tarda una carga inicial.",{"path":688,"title":689,"description":690,"apiTag":691},"\u002Fdevelopers\u002Fes\u002Freference-account","Cuenta, equipos y miembros","Comprueba que una clave funciona y qué puede leer, lista sus equipos con su zona horaria, lista los miembros de cada equipo y comprueba que la API está funcionando.","account",{"path":182,"title":693,"description":694,"apiTag":695},"Leads, tableros y actividades","Lista, obtén y busca los leads y los clientes de un equipo, lee las actividades de cada lead y lista los tableros y las etapas por los que pasan.","leads",{"path":253,"title":697,"description":698,"apiTag":699},"Llamadas","Lista y obtén las llamadas de un equipo, con su dirección, su horario y un resultado normalizado. Sin grabaciones ni transcripciones.","calls",{"path":266,"title":701,"description":702,"apiTag":703},"Conversaciones","Lista y obtén las conversaciones de un equipo en todos los canales, con su estado, la persona asignada, si una persona ha tomado el control y cuándo llegaron y salieron los últimos mensajes. Nunca el contenido de los mensajes.","conversations",{"path":283,"title":705,"description":706,"apiTag":707},"Citas y servicios","Lista y obtén las citas de un equipo, y lista los servicios que pueden reservar sus clientes.","bookings",{"path":709,"title":710,"description":711,"apiTag":712},"\u002Fdevelopers\u002Fes\u002Freference-sync","Feed de cambios","Un único endpoint que copia un equipo y, después, devuelve cada cambio, página a página.","sync",{"path":714,"title":715,"description":716},"\u002Fdevelopers\u002Fes\u002Fobjects","Todos los objetos","Todos los objetos que devuelve la API, campo a campo, con un ejemplo de cada uno.",{"section":634,"items":718},[719,723,725,726],{"path":720,"title":721,"description":722},"\u002Fdevelopers\u002Fes\u002Fchangelog","Registro de cambios","Los cambios de la API de Totem, del más reciente al más antiguo, cada uno bajo la fecha en que se publicó.",{"path":597,"title":598,"description":724},"Cómo pedir ayuda con la API de Totem, qué incluir en una solicitud y qué hacer si se filtra una clave.",{"path":632,"title":6,"description":625},{"path":727,"title":728,"description":729},"\u002Fdevelopers\u002Fes\u002Ffaq","Preguntas frecuentes","Respuestas breves a las preguntas más habituales sobre la API de Totem, con enlaces a los detalles.","\u002Fdevelopers\u002Fglossary",{"ACTIVATION_MARGIN_MS":732,"ADMIN_ACCESS_DISCLOSURE_VERSION":733,"AUDIT_RETENTION_DAYS":734,"AUTH_FAILURE_LIMITS":735,"CAPTURE_LAG_FLOOR_MS":739,"CAPTURE_LAG_P99_MS":7,"CURSOR_MAX_AGE_DAYS":740,"DIRTY_TTL_DAYS":740,"FAMILY_TEAM_SCOPE":741,"FAMILY_TEAM_SCOPE_OPTIONS":742,"FEED_SETTLE_LAG_MS":744,"GATE_REFRESH_MS":732,"INTEGRATION_NAME_LENGTH":745,"INTEGRATION_PURPOSE_LENGTH":747,"KEY_CACHE_TTL_MS":750,"KEY_STATS_RETENTION_DAYS":751,"LEAD_RESPONSE_READ_BUDGET":752,"LIST_SCAN_MAX":755,"MAX_FAMILY_INTEGRATION_TEAMS":740,"MAX_INTEGRATIONS_PER_FAMILY":756,"MAX_IP_ALLOWLIST":737,"PAGE_LIMIT":757,"PLATFORM_CONFIG_TTL_MS":760,"REMOVAL_RETENTION_DAYS":761,"REQUEST_BODY_MAX_BYTES":762,"ROLL_GRACE_DEFAULT_HOURS":763,"ROLL_GRACE_HOURS":764,"SEARCH_MAX_RESULTS":756,"SENSITIVE_SECTOR_POLICY":767,"SENSITIVE_SECTOR_POLICY_OPTIONS":768,"SYNC_DAILY_BUDGET":770,"SYNC_VELOCITY":772,"TEAM_CACHE_TTL_MS":774},60000,"2026-10-17",365,{"perIpPerMinute":736,"perLookupIdPerMinute":737,"banMs":738},60,20,600000,300000,30,"explicit_list",[741,743],"all_family_teams",10000,{"min":621,"max":746},80,{"min":748,"max":749},1,280,5000,90,{"conversations":737,"messageReads":753,"calls":754},200,50,1000,10,{"default":758,"max":759},25,100,15000,45,16384,24,[765,748,763,766],0,168,"exclude",[767,769],"allow",{"floor":771,"recordsMultiplier":618},250000,{"perMinute":773,"burst":744},2000,30000,"1.0a","guide",[778,779,780,781],{"id":18,"text":19,"depth":621},{"id":135,"text":136,"depth":621},{"id":302,"text":303,"depth":621},{"id":509,"text":510,"depth":621},{"path":597,"title":598,"section":634},{"path":727,"title":728,"section":634},[],1792502790404]