Ir al contenido

Gestión de Feedback

Las submissions de feedback son el recurso principal en MagicFeedback. Cada submission registra un conjunto de respuestas para una integración y producto específicos.

feedback = client.feedbacks.create({
"name": "Respuesta de encuesta de usuario",
"type": "APP",
"identity": "MAGICFORM",
"answers": [
{"key": "nps", "value": "9"},
{"key": "reason", "value": "Rápido y confiable"},
],
"integrationId": "0eb9d270-6dd7-11ef-9987-21e04f383573",
"companyId": "TU_COMPANY_ID",
"productId": "TU_PRODUCT_ID",
})
print(feedback["id"])
CampoTipoDescripción
namestringEtiqueta legible para esta submission
typestringTipo de fuente — ej. "APP", "DOCUMENT"
identitystringIdentidad del renderer — ej. "MAGICFORM"
integrationIdstringUUID de la integración a la que pertenece este feedback
companyIdstringTu identificador de empresa
productIdstringEl producto con el que se asocia este feedback

El SDK automáticamente envuelve un value de tipo string en una lista. Ambas formas son equivalentes:

{"key": "comment", "value": "Gran producto"}
{"key": "comment", "value": ["Gran producto"]}

Siempre puedes pasar una lista directamente si necesitas múltiples valores para una clave.

feedbacks = client.feedbacks.get()

Filtra los resultados con un dict estilo LoopBack (ver Consultas):

feedbacks = client.feedbacks.get({
"where": {"companyId": "TU_COMPANY_ID"},
"limit": 50,
})
feedback = client.feedbacks.get_id("feedback-uuid-aqui")

Pasa un filtro como segundo argumento para dar forma a los campos devueltos:

feedback = client.feedbacks.get_id("feedback-uuid-aqui", {"fields": {"answers": True}})
updated = client.feedbacks.update("feedback-uuid-aqui", {
"name": "Etiqueta actualizada",
})

Solo se cambian los campos que pasas; el resto permanece sin cambios.

client.feedbacks.delete("feedback-uuid-aqui")

Adjunta un archivo a una submission existente. El archivo se envía como una carga multipart.

attachment = client.feedbacks.upload_attachment(
"feedback-uuid-aqui",
file_path="/ruta/al/reporte.pdf",
)

Pasa argumentos opcionales para controlar el nombre de visualización y adjuntar metadatos adicionales:

attachment = client.feedbacks.upload_attachment(
"feedback-uuid-aqui",
file_path="/ruta/al/reporte.pdf",
filename="reporte-q3.pdf",
extra_data={"fuente": "crm", "año": 2026},
)
ParámetroTipoDescripción
feedback_idstringID del feedback al que adjuntar el archivo
file_pathstringRuta absoluta o relativa al archivo en disco
filenamestring | NoneNombre de visualización en el panel — por defecto el nombre del archivo
extra_datadict | NoneCualquier dict JSON-serializable almacenado junto al adjunto