Oportunidades
En el contexto de un colegio o universidad, una "oportunidad" suele representar un proceso de admision o inscripcion en curso: un prospecto que esta avanzando por las etapas de tu embudo (interesado, documentación en revisión, entrevista, inscrito, etc.). Esta página describe los endpoints para leer, crear y actualizar esos procesos por API — útil si tu equipo quiere sincronizar el estado de admisiones con un sistema academico propio, o automatizar el seguimiento de prospectos.
API de Oportunidades v3
Documentación de la API de Oportunidades (pipeline de ventas).
Versión de la API v3
Todas las APIs disponibles bajo el prefijo de ruta /v3 con respuestas compatibles con AIP.
Servidor base: https://services.leadconnectorhq.com
Endpoints
- GET /opportunities/lost-reason — Obtener motivos de perdida
- GET /opportunities/search — Buscar oportunidad
- POST /opportunities/search — Buscar oportunidades (avanzado)
- GET /opportunities/pipelines — Obtener pipelines
- GET /opportunities/{id} — Obtener oportunidad
- DELETE /opportunities/{id} — Eliminar oportunidad
- PUT /opportunities/{id} — Actualizar oportunidad
- PUT /opportunities/{id}/status — Actualizar estado de la oportunidad
- POST /opportunities/upsert — Crear o actualizar oportunidad (upsert)
- POST /opportunities/{id}/followers — Agregar seguidores
- DELETE /opportunities/{id}/followers — Quitar seguidores
- POST /opportunities/ — Crear oportunidad
GET /opportunities/lost-reason
Obtener motivos de perdida
Scopes requeridos: opportunities.readonly
Parametros:
Versión(header, string) (requerido) — Versión de la APIlocationId(query, string) (requerido) — Identificador de la ubicacion (sub-cuenta)name(query, string) — nombre del motivo de perdidadeleted(query, boolean) — eliminadoquery(query, string) — texto de busquedaskip(query, number) — registros a saltarlimit(query, number) — límite de resultadosgetCount(query, boolean) — obtener el conteo total
Respuestas:
200— Respuesta exitosa400— Peticion invalida401— No autorizado422— Entidad no procesable
GET /opportunities/search
Buscar oportunidad
Scopes requeridos: opportunities.readonly
Parametros:
Versión(header, string) (requerido) — Versión de la APIq(query, string) — Texto de busqueda (máximo 75 caracteres)status(query, string) — Filtrar por estado de la oportunidadcampaignId(query, string) — Id de la campañaid(query, string) — Id de la oportunidadorder(query, string) — Orden de los resultados (ej. added_asc, added_desc, name_asc, name_desc)endDate(query, string) — Fecha finalstartAfter(query, string) — Comenzar después de (cursor)startAfterId(query, string) — Comenzar después de este Iddate(query, string) — Fecha de iniciocountry(query, string) — Filtrar por código de país (ISO 3166-1 alpha-2)page(query, number) — Número de página para paginacionlimit(query, number) — Cantidad de registros por página. Máximo 100, valor por defecto 20getTasks(query, boolean) — incluir tareas del contactogetNotes(query, boolean) — incluir notas del contactogetCalendarEvents(query, boolean) — incluir eventos de calendario del contactolocationId(query, string) (requerido) — Id de la ubicacionpipelineId(query, string) — Id del pipelinepipelineStageId(query, string) — Id de la etapacontactId(query, string) — Id del contactoassignedTo(query, string) — Filtrar por usuario asignado
Respuestas:
200— Respuesta exitosa400— Peticion invalida401— No autorizado422— Entidad no procesable
POST /opportunities/search
Buscar oportunidades (avanzado)
Busca oportunidades combinando filtros avanzados. Enlace a documentación - https://doc.clickup.com/8631005/d/h/87cpx-424216/7bf11bc9b94f80f
Scopes requeridos: opportunities.readonly
Parametros:
Versión(header, string) (requerido) — Versión de la API
Cuerpo de la peticion (application/json):
locationId(requerido) — string — Id de la ubicacionquery(requerido) — string — Texto de busqueda de texto completo (máximo 75 caracteres)limit(requerido) — number — Número máximo de resultados por páginapage(requerido) — number — Número de página (empieza en 0)searchAfter(requerido) — array — Valores de cursor "search-after" para paginacion profundaadditionalDetails(requerido) — — Banderas para incluir entidades relacionadas adicionales en la respuesta
Respuestas:
200— Respuesta exitosa400— Peticion invalida401— No autorizado422— Entidad no procesable
GET /opportunities/pipelines
Obtener pipelines
Scopes requeridos: opportunities.readonly
Parametros:
Versión(header, string) (requerido) — Versión de la APIlocationId(query, string) (requerido) — Identificador de la ubicacion (sub-cuenta) de la que se obtienen los pipelines
Respuestas:
200— Respuesta exitosa400— Peticion invalida401— No autorizado
GET /opportunities/{id}
Obtener oportunidad
Scopes requeridos: opportunities.readonly
Parametros:
Versión(header, string) (requerido) — Versión de la APIid(path, string) (requerido) — Id de la oportunidad
Respuestas:
200— Respuesta exitosa400— Peticion invalida401— No autorizado422— Entidad no procesable
DELETE /opportunities/{id}
Eliminar oportunidad
Scopes requeridos: opportunities.write
Parametros:
Versión(header, string) (requerido) — Versión de la APIid(path, string) (requerido) — Id de la oportunidad
Respuestas:
200— Respuesta exitosa400— Peticion invalida401— No autorizado422— Entidad no procesable
PUT /opportunities/{id}
Actualizar oportunidad
Scopes requeridos: opportunities.write
Parametros:
Versión(header, string) (requerido) — Versión de la APIid(path, string) (requerido) — Id de la oportunidad
Cuerpo de la peticion (application/json):
pipelineId— string — Id del pipelinename— string — Nombre de la oportunidadpipelineStageId— string — Identificador de la etapa del pipelinestatus— string — Estado actual de la oportunidadmonetaryValue— number — Valor monetario de la oportunidadforecastExpectedCloseDate— string — Fecha esperada de cierre. Formatos soportados: YYYY/MM/DD, MM/DD/YYYY, YYYY-MM-DD, MM-DD-YYYY, YYYY.MM.DD, MM.DD.YYYY, o ISO 8601forecastProbability— number — Probabilidad de pronosticoassignedTo— string — Identificador del usuario asignado a la oportunidadcustomFields— array — Actualiza campos personalizados de la oportunidad
Respuestas:
200— Respuesta exitosa400— Peticion invalida401— No autorizado422— Entidad no procesable
PUT /opportunities/{id}/status
Actualizar estado de la oportunidad
Scopes requeridos: opportunities.write
Parametros:
Versión(header, string) (requerido) — Versión de la APIid(path, string) (requerido) — Id de la oportunidad
Cuerpo de la peticion (application/json):
status(requerido) — string — Nuevo estado de la oportunidadlostReasonId— string — Id del motivo de perdida
Respuestas:
200— Respuesta exitosa400— Peticion invalida401— No autorizado422— Entidad no procesable
POST /opportunities/upsert
Crear o actualizar oportunidad (upsert)
Scopes requeridos: opportunities.write
Parametros:
Versión(header, string) (requerido) — Versión de la API
Cuerpo de la peticion (application/json):
id— string — Id de la oportunidadpipelineId(requerido) — string — Id del pipelinelocationId(requerido) — string — Id de la ubicacionfollowers(requerido) — array — Id(s) de contacto de los seguidoresisRemoveAllFollowers(requerido) — boolean — Eliminar todos los seguidoresfollowersActionType(requerido) — string — Tipo de acción sobre los seguidoresname— string — nombrestatus— string — Estado actual de la oportunidadpipelineStageId— string — Identificador de la etapa del pipelinemonetaryValue— object — Valor monetario de la oportunidadforecastExpectedCloseDate— string — Fecha esperada de cierre. Formatos soportados: YYYY/MM/DD, MM/DD/YYYY, YYYY-MM-DD, MM-DD-YYYY, YYYY.MM.DD, MM.DD.YYYY, o ISO 8601forecastProbability— number — Probabilidad de pronosticoassignedTo— string — Identificador del usuario asignado a la oportunidadlostReasonId— string — Id del motivo de perdida
Respuestas:
200— Respuesta exitosa400— Peticion invalida401— No autorizado422— Entidad no procesable
POST /opportunities/{id}/followers
Agregar seguidores
Scopes requeridos: opportunities.write
Parametros:
Versión(header, string) (requerido) — Versión de la APIid(path, string) (requerido) — Id de la oportunidad
Cuerpo de la peticion (application/json):
followers(requerido) — array — Arreglo de IDs de usuario a agregar o quitar como seguidores (máximo 10)
Respuestas:
201— Respuesta exitosa400— Peticion invalida401— No autorizado422— Entidad no procesable
DELETE /opportunities/{id}/followers
Quitar seguidores
Permite quitar uno o todos los seguidores de una oportunidad.
Scopes requeridos: opportunities.write
Parametros:
Versión(header, string) (requerido) — Versión de la APIid(path, string) (requerido) — Id de la oportunidadisRemoveAllFollowers(query, boolean) — Ponlo en true para quitar todos los seguidores de la oportunidad
Cuerpo de la peticion (application/json):
followers(requerido) — array — Arreglo de IDs de usuario a agregar o quitar como seguidores (máximo 10)
Respuestas:
200— Seguidores eliminados exitosamente.400— Peticion invalida401— No autorizado422— Entidad no procesable
POST /opportunities/
Crear oportunidad
Scopes requeridos: opportunities.write
Parametros:
Versión(header, string) (requerido) — Versión de la API
Cuerpo de la peticion (application/json):
pipelineId(requerido) — string — Id del pipelinelocationId(requerido) — string — Identificador de la ubicacion (sub-cuenta)name(requerido) — string — Nombre de la oportunidadpipelineStageId— string — Identificador de la etapa del pipelinestatus(requerido) — string — Estado actual de la oportunidadcontactId(requerido) — string — Identificador del contacto vinculado a la oportunidadmonetaryValue— number — Valor monetario de la oportunidadforecastExpectedCloseDate— string — Fecha esperada de cierre. Formatos soportados: YYYY/MM/DD, MM/DD/YYYY, YYYY-MM-DD, MM-DD-YYYY, YYYY.MM.DD, MM.DD.YYYY, o ISO 8601forecastProbability— number — Probabilidad de pronosticoassignedTo— string — Identificador del usuario asignado a la oportunidadcustomFields— array — Agrega campos personalizados a la oportunidad
Respuestas:
201— Respuesta exitosa400— Peticion invalida401— No autorizado422— Entidad no procesable
