Clasificación de leads

Separa cada mensaje según el tipo de lead que lo escribe

Un tipo de lead no es un daño ni un tema, así que tiene su propio eje. ToxicFilter lee cada mensaje, o todo lo que ha escrito una persona a lo largo de un hilo, puntúa once tipos por separado y deja la decisión en manos de las reglas que escribas para los tipos que te importan.

Cómo funciona

  1. Llega el mensaje

    Un formulario de contacto, un buzón o un hilo entre dos usuarios. Manda un mensaje a /v1/text, o el hilo entero a /v1/conversation con el autor de cada mensaje.

  2. Se puntúa cada tipo

    Once tipos, cada uno hecho de familias de frases en ocho idiomas. Una familia da 0,45, dos dan 0,70 y tres o más 0,90, y cada tipo se puntúa por su cuenta, porque una misma persona suele ser varios a la vez.

  3. Deciden tus reglas

    Un tipo no decide nada hasta que una regla le pone una línea. Añádela en el editor de políticas con "The lead is", o manda rules.leads en la llamada, y elige review o block.

  4. Lees la respuesta

    Cada respuesta trae leads junto a scores y topics, y el tipo que ha cruzado una línea aparece en flagged como lead:tipo. Los SDK lo leen con leads y lead(type).

Míralo en acción

  1. 01 Una agencia con dos familias
  2. 02 Trabajo gratis a cambio de participaciones, con presión
  3. 03 Tres llamadas perdidas
  4. 04 Una idea con presupuesto
  5. 05 Sueldo más participación es un empleo

Una agencia con dos familias POST /v1/text

Hola, ofrecemos desarrollo web y desarrollo de apps para empresas en crecimiento.

review 7 ms

Una oferta y una lista de servicios: dos familias, 0,70 en sales_pitch. La plantilla de formulario de contacto lo retiene desde 0,60 y lo rechaza desde 0,85, para lo que hacen falta tres familias o más.

La respuesta, resumida
{
  "decision": "review",
  "flagged": [
    "lead:sales_pitch"
  ],
  "leads": {
    "sales_pitch": 0.7
  },
  "signals": [],
  "model": {
    "read": false
  },
  "took_ms": 7
}

Trabajo gratis a cambio de participaciones, con presión POST /v1/conversation

fundador Tengo una idea para una app y busco un cofundador técnico.

agencia ¿Qué presupuesto tienes?

fundador De momento no hay sueldo, tendrías participación en la empresa. Llevo años sin cobrar y los anteriores no servían.

review 23 ms

Solo se leen los mensajes del fundador. La idea, la participación y la falta de sueldo son tres familias, 0,90, y culpar a los anteriores suma presión, 0,95. La plantilla lo retiene y nunca lo rechaza: contestar o no es cosa tuya.

La respuesta, resumida
{
  "decision": "review",
  "flagged": [
    "lead:free_work_for_equity"
  ],
  "leads": {
    "free_work_for_equity": 0.95
  },
  "signals": [],
  "model": {
    "read": false
  },
  "took_ms": 23
}

Tres llamadas perdidas POST /v1/conversation

cliente Perdona, se me pasó la llamada.

agencia Sin problema, ¿el jueves a las 10?

cliente Perdona por no entrar otra vez, no pude conectarme. ¿Podemos reprogramar?

agencia Claro, el lunes a las 16.

cliente Lo siento, hoy no pude asistir. ¿Lo dejamos para la semana que viene?

allow 8 ms

Se cuenta por mensaje de esa persona, no por frase: tres disculpas dan 0,90 en no_show, y vuelve en leads. La plantilla no tiene línea para ese tipo, así que no decide nada hasta que añadas una regla.

La respuesta, resumida
{
  "decision": "allow",
  "flagged": [],
  "leads": {
    "no_show": 0.9
  },
  "signals": [],
  "model": {
    "read": false
  },
  "took_ms": 8
}

Una idea con presupuesto POST /v1/text

Tengo una idea para una tienda online de mi panadería. Tenemos unos 15.000 euros de presupuesto y queremos lanzarla en primavera. ¿Nos pasáis presupuesto?

allow 7 ms

"Tengo una idea" es una familia del trabajo a cambio de participaciones, y ese tipo necesita la participación o la falta de pago para subir. Se queda en 0,45, por debajo de cualquier línea, y la petición de presupuesto pasa.

La respuesta, resumida
{
  "decision": "allow",
  "flagged": [],
  "leads": {
    "free_work_for_equity": 0.45
  },
  "signals": [],
  "model": {
    "read": false
  },
  "took_ms": 7
}

Sueldo más participación es un empleo POST /v1/text

Somos una fintech y buscamos un ingeniero sénior: salario competitivo más equity, en remoto, incorporación en enero.

allow 7 ms

"Salario competitivo más equity" zanja la cuestión: el trabajo a cambio de participaciones queda en silencio y no se informa de ningún tipo.

La respuesta, resumida
{
  "decision": "allow",
  "flagged": [],
  "signals": [],
  "model": {
    "read": false
  },
  "took_ms": 7
}

Míralo en acción

Una agencia con dos familias POST /v1/text

Hola, ofrecemos desarrollo web y desarrollo de apps para empresas en crecimiento.

review 7 ms

Una oferta y una lista de servicios: dos familias, 0,70 en sales_pitch. La plantilla de formulario de contacto lo retiene desde 0,60 y lo rechaza desde 0,85, para lo que hacen falta tres familias o más.

La respuesta, resumida
{
  "decision": "review",
  "flagged": [
    "lead:sales_pitch"
  ],
  "leads": {
    "sales_pitch": 0.7
  },
  "signals": [],
  "model": {
    "read": false
  },
  "took_ms": 7
}

Trabajo gratis a cambio de participaciones, con presión POST /v1/conversation

fundador Tengo una idea para una app y busco un cofundador técnico.

agencia ¿Qué presupuesto tienes?

fundador De momento no hay sueldo, tendrías participación en la empresa. Llevo años sin cobrar y los anteriores no servían.

review 23 ms

Solo se leen los mensajes del fundador. La idea, la participación y la falta de sueldo son tres familias, 0,90, y culpar a los anteriores suma presión, 0,95. La plantilla lo retiene y nunca lo rechaza: contestar o no es cosa tuya.

La respuesta, resumida
{
  "decision": "review",
  "flagged": [
    "lead:free_work_for_equity"
  ],
  "leads": {
    "free_work_for_equity": 0.95
  },
  "signals": [],
  "model": {
    "read": false
  },
  "took_ms": 23
}

Tres llamadas perdidas POST /v1/conversation

cliente Perdona, se me pasó la llamada.

agencia Sin problema, ¿el jueves a las 10?

cliente Perdona por no entrar otra vez, no pude conectarme. ¿Podemos reprogramar?

agencia Claro, el lunes a las 16.

cliente Lo siento, hoy no pude asistir. ¿Lo dejamos para la semana que viene?

allow 8 ms

Se cuenta por mensaje de esa persona, no por frase: tres disculpas dan 0,90 en no_show, y vuelve en leads. La plantilla no tiene línea para ese tipo, así que no decide nada hasta que añadas una regla.

La respuesta, resumida
{
  "decision": "allow",
  "flagged": [],
  "leads": {
    "no_show": 0.9
  },
  "signals": [],
  "model": {
    "read": false
  },
  "took_ms": 8
}

Una idea con presupuesto POST /v1/text

Tengo una idea para una tienda online de mi panadería. Tenemos unos 15.000 euros de presupuesto y queremos lanzarla en primavera. ¿Nos pasáis presupuesto?

allow 7 ms

"Tengo una idea" es una familia del trabajo a cambio de participaciones, y ese tipo necesita la participación o la falta de pago para subir. Se queda en 0,45, por debajo de cualquier línea, y la petición de presupuesto pasa.

La respuesta, resumida
{
  "decision": "allow",
  "flagged": [],
  "leads": {
    "free_work_for_equity": 0.45
  },
  "signals": [],
  "model": {
    "read": false
  },
  "took_ms": 7
}

Sueldo más participación es un empleo POST /v1/text

Somos una fintech y buscamos un ingeniero sénior: salario competitivo más equity, en remoto, incorporación en enero.

allow 7 ms

"Salario competitivo más equity" zanja la cuestión: el trabajo a cambio de participaciones queda en silencio y no se informa de ningún tipo.

La respuesta, resumida
{
  "decision": "allow",
  "flagged": [],
  "signals": [],
  "model": {
    "read": false
  },
  "took_ms": 7
}

Cómo funciona la clasificación de leads

Los tipos, cómo se puntúa cada uno, qué lo silencia y cómo convertir una puntuación en una regla.

Qué es un tipo de lead

Cada respuesta tiene tres ejes. scores recoge los daños, topics los temas y leads quién te escribe y qué quiere. Una agencia que te ofrece sus servicios no es un abuso, y ofrecer participaciones en vez de sueldo no es un tema, así que ninguno de los dos encaja en las otras listas. Cada uno de los once tipos se puntúa de 0 a 1 por separado, porque una misma persona puede pedir trabajo gratis, no tener presupuesto y ampliar el alcance en un solo hilo.

Cómo se puntúa cada tipo

Un tipo son unas cuantas familias de frases. Una sola familia es como escribe la gente honrada ("tengo una idea" es como empiezan muchos buenos proyectos), así que da 0,45. Dos familias dan 0,70 y tres o más 0,90, y por eso una línea en torno a 0,60 actúa sobre la forma y no sobre una palabra. Repetir lo mismo de tres maneras distintas cuenta como una familia más. El trabajo a cambio de participaciones necesita su familia propia, la participación o la falta de pago, y la consultoría gratis necesita que falte el presupuesto: sin ellas, se quedan en 0,45.

Qué silencia un tipo y qué lo sube

Hay frases que zanjan la cuestión y silencian el tipo entero: "sueldo más participación" es un empleo, y un comprador que pregunta cuánto costaría algo no te está vendiendo nada. Esas frases tienen que aparecer tal cual. La presión va en sentido contrario: llevar años sin cobrar, "solo te interesa el dinero" o culpar a los proveedores anteriores suma 0,10 al trabajo a cambio de participaciones y a la falta de presupuesto cuando ya están ahí. Quien nunca se presenta se cuenta por mensaje de esa persona: una disculpa no significa nada, dos dan 0,70 y tres 0,90.

Frases que no tienen que coincidir palabra por palabra

Nadie escribe como lo hace una lista. Una frase de tres palabras o más también cuenta cuando sus palabras con significado aparecen cerca, en cualquier orden y con cualquier terminación: "no hay presupuesto" también se encuentra en "presupuesto, de momento, no hay". Las negaciones y las personas se conservan, así que "no hay presupuesto" nunca aparece en "hay presupuesto". Las frases más cortas tienen que coincidir exactamente, o bastaría una palabra suelta en cualquier sitio.

Leer la conversación entera, y el modelo

Manda el hilo a /v1/conversation y al autor del último mensaje se le lee en todo lo que ha escrito. Cuando la llamada usa el modelo, también lee los mensajes anteriores, con el autor de cada línea, y puntúa todos los tipos en la misma llamada; gana la puntuación más alta. En una conversación el modelo lee cuando aporta algo: cuando las comprobaciones gratuitas han encontrado algo, cuando un tipo está a medias o cada cinco mensajes, en lugar de en cada respuesta.

De una puntuación a una regla

Primero mide: leads viene en todas las respuestas, así que un mes de tu propio tráfico te enseña qué tipos llegan y con qué puntuaciones. Después añade una regla en el editor de políticas ("The lead is", el tipo, review o block), o mándala con la llamada: "rules": {"leads": {"sales_pitch": {"review": 0.6}}}. La plantilla de formulario de contacto ya retiene la venta de servicios desde 0,60 y la rechaza desde 0,85, y retiene a quien busca empleo, el trabajo a cambio de participaciones y la falta de presupuesto desde 0,60 sin rechazarlos nunca.

Cómo se reparte el trabajo

Las comprobaciones instantáneas resuelven los casos claros en torno a un milisegundo, el modelo lee lo que depende del contexto, y tus reglas y tu equipo tienen la última palabra.

  • El contexto lo lee el modelo

    Las familias de frases resuelven las formas claras en torno a un milisegundo, en ocho idiomas. Cuando la llamada usa el modelo, lee el hilo entero y puntúa cada tipo según lo que hace tu negocio, y gana la puntuación más alta.

  • Los mensajes, no la persona

    Un tipo de lead describe lo que piden los mensajes, nunca quién es la persona. Cada respuesta mide los once tipos, y tus reglas deciden cuál actúa.

  • No se guarda nada

    No recuerda nada entre llamadas. Para leer un hilo entero, manda el hilo; lo que se guarda es el veredicto sobre su último mensaje, nunca la conversación.

Preguntas frecuentes

¿Qué tipos de lead hay?

Once: trabajo gratis a cambio de participaciones, sin presupuesto, expectativas poco realistas, consultoría gratis, alcance que no para de crecer, quien nunca se presenta, venta de servicios, propuesta de colaboración, quien busca empleo, estudiante o encuesta, y petición de soporte. Cada respuesta los mide todos y devuelve los que han puntuado.

¿Cómo se puntúa un tipo de lead?

Cada tipo son unas cuantas familias de frases. Una familia da 0,45, dos 0,70 y tres o más 0,90, y tres frases distintas de la misma familia cuentan como una más. El trabajo a cambio de participaciones necesita la participación o la falta de pago para pasar de 0,45, y la consultoría gratis necesita que falte el presupuesto.

¿Puede un tipo de lead bloquear un mensaje?

Solo si tú lo dices. Un tipo no tiene línea hasta que una regla se la da, en el editor de políticas con "The lead is" o con rules.leads en la llamada. Las reglas que van solas en una llamada actúan únicamente sobre lo que nombran; si van con una política, se aplican encima de ella.

¿Lee la conversación entera?

Con /v1/conversation, sí: cuenta todo lo que ha escrito el autor del último mensaje, y los mensajes del otro lado se dejan fuera, así que tus respuestas nunca juegan en su contra.

¿Qué aporta el modelo?

Cuando la llamada usa el modelo, lee los mensajes anteriores sabiendo quién dijo qué y puntúa cada tipo para el autor, teniendo en cuenta lo que tu política dice que hace tu negocio. Por cada tipo gana la puntuación más alta entre la suya y la de las frases, en la misma llamada. En una conversación lee cuando las comprobaciones gratuitas han encontrado algo, cuando un tipo está entre 0,45 y 0,70, o cada cinco mensajes.

¿Cómo leo los tipos de lead desde los SDK?

Los clientes de PHP, Python y JavaScript tienen leads, con cada tipo que ha puntuado, y lead(type), que devuelve 0 cuando nada apuntaba a ese tipo.

Pruébalo con tu tráfico real

2.000 créditos al mes en el plan gratuito, sin tarjeta. Suficiente para pasarle una semana de tu propio contenido y ver qué opina de él.