acción

Uso

view: view_name {
  dimension: field_name {
    action:  {
      label: "Label to Appear in Action Menu"
      url: "https://example.com/posts"
      icon_url: "https://looker.com/favicon.ico"
      form_url: "https://example.com/ping/{{ value }}/form.json"
      param: {
        name: "name string"
        value: "value string"
      }
      form_param: {
        name:  "name string"
        type: textarea | string | select
        label:  "possibly-localized-string"
        option: {
          name:  "name string"
          label:  "possibly-localized-string"
        }
        required:  yes | no
        description:  "possibly-localized-string"
        default:  "string"
      }
      user_attribute_param: {
        user_attribute: user_attribute_name
        name: "name_for_json_payload"
      }
    }
  }
}
Jerarquía
action
Tipos de campos posibles
Dimensión, medida

Valor predeterminado
Ninguno

Acepta
Varios parámetros

Reglas especiales
  • Se debe poder acceder a la URL del form_url desde el servidor de Looker y debe usar HTTPS con un certificado válido.
  • Se debe poder acceder a la URL de icon_url desde el navegador del usuario.

Definición

El parámetro action crea una acción de datos que permite a los usuarios realizar tareas a nivel del campo en otras herramientas, directamente desde Looker. Por ejemplo, la acción puede hacer que se envíe un correo electrónico, establecer valores en otras aplicaciones o realizar cualquier otra acción que puedas configurar para que la ejecute un servidor receptor. El servidor receptor debe poder aceptar una solicitud POST de JSON.

Puedes definir un action para una dimensión o una métrica. Para acceder a la acción, selecciona su campo cuando estés en una página de Explorar, un Look o un panel.

Cuando defines un action, especificas el comportamiento elegido con los siguientes parámetros:

Parámetro Descripción
label Es una cadena que especifica el nombre de la acción tal como aparecerá para los usuarios en el menú de acciones.
url Es una cadena que especifica la URL para procesar la acción. Si se especifica una lista de URLs permitidas para las acciones de datos, debes agregar este valor de url a la lista de entidades permitidas. Solo se permiten las URLs que coincidan con el patrón de la lista de entidades permitidas para cualquier acción de datos. Si no hay entradas existentes, se permiten todas las URLs para las acciones de datos.
icon_url Es una cadena que especifica una URL que contiene un archivo de imagen para que los usuarios comprendan de un vistazo a dónde los dirigirá este vínculo. El valor de icon_url debe ser accesible para el navegador del usuario.
form_url Es una cadena que especifica una URL que devolverá un formulario para presentar a los usuarios. El formulario debe presentarse en formato JSON, como se describe en la sección Cómo especificar el comportamiento del formulario con form_url o form_param de esta página. Se debe poder acceder al form_url desde el servidor de Looker y debe usar HTTPS con un certificado válido.
param Pasa un valor al servidor receptor.
form_param Agrega una entrada de formulario que se mostrará para esta acción.
user_attribute_param Pasa un atributo del usuario al servidor receptor. Si usas un user_attribute_param para tu acción de datos, debes agregar el valor url de la acción de datos a la lista de entidades permitidas de URLs para acciones de datos.

Al igual que con una acción de datos, también puedes usar una acción a nivel del campo disponible en Looker Action Hub para enviar datos desde una celda específica. Consulta la sección Considera usar el Action Hub de Looker en esta página para obtener más información sobre esta opción.

Cómo pasar atributos del usuario al servidor receptor con user_attribute_param

Puedes enviar atributos del usuario al servidor receptor con el parámetro user_attribute_param. Dentro de cada user_attribute_param, especificarás los siguientes subparámetros:

Parámetro Tipo Descripción
user_attribute ID de Looker El nombre del atributo del usuario en Looker
name String Nombre del atributo tal como quieres que aparezca en la carga útil de JSON

Cómo pasar valores al servidor receptor con param

Puedes enviar datos arbitrarios en tu carga útil JSON con el parámetro param. Dentro de cada param, especificarás los siguientes subparámetros:

Parámetro Tipo Descripción
name String Nombre de un parámetro para pasar al servidor receptor
value String Valor de un parámetro para pasar al servidor receptor

No pases datos sensibles ni información privada, como credenciales de usuario, en el parámetro param. En su lugar, configura las credenciales del usuario como un atributo del usuario en la configuración del administrador y pasa esta información en el parámetro user_attribute_param.

Cómo especificar el comportamiento del formulario con form_url o form_param

Puedes crear un formulario para que los usuarios de Looker interactúen con él y, luego, enviar la entrada del formulario en tu carga útil de JSON. Si muestras un formulario, aparecerá como una superposición en la página (Explorar, Mirar o panel) en la que se activó la acción. Puedes hacerlo con el parámetro form_url o el parámetro form_param.

Si quieres que tu servidor del centro de acciones defina el diseño del formulario, usa el parámetro form_url. El parámetro form_url debe contener una URL que muestre una representación JSON del formulario, como se describe más adelante en esta página.

Si deseas definir el diseño del formulario directamente en LookML, usa el parámetro form_param.

Opciones del formulario

En ambos casos, las opciones posibles que puedes usar para definir el formulario son las siguientes:

Opción Tipo Descripción
name String Nombre del valor tal como aparecerá en la carga útil de JSON
type Tipo de entrada Es el tipo de campo de formulario que se mostrará al usuario:

  • select: Muestra una lista desplegable.
  • string: Muestra un campo de entrada de una sola línea.
  • textarea: Muestra un cuadro de entrada de texto de varias líneas.
label String Es la etiqueta de la entrada tal como aparecerá para los usuarios.
description String Es una descripción del campo que aparecerá para los usuarios.
required Booleano Especifica si el usuario debe proporcionar la opción del formulario antes de enviarlo.
default String Valor inicial del campo del formulario, si existe
option String Si eliges un type de select, define las opciones de selección aquí.

Si configuras type como select, debes especificar elementos en la lista desplegable con option. Cada option incluye los siguientes detalles:

Opción Tipo Descripción
name String Nombre del valor del formulario tal como aparecerá en tu carga útil de JSON
label String Etiqueta de la opción tal como aparecerá para los usuarios (opcional)

Cómo usar una acción de datos sin un formulario

Si no incluyes un parámetro form_url o form_param en tu definición de action, la acción de datos no incluirá un formulario. En ese caso, la acción envía una solicitud cuando un usuario la selecciona en el menú Acciones.

Después de seleccionar una acción sin formulario, el menú Acciones muestra íconos a la izquierda de la acción para indicar su estado:

  • Aparece un ícono de carga que indica que se está ejecutando la acción.

  • Aparecerá una marca de verificación que indica que se ejecutó la acción.

  • Aparece una i con un círculo, lo que indica que la acción falló.

Si no aparece ningún ícono a la izquierda de una acción, significa que no se activó.

Respuestas del servidor

Una respuesta HTTP correcta se considerará una acción exitosa.

El servidor también puede pasar algunas opciones a Looker sobre el éxito de la acción. Si la solicitud de webhook responde con JSON, Looker busca una clave looker especial en la respuesta. Se ignorará todo lo demás. Por ejemplo, en:

{
  "my_apps_business_logic": "something",
  "looker": {
    "success": true,
    "refresh_query": true
  }
}

Aquí, success se establece de forma predeterminada en true, y establecer success en false indicará en Looker que la solicitud falló. Además, refresh_query se establece de forma predeterminada en false, y si se establece en true, se volverá a ejecutar la consulta actual de Looker sin usar la caché.

También puedes responder con errores de validación para cualquier parámetro de formulario que se haya pasado:

{
  "looker": {
    "success": false,
    "validation_errors": {
      "body": "Body must be more than 10 characters long."
    }
  }
}

Aquí, validation_errors se establece de forma predeterminada en {}. Debe ser un objeto JSON en el que las claves son los nombres de los parámetros del formulario y el valor es una cadena que representa un mensaje de error para ese parámetro.

Ejemplos

Si usas el parámetro form_url (con sintaxis de Liquid en este ejemplo), todas las opciones se deben devolver en un objeto JSON. Por ejemplo:

dimension: foo {
  action: {
    label: "Send a Thing"
    url: "https://example.com/ping/\{{ value \}}"
    form_url: "https://example.com/ping/\{{ value \}}/form.json"
  }
}

El servidor debe devolver una representación JSON de un formulario que coincida con LookML:

[
  {
    "name": "title",
    "type": "select",
    "label": "desired label name",
    "description": "description text",
    "required": true,
    "default": "value string",
    "options": [
      {
        "name": "name string"
        "label": "desired label name"
      },
      {
        "name": "name string"
        "label": "desired label name"
      }
    ]
  },
  {
    "name": "title",
    "type": "textarea",
    "label": "desired label name",
    "description": "description text",
    "required": true,
    "default": "value string",
  }
]

Si usas el parámetro form_param, las opciones se usan como parámetros de LookML. Por ejemplo:

form_param: {
  name: "title"
  type: select
  label: "desired label name"
  option: {
    name: "name string"
    label: "desired label name"
  }
  required: yes
  description: "description text"
  default: "value string"
}

Considera usar el Action Hub de Looker

El parámetro action es una buena opción si aún no tienes un servidor configurado para recibir tus solicitudes de acción o si deseas implementar un caso de uso que tenga una reutilización limitada. Sin embargo, como alternativa, puedes considerar usar las acciones a nivel del campo que están disponibles en el Centro de acciones de Looker. (Asegúrate de que tu instancia cumpla con estos requisitos del Action Hub de Looker).

Además de las integraciones existentes de Action Hub de Looker, también puedes crear tu propia acción personalizada siguiendo las instrucciones de la página de documentación de Action Hub.