Ir al contenido
Sagicc Academy Logotipo
  • Cursos

    Eleva tu aprendizaje con Sagicc

    Cursos de alto nivel y calidad educativa.

    Categorías

    • Experiencia del Cliente
    • Tecnología
    • Marketing
    • Ventas
    • Mesa de Ayuda
    • Estrategia

    Sobre Sagicc

    • ¿Cómo vender Sagicc?
    • Sagicc para Agentes
    • Sagicc para Supervisores
    • Sagicc para Administradores
  • Recursos

    Herramientas

    • Ver contenidos

    Supervisión y análisis

    • Ver contenidos

    Administradores

    • Ver contenidos
  • Comunidad

    Live Streams

    • Ver contenidos

    Eventos

    • Ver contenidos

    Expertos

    • Ver contenidos
  • Blog
  • Acceder
  • Acceder

Herramientas

8
  • Formularios Dinámicos
    • Cómo agregar un campo de teléfono con código de país a tu formulario en Sagicc
    • Cómo crear un formulario de suscripción a tu newsletter con Sagicc
  • Plantillas
    • Plantilla Solicitud de Datos
    • Plantillas de contacto inicial
  • Plantillas de WhatsApp
    • Plantilla Saludo Inicial
  • Reglas de Negocio
    • Regla de negocio para asignación de llamadas
  • Mensajería Masiva
    • Mensajería Masiva Sector Retail
    • Mensajería Masiva Sector Salud

Supervisión y Análisis

1
  • Tipos de reportes

Administradores

2
  • ¿Puedo agregar columnas adicionales al archivo de cargue de cuentas?
  • Creación de Bot para agendamiento

Preguntas Frecuentes (FAQ)

9
  • ¿Se pueden usar las variables de un “Nodo Capturar” en una “Plantilla Aprobada” dentro de Sagicc?
  • Diferencia entre “Intentos” y “Timbres” en el Marcador
  • Cómo Configurar un Mensaje de Bienvenida para WhatsApp en Sagicc: Mini-Tutorial
  • ¿Cuándo se configura un marcador programado se crea uno nuevo o se ejecuta sobre el mismo?
  • Sonido de Espera en Llamadas Sagicc
  • ¿Cuál es la diferencia entre “Predictivo” y “Enviar a Cola” en la configuración de un marcador?
  • Diferencias entre “Reproducir Audio” y “Llamar a Extensión” en Sagicc
  • Tiempos de Interacción y Sesiones con Bots
  • Cierre Automático de Casos por Inactividad en Sagicc
View Categories
  • Inicio
  • Recursos
  • Herramientas
  • Formularios Dinámicos
  • Cómo agregar un campo de teléfono con código de país a tu formulario en Sagicc

Cómo agregar un campo de teléfono con código de país a tu formulario en Sagicc

11 minutos de lectura

¿Quieres capturar números de teléfono internacionales en tu formulario web conectado a Sagicc? Te mostramos cómo implementar un selector de país profesional que valida automáticamente los números y los envía con el formato correcto.


¿Qué vas a necesitar? #

  • Acceso a tu cuenta de Sagicc
  • Un sitio web donde incrustar el formulario
  • Tener creada una campaña en Sagicc
  • Crear un canal tipo Website

Paso 1: Configuración en Sagicc #

Crear tu campaña #

  1. Ve a la sección Campañas en tu panel de Sagicc
  2. Crea una nueva campaña, por ejemplo: Formulario Web - Teléfonos
  3. Esta campaña recibirá todos los datos del formulario

Crear canal Website #

  1. Ve a Canales → Crear nuevo canal
  2. Selecciona Tipo: Website
  3. Nómbralo como: Canal Web - Formulario Teléfono
  4. Asocia la campaña que acabas de crear
  5. Importante: Copia el Token que se genera, lo necesitarás más adelante

Paso 2: El código del formulario con selector de país #

Aquí tienes el código completo del formulario con campo de teléfono internacional:

Código del Formulario 👇
<!-- wp:code -->
<pre class="wp-block-code"><code>&lt;!DOCTYPE html&gt;
&lt;html lang="es"&gt;
&lt;head&gt;
&lt;meta charset="UTF-8"&gt;
&lt;meta name="viewport" content="width=device-width, initial-scale=1.0"&gt;
&lt;title&gt;Formulario con Teléfono Internacional&lt;/title&gt;
&lt;!-- CSS y JS para el selector de teléfono --&gt;
&lt;link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/intl-tel-input/17.0.19/css/intlTelInput.css"&gt;
&lt;script src="https://cdnjs.cloudflare.com/ajax/libs/intl-tel-input/17.0.19/js/intlTelInput.min.js"&gt;&lt;/script&gt;
&lt;style&gt;
/* Estilos específicos para el formulario Sagicc */
.sagicc-form-container {
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
max-width: 500px;
margin: 0 auto;
padding: 20px;
}
.sagicc-form {
background: #ffffff;
padding: 30px;
border-radius: 12px;
box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
border: 1px solid #e5e7eb;
}
.sagicc-form-title {
text-align: center;
color: #1f2937;
margin-bottom: 25px;
font-size: 24px;
font-weight: 600;
}
.sagicc-form-group {
margin-bottom: 20px;
}
.sagicc-form-input {
width: 100%;
padding: 12px 16px;
border: 2px solid #d1d5db;
border-radius: 8px;
font-size: 16px;
transition: border-color 0.3s ease;
}
.sagicc-form-input:focus {
outline: none;
border-color: #3b82f6;
}
.sagicc-form-select {
width: 100%;
padding: 12px 16px;
border: 2px solid #d1d5db;
border-radius: 8px;
font-size: 16px;
background: white;
cursor: pointer;
}
.sagicc-form-select:focus {
outline: none;
border-color: #3b82f6;
}
/* Estilos específicos para el campo de teléfono */
.sagicc-phone-container {
position: relative;
}
.sagicc-phone-container .intl-tel-input {
width: 100%;
}
.sagicc-phone-container .intl-tel-input .iti__flag-container {
border-radius: 8px 0 0 8px;
}
.sagicc-phone-container #telefono {
width: 100%;
padding: 12px 16px;
padding-left: 60px;
border: 2px solid #d1d5db;
border-radius: 8px;
font-size: 16px;
}
.sagicc-phone-container #telefono:focus {
outline: none;
border-color: #3b82f6;
}
.sagicc-form-button {
width: 100%;
padding: 14px;
background: #3b82f6;
color: white;
border: none;
border-radius: 8px;
font-size: 16px;
font-weight: 600;
cursor: pointer;
transition: background-color 0.3s ease;
}
.sagicc-form-button:hover {
background: #2563eb;
}
.sagicc-form-button:disabled {
background: #9ca3af;
cursor: not-allowed;
}
.sagicc-form-error {
color: #ef4444;
font-size: 14px;
margin-top: 5px;
display: none;
}
.sagicc-form-loading {
display: none;
text-align: center;
padding: 15px;
color: #3b82f6;
font-weight: 600;
}
.sagicc-form-success {
display: none;
text-align: center;
padding: 15px;
background: #d1fae5;
color: #065f46;
border-radius: 8px;
margin-top: 15px;
}
.sagicc-privacy-text {
text-align: center;
font-size: 12px;
color: #6b7280;
margin-top: 15px;
line-height: 1.4;
}
.sagicc-privacy-text a {
color: #3b82f6;
text-decoration: none;
}
/* Responsive */
@media (max-width: 768px) {
.sagicc-form-container {
padding: 15px;
}
.sagicc-form {
padding: 20px;
}
.sagicc-form-title {
font-size: 20px;
}
}
&lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;div class="sagicc-form-container"&gt;
&lt;div class="sagicc-form"&gt;
&lt;h2 class="sagicc-form-title"&gt;Contáctanos&lt;/h2&gt;
&lt;form id="sagicc-contact-form" action="https://TU_SUBDOMINIO.sagicc.co/api/v2/canal-website/website-callback" method="post" enctype="multipart/form-data"&gt;
&lt;!-- Token de Sagicc - REEMPLAZAR --&gt;
&lt;input type="hidden" id="sagicc_token" name="sagicc_token" value="TU_TOKEN_AQUI"&gt;
&lt;!-- Campos para nombre y apellido separados --&gt;
&lt;input type="hidden" id="nombre" name="nombre"&gt;
&lt;input type="hidden" id="apellido" name="apellido"&gt;
&lt;div class="sagicc-form-group"&gt;
&lt;input type="text" id="nombreCompleto" name="nombreCompleto" class="sagicc-form-input" placeholder="Nombre completo" required&gt;
&lt;div class="sagicc-form-error" id="error-nombre"&gt;Por favor, ingresa tu nombre completo&lt;/div&gt;
&lt;/div&gt;
&lt;div class="sagicc-form-group"&gt;
&lt;input type="email" id="email" name="email" class="sagicc-form-input" placeholder="Correo electrónico" required&gt;
&lt;div class="sagicc-form-error" id="error-email"&gt;Por favor, ingresa un email válido&lt;/div&gt;
&lt;/div&gt;
&lt;div class="sagicc-form-group"&gt;
&lt;input type="text" id="empresa" name="empresa" class="sagicc-form-input" placeholder="Nombre de tu empresa"&gt;
&lt;/div&gt;
&lt;div class="sagicc-form-group"&gt;
&lt;select id="interes" name="interes" class="sagicc-form-select" required&gt;
&lt;option value=""&gt;¿En qué podemos ayudarte?&lt;/option&gt;
&lt;option value="demo"&gt;Solicitar una demo&lt;/option&gt;
&lt;option value="pricing"&gt;Información de precios&lt;/option&gt;
&lt;option value="support"&gt;Soporte técnico&lt;/option&gt;
&lt;option value="other"&gt;Otro&lt;/option&gt;
&lt;/select&gt;
&lt;div class="sagicc-form-error" id="error-interes"&gt;Por favor, selecciona una opción&lt;/div&gt;
&lt;/div&gt;
&lt;!-- Campo de teléfono con selector de país --&gt;
&lt;div class="sagicc-form-group"&gt;
&lt;div class="sagicc-phone-container"&gt;
&lt;input type="tel" id="telefono" name="telefono" placeholder="Número de teléfono" required&gt;
&lt;div class="sagicc-form-error" id="error-telefono"&gt;Por favor, ingresa un número de teléfono válido&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;button type="submit" class="sagicc-form-button"&gt;Enviar mensaje&lt;/button&gt;
&lt;div class="sagicc-form-loading" id="loading"&gt;Enviando mensaje...&lt;/div&gt;
&lt;div class="sagicc-form-success" id="success"&gt;¡Mensaje enviado correctamente! Te contactaremos pronto.&lt;/div&gt;
&lt;p class="sagicc-privacy-text"&gt;
Al enviar este formulario aceptas nuestra 
&lt;a href="#" target="_blank"&gt;Política de Privacidad&lt;/a&gt;
&lt;/p&gt;
&lt;/form&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;script&gt;
// Inicializar el selector de teléfono internacional
const phoneInput = document.querySelector("#telefono");
const iti = window.intlTelInput(phoneInput, {
// Configuración del selector de país
initialCountry: "co", // País inicial (Colombia)
preferredCountries: &#91;"co", "us", "mx", "pe", "cl", "ec", "ar"], // Países preferidos
separateDialCode: true, // Mostrar código de país por separado
utilsScript: "https://cdnjs.cloudflare.com/ajax/libs/intl-tel-input/17.0.19/js/utils.js"
});
// Función para dividir nombre completo
function splitFullName(fullName) {
const parts = fullName.trim().split(' ');
const firstName = parts&#91;0];
const lastName = parts.slice(1).join(' ') || '-';
return { firstName, lastName };
}
// Manejo del formulario
document.getElementById('sagicc-contact-form').addEventListener('submit', function(e) {
e.preventDefault();
// Limpiar errores anteriores
document.querySelectorAll('.sagicc-form-error').forEach(error =&gt; {
error.style.display = 'none';
});
let hasErrors = false;
// Validar nombre completo
const nombreCompleto = document.getElementById('nombreCompleto').value.trim();
if (!nombreCompleto) {
document.getElementById('error-nombre').style.display = 'block';
hasErrors = true;
} else {
const { firstName, lastName } = splitFullName(nombreCompleto);
document.getElementById('nombre').value = firstName;
document.getElementById('apellido').value = lastName;
}
// Validar email
const email = document.getElementById('email').value.trim();
const emailRegex = /^&#91;^\s@]+@&#91;^\s@]+\.&#91;^\s@]+$/;
if (!email || !emailRegex.test(email)) {
document.getElementById('error-email').style.display = 'block';
hasErrors = true;
}
// Validar interés
const interes = document.getElementById('interes').value;
if (!interes) {
document.getElementById('error-interes').style.display = 'block';
hasErrors = true;
}
// Validar teléfono internacional
if (!iti.isValidNumber()) {
document.getElementById('error-telefono').style.display = 'block';
hasErrors = true;
} else {
// Obtener el número completo con código de país
const fullPhoneNumber = iti.getNumber();
document.getElementById('telefono').value = fullPhoneNumber;
}
// Si no hay errores, enviar formulario
if (!hasErrors) {
document.getElementById('loading').style.display = 'block';
const formData = new FormData(this);
fetch(this.action, {
method: 'POST',
body: formData
})
.then(response =&gt; response.json())
.then(data =&gt; {
document.getElementById('loading').style.display = 'none';
if (data.status === 200 &amp;&amp; data.statusResult) {
document.getElementById('success').style.display = 'block';
this.reset();
// Reinicializar el selector de país después del reset
iti.setNumber("");
} else {
alert('Hubo un error al enviar el mensaje. Por favor, inténtalo de nuevo.');
}
})
.catch(error =&gt; {
document.getElementById('loading').style.display = 'none';
alert('Error de conexión. Por favor, verifica tu internet e inténtalo de nuevo.');
console.error('Error:', error);
});
}
});
&lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;
</code></pre>
<!-- /wp:code -->


Paso 3: Personalizar el formulario #

Valores que DEBES reemplazar: #

1. Token de Sagicc #

<input type="hidden" id="sagicc_token" name="sagicc_token" value="TU_TOKEN_AQUI">

Reemplaza TU_TOKEN_AQUI con el token que copiaste de tu canal Website en Sagicc.

2. URL del endpoint #

<form id="sagicc-contact-form" action="https://TU_SUBDOMINIO.sagicc.co/api/v2/canal-website/website-callback">

Reemplaza TU_SUBDOMINIO con el subdominio de tu cuenta Sagicc (ej: miempresa.sagicc.co).

3. Enlace de Política de Privacidad #

<a href="#" target="_blank">Política de Privacidad</a>

Reemplaza # con la URL real de tu política de privacidad.

Personalizar países del selector #

Puedes cambiar los países que aparecen en el selector:

const iti = window.intlTelInput(phoneInput, {
initialCountry: "co", // Cambia "co" por el código de tu país
preferredCountries: ["co", "us", "mx"], // Agrega o quita países
separateDialCode: true,
utilsScript: "https://cdnjs.cloudflare.com/ajax/libs/intl-tel-input/17.0.19/js/utils.js"
});

Códigos de países comunes:

  • "co" – Colombia
  • "us" – Estados Unidos
  • "mx" – México
  • "pe" – Perú
  • "cl" – Chile
  • "ar" – Argentina
  • "ec" – Ecuador

Personalizar colores fácilmente #

Para cambiar los colores principales, modifica estas variables:

/* Color principal (botones y focus) */
.sagicc-form-button {
background: #3b82f6; /* Cambia este color */
}
.sagicc-form-input:focus,
.sagicc-form-select:focus {
border-color: #3b82f6; /* Usa el mismo color aquí */
}
/* Color de hover del botón */
.sagicc-form-button:hover {
background: #2563eb; /* Un tono más oscuro del color principal */
}

Paso 4: Implementar en tu sitio web #

En WordPress: #

  1. Copia todo el código HTML
  2. Ve a la página donde quieres el formulario
  3. Agrega un bloque “HTML personalizado”
  4. Pega el código y publica

En HTML estático: #

  1. Guarda el código como formulario-telefono.html
  2. Súbelo a tu servidor web
  3. ¡Listo para usar!

Paso 5: Probar el formulario #

  1. Selecciona diferentes países en el selector
  2. Ingresa números de teléfono de diferentes formatos
  3. Envía el formulario y verifica la validación
  4. Revisa en Sagicc que el número llegue con el formato correcto: +57 300 123 4567

Funcionalidades del campo de teléfono #

Validación automática – Verifica que el número sea válido para el país seleccionado
Formato internacional – Envía el número con código de país: +57 300 123 4567
Países preferidos – Muestra primero los países más relevantes
Búsqueda de países – El usuario puede escribir para buscar un país
Auto-detección – Detecta el país basado en la IP del usuario
Responsive – Funciona perfectamente en móviles


Configuraciones avanzadas del selector #

Cambiar país inicial automáticamente: #

const iti = window.intlTelInput(phoneInput, {
initialCountry: "auto", // Detecta automáticamente por IP
geoIpLookup: function(success, failure) {
fetch("https://ipapi.co/json")
.then(response => response.json())
.then(data => success(data.country_code))
.catch(() => failure());
},
});

Solo mostrar países específicos: #

const iti = window.intlTelInput(phoneInput, {
onlyCountries: ["co", "us", "mx", "pe", "cl"], // Solo estos países
});

Excluir países específicos: #

const iti = window.intlTelInput(phoneInput, {
excludeCountries: ["af", "ax"], // Excluir estos países
});

Solución de problemas comunes #

El selector de país no aparece:

  • Verifica que los archivos CSS y JS se carguen correctamente
  • Revisa la consola del navegador por errores

La validación no funciona:

  • Asegúrate de que utils.js se esté cargando
  • Verifica que la función iti.isValidNumber() esté siendo llamada

Los números no llegan con formato correcto:

  • Usa iti.getNumber() para obtener el número completo
  • Verifica que se asigne al campo antes de enviar

Conflictos de CSS:

  • Todos los estilos usan prefijo sagicc- para evitar conflictos
  • Puedes cambiar los prefijos si es necesario

Consejos adicionales #

Seguridad: El número se valida tanto en frontend como backend.

Móviles: El selector funciona perfectamente en dispositivos táctiles.

Internacionalización: Soporta más de 200 países automáticamente.

Performance: Los archivos se cargan desde CDN para máxima velocidad.

Personalización: Fácil de modificar colores y estilos sin afectar funcionalidad.


¡Ahora tienes un formulario con selector de teléfono internacional completamente funcional y conectado a Sagicc! 📞✨

Updated on 06/06/2025

What are your Feelings

  • Happy
  • Normal
  • Sad
Comparte este artículo:
  • Facebook
  • X
  • LinkedIn
Cómo crear un formulario de suscripción a tu newsletter con Sagicc
Tabla de contenidos
  • ¿Qué vas a necesitar?
  • Paso 1: Configuración en Sagicc
    • Crear tu campaña
    • Crear canal Website
  • Paso 2: El código del formulario con selector de país
  • Paso 3: Personalizar el formulario
    • Valores que DEBES reemplazar:
      • 1. Token de Sagicc
      • 2. URL del endpoint
      • 3. Enlace de Política de Privacidad
    • Personalizar países del selector
    • Personalizar colores fácilmente
  • Paso 4: Implementar en tu sitio web
    • En WordPress:
    • En HTML estático:
  • Paso 5: Probar el formulario
  • Funcionalidades del campo de teléfono
  • Configuraciones avanzadas del selector
    • Cambiar país inicial automáticamente:
    • Solo mostrar países específicos:
    • Excluir países específicos:
  • Solución de problemas comunes
  • Consejos adicionales
Sagicc Academy Logotipo

Conoce Sagicc

  • ¿Quiénes somos?
  • Casos de éxito
  • Centro de ayuda

Políticas de Protección

  • Políticas de privacidad
  • Términos y condiciones

Suscríbete a nuestra comunidad

Síguenos en nuestras redes

Youtube Facebook Instagram Linkedin
  • Copyright © 2025 Sagicc LLC