Manifest reference

More details about attributes inside manifest.json

The manifest.json is how Pipefy learns about your app: what it's called, where to load it from, and which features it adds to the product. You host it yourself, and give Pipefy its URL when you register the app.

Pipefy re-reads the manifest when your app loads, so changing it does not require re-registering.

Sample

This is the manifest from the HelloPipefy sample app:

{
  "name": "HelloPipefy",
  "short_description": "A sample app demonstrating how to customize Pipefy components.",
  "description": "HelloPipefy is a beginner-friendly sample app showing how to extend Pipefy with React — pipe views, card tabs, card buttons, dropdowns, pipe buttons, modals and sidebars. \n **This is a sample app.**",
  "icon": "./pfy.png",
  "author": "Pipefy, Inc.",
  "init_url": "./",
  "screenshots": ["./screenshots/card-tab.png"],
  "features": [
    "pipe-buttons",
    "card-buttons",
    "card-badges",
    "card-tab"
  ]
}

Properties

PropertyRequiredDescription
nameYesApp name, shown wherever the app appears
init_urlYesPath to your HTML page that calls PipefyApp.initCall(). See resolution below.
featuresYesWhich features this app uses. An app with an empty list has nowhere to render.
short_descriptionRecommendedOne line, shown in the app list. Keep it to roughly a sentence — long values are truncated in the listing.
descriptionRecommendedThe long description shown on the app's own page. Supports basic Markdown and \n line breaks.
iconRecommendedYour app's icon. SVG preferred; PNG works. Square images render best.
authorRecommendedYour name or company
screenshotsOptionalArray of image paths shown on the app's page

features accepts any combination of:

FeatureWhere it appears
card-badgesIndicators on cards in the board
card-buttonsA button on an open card
card-tabA tab inside an open card
pipe-buttonsA button on the pipe header
pipe-viewA full-width view replacing the Kanban board

Click here to learn more about features

How paths are resolved

init_url, icon and screenshots are resolved relative to the manifest's own URL. If your manifest is at https://my-app.example.com/manifest.json, then:

ValueResolves to
"init_url": "./"https://my-app.example.com/
"init_url": "./index.html"https://my-app.example.com/index.html
"icon": "./pfy.png"https://my-app.example.com/pfy.png

Absolute URLs also work for icon and screenshots, if you serve your assets from a CDN on another host:

"icon": "https://cdn.example.com/my-app/icon.svg"

The same relative-path rule applies inside your app: the icon on a button, and the url on a card tab or pipe view, resolve against your init_url.

⚠️

Everything must be served over HTTPS

Pipefy loads your app in an iframe on an HTTPS page, so the manifest and every asset it points at must be HTTPS too. Mixed content is blocked by the browser, and shows up as an app that silently fails to load.

Requirements checklist

Before registering your app, confirm:

  • The manifest is reachable over HTTPS and returns application/json.
  • Your app's server allows being framed by https://app.pipefy.com and accepts CORS requests from it. See Frequently Asked Questions.
  • The page at init_url loads the SDK and calls PipefyApp.initCall().
  • Every feature you listed has a matching handler in that initCall().

See also