Crea una integración en la cuenta de la sesión. config debe contener un objeto JSON válido con la configuración correspondiente al tipo elegido. Por ejemplo, una integración API puede definir nombre, tkUsuario, tkFase, tkOrigen y tkEtiqueta para recibir contactos. Para los tipos 7 y 10 también se obtiene idFormulario. Conserva los tokens de la respuesta como credenciales: no los registres ni los publiques. Una cuenta Zoom ya vinculada devuelve un error de conflicto.
Parámetros
Nombre
Tipo
Validación
Descripción
token
String
Requerido
Encabezado: Token de sesión vigente obtenido al autenticarte. No lo registres ni lo expongas.
tipoIntegracion
Integer
Cuerpo: Tipo de integración. Por ejemplo, 7 para API o 10 para formulario HTML.
config
String
Requerido
Cuerpo: Configuración de la integración como objeto JSON serializado. Su estructura depende del tipo.
config2
String
Cuerpo: Configuración complementaria según el proveedor. Puede contener información confidencial.
config3
String
Cuerpo: Configuración complementaria según el proveedor. Puede contener información confidencial.
widgetConfig
String
Cuerpo: Configuración del widget como texto JSON; se utiliza para integraciones de tipo 12.
account_id
String
Cuerpo: Identificador de la cuenta de Zoom, necesario para el tipo 23. También se admite accountId o config2; la cuenta no puede estar vinculada a otra integración.
Respuesta
Nombre
Tipo
Descripción
code
Integer
Código de resultado. El valor 0 indica que la operación terminó sin error.
msg
String
Mensaje de resultado. Su texto puede variar.
details
Array<Object>
Arreglo con los datos de la operación.
details[].tkIntegracion
String
Identificador de la integración para su administración.
details[].tkIntegracionSesion
String
Token completo para recibir contactos o autenticar una integración. No lo expongas.
details[].idFormulario
String
Identificador del formulario para los tipos 7 y 10.
Solicitud
Crear una integración API
curl --request POST \
--url https://api.upnify.com/integraciones \
--header 'Accept: application/json' \
--header 'token: TOKEN-SESION-EJEMPLO' \
--header 'Content-Type: application/json' \
--data '{
"tipoIntegracion": 7,
"config": "{\"nombre\": \"Formulario de ejemplo\"}"
}'async function ejecutar() {
const response = await fetch("https://api.upnify.com/integraciones", {
method: "POST",
headers: {"Accept": "application/json", "token": "TOKEN-SESION-EJEMPLO", "Content-Type": "application/json"},
body: JSON.stringify({"tipoIntegracion":7,"config":"{\"nombre\": \"Formulario de ejemplo\"}"})
});
const text = await response.text();
if (!response.ok) throw new Error(`HTTP ${response.status}: ${text}`);
const data = text ? JSON.parse(text) : null;
// Usa data en tu aplicación sin exponer tokens o datos personales.
console.log("Estado HTTP:", response.status);
}
ejecutar().catch(console.error);// Node.js 18 o posterior.
async function ejecutar() {
const response = await fetch("https://api.upnify.com/integraciones", {
method: "POST",
headers: {"Accept": "application/json", "token": "TOKEN-SESION-EJEMPLO", "Content-Type": "application/json"},
body: JSON.stringify({"tipoIntegracion":7,"config":"{\"nombre\": \"Formulario de ejemplo\"}"})
});
const text = await response.text();
if (!response.ok) throw new Error(`HTTP ${response.status}: ${text}`);
const data = text ? JSON.parse(text) : null;
// Usa data en tu aplicación sin exponer tokens o datos personales.
console.log("Estado HTTP:", response.status);
}
ejecutar().catch(console.error);import json
import requests
response = requests.request(
"POST",
"https://api.upnify.com/integraciones",
headers={'Accept': 'application/json', 'token': 'TOKEN-SESION-EJEMPLO', 'Content-Type': 'application/json'},
json=json.loads('{"tipoIntegracion":7,"config":"{\\"nombre\\": \\"Formulario de ejemplo\\"}"}'),
timeout=30,
)
response.raise_for_status()
data = response.json() if response.text else None
# Usa data en tu aplicación sin exponer tokens o datos personales.
print("Estado HTTP:", response.status_code)package main
import (
"fmt"
"io"
"net/http"
"time"
"strings"
)
func main() {
body := strings.NewReader(`{"tipoIntegracion":7,"config":"{\"nombre\": \"Formulario de ejemplo\"}"}`)
request, err := http.NewRequest("POST", "https://api.upnify.com/integraciones", body)
if err != nil { panic(err) }
request.Header.Set("Accept", "application/json")
request.Header.Set("token", "TOKEN-SESION-EJEMPLO")
request.Header.Set("Content-Type", "application/json")
client := &http.Client{Timeout: 30 * time.Second}
response, err := client.Do(request)
if err != nil { panic(err) }
defer response.Body.Close()
data, err := io.ReadAll(response.Body)
if err != nil { panic(err) }
if response.StatusCode < 200 || response.StatusCode >= 300 {
panic(fmt.Sprintf("HTTP %d: %s", response.StatusCode, data))
}
fmt.Println("Estado HTTP:", response.StatusCode)
}using System;
using System.Net.Http;
using System.Text;
using var client = new HttpClient();
using var request = new HttpRequestMessage(new HttpMethod("POST"), "https://api.upnify.com/integraciones");
request.Headers.Add("Accept", "application/json");
request.Headers.Add("token", "TOKEN-SESION-EJEMPLO");
request.Content = new StringContent("{\"tipoIntegracion\":7,\"config\":\"{\\\"nombre\\\": \\\"Formulario de ejemplo\\\"}\"}", Encoding.UTF8, "application/json");
using var response = await client.SendAsync(request);
var data = await response.Content.ReadAsStringAsync();
response.EnsureSuccessStatusCode();
Console.WriteLine($"Estado HTTP: {(int)response.StatusCode}");