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
| Property | Required | Description |
|---|---|---|
| name | Yes | App name, shown wherever the app appears |
| init_url | Yes | Path to your HTML page that calls PipefyApp.initCall(). See resolution below. |
| features | Yes | Which features this app uses. An app with an empty list has nowhere to render. |
| short_description | Recommended | One line, shown in the app list. Keep it to roughly a sentence — long values are truncated in the listing. |
| description | Recommended | The long description shown on the app's own page. Supports basic Markdown and \n line breaks. |
| icon | Recommended | Your app's icon. SVG preferred; PNG works. Square images render best. |
| author | Recommended | Your name or company |
| screenshots | Optional | Array of image paths shown on the app's page |
features accepts any combination of:
| Feature | Where it appears |
|---|---|
card-badges | Indicators on cards in the board |
card-buttons | A button on an open card |
card-tab | A tab inside an open card |
pipe-buttons | A button on the pipe header |
pipe-view | A 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:
| Value | Resolves 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.comand accepts CORS requests from it. See Frequently Asked Questions. - The page at
init_urlloads the SDK and callsPipefyApp.initCall(). - Every feature you listed has a matching handler in that
initCall().
See also
- Introduction — the full setup walkthrough
- Features — what each feature does and the shape its handler returns
- Client SDK overview — what goes on the
init_urlpage - Publishing your App — sharing your app beyond your own organization

