Hola a todos,
Estoy intentando crear una automatización personalizada que, cuando una consulta se marca como solución/resuelto, el creador del tema reciba un mensaje privado (o, alternativamente, se cree una nueva respuesta en el hilo con un mensaje predefinido; en ambos casos, sería una encuesta).
Necesita ser una automatización personalizada, ya que el script “enviar mensajes privados” disponible actualmente en el complemento de automatización envía los mensajes privados a quien haya enviado la respuesta que se marcó como solución/resuelto (y no a la persona que creó el tema, como se pretende en mi caso de uso).
A continuación, se muestra el script que he creado para intentar publicar una nueva respuesta en el tema una vez que se marca una respuesta como solución (en el siguiente ejemplo, no envío la encuesta como respuesta, solo doy la libertad al administrador de elegir qué se devolverá o dejarlo como predeterminado):
# frozen_string_literal: true
DiscourseAutomation::Scriptable.add(DiscourseAutomation::Scripts::REPLY_ON_SOLUTION) do
field :reply_text, component: :text
# field :answering_user, component: :user
field :once, component: :boolean
version 1
triggerables %i[:first_accepted_solution] if defined?(DiscourseSolved)
placeholder :sender_username
placeholder :word
script do |context, fields, automation|
topic = context["topic"]
# user = context["user"]
reply_text = fields.dig("reply_text", "value")
# Publicar una respuesta en el tema donde se marcó una solución
PostCreator.create!(
Discourse.system_user,
topic_id: topic.id,
raw: reply_text || "¡Se ha marcado una solución para este tema!",
)
end
end
Pero no estoy seguro de si debería ser PostCreator.create!, PostCreator.reply, o quizás algo más. Lo que me lleva a una pregunta:
- ¿Hay algún lugar donde se documenten las palabras clave que se deben usar al crear un script de automatización personalizado?
Basado en la automatización anterior, una vez que la activo marcando una respuesta como solución, después de 1 segundo, recibo un mensaje emergente con un mensaje de error interno del servidor 500 en la pantalla.
- ¿Me falta algo? Mi implementación se realizó utilizando devcontainers, en mi máquina local para fines de prueba de desarrollo.
- ¿Qué es necesario hacer, después de crear el script personalizado? ¿Quizás me falta algo en esta fase? ¿O tal vez es un problema en el script en sí?
- ¿Está documentado en algún lugar los pasos a seguir después de que su script esté listo? Por ejemplo: ¿qué archivos deben modificarse para que todo funcione sin problemas? (Descubrí por las malas que necesitaba cambiar el
client.en.ymlpara que el nombre y la descripción correctos aparecieran en la lista de automatización).
Planeo intentarlo, basándome en el script incorporado de enviar mensajes privados, para cambiar mi script y que en lugar de crear una respuesta, envíe mensajes privados, pero no estoy seguro de lo siguiente:
- ¿Cómo etiquetaría a la persona que creó el tema y no a la que se le marcó la respuesta como solución?
¡Muchas gracias de antemano por cualquier indicación y ayuda!