fbpx
+1 (505) 537-5237

Si alguna vez intentaste automatizar el traspaso de datos desde Kommo a Google Sheets usando Make, pero no lograste obtener la información que necesitabas, como el número de teléfono o el correo electrónico de un contacto, no te preocupes, ¡ no estás solo!

Muchas personas que usan Kommo para gestionar la comunicación con sus clientes quieren automatizar la transferencia de datos a una hoja de cálculo sin tener que hacerlo manualmente. Pero al intentar obtener información clave, como el teléfono o el correo del contacto, se encuentran con que Make no les muestra los datos y no saben por qué.

 ¿por qué pasa esto?

Kommo organiza la información de los contactos en diferentes tipos de datos. Algunos, como el nombre del cliente, se encuentran directamente en un campo visible y son fáciles de seleccionar en Make. Sin embargo, otros datos, como el teléfono y el correo, están guardados dentro de un «paquete de información» llamado Custom Fields Values.

Esto significa que estos datos no están sueltos, sino que están dentro de un array (un tipo de estructura que agrupa varios elementos juntos). Como resultado, Make no puede encontrarlos automáticamente de la misma manera en que encuentra el nombre del cliente.

 "custom_fields_values": [
            {
                "field_id": 688380,
                "field_name": "Phone",
                "field_code": "PHONE",
                "field_type": "multitext",
                "values": [
                    {
                        "value": "+15055375237",
                        "enum_id": 470296,
                        "enum_code": "WORK"
                    }
                ]
            },
            {
                "field_id": 688382,
                "field_name": "Email",
                "field_code": "EMAIL",
                "field_type": "multitext",
                "values": [
                    {
                        "value": "[email protected]",
                        "enum_id": 470308,
                        "enum_code": "WORK"
                    }
                ]
            },
            {
                "field_id": 688378,
                "field_name": "Position",
                "field_code": "POSITION",
                "field_type": "text",
                "values": [
                    {
                        "value": "Founder"
                    }
                ]
            }
        ]

La clave para resolver el problema
Para extraer los datos que están dentro del array de Custom Fields Values, necesitamos utilizar una herramienta dentro de Make que nos permita entrar en ese «paquete de información» y seleccionar solo lo que realmente nos interesa. Aquí es donde entra en juego MAP, una función que nos ayudará a recorrer el array y obtener el dato específico que necesitamos.

Pero antes de explicarte cómo funciona MAP, primero tenemos que entender qué es un array y cómo se organiza la información dentro de un JSON. ¡Vamos paso a paso!

¿Qué es un array?

Un array es una estructura que almacena múltiples datos dentro de un mismo grupo. En lugar de tener una sola información, un array puede contener varios valores organizados en una lista.

Cada elemento dentro del array tiene una posición o índice, lo que nos permite acceder a ellos de manera ordenada. Pero a veces, los datos que buscamos no están directamente accesibles, sino que están dentro de otros niveles dentro del array.

Por eso, antes de aplicar map, es importante comprender cómo navegar dentro de un array y cómo identificar la información que queremos extraer. ¡Vamos a verlo en detalle!

¿Cómo funcionan los índices en un array?
  • Un array no empieza a contar desde 1, sino desde 0.
  • El primer elemento del array se encuentra en la posición 0.
  • El segundo elemento está en la posición 1, y así sucesivamente.
  • El último índice de un array es siempre su longitud menos 1. por ejemplo

   🔹 La longitud del array es 10 (porque hay 10 elementos).

   🔹 Pero el último índice es 9 (longitud – 1).

 

  • En este caso, la longitud del array es 10, por lo que el último índice es 9.

estructura json

Descripción de la estructura:

  • custom_fields_values → Es un array que contiene varios objetos.
  • Cada objeto representa un campo personalizado del CRM (como teléfono o email).
  • Dentro de cada objeto, el valor real se encuentra en values, específicamente en value.
Primera imagen:

Aquí se destaca que todo el contenido está dentro de un array llamado custom_fields_values. Un array es una estructura que almacena múltiples elementos en una secuencia ordenada.

  • En esta imagen, el array contiene dos elementos (cada uno representando un campo personalizado, como teléfono y correo).
  • Dentro de cada elemento hay varias propiedades como field_id, field_name, field_code, etc.
  • También hay un sub-array llamado values, que contiene los datos específicos, como el número de teléfono o el correo.
Segunda imagen:

En esta imagen, los elementos del array están resaltados y numerados para mostrar cómo están organizados.

  • Elemento 0: Contiene la información del número de teléfono.
  • Elemento 1: Contiene la información del correo electrónico.
  • El primer elemento siempre tiene índice 0.
  • El segundo elemento tiene índice 1.

El último índice de un array siempre será su longitud – 1.
En este caso, como hay dos elementos, el índice máximo es 1 (2 – 1).

explicación de la estructura del array en las imágenes

Para entender cómo están organizados los datos en estas imágenes, es importante conocer el papel de los corchetes [] y las llaves {} en la estructura del array.

Corchetes [] → Indican un Array

Los corchetes [] se utilizan para agrupar una lista de elementos dentro de un array.

      • En este caso, custom_fields_values es un array porque su contenido está dentro de [ ].
      • Dentro del array, hay dos elementos, cada uno representando un conjunto de datos (uno para el número de teléfono y otro para el correo electrónico)
      • Ejemplo:custom_fields_values: [ {…}, {…} ]Aquí, dentro de los corchetes hay dos elementos, separados por llaves {}..
Llaves {} → Indican un Objeto (Elemento del Array)

Cada conjunto de {} representa un elemento individual dentro del array.

  • Dentro de cada {}, se agrupan las propiedades y valores de ese elemento (como field_id, field_name, values, etc.).
  • En este caso, cada elemento dentro de custom_fields_values representa un campo diferente:
    • El primer {} contiene el teléfono.
    • El segundo {} contiene el correo electrónico.

Ejemplo:
{ "field_name": "Phone", "values": [...] } → Esto representa un solo elemento dentro del arra

Relación entre [] y {}
  • Los corchetes [ ] contienen todos los elementos del array.
  • Las llaves { } separan cada elemento dentro del array.
  • Dentro de cada { }, pueden haber otras estructuras, como otro array (por ejemplo, values es un array dentro de cada elemento).

📌 Ejemplo de cómo leer la estructura en las imágenes:
✅ Los datos están dentro de un array custom_fields_values (porque están en [ ]).
✅ Cada dato está dentro de{ }, lo que significa que es un elemento del array.
✅ Los elementos están numerados en orden (0 y 1) y contienen más información dentro.

Ahora que ya sabemos cómo funcionan los arrays y la estructura de un JSON, podemos seguir con MAP

¿Qué es la función map( )?

La función map() en Make se utiliza para buscar y extraer información dentro de un array. Un array es un conjunto de datos organizados dentro de una estructura, como una lista de elementos. En el caso de Kommo, los datos de un contacto, como su número de teléfono o su correo, están almacenados dentro de un array llamado custom_fields_values.

Como Make no puede seleccionar directamente estos valores, la función map() nos permite recorrer el array y encontrar el dato que necesitamos.

Miremos la siguiente estructura de datos de Kommo :

  • Tenemos un array llamado custom_fields_values.
  • Dentro de este array, cada elemento tiene información específica como:
    • «Phone» con su número.
    • «Email» con su dirección de correo.
  • Los valores específicos del teléfono y el correo están dentro de un sub-array llamado values.

Esto significa que no podemos simplemente seleccionar el campo «Phone» o «Email» de manera directa, porque están dentro de otra capa de datos.

Cómo usamos la función map() para encontrar estos valores

Buscar el correo electrónico
Paso a paso de la configuración

1-map{}:Esta es la función principal que nos permite buscar dentro de un array. Sin ella, Make no puede extraer información de listas o arrays.

2-4. Custom Fields Values:Este es el array que contiene los datos personalizados del cliente.

Dentro de este array hay múltiples elementos, cada uno con diferentes datos como teléfono, correo, etc.

3-values.1.value:values es otra lista dentro de cada elemento del array.

1.value nos dice que estamos buscando dentro de la primera posición de values, donde está almacenado el dato real (en este caso, el email).

4-field_code ; EMAIL:field_code es un campo dentro del array que nos dice qué tipo de información contiene cada elemento.

Como queremos extraer el email, le decimos a Make que busque el elemento donde field_code = EMAIL.

De esta forma, evitamos confundir el email con otro dato (como el teléfono).

    Ejemplo práctico

    Imagina que tienes una lista de contactos y cada contacto tiene varios datos (teléfono, email, dirección, etc.).
    Si simplemente intentaras obtener la información sin filtrar, podrías obtener cualquier dato.
    Pero al indicar field_code = EMAIL, aseguramos que Make solo nos devuelva la dirección de correo electrónico correcta.

    🚀 ¿Por qué es útil la función map()?
    • Nos permite extraer datos de arrays de manera sencilla.
    • Evita errores al seleccionar campos dentro de estructuras complejas.
    • Es esencial cuando Make no nos deja elegir directamente un campo porque está dentro de un sub-array.

    ✅ Ahora ya sabes cómo utilizar la función map en Make para extraer información específica de un array de datos.

    Con esta herramienta, puedes encontrar valores como el número de teléfono o el correo electrónico dentro de los custom_fields_values, sin importar en qué posición estén. Esto te permite estructurar la información correctamente antes de enviarla a Google Sheets u otras plataformas.

    📌 ¿Qué sigue ahora?

    • Implementa map en tu automatización y prueba diferentes filtros.
    • Si necesitas extraer otros datos, ajusta los valores según los campos de tu CRM.
    • Revisa este blog si tienes dudas sobre su uso.

    🔗 Regístrate en Make y comienza a automatizar:  https://www.make.com/en/register?pc=alien20llc
    📅 ¿Te gustó este contenido? Contáctanos y agenda una cita gratuita: https://contenidoalien.com/

    💡 Haz crecer tu negocio y optimiza tu flujo de trabajo con automatizaciones inteligentes.
    ✨ ¡Vende Lo Extraordinario con Alien 2.0 LLC! ✨