¿Cómo otorgar insignias usando Automatización?

lo siento, soy yo de nuevo :slight_smile:

Mencionaste que el plugin de Automatización puede ayudar a otorgar insignias. ¿Quizás tengas alguna pista sobre cómo hacerlo? No encuentro nada relacionado en el menú desplegable:

1 me gusta

Mirando el commit, parece que debería estar disponible para los scripts send_pms y zapier_webhook:

Este disparador necesita un badge como campo obligatorio y acepta un campo opcional only_on_first_grant. Actualmente es utilizable para: scripts send_pms y zapier_webhook.

3 Me gusta

Lo siento, puede que no esté muy claro, así que déjame explicarlo.

Actualmente solo tenemos un disparador para la insignia concedida, lo que significa que podemos ejecutar scripts cuando a un usuario se le otorga una insignia. Pero no tenemos exactamente lo que pides actualmente, un script para otorgar una insignia que se activaría en algún evento (¿unirse a un grupo específico?). Como se explicó, nuestra mejor solución hasta ahora es Creating triggered custom badge queries

4 Me gusta

¡Muchas gracias por tu ayuda!

Espero de verdad que logremos configurar una API para otorgar una insignia cada vez que un usuario publique su primer post :pray:t2:

¡Gracias!

¡Esto es muy útil!

Hola Helga,

Si quieres otorgar una insignia automáticamente, la mejor manera de hacerlo es a través de la consulta SQL para la insignia.
Esto se puede encontrar en admin->insignias

Luego, desplázate hacia abajo para encontrar la consulta SQL.

Si buscas en meta.discourse.org, es posible que tengas suerte y encuentres que alguien ya ha escrito la consulta que buscas.

Mi consulta favorita otorga una insignia cuando alguien se une a un grupo. El siguiente ejemplo otorga la insignia dentro de las 24 horas posteriores a que la persona se una al grupo “discourse-admin”.

select user_id, created_at granted_at, NULL post_id
from group_users
where group_id = (
  select g.id from groups g where g.name = 'discourse-admin'
)

Utilizo la siguiente configuración con la consulta para la insignia.

Para eso necesitarías habilitar las insignias SQL personalizadas, lo cual no está disponible para todos dependiendo de su alojamiento:

Aunque usar la API también se sugiere como una alternativa.

Vaya, no sabía eso. ¡Gracias por el consejo @JammyDodger!

Supongo que también sería posible obtener el resultado de una consulta SQL del plugin Data Explorer y luego usar la API para otorgar la insignia.

2 Me gusta