Está en la página 1de 13

1

Segmentación
Población en GAIA

Instructivo

Octubre 2021
2

Indice

• Segmentación Mensual
- Información General y temporalidad
- Parámetros
- Steps
- Step 1 > Dependencias
- Step 2 > Población
- Step 3 > Muestreo
- Step 4 > Insert to historical

• Segmentación Diaria
- Información General y temporalidad
- Parámetros
- Steps
- Step 3 > Export población
- Step 4 > Distribución encuestas por día
3

Segmentación Mensual

1. Información General y Temporalidad

Para todos los NPS en los que hacemos la segmentación un día


del mes y ese mismo día, se envían todas las encuestas.

1. Seleccionar la Temporalidad, “Every month”


2
1 2. En caso de que falle el Job, enviaría una alerta a la lista
que seleccionemos aquí. “ALL_NPS”
3
3. Indicar en cuales meses, día del mes y hora queremos
hacer la segmentación.

Gaia Jobs: https://gaiadesigner.adminml.com/v2/jobs


4

Segmentación Mensual

2. Parámetros

Estas variables harán que cuando el código lea el parámetro,


cambie automáticamente por el valor que le asignemos.

Es lo que conocíamos antes como “Ecode”.

• El valor cargado es a cuántas personas quiero enviarle


la encuesta por mes. (cap del ecode)

• Esta configuración, reemplaza la plataforma de Fury,


en donde cargábamos los ecodes.

• Como la segmentación es mensual, el cap cargado


para cada ecode, también debe ser un valor mensual,
regularmente, son valores grandes.

• Regla de Frecuencia: Es el periodo en días, para


volver a encuestar al usuario individualmente, es decir,
a pesar de que se cumpla la segmentación, si no pasa el
periodo configurado, no le enviamos una nueva
encuesta.
5

Segmentación Mensual

3. Steps

Step 1 > Dependencias:

1. Nombre: ”DEPENDECIAS”.

2. De las opciones múltiples, seleccionar “Wait”, la idea es


que el JOB no se ejecute hasta que corran las diferentes
tablas que le indiquemos.

3. Seleccionar el servicio en donde están las tablas que


estaremos esperando.
1 2 3 4. Relacionar las Dependencias
4
6

Segmentación Mensual

3. Steps

Step 2 > Población:

1. Nombre: ”POBLACIÓN”.

2. Seleccionar “Execute”

3. Seleccionar el servicio en donde vamos a ejecutar la Query,


Teradata, Big Query o GAIA, dependiendo.

4. Las credenciales son las que dicen “CX” o “MIGRACIÓN


1 2 3 CX”.

4 5. Pegar la Query de Segmentación.


5 En el resultado respetar siempre los campos:
CUST ID
NPS
SITE ID
ECODE
FECHA
7

Segmentación Mensual

3. Steps

Step 3 > Muestreo: Una vez que se tiene la población armada,


se define la muestra

1. Nombre: ”MUESTREO”.

2. Seleccionar “Execute”

3. Seleccionar el servicio en donde vamos a ejecutar la Query,


Teradata, Big Query o GAIA, dependiendo.

4. Las credenciales son las que dicen “CX” o “MIGRACIÓN


1 2 3 CX”.

4 5. La Query del muestreo debe tener un JOIN a la tabla


5 histórica, si es la primera vez que se hace, se le debe pedir
a NPS (Franco Santoliquido) que cree la tabla.

Esta Query debe tener una volatile por cada ecode.


8

Segmentación Mensual

3. Steps

Step 4 > Insert to historical: Se toma el muestreo y se inserta


en la tabla histórica.

1. Nombre: ”Insert to historical”.

2. Seleccionar “Execute”

3. Seleccionar el servicio en donde vamos a ejecutar la Query,


Teradata, Big Query o GAIA, dependiendo.

4. Las credenciales son las que dicen “CX” o “MIGRACIÓN


CX”.
1 2 3
5. Lo que se hace aquí es rellenar la tabla histórica con la
4 información nueva del muestreo.
5
¿Cómo hacer el insert?
9

Segmentación Diaria

1. Información General y Temporalidad

Es muy parecido a la segmentación mensual, con algunos


cambios en la configuración de los tiempos.

Esta segmentación se ejecuta a diario, según la hora que


elijamos y se envía en el mismo día.

2 1. Seleccionar la Temporalidad, “At X Time every Day”,


y configurar la hora exacta en la que se debe ejecutar el
1
Job.
3
2. En caso de que falle el Job, enviaría una alerta a la lista
que seleccionemos aquí. “ALL_NPS”

3. Indicar la hora exacta en la que se hace la


segmentación.
10

Segmentación Diaria

2. Parámetros

Estas variables harán que cuando el código lea el parámetro,


cambie automáticamente por el valor que le asignemos.

Es lo que conocíamos antes como “Ecode”.

• El valor cargado es a cuántas personas quiero enviarle


la encuesta a diario. (cap del ecode)

• Como la segmentación es diaria, el cap cargado para


cada ecode, también debe ser un valor diario,
regularmente, son valores en cientos.

• Regla de Frecuencia: Es el periodo en días, para


volver a encuestar al usuario individualmente, es decir,
a pesar de que se cumpla la segmentación, si no pasa el
periodo configurado, no le enviamos una nueva
encuesta.
11

Segmentación Diaria

3. Steps

Las Dependencias y la Segmentación, se hacen igual que para


una de tipo mensual, pero, incluimos un step de exportación.

Step 3 > Export Población:

1. Nombre: ”EXPORT POBLACION”.

1 2 3 2. De las opciones múltiples, seleccionar “Export”.

4 3. Seleccionar el servicio en donde están las tablas que


estaremos esperando.

5 6 4. Las credenciales son las que dicen “CX” o “MIGRACIÓN


CX”.

5. Ponerle un nombre al archivo que se va a crear.

6. Se hace un SELECT a la tabla de población que se acaba


de crear.
12

Segmentación Diaria

3. Steps

Step 4 > Distribución encuestas por día:

1. Nombre: ”DISTRIBUCIÓN ENCUESTAS POR DIA”.

2. De las opciones múltiples, seleccionar “Execute.

3. Python.

4. Las dependencias son:


$pandas
1 2 3 $numpy

4 5 5. Aquí ponemos el código Python del Anexo 1.

6. Se hace un SELECT a la tabla de población que se acaba


de crear.

** El resto de pasos es igual a la segmentación mensual.


13

Anexo 1

Código Python para Segmentación Diaria import pandas as pd


import numpy as np
import calendar
import datetime

df = df.reset_index().rename(columns = {'index': 'rownumber’})


df['rownumber'] = df['rownumber']+1

now = datetime.datetime.now()
dias_del_mes = calendar.monthrange(now.year, now.month)[1]

df['dia_envio'] = '0’
bin_size = round(df['Q_MUESTREADA'][0] /
dias_del_mes,0)
date_to_send = now
now = now.replace(day=1)

i=1
while i*bin_size <= len(df):
date_to_send = now
date_to_send += datetime.timedelta(days=i-1)
print(date_to_send)

df['dia_envio'] = np.where((df['rownumber'] <=


i*bin_size)&(df['dia_envio'] == '0’),
date_to_send.strftime('%d-%m-%Y'), df['dia_envio’])

i = i+1

También podría gustarte