{"id":16233777,"url":"https://github.com/genietim/pipefyenhancer","last_synced_at":"2025-03-19T14:31:42.380Z","repository":{"id":37103500,"uuid":"332868770","full_name":"GenieTim/PipefyEnhancer","owner":"GenieTim","description":"A suit to improve various tasks in context of Pipefy.","archived":false,"fork":false,"pushed_at":"2024-12-18T17:16:39.000Z","size":836,"stargazers_count":0,"open_issues_count":2,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-17T08:21:25.355Z","etag":null,"topics":["cli-app","pipefy"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/GenieTim.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-01-25T20:05:37.000Z","updated_at":"2024-12-18T17:16:43.000Z","dependencies_parsed_at":"2023-02-08T19:15:47.166Z","dependency_job_id":"0763b3f0-0477-4f08-9dbb-05ebb965cf5e","html_url":"https://github.com/GenieTim/PipefyEnhancer","commit_stats":{"total_commits":53,"total_committers":3,"mean_commits":"17.666666666666668","dds":"0.13207547169811318","last_synced_commit":"2e29b3073e5bbace283eeaa04f2f441ba85754d0"},"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GenieTim%2FPipefyEnhancer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GenieTim%2FPipefyEnhancer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GenieTim%2FPipefyEnhancer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GenieTim%2FPipefyEnhancer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/GenieTim","download_url":"https://codeload.github.com/GenieTim/PipefyEnhancer/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244444721,"owners_count":20453783,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cli-app","pipefy"],"created_at":"2024-10-10T13:13:50.901Z","updated_at":"2025-03-19T14:31:42.071Z","avatar_url":"https://github.com/GenieTim.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# PipefyEnhancer\n\nA suit to improve various tasks in context of Pipefy.\n\n[![oclif](https://img.shields.io/badge/cli-oclif-brightgreen.svg)](https://oclif.io)\n[![Version](https://img.shields.io/npm/v/pipefy-enhancer.svg)](https://npmjs.org/package/pipefy-enhancer)\n[![Downloads/week](https://img.shields.io/npm/dw/pipefy-enhancer.svg)](https://npmjs.org/package/pipefy-enhancer)\n[![License](https://img.shields.io/npm/l/pipefy-enhancer.svg)](https://github.com/GenieTim/pipefy-enhancer/blob/master/package.json)\n\n\u003c!-- toc --\u003e\n* [PipefyEnhancer](#pipefyenhancer)\n* [About \u0026 Installation](#about--installation)\n* [Usage](#usage)\n* [Commands](#commands)\n* [Contributing](#contributing)\n* [Legal](#legal)\n\u003c!-- tocstop --\u003e\n\n# About \u0026 Installation\n\nThis is a command-line application.\nTo install it, you need to have [NodeJS](https://nodejs.org/en/) installed.\nAfterwards, see the Section [Usage](#usage).\n\nAs this app interacts with Pipefy, it also requires an OAuth2 Bearer API token so it can access the data.\nTo obtain your own token, please follow the following instructions:\n\n- Go to https://app.pipefy.com/tokens\n- Click on 'Generate new token'\n- Give the token a description\n- Click 'Save'\n\nCopy this token and use it as an argument for the commands as listed below.\n\nOther descriptions on how to obtain your token can be found in the [official documentation](https://developers.pipefy.com/reference) and in the [Pipefy Community](https://community.pipefy.com/api-76/introduction-what-is-graphql-889).\n\n# Usage\n\n\u003c!-- usage --\u003e\n```sh-session\n$ npm install -g pipefy-enhancer\n$ PipefyEnhancer COMMAND\nrunning command...\n$ PipefyEnhancer (-v|--version|version)\npipefy-enhancer/1.5.0 darwin-x64 node-v16.8.0\n$ PipefyEnhancer --help [COMMAND]\nUSAGE\n  $ PipefyEnhancer COMMAND\n...\n```\n\u003c!-- usagestop --\u003e\n\n# Commands\n\n\u003c!-- commands --\u003e\n* [`PipefyEnhancer add-default-values TOKEN`](#pipefyenhancer-add-default-values-token)\n* [`PipefyEnhancer add-field-to-every-phase TOKEN PIPEID`](#pipefyenhancer-add-field-to-every-phase-token-pipeid)\n* [`PipefyEnhancer add-field-to-every-pipe TOKEN ORGANIZATIONID PHASENAME`](#pipefyenhancer-add-field-to-every-pipe-token-organizationid-phasename)\n* [`PipefyEnhancer add-warning-to-every-phase TOKEN PIPEID`](#pipefyenhancer-add-warning-to-every-phase-token-pipeid)\n* [`PipefyEnhancer edit-email-templates TOKEN ORGANIZATIONID [PIPEIDS]`](#pipefyenhancer-edit-email-templates-token-organizationid-pipeids)\n* [`PipefyEnhancer fix-duplicate-field-values TOKEN DATABASEID`](#pipefyenhancer-fix-duplicate-field-values-token-databaseid)\n* [`PipefyEnhancer generate-docs TOKEN ORGANIZATIONID [PIPEIDS]`](#pipefyenhancer-generate-docs-token-organizationid-pipeids)\n* [`PipefyEnhancer hello`](#pipefyenhancer-hello)\n* [`PipefyEnhancer help [COMMAND]`](#pipefyenhancer-help-command)\n* [`PipefyEnhancer move-phase-field TOKEN`](#pipefyenhancer-move-phase-field-token)\n* [`PipefyEnhancer remove-duplicate-db-entries TOKEN DATABASEID`](#pipefyenhancer-remove-duplicate-db-entries-token-databaseid)\n\n## `PipefyEnhancer add-default-values TOKEN`\n\nSet a value to a field in all cards of a phase\n\n```\nUSAGE\n  $ PipefyEnhancer add-default-values TOKEN\n\nARGUMENTS\n  TOKEN  The API-Token for the Pipefy GraphQL API\n\nOPTIONS\n  --dry              Whether to do a dry run: just output how many entries would be changed etc.\n  --fieldId=fieldId  (required) The field id to change its values\n  --phaseId=phaseId  (required) The phase to change the cards in\n  --value=value      (required) The value to change the field to\n\nDESCRIPTION\n  ...\n  This command loops all your Cards of the specified pipe and phase \n  and sets the specified value on the specified field\n```\n\n_See code: [src/commands/add-default-values.js](https://github.com/GenieTim/PipefyEnhancer/blob/v1.5.0/src/commands/add-default-values.js)_\n\n## `PipefyEnhancer add-field-to-every-phase TOKEN PIPEID`\n\nAdd a field to every phase in a pipe\n\n```\nUSAGE\n  $ PipefyEnhancer add-field-to-every-phase TOKEN PIPEID\n\nARGUMENTS\n  TOKEN   The API-Token for the Pipefy GraphQL API\n  PIPEID  The id of the pipe to add the fields to.\n\nOPTIONS\n  -d, --description=description\n      The description of the field.\n\n  -l, --label=label\n      (required) The label of the field.\n\n  -t, \n  --type=assignee_select|attachment|checklist_horizontal|checklist_vertical|cnpj|connector|cpf|currency|date|datetime|du\n  e_date|email|id|label_select|long_text|number|phone|radio_horizontal|radio_vertical|select|short_text|statement|time\n      (required) The type of the field.\n\n  --help=help\n\n  --minimal\n      Whether to use the minimal view\n\nDESCRIPTION\n  ...\n  This command loops all your Pipefy phases of the pipe specified and adds the field as specified.\n```\n\n_See code: [src/commands/add-field-to-every-phase.js](https://github.com/GenieTim/PipefyEnhancer/blob/v1.5.0/src/commands/add-field-to-every-phase.js)_\n\n## `PipefyEnhancer add-field-to-every-pipe TOKEN ORGANIZATIONID PHASENAME`\n\nAdd a field to every phase with the same name in all pipes\n\n```\nUSAGE\n  $ PipefyEnhancer add-field-to-every-pipe TOKEN ORGANIZATIONID PHASENAME\n\nARGUMENTS\n  TOKEN           The API-Token for the Pipefy GraphQL API\n  ORGANIZATIONID  The id of the organization to load the pipes for.\n  PHASENAME       The name of the phase in all pipes to add the fields to.\n\nOPTIONS\n  -d, --description=description\n      The description of the field.\n\n  -l, --label=label\n      (required) The label of the field.\n\n  -t, \n  --type=assignee_select|attachment|checklist_horizontal|checklist_vertical|cnpj|connector|cpf|currency|date|datetime|du\n  e_date|email|id|label_select|long_text|number|phone|radio_horizontal|radio_vertical|select|short_text|statement|time\n      (required) The type of the field.\n\n  --editable\n      Whether the field can be edited in other phases\n\n  --help=help\n\n  --minimal\n      Whether to use the minimal view\n\nDESCRIPTION\n  ...\n  This command loops all your Pipefy pipes adds the field as specified to every phase with the specified name.\n```\n\n_See code: [src/commands/add-field-to-every-pipe.js](https://github.com/GenieTim/PipefyEnhancer/blob/v1.5.0/src/commands/add-field-to-every-pipe.js)_\n\n## `PipefyEnhancer add-warning-to-every-phase TOKEN PIPEID`\n\nAdd a conditional statement field to every phase in a pipe\n\n```\nUSAGE\n  $ PipefyEnhancer add-warning-to-every-phase TOKEN PIPEID\n\nARGUMENTS\n  TOKEN   The API-Token for the Pipefy GraphQL API\n  PIPEID  The id of the pipe to add the fields to.\n\nOPTIONS\n  -d, --description=description  The description of the field.\n  -l, --label=label              (required) The label of the field.\n  --fieldId=fieldId              (required) Id of the field to trigger the warning\n  --help=help\n  --minimal                      Whether to use the minimal view\n\nDESCRIPTION\n  ...\n  This command loops all your Pipefy phases of the pipe specified and adds the warning as specified.\n  The warning is shown if the field you specify by id is emtpy.\n```\n\n_See code: [src/commands/add-warning-to-every-phase.js](https://github.com/GenieTim/PipefyEnhancer/blob/v1.5.0/src/commands/add-warning-to-every-phase.js)_\n\n## `PipefyEnhancer edit-email-templates TOKEN ORGANIZATIONID [PIPEIDS]`\n\nEdit your Pipefy E-Mail Templates\n\n```\nUSAGE\n  $ PipefyEnhancer edit-email-templates TOKEN ORGANIZATIONID [PIPEIDS]\n\nARGUMENTS\n  TOKEN           The API-Token for the Pipefy GraphQL API\n  ORGANIZATIONID  The id of the organization whose E-Mails to edit. Not used if pipeIds is specified.\n  PIPEIDS         The comma-separated ids of the pipes whose E-Mails to edit. Empty = all pipes of your organization.\n\nOPTIONS\n  -a, --otherFields=subject|name|fromName|fromEmail|toEmail|ccEmail|bccEmail  whether to ask/replace other fields\n                                                                              (instead of only the E-Mail body)\n                                                                              specified here\n\n  -l, --language=language                                                     language to reset for all templates\n\n  -s, --skipEdit                                                              skip edit of E-Mail body\n\n  -t, --timezone=timezone                                                     timezone to reset for all templates\n\nDESCRIPTION\n  ...\n  This command loops all your Pipefy E-Mail-Templates so you can fix them one by one.\n  The editor for the E-Mail-Templates is read from $VISUAL or $EDITOR environment variables. \n  If neither of those are present, notepad (on Windows) or vim (Linux or Mac) is used.\n  (See: https://github.com/SBoudrias/Inquirer.js/#editor---type-editor)\n```\n\n_See code: [src/commands/edit-email-templates.js](https://github.com/GenieTim/PipefyEnhancer/blob/v1.5.0/src/commands/edit-email-templates.js)_\n\n## `PipefyEnhancer fix-duplicate-field-values TOKEN DATABASEID`\n\nRemove duplicate field values from a Pipefy Database\n\n```\nUSAGE\n  $ PipefyEnhancer fix-duplicate-field-values TOKEN DATABASEID\n\nARGUMENTS\n  TOKEN       The API-Token for the Pipefy GraphQL API\n  DATABASEID  The id of the database to filter for duplicates.\n\nOPTIONS\n  --checkRearrange         Whether the field's value should be checked for a match when split at a space\n                           E.g.: names: 'Test Nest' matches 'Nest Test'.\n\n  --dry                    Whether to do a dry run: just output how many entries would be deleted etc.\n\n  --fieldCheck=fieldCheck  (required) The first field to check the value\n\n  --fieldReset=fieldReset  (required) The field to set to an empty value if it has the same value as fieldCheck\n\nDESCRIPTION\n  ...\n  This command loops all your Pipefy DataBase Entries of the specified database \n  and sets one field to empty if it has the same value as another one\n```\n\n_See code: [src/commands/fix-duplicate-field-values.js](https://github.com/GenieTim/PipefyEnhancer/blob/v1.5.0/src/commands/fix-duplicate-field-values.js)_\n\n## `PipefyEnhancer generate-docs TOKEN ORGANIZATIONID [PIPEIDS]`\n\nGenerate a documentation of your pipes\n\n```\nUSAGE\n  $ PipefyEnhancer generate-docs TOKEN ORGANIZATIONID [PIPEIDS]\n\nARGUMENTS\n  TOKEN           The API-Token for the Pipefy GraphQL API\n  ORGANIZATIONID  The id of the organization whose Pipes to document.\n  PIPEIDS         The comma-separated ids of the pipes to document. Empty = all pipes of your organization.\n\nOPTIONS\n  -f, --format=html|pdf    [default: html] Format to use for output\n  -l, --locale=en          [default: en] Language to use for documentation\n  -p, --filename=filename  [default: pipe_documentation] File path \u0026 name prefix to use for output\n\nDESCRIPTION\n  ...\n  This command loops all your Pipefy E-Mail-Templates, Automations etc. and \n  outputs them into a HTML file (per pipe) which you can then export as PDF or \n  whatever suits your needs.\n```\n\n_See code: [src/commands/generate-docs.js](https://github.com/GenieTim/PipefyEnhancer/blob/v1.5.0/src/commands/generate-docs.js)_\n\n## `PipefyEnhancer hello`\n\nThis is a test command\n\n```\nUSAGE\n  $ PipefyEnhancer hello\n\nOPTIONS\n  -n, --name=name  name to print\n\nDESCRIPTION\n  ...\n  You can call it so that it greets you.\n```\n\n_See code: [src/commands/hello.js](https://github.com/GenieTim/PipefyEnhancer/blob/v1.5.0/src/commands/hello.js)_\n\n## `PipefyEnhancer help [COMMAND]`\n\ndisplay help for PipefyEnhancer\n\n```\nUSAGE\n  $ PipefyEnhancer help [COMMAND]\n\nARGUMENTS\n  COMMAND  command to show help for\n\nOPTIONS\n  --all  see all commands in CLI\n```\n\n_See code: [@oclif/plugin-help](https://github.com/oclif/plugin-help/blob/v3.2.3/src/commands/help.ts)_\n\n## `PipefyEnhancer move-phase-field TOKEN`\n\nMove a field from one phase to another\n\n```\nUSAGE\n  $ PipefyEnhancer move-phase-field TOKEN\n\nARGUMENTS\n  TOKEN  The API-Token for the Pipefy GraphQL API\n\nOPTIONS\n  --dry                          Whether to do a dry run: just output how many entries would be deleted etc.\n  --fieldId=fieldId              (required) The id of the field to move\n  --pipeId=pipeId                (required) The id of the pipe containing the phases and field\n  --targetPhaseId=targetPhaseId  (required) The id of the new phase to move the field to\n\nDESCRIPTION\n  ...\n  This command loops all your Cards of the specified pipe and phase \n  and gets the specified value on the specified field, \n  then adds the new field, sets its value (where possible), \n  and finally reminds you to delete the old field.\n\n  ⚠️ NOTE: untested for certain field types!\n```\n\n_See code: [src/commands/move-phase-field.js](https://github.com/GenieTim/PipefyEnhancer/blob/v1.5.0/src/commands/move-phase-field.js)_\n\n## `PipefyEnhancer remove-duplicate-db-entries TOKEN DATABASEID`\n\nRemove duplicates from a Pipefy Database\n\n```\nUSAGE\n  $ PipefyEnhancer remove-duplicate-db-entries TOKEN DATABASEID\n\nARGUMENTS\n  TOKEN       The API-Token for the Pipefy GraphQL API\n  DATABASEID  The id of the database to filter for duplicates.\n\nOPTIONS\n  -m, --merge  Merge if duplicates have connected cards.\n               CAUTION: make sure the connection field is editable.\n\n  --dry        Whether to do a dry run: just output how many entries would be deleted etc.\n\nDESCRIPTION\n  ...\n  This command loops all your Pipefy DataBase Entries of the specified database \n  and deletes the ones duplicates without connected cards (or merges them, see \"-m\")\n```\n\n_See code: [src/commands/remove-duplicate-db-entries.js](https://github.com/GenieTim/PipefyEnhancer/blob/v1.5.0/src/commands/remove-duplicate-db-entries.js)_\n\u003c!-- commandsstop --\u003e\n\n# Contributing\n\nWe are very happy to review any pull request.\n\n# Legal\n\nPipefy is not affiliated in any way with this program and does neither support nor endorse it at the current point in time.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgenietim%2Fpipefyenhancer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgenietim%2Fpipefyenhancer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgenietim%2Fpipefyenhancer/lists"}