Jae Wilson @DataCrew

Blog

103 articles

Domo

Downstream Lineage in Domo: Why It Matters and How We Made It Programmable

After 9 months of use, our Snowflake engineers declared Domo 'very expensive' — multiple queries pulling the same fact tables, no way to know what could be consolidated. Here's why lineage is table stakes, how we wired the APIs, and why the technical exercise is only the beginning.

Jun 5, 2026

tutorial

How to Trigger App Studio Report Builder Distributions from Domo Workflows

Trey Hoffman asked in the Domo User Group whether you can trigger a Report Builder distribution from Workflows. There's no tile for it — but if you know how to decompose the problem, the solution is obvious. Here's the framework and the implementation.

Jun 4, 2026

webinar

From Chatbot to Intelligence Network — with Marcus Wilkins (InformData)

Why do chatbots feel bad? Marcus Wilkins (InformData, Lead Data Scientist) built DAISY — the most visible agentic AI chatbot in the Domo ecosystem — and evolved it from a simple Q&A tool into a self-reviewing intelligence network. Jae Wilson brings the context engineering perspective.

May 27, 2026

YouTube

Tutorial: Automate Your Customer Outreach Pipeline with Claude Code

I hate fishing for work. So I built a runbook that automates my entire pre-sales outreach pipeline — discovering prospects, researching companies, creating dossiers, and syncing contacts. Here's how.

May 6, 2026

newsletter

DataCrew Digest #1 — AI in Domo, MCP Servers, and What I've Been Building

First issue. If you're a Domo practitioner who wants to stay sharp, this one's for you.

May 1, 2026

YouTube

Tutorial: Automate Your Daily SOPs with Claude Code

Stop redoing the same multi-step tasks every week. Here's how to break them into scripts, teach Claude your voice, and stitch it all together with runbooks.

Apr 30, 2026

webinar

MCPs vs Skills — The Debate (with Jon Tiritilli, Domo Principal Engineer)

Live debate on MCPs vs Skills with Jon Tiritilli (Principal Engineer, Domo) and community members. Security, context rot, authentication, and when each approach actually makes sense.

Apr 29, 2026

YouTube

Skills and Runbooks: AI for People Who Don't Think of Themselves as Developers

You don't need to be a developer to get value from AI agents. Skills and runbooks are just markdown documents — write down what you know, and your agent handles the rest.

Apr 23, 2026

YouTube

Stop QA-ing in Prod: Use Domo Publish for Dev/Prod Separation

If you're on Domo's consumption model and not using multiple instances with Publish, you're leaving money on the table. Here's how to separate dev from prod — and automate the cleanup.

Apr 23, 2026

YouTube

Trace Domo Publish Lineage: Know What's Production Before You Delete It

In the previous video I made the case for using Domo Publish to separate dev from prod. Here's how I built the tooling to actually enforce that policy — publish lineage reports, tag-based scheduling, and the architecture behind it.

Apr 23, 2026

YouTube

Automating YouTube Metadata with Claude Code Skills and Runbooks

The worst part of posting a video is the metadata. Here's how to automate title and description generation using Claude Code skills, runbooks, and the YouTube Data API.

Apr 15, 2026

YouTube

Back to Freelancing: DataCrew Updates, Stripe MCP & What's Coming

After four years building a Domo Center of Excellence at a Fortune 500, Jae Wilson is back to independent consulting — and here's what he's been building.

Apr 15, 2026

webinar

Building Apps with AI: Best Practices w/ Jon Tiritilli

Jon Tiritilli walks through how to use Claude Code skills and Domo's developer tooling to build and publish Domo apps faster — and why the skill/context distinction matters more than the model.

Apr 15, 2026

Domo

How to Build an MCP Server with Domo

Domo exposes a powerful API — here's how to wrap it in an MCP server so your AI agents can query datasets, refresh dataflows, and publish cards without leaving your terminal.

Apr 9, 2026

YouTube

The right way to set up Domo Workflows - Infrastructure as Code + GitHub Actions

Stop running Domo config scripts blindly every day — use drift detection and GitHub PRs to review every change before it touches production.

Apr 7, 2026

YouTube

Automating a Domo Digest in Slack with GitHub Actions

Build a GitHub Actions workflow that scrapes Domo's Knowledge Base and Community Forums daily and posts a formatted digest to a Slack canvas — no server required.

Apr 5, 2026

YouTube

Implement Sudo with Domo CodeEngine (automate actions across multiple instances using Python)

A Python pattern for Domo CodeEngine that centralizes authentication so you can automate actions across multiple Domo instances without rewriting credential logic for every function.

Oct 8, 2025

YouTube

Build an MCP Server using DomoLibrary, FastMCP and Domolibrary

Learn how to turn a Postman collection of Domo API endpoints into auto-generated Python functions and expose them as an MCP server with FastMCP and DomoLibrary.

May 19, 2025

YouTube

From Postman Collection to Python API Client with Domo

Stop writing Postman-to-Python wrappers by hand — this code generator reads your Postman collection JSON and emits typed, callable Python functions for every endpoint automatically.

Apr 8, 2025

YouTube

Convert Postman Collections into Functions using a little AI, dataclasses and a tone of Python

Instead of asking an LLM to guess your API's behavior, feed it your Postman collection and your own code samples — and watch it generate a full Python function library in your exact style.

Apr 8, 2025

YouTube

Generating Mermaid Diagrams of Domo Processes using DomoKbs

How to load Mermaid.js docs into a Supabase RAG pipeline so a Pydantic AI agent can generate accurate, renderable flowchart diagrams from plain-language process descriptions.

Apr 5, 2025

YouTube

HelpdeskMafia - a Domo AI powered Chatbot built in Python hosted on Replit

Build a 24/7 RAG-powered Slack chatbot using Domo AI Workflows for vector search and Replit for zero-ops cloud hosting — no server required.

Mar 29, 2025

YouTube

NEW FEATURE - Update all Magic ETLs to use Canvas Grids using Python and DomoLibrary

Use Python and DomoLibrary to bulk-enable canvas grid lines across every Magic ETL in your Domo instance — no clicking required.

Mar 27, 2025

YouTube

Update Domo Dataset Schema via Jupyter Notebooks using domolibrary

Use domolibrary and a Jupyter Notebook to programmatically update Domo dataset column descriptions at scale — no clicking required.

Mar 25, 2025

YouTube

Domo - Month over Month Date Comparison using ETL - Old School Hack

Before Domo had Variables or FIXED functions, analysts used an ETL Union trick to embed shifted date copies into a dataset — here's exactly how it worked and why.

Mar 3, 2025

YouTube

use Domo AI to write code (Python Chatbot - Part 4)

LLMs don't know your Domo SDK — but you can make them write code that looks like yours by feeding them examples of your own functions at prompt time.

Feb 9, 2025

YouTube

Domo Automation with an LLM - Chatbot Part 5

Generating LLM descriptions for Domo ETL dataflows is the easy part — this tutorial shows how to extract the right inputs, keep the LLM call narrow, and write results back at scale.

Feb 9, 2025

YouTube

Building a Chatbot in Domo AI (Part 1) - that speaks like a pirate

Learn the auth, message history, and endpoint handler pattern needed to build a stateful, personality-driven chatbot on Domo's text generation API.

Feb 8, 2025

YouTube

Build chatbots in Domo AI (Part 2) - Setting up an Endpoint (FAIL)

Domo's text generation API works — but the Endpoint class abstraction built on top of it doesn't, and understanding exactly why saves you from hitting the same wall.

Feb 8, 2025

YouTube

Automagically Describe a Domo Magic ETL Dataflow using Domo AI (Part 3)

Wire the Domo Dataflow API to an LLM to auto-generate plain-English descriptions of your Magic ETL transformations — no manual documentation required.

Feb 8, 2025

YouTube

DomoLibrary_Extensions - Google Drive APIs Class - using Inheritance

Learn how to wrap Google's API client library using Python inheritance so every tool your team builds shares the same authentication pattern and interface.

Jan 15, 2025

YouTube

Sync Google Drive and Google Docs to your computer and split tabs into Markdown Files

Google Drive's export API can't split tabs — this Python library uses BeautifulSoup to do it for you, turning a multi-tab Google Doc into individual Markdown files.

Jan 15, 2025

YouTube

Domo CodeEngine functions - adding graceful error handling

Domo CodeEngine functions fail silently by default — learn how to add input validation and structured error handling so failures surface something actually useful.

Nov 29, 2024

YouTube

Using Inheritance + methods in Python to reduce code duplication

When two SSO config classes share the same fields and boilerplate, inheritance pulls the duplication into one parent — here's exactly how that refactor works in Python.

Nov 15, 2024

YouTube

Generate a dataset of support tickets -- Webscraping Domo using Selenium + Python tutorial

Domo's support portal hides comment history behind a login wall with no API — here's how to scrape it in ~30 lines of Python and route the data to where your team actually works.

Jun 14, 2024

YouTube

Domo + Row Level PDP (API Requests) and Columnar PDP Beta Sneak Peek

Domo's 'All Rows' PDP entry isn't just a UI label — it's a real policy object with an ID you can target directly via the Data Control API.

Jun 11, 2024

YouTube

Domo + CodeEngine + Python - Error handling

Returning False and raising an exception are not the same thing — here's how to build Domo CodeEngine functions that fail loudly, carry useful context, and stop cascading automation failures before they start.

Jun 4, 2024

YouTube

Domo + CodeEngine - getting started (adding impersonation)

CodeEngine is the only tool in Domo that lets you impersonate an admin user without exposing credentials — here's how to wire it up in Python.

Jun 3, 2024

YouTube

Build a Documentation tool in Google Drive with autogenerated documents and a table of contents

Build a Google Drive documentation system that autogenerates documents and keeps a table of contents current — no manual updates required.

May 3, 2024

YouTube

Use Git Subtree Filtering to pull a subfolder out of a GitHub repository (and still receive updates)

Git subtree filtering lets you extract a single subfolder into its own repository and still pull upstream changes — here's the three-branch strategy that makes it work.

May 2, 2024

YouTube

My first Domo CodeEngine function -- handling loops and pagination (Part 2)

Domo APIs cap responses at 50 records by default — here's how to build a reusable CodeEngine looper that handles both URL and body pagination patterns so you never silently miss data.

Apr 26, 2024

YouTube

My first Domo CodeEngine function -- handling API authentication with Accounts (Part 1)

Domo CodeEngine silently swallows async Python and stdout — here's what actually works and why authentication through Accounts is the right pattern.

Apr 25, 2024

YouTube

Domo+Datacrew || What's new with MagicETL w Andrea Henderson (Spring 2024)

Domo's Spring 2024 MagicETL updates — SQL-in-Magic, JOIN improvements, and UPSERT — explained with real guidance on row limits, Adrenaline tradeoffs, and debugging.

Apr 25, 2024

YouTube

Domo - Personalization with Domo Bricks (DDX)

Use `domo.env` variables in a DDX Brick to serve each user a personalized dashboard navigation page driven entirely by a dataset — no hardcoding required.

Apr 23, 2024

YouTube

Domo + Python & domolibrary - sync a connector with GitHub via API

Domo separates dataset schema from connector configuration — and once you understand that split, you can drive connector settings from GitHub using Python and the Domo Stream API.

Apr 18, 2024

YouTube

Domo+DataCrew - Unlocking Automation with Domo Workflows

Domo Workflows can replace manual approval chains and email handoffs with automated, trackable processes built directly inside your existing Domo environment.

Apr 18, 2024

YouTube

Domo - Extract CodeEngine Functions to upload to GitHub

Extract every Domo CodeEngine package and function to version-controllable files using domolibrary — and get a window into which APIs Domo itself is calling internally.

Apr 4, 2024

YouTube

Domo - Extract CodeEngine Functions to upload to GitHub part 2

A practical regex-based approach to extracting API call patterns from Domo CodeEngine functions and versioning them in GitHub.

Apr 4, 2024

YouTube

Python - building configurable scripts with a factory process

Stop rewriting integration chains: a factory pattern that lets a config document drive multi-step Python automation without touching your core classes.

Mar 21, 2024

YouTube

DomoLibrary + Python || create Custom Attributes and Users in Domo via API

If your Domo user attributes need to stay in sync with a dataset — franchise names, store numbers, training completions — here's the Python pattern to automate it via API.

Jan 5, 2024

YouTube

Domo Governance with Python | Delete duplicate Accouns

Automate Domo group deduplication with Python and DomoLibrary — one script replaces a recurring manual cleanup task.

Dec 18, 2023

YouTube

DomoStats + Python - How much do parent tiles impact tile Performance?

Parent tiles in Magic ETL can silently tank dataflow performance — here's how to use Python and DomoLibrary to expose exactly which tile is the real culprit.

Dec 11, 2023

YouTube

Build a DomoStats connector with Python + DomoLibrary and Jupyter

Learn how to hit Domo's undocumented APIs safely with DomoLibrary and Python to build a custom dataset exposing Magic ETL action-type metadata.

Dec 4, 2023

YouTube

Query Domo Jupyter using Python 1 of 4 || extending dataclasses using inheritance and composition

Domo Jupyter workspaces use a different auth mechanism than standard Domo APIs — here's how to reverse-engineer it and model the difference cleanly in Python.

Sep 14, 2023

YouTube

Query Domo Jupyter using Python 4 of 4 || building class functions

Learn how to build a two-layer Python class hierarchy that normalizes Domo's inconsistent API field names and handles authentication once so every script stays clean.

Sep 14, 2023

YouTube

Query Domo Jupyter using Python 2 of 4 || constructing route functions

Learn how to structure reusable Python route functions that wrap Domo API endpoints cleanly — so your Jupyter notebooks stay readable and your request logic lives in one place.

Sep 14, 2023

YouTube

Query Domo Jupyter using Python 3 of 4 || recursive functions

Domo Jupyter's API only returns top-level content — here's how to build a recursive Python wrapper that traverses the full folder tree without touching your base route.

Sep 14, 2023

YouTube

Intermediate Python Code Review - Domo Data Dictionary API

Domo's Wrangle API enables automated Data Dictionaries — here's how to refactor the Python that drives it from notebook prototype to production-ready code.

Aug 16, 2023

YouTube

Domo Sandbox + Publish || manage code promotion, QA workflows, and content distribution

Linked Repositories let you merge new DEV components into live PROD Domo pipelines without redeploying from scratch — here's how the pattern works.

Jun 15, 2023

YouTube

Domo Sandbox - for implementing Version Control and DEV/PROD workflows

Domo Sandbox brings Git-style version control to your Domo environment — here's how to use Linked Repositories to build a real DEV/PROD promotion workflow without breaking production.

Jun 9, 2023

YouTube

Domo + DDX Bricks || Landing Page Navigation based on User Page Access

Build a DDX Brick landing page that reads each user's actual Domo page permissions at runtime and renders only the navigation links they can access.

May 19, 2023

Domo

Build a DDX Brick for a User Landing Page

Here's a project I worked on for a customer to build a DDX Brick that acts as a Landing Page that only shows pages the user has access to.

May 18, 2023

YouTube

Domo IDEA Exchange on Dashboard Design

Four Domo practitioners share their frameworks for designing dashboards that actually get used — from user interviews and the 5 Whys to color hierarchy and KPI formatting.

May 17, 2023

webinar

Domo IDEA Exchange Conversations - Foster your Domo Community (Session Notes)

- Building community IS a job!

Apr 14, 2023

YouTube

Domopalooza 2023 + Python || Automate Dataset Tagging

Use Python and the open-source domolibrary to bulk-apply dataset tags in Domo programmatically — no UI clicking required.

Apr 4, 2023

Domo

Things I heard at Domopalooza 2023

Domo hinted at unveiling of a ton of new features at Domopalooza 23.  Here are some of my thoughts as well as resources I've coalesced during the event.

Apr 3, 2023

Domo

Window Functions in Domo

Ultimate Guide to Window FunctionsNote:  in mid 2021, Domo silently made changes under the covers to window functions so that they would not allow you to use calculated row-level columns in the OVER()…

Dec 12, 2022

Domo

How does UPSERT work

Courtesy of Gordon P in the Dojo Community

Dec 8, 2022

webinar

[Webinar Recording] 🎥 on Domo Governance Toolkit with Karl Altern

🎉Thank you to everyone who attended.  This webinar was hosted on 11/16/2022 by the DataCrew team in an effort to bring more Governance Toolkit awareness to the Domo Community.

Nov 26, 2022

webinar

[Webinar Recording] - On DDX Bricks with Noah Finberg & Elliott Leonard

🎉Thank you to everyone who attended.  This webinar was hosted on 11/2/2022 by the DataCrew team in an effort to bring more DDX Bricks awareness to the Domo Community.

Nov 2, 2022

YouTube

[Advanced Video Tutorial] Manage Credentials in Domo Jupyter Notebooks with Accounts Integration and Python DataClasses

Printing and storing credentials in plain text is a big faux pas in the developer world.  Domo has new functionality that allows us to access the Accounts Object within Jupyter Notebooks (kb link).

Oct 21, 2022

YouTube

🧪🚀 Basic Forecasting in Magic ETL 🚀🧪

Why do we do Forecasting?  To predict the future.

Oct 3, 2022

Domo

Cool Stuff Digest 5/23

Python Article I wish I'd read before I started learning to program.

May 24, 2022

Domo

Hashing and Encrypting Data in Domo / Columnar PDP [as of 5/5/2022]

Based on encryption as described here:

May 13, 2022

Domo

Domo Customer Interviews

I'll try to keep this up to date with customer interviews related to the Domo platform.

Oct 28, 2021

Domo

Cool Stuff Digest 10/11/21 - Making Data More Discoverable

Links to slides from Video

Oct 11, 2021

Domo

9/20/21 - Cool Stuff Digest

In the May 24 Cool Stuff Digest, I posed the question of whether Kimball's Dimensional Model was falling out of date.  I mean, he wrote the first drafts of his book back in the 70s and 80s before colu…

Sep 20, 2021

Domo

Cool Stuff Digest 6/21

Domo quietly expanded the list of available DomoStats datasets.  It's unclear to me if this is a Beta Feature or a Feature Switch, contact your CSM.

Jun 23, 2021

Domo

Cool Stuff Digest 6/14

ARTICLE:  How to Create a Thriving Data Viz Culture"Promote the importance of dataviz, when it bridges design, communication, and data science."

Jun 14, 2021

Domo

A Burrito Bar of Services

Not every consulting engagement has to be a Domo-styled "Momentum" implementation.

Jun 2, 2021

Domo

💡 Becoming a Better Consultant 📆 May 25 & Jun 1, 2021

9AM - 10AM MST - May 25 & Jun 1

Jun 2, 2021

Domo

5/31 Cool Stuff Digest

This week I'm focused on Data Governance and Security in Domo so I have a handful of articles I'm working on updating and expanding.

Jun 1, 2021

Domo

Data Governance Tools & Program Best Practices

Domo Governance and Stats datasets

Jun 1, 2021

Domo

5/24 - Cool Stuff Digest

1. In the era of GCP, Azure, and Datalake infrastructure, processing power has trivialized the performance benefits Ralph Kimball laid out in his Data Warehouse Toolkit.

May 25, 2021

Domo

BC Template // Metric Mapping Template

I am not married to HOW you document your metrics so much as that you think and define what you need/want in a tangible way that can be converted into a data model.

May 19, 2021

Domo

5/17 - Cool Stuff Digest

Current Release Notes, New Product Features, and Domo Status so you know if there's an outage.

May 18, 2021

Domo

Create a Culture of Learning

The author posits that reading one hour a day is the key to becoming a millionaire.

May 18, 2021

Domo

Onboarding New Hires // Domo Platform Training

Each consultant's answer to this question will change over time, but it's important to frequently revist, explore and expand our understanding what the platform offers the client

May 18, 2021

Domo

Domo TC // Data Pipeline Best Practices // SAG Guidelines

The SAG aims to drive strategies that appropriately leverage each component of Domo’s architecture to help solve the unique business problems facing Domo’s customers.

May 17, 2021

Domo

How to describe a Problem // Consulting vs. Support

When asking for help (from support@domo.com, from a fellow consultant, or in any technical community), be aware of the distinction between asking for help and asking for consultation.

May 17, 2021

YouTube

Integration Cloud || Connector Selection Flowchart

Andy Beier, VP of Domo Integration Cloud shares some hidden gems and under-utilized features in the Connector framework

May 17, 2021

Domo

Build a Custom Connector

Read the full article.

May 14, 2021

Domo

CSM - Plan your Domo Rollout

"You only get one shot to make a good impression."  We heard it from our mothers, and it still holds true as we deploy new initiatives into our user base.  Join our open Q&A after we review some of th…

May 14, 2021

Domo

DEVELOPER // Domo SDKs

The SDK helps developers create custom data pipelines, automation utilities like PDP management, user creation, connector management & controlling the mobile home page. Think of it kind of like the pl…

May 14, 2021

Domo

Domo API // Export to S3

Export a dataset to an S3 bucket.

May 14, 2021

Domo

DOMO TC // How to Structure your Data Center

"How do I scale my Domo implementation and not duplicate the ETL in my Data Warehouse?"  Let's discuss.

May 14, 2021

Domo

Full Authentication with Domo APIs

send a POST to https://{your-instance}.domo.com/api/content/v2/authentication

May 14, 2021

Domo

7-ish Lessons I Learned as a Freelancer

This is my 6th year as a freelancer (2x with Domo clients and partners, and 4x with Jet Reports) and my 10th year as a technical consultant.  It's been one heck of a journey as I've seen projects and…

May 13, 2021

Domo

PRODUCT DOCUMENTATION -- Supported Functions in Adrenaline Dataflows (Views and Beast Modes)

Note this is not a comprehensive list nor is it 'official'.

May 13, 2021

Domo

A few tips for new consultants

- divide the workday into 2-hour chunks.  Fill your calendar the preceeding week into those chunks to avoid context switching.  (context switching is forcing your brain to remember the state of a prev…

May 12, 2021

Domo

DOMO BC - Card Building - Checklist Pt 1

- Box Plots and Histograms have a limit of 100,000 rows of data. Other chart types have a limit of 25,000 rows (although the charting engine may limit the data further depending on how many series are…

May 12, 2021

Domo

How To Use Create-React-App + Domo proxy

Sample Tutorial by Justin Pumford  // Github Repo

May 12, 2021

Domo

TUTORIAL -- Domo + MySQL 5.6 - Removing non alphanumeric characters from strings

Sometimes when you upload data to Domo the space, new line, or carriage return comes in 'weird' making them difficult to excise from your data

May 11, 2021