Lookerbot

Lookerbot lets you access all your Looker data from Slack! Super fun!

Last verified:

Visit Lookerbot

What is Lookerbot?

Lookerbot is an open-source integration tool that connects Looker's data analytics platform with Slack's messaging workspace, allowing users to access and share data directly within Slack conversations. Built using Looker's API and SDK, the bot enables everyone in a company to easily share data and answer data-driven questions instantly without leaving their existing workflow.

Key features include querying data through simple commands, automatic URL expansion for Looker content shared in Slack, custom slash commands for running saved queries, visualization support showing charts/maps/tables as images, data actions for interactive buttons in messages, scheduled data deliveries to Slack channels or direct messages, and support for filtering queries directly from Slack. The bot returns data in text format for tables, single values for single-value visualizations, and image files for charts.

Lookerbot is designed for enterprise organizations using both Looker for business intelligence and Slack for team communication. It serves data analysts, business teams, and any Slack users who need quick access to data insights. Current enterprise users of Looker include companies like Yahoo, Warby Parker, and Sony. The tool is particularly valuable for teams who want to democratize data access across their organization.

Lookerbot pricing

Pricing model: Freemium

Lookerbot itself is free and open-source (available on GitHub). However, it requires a Looker subscription to use. For a free trial of Looker, visit looker.com/free-trial. Lookerbot is built using Looker's API and SDK, so you need access to a Looker instance (version 4.12 or later). The bot deployment requires hosting on a web server capable of running Node.js applications (Heroku one-click deployment is available). Cloud storage services (Amazon S3, Microsoft Azure Storage, or Google Cloud Storage) are optional but required for displaying chart images.

Lookerbot pros

  • Brings data directly into Slack conversations without leaving workflow
  • Single command required to find data from within Slack
  • Returns answers directly into Slack conversation instantly
  • Displays data visualizations (charts, maps, tables) in Slack
  • Custom slash commands for running saved Looker queries
  • Automatic URL expansion for shared Looker content
  • Support for data actions with interactive buttons in messages
  • Scheduled deliveries of Look data to Slack channels
  • Works with public channels, private groups, and direct messages
  • Open-source with code and installation instructions on GitHub
  • Built using Looker's official API and SDK
  • Supports multiple Looker instances simultaneously
  • Free to use (only requires Looker subscription)
  • Easy Heroku one-click deployment option
  • Compatible with Amazon S3, Azure Storage, and Google Cloud Storage

Lookerbot cons

  • Requires Looker 4.12 or later version
  • Needs Node.js 6.10.3 and Yarn for deployment
  • Requires web server capable of running Node.js applications
  • Visualization images require separate cloud storage credentials
  • URL expansion not available in Slack direct messages
  • Data actions with forms are not currently supported
  • Slack deprecated API endpoints in 2021 requiring updates
  • Self-signed certificates require security compromise to accept
  • Bot user permissions determine what data all users can access
  • Data moves from Looker to Slack servers when shared

Frequently asked questions about Lookerbot

What is Lookerbot?

Lookerbot integrates Slack and Looker to put all your data at your fingertips. It allows users to bring their data directly into Slack conversations, answer questions, send alerts, and share data easily without working outside their organization's existing workflow.

How do I query data from Slack using Lookerbot?

You can query data in three ways: 1) @mention Lookerbot followed by a command (e.g., @lookerbot orders), 2) Use the slash command (e.g., /lookerbot orders), or 3) Send a direct message to Lookerbot with just the command text (e.g., orders in DM). Custom slash commands are set up during bot configuration.

What data formats does Lookerbot return?

Lookerbot returns data in three formats depending on the visualization type: Text format for table data, single value text for single value visualizations, and image files for charts/visualizations. The format matches how the data appears in Looker.

How do I deploy Lookerbot?

The quickest way is Heroku's one-click deploy button which provisions a server and configures required environment variables. Alternatively, you can manually deploy the Node.js application on any web server that can run Node.js. The bot needs to reach both your Looker instance's API and Slack's API.

What environment variables are required?

Required variables are: SLACK_API_KEY (Bot User OAuth Access Token), LOOKER_URL (your Looker instance web URL), LOOKER_API_BASE_URL (API endpoint, typically url:19999/api/4.0), LOOKER_API_CLIENT_ID, and LOOKER_API_CLIENT_SECRET. Optional variables include LOOKER_CUSTOM_COMMAND_FOLDER_ID, LOOKER_WEBHOOK_TOKEN, and SLACK_SLASH_COMMAND_TOKEN.

Can Lookerbot expand Looker URLs automatically?

Yes, Lookerbot can automatically expand URLs for Looker content shared in Slack. You must add Lookerbot to the Slack channel and set the LOOKER_SLACKBOT_EXPAND_URLS environment variable to true. When you paste a URL from an Explore or Look, Lookerbot will show an image of visualizations or display data tables as text. This does not work in direct messages due to Slack's legacy unfurling API limitations.

How do I schedule data deliveries to Slack?

Click Schedule on a Look in Looker, set Destination to Webhook, leave Format as default, and enter your bot server's webhook URL. Use formats like /slack/post/channel/my-channel-name for public channels, /slack/post/group/my-channel-name for private groups, or /slack/post/dm/myusername for direct messages. The bot must be invited to channels it posts to.

Can I connect Lookerbot to multiple Looker instances?

Yes, by configuring the LOOKERS environment variable as a JSON array of JSON objects, each representing a Looker instance with url, apiBaseUrl, clientId, clientSecret, and optional customCommandFolderId and webhookToken. When LOOKERS is set, the individual LOOKER_URL, LOOKER_API_BASE_URL, and related variables are ignored.

What are the security considerations for Lookerbot?

Everyone who can talk to Lookerbot has the permissions of the API user the bot runs as, so create a dedicated API user with appropriate permissions. Remember that data moves into Slack and is hosted there when the bot answers questions. Slack retains chat history on their servers. For visualizations, images are uploaded to cloud storage with long randomly-generated URLs that anyone with the URL can access.

How do I set up custom slash commands?

Go to api.slack.com/apps, find your app, choose Slash Commands, and click Create New Command. Create a command name (e.g., /looker), set the URL to your bot server's /slack/receive endpoint (e.g., https://example.com/slack/receive), reinstall the app, and grab the verification token from Basic Information to set as SLACK_SLASH_COMMAND_TOKEN environment variable.

Categories

Use cases

Browse all AI tools on NeedAnAI