La Punta del Iceberg · Referencia técnica para ingesta

Formulario de registro de eventos: preguntas, opciones y valores

Todas las preguntas del formulario de registro de eventos, con su tipo, reglas, dependencias, y por cada lista: si se lee de una tabla o está escrita en el código, y el valor que se guarda (no solo la etiqueta que se ve). Pensado para que el scraper produzca datos que el sistema acepte sin curación extra.

23-ago-2026 Verificado contra código y base Código = archivo .ts Tabla = catálogo en la base

00Reglas de oro (leer primero)

  • El valor que se guarda es un identificador, no la etiqueta. En las listas, lo que se muestra ("Inteligencia Artificial") no es lo que se almacena (inteligencia-artificial). El scraper debe enviar el valor almacenado.
  • El país se guarda como nombre en español, no como código ISO, en la columna pais_code (nombre engañoso). Ejemplos guardados: Colombia, Brasil, Estados Unidos, México. Si el nombre no está en el catálogo oficial, el registro se rechaza (salvo eventos online).
  • Los campos repetibles van como listas JSON (horarios, temáticas, actividades, organizadores, speakers), con la forma exacta del punto 02.
  • Tres orígenes de listas: Código (escrita en un archivo .ts), Tabla (catálogo en la base), y doble fuente (la tabla es la verdad pero el formulario consume su espejo .ts). Detalle al final.

01Código del evento (se genera solo)

El evento_codigo tiene la forma letra-PAIS-TTT-AA-NNNNN[-SIGLA-AA]. Lo genera el sistema al enviar; el scraper no lo manda. Se compone de:

ParteDe dónde sale
letraModalidad: presencial P, online V, híbrido H, dual D.
PAIS (2)ISO alpha-2 del país (online = 00).
TTT (3)Código de la temática principal (la marcada como principal en la lista de temáticas).
AA (2)Últimos dos dígitos del año de la fecha de inicio.
NNNNN (5)Consecutivo anual, atómico.
SIGLASolo si se asocia a un superevento: mnemotécnico + año del superevento.

02Campos repetibles (forma JSON exacta)

horarios:          [ { "fecha": "2026-08-12", "hora_inicio": "16:00", "hora_fin": "17:00" } ]
tematicas:         [ { "categoria": "estrategia-gestion", "subcategoria": "finanzas", "principal": true } ]
                   // exactamente UNA con "principal": true
actividades:       [ { "categoria": "academica", "subcategoria": "conferencia" } ]
organizadores_raw: [ { "nombre": "Innpulsa", "rol": "Aceleradora" } ]
                   // rol opcional: usar un valor de la lista de roles (punto 06)
hosts_speakers:    [ { "email": "a@x.com", "nombres": "Ana", "apellidos": "Ruiz",
                       "perfil": "Speaker", "linkedin": "https://linkedin.com/in/ana" } ]
                   // si no hay speakers: [ { "nombres": "Por confirmar", "apellidos": "Por confirmar",
                   //   "perfil": "Por confirmar", "email": "" } ]  (o "No Aplica")

Ojo: en temáticas y actividades, categoria y subcategoria son los identificadores (slugs), no las etiquetas. Ver las listas en el punto 06.

03Paso 1 · Contacto

El scraper NO envía este paso: el endpoint de ingesta usa una cuenta de sistema y no crea usuarios. Se documenta solo por completitud. Campos: correo (contact_email), nombres (contact_first_name), apellidos (contact_last_name), teléfono (contact_phone, texto combinado tipo "+57 3001234567"). Nota: la columna contact_phone_country_code existe pero el formulario nunca la escribe.

04Paso 2 · Datos clave

CampoColumnaTipoObl.Fuente / valorReglas y dependencias
Nombrenombretextolibre·
Supereventosuper_evento_idselectNoTabla super_eventos (activos)Si se asocia, las fechas del evento deben caer dentro del período del superevento.
ModalidadmodalidadradioCódigo valores: presencial, online, hibrido, dualDefine qué campos de ubicación y links aparecen.
Organizadores (lista)organizadores_rawrepetible: nombre + rol≥1rol: Tabla catalogo_rol_ecosistema (punto 06)Al menos uno con nombre. Si hay nombre, el rol es obligatorio.
Fecha iniciofecha_iniciofechaYYYY-MM-DD·
Fecha finfecha_finalizacionfechaYYYY-MM-DDDebe ser ≥ fecha de inicio. Si va vacía, el sistema la iguala a la de inicio.
Zona horariazona_horariaselectCódigo IANA, ej. America/BogotaDefault America/Bogota.
Horarios por díahorariosrepetiblever punto 02Una fila por día del rango. hora_fin > hora_inicio.
Link de sesiónlink_sesionurlNo·Solo para modalidades no presenciales (online/híbrido/dual).
Dirección o lugarubicacion_textotextoNolibreSolo si requiere ubicación (presencial/híbrido/dual). Los placeholders tipo "registrarse para ver" se limpian a nulo.
Paíspais_codeselectSí*Código (espejo de Tabla catalogo_pais). Se guarda el nombre en español.*Obligatorio salvo online. Debe existir en el catálogo o se rechaza. Ver export de países.
Provincia / Depto.estado_provinciatextolibreEn el formulario se autoderiva de la ciudad; en la ingesta lo envías tú.
Ciudadciudadtextolibre (nombre de ciudad)·
Coordenadasubicacion_lat / ubicacion_lngnúmeroNodecimalSi no las mandas, quedan nulas (el endpoint no geocodifica).
Ubicación por confirmarubicacion_por_confirmarbooleanoNotrue/falseExcluyente con "solo registrados".

05Paso 3 y 4 · Temática, speakers, registro

CampoColumnaTipoObl.Fuente / valorReglas
Temáticas (lista)tematicasmulti + 1 principal≥1Tabla/doble fuente (punto 06)Exactamente una con principal:true. La categoría "Sectorial" sale de industrias (export aparte).
Actividades (lista)actividadesmulti≥1Tabla catalogo_actividad_evento (punto 06)·
Speakers / Hosts (lista)hosts_speakersrepetibleperfil: Código (punto 06)Al menos uno completo, o el centinela "Por confirmar" / "No Aplica" (ver punto 02).
Costo de inscripcióncosto_inscripcionradioCódigo (punto 06)Las opciones de entrada libre fuerzan "solo registrados" a falso.
Link de registrolink_registrourlhttps://...·
Link al organizador/eventolink_eventourlNo·No puede ser igual al de registro.
Más informaciónmas_informaciontexto largoNo·Máximo 500 caracteres.

06Listas de opciones (valor almacenado = etiqueta)

Modalidad · Código

presencial = Presencial
online = Online
hibrido = Híbrido
dual = Dual

Costo de inscripción · Código

ENTRADA_LIBRE_SIN_REGISTRO = Entrada libre, no requiere registro
ENTRADA_LIBRE_CON_REGISTRO = Entrada libre, requiere registro
POR_INVITACION = Por invitación
SI = Sí, tiene costo

Perfil de speaker/host · Código

Speaker
Keynote Speaker / Orador central
Moderador
Panelista
Host

Aquí el valor guardado y la etiqueta coinciden (se guarda el texto completo).

Temáticas · Tabla catalogo_tematica_evento (25) · formato categoría › valor_subcategoría = etiqueta

Emprendimiento › emprendimiento = Emprendimiento
Emprendimiento › modelos-de-negocio = Modelos de negocio
Innovación › tecnologia = Tecnología
Innovación › inteligencia-artificial = Inteligencia Artificial
Innovación › gestion-innovacion = Gestión de la innovación
Inversión › aceleracion = Aceleración
Inversión › inversion-de-riesgo = Inversión de riesgo
Inversión › levantamiento-de-capital = Levantamiento de capital
Economía › contexto-economico = Contexto económico
Economía › negocios-internacionales = Negocios internacionales
Estrategia y Gestión › estrategia = Estrategia
Estrategia y Gestión › finanzas = Finanzas
Estrategia y Gestión › gestion = Gestión
Estrategia y Gestión › legal = Legal
Estrategia y Gestión › operaciones = Operaciones
Estrategia y Gestión › rrhh = RRHH
Estrategia y Gestión › sostenibilidad = Sostenibilidad
Marketing y Ventas › ecommerce = Ecommerce
Marketing y Ventas › marketing = Marketing
Marketing y Ventas › ventas = Ventas
Desarrollo profesional › habilidades-blandas = Habilidades blandas
Desarrollo profesional › liderazgo = Liderazgo
Desarrollo profesional › networking = Networking
Otros temas › educacion = Educación
Otros temas › otra = Otra

Además existe una categoría "Sectorial" con 124 subindustrias (segmentos tech y tradicional). Por su tamaño va en el export: scraper-catalogo-industrias.json (campos sub_valor y sub_label).

Actividades · Tabla catalogo_actividad_evento (27)

academica › capacitacion = Capacitación
academica › clase = Clase
academica › conferencia = Conferencia
academica › conversatorio = Conversatorio
academica › curso = Curso
academica › debate = Debate
academica › foro = Foro
academica › masterclass = Masterclass
academica › taller = Taller
academica › webinar = Webinar
academica › workshop = Workshop
networking › actividad-bienestar = Actividad de bienestar
networking › actividad-deportiva = Actividad deportiva
networking › after-party = After party
networking › almuerzo = Almuerzo
networking › cena = Cena
networking › coctel = Cóctel
networking › desayuno = Desayuno
networking › networking-session = Networking session
matchmaking › demo-day = Demo Day
matchmaking › muestra-comercial = Muestra Comercial
matchmaking › pitch-practice = Pitch Practice
matchmaking › reverse-pitch = Reverse Pitch
matchmaking › rueda-de-negocios = Rueda de Negocios
matchmaking › sesion-informativa = Sesión Informativa
tech-weeks › tech-week = Tech Weeks
otro › otro = Otro

Roles de organizador · Tabla catalogo_rol_ecosistema (45) · el valor guardado es el texto del rol

Academia › Universidad
Academia › Centro de Innovacion
Academia › Centro de Investigacion
Academia › Otros centros de formacion
Consultoría › Gran consultora
Consultoría › Consultora especializada
Consultoría › Consultor independiente
Consultoría › Mentor
Corporativo › Empresa Privada
Corporativo › Empresa Mixta
Gestor › Incubadora
Gestor › Aceleradora
Gestor › Camara de Comercio
Gestor › Caja de Compensacion
Gestor › Company Builder
Gestor › Startup Studio
Gobierno › Entidad Publica Municipal
Gobierno › Entidad Publica Regional
Gobierno › Entidad Publica Nacional
Gobierno › Organismo Multilateral
Hub y Redes › Hub de Innovacion
Hub y Redes › Red de Innovacion
Hub y Redes › Red de Emprendimiento
Hub y Redes › Cluster Tecnologico
Hub y Redes › Comunidad
Inv. Individual › Angel Inversionista
Inv. Individual › Limited Partner
Inv. Individual › General Partner
Inv. Individual › Lead Investor
Inv. Institucional › Family Office
Inv. Institucional › Fondo de Inversion
Inv. Institucional › Banca de Inversion
Inv. Institucional › Venture Capital Fund - VC
Inv. Institucional › Micro Venture Capital Fund - Micro VC
Inv. Institucional › Corporate Venture Capital Fund - CVC
Inv. Institucional › Government Venture Capital - GVC
Startup › Startup
Startup › Scaleup
Startup › PyME
Otros › Asociacion
Otros › Gremio
Otros › Fundacion
Otros › Medio de comunicacion
Otros › ONG
Otros › Otro

Países · Código (espejo de Tabla catalogo_pais, 207)

El valor guardado es el nombre en español (columna valor_almacenado del export). Lista completa con su ISO alpha-2: scraper-catalogo-paises.json. Ejemplos: Colombia, Brasil, Estados Unidos, México, Argentina, Chile, Perú, España.

07Validaciones del servidor (independientes del navegador)

08Resumen: código vs tabla

ListaOrigenDónde
ModalidadCódigoeventModalities.ts
Costo de inscripciónCódigoeventCostOptions.ts
Perfil de speaker/hostCódigospeakerValidation.ts
Zona horariaCódigotimezones.ts (IANA)
PaísCódigo espejo de tablacountries.tscatalogo_pais (207)
SupereventoTablasuper_eventos (activos)
Rol de organizadorTablacatalogo_rol_ecosistema (45)
Temáticas (no sectoriales)Doble fuentecatalogo_tematica_evento (25) ≅ eventThemes.ts
Temáticas sectorialesDoble fuentecatalogo_industria+catalogo_sub_industria (124)
ActividadesDoble fuentecatalogo_actividad_evento (27) ≅ eventActivities.ts
Nota sobre "doble fuente": la tabla es la verdad, pero el formulario consume un espejo en código que se regenera con un script. Para el scraper, usar los valores de la tabla (o los exports adjuntos) es lo correcto: coinciden con lo que el sistema espera.
Verificado contra el código y la base de producción del 23-ago-2026 (conteos, valores almacenados y formas JSON tomados de datos reales). Exports de listas largas: países y subindustrias en JSON.