npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@ryanmakes/expressionbuilder_pptb

v1.2.1

Published

Power Automate Trigger And Array Filter Builder, plus JSON references for action and trigger outputs

Readme

Power Automate Expression Builder

Version: 1.1.1 · License: BSD-3-Clause · Maintainer: Ryan Rettinger

Build Power Automate Trigger Condition and Filter array advanced-mode expressions visually, inside the Power Platform Toolbox — instead of hand-writing @and(...) / @or(...) predicates and discovering the syntax errors at runtime.

The Expression Builder tool: field toolbox on the left, the AND/OR condition builder in the centre, live diagnostics on the right, and the generated Power Automate expression at the bottom.

Nested AND/OR groups, in the Toolbox dark theme:

A nested OR group inside a top-level AND group, in dark mode, with the combined expression in the preview panel.

No Dataverse connection? Import a field schema as Field JSON, a sample payload, JSON Schema, or CSV:

The Import field schema dialog, with tabs for Field JSON, Sample, Schema, and CSV.

What It Does

  • Visual condition composer — nested AND/OR groups and rules, reorderable by drag handle or keyboard-accessible up/down buttons.
  • Live expression preview — the generated Power Automate expression updates as you build, ready to copy.
  • Dataverse field discovery — connect to a table and the tool pulls its columns, types, and choice option sets straight from the connected environment.
  • Schema import — load fields from CSV, JSON, or JSON Schema when you have no live connection.
  • Field profiles — save a field set and reload it in a later session.
  • Real-time diagnostics — type mismatches, unknown fields, and unsupported operators are flagged before you paste into a flow.
  • Two expression modes — Trigger Condition (triggerBody()) and Filter array (item()).
  • JSON reference builder — paste an action or trigger output from a flow run, select any value in a tree, and copy a correctly rooted reference such as outputs('Get_items')?['body']?['value'][0]?['Title'], bare or as @{…} for text.

Install

  1. Open Power Platform Toolbox (host API 1.0.17 or later — see the features.minAPI manifest field).
  2. Go to the Marketplace, search for Expression Builder, and install it.
  3. Open the tool from the tool list. It runs immediately — no configuration, no sign-in of its own.

To use Dataverse field discovery, select an environment connection in the Toolbox before opening the tool. Every other feature (manual fields, schema import, sample fields) works with no connection at all.

Run — Your First Expression

  1. Load fields — click Connect Table to pull them from Dataverse, Import a schema to paste CSV/JSON/JSON Schema, Add a field manually, or Load sample fields to try it out.
  2. Pick a mode — Trigger condition or Filter array in the header.
  3. Add rules — click a field in the Toolbox to add a rule, then choose an operator and a value. The value editor matches the field type (string, number, boolean, dateTime, choice).
  4. Nest logic — + Group adds a nested AND/OR group; drag the grip handle or use the up/down buttons to reorder.
  5. Check diagnostics — the Details pane confirms the expression is valid or explains what is wrong.
  6. Copy the expression into your flow's trigger condition or Filter array box. Export saves the whole document as JSON; Import restores it later.

Permissions & External Connections

  • cspExceptions: none. The tool declares no CSP exceptions and makes no requests to any external domain. It has no telemetry, no analytics, and no backend of its own.
  • Dataverse access is performed entirely through the host's dataverseAPI, scoped to the environment connection you select in the Toolbox. The tool reads table and attribute metadata only — it never reads, writes, or deletes records.
  • Storage is limited to the host's settings API (saved field profiles and UI preferences).
  • Pasted JSON in the JSON reference builder is processed locally and is not uploaded or saved by this feature. It is never written to the host settings API, and it is gone when the tool reloads.

Theme & Accessibility

The tool follows the Power Platform Toolbox app theme automatically — light, dark, and high contrast — via the host getTheme() / onThemeChanged() APIs. No manual configuration. Reordering, field selection, and every dialog are reachable by keyboard.

Support & Maintenance

Building From Source

Requires Node 24.17.0 on the 24.x LTS line, matching the workspace engines fields and the root-owned Vite 8 / @vitejs/plugin-react 6 toolchain. If you use nvm, the repo root includes .nvmrc.

nvm use
npm install          # from the repo root
npm run dev:pptb     # run the PPTB host locally
npm run build:pptb   # emit the PPTB package into apps/pptb/dist

The app workspace inherits Vite, TypeScript, and the React plugin from the repo root — do not add duplicate toolchain entries to apps/pptb.

Theme edits belong in packages/builder-ui/src/theme/workbenchTokens.ts; fluentTheme.ts only mirrors that runtime source for compatibility exports. Rebuild with npm run build:pptb before loading the package so dist includes the latest theme output.

Package layout:

packages/engine:      pure TypeScript expression formatting and diagnostics
packages/platform:    PPTB and web platform adapters
packages/builder-ui:  shared Fluent UI v9 composer
apps/pptb:            Power Platform Toolbox bootstrap

Verification

npm run lint
npm run typecheck
npm test
npm run test:e2e

Docs