Pipefy, recognized as one of the Market Shapers by Gartner®
Build, extend, and integrate with Pipefy. Connect with other developers and explore what's possible.
Recently active
Do you need help with your API queries and/or mutation?Here are a few that might help you!😉 🔎Queries📍 GET TABLE RECORDS WITH PAGINATION - TABLE ID{ table_records(first: 10, table_id: "XXXXXXX") { edges { cursor node { id title url } } pageInfo { endCursor hasNextPage hasPreviousPage startCursor } }}📍 GET TABLE RECORDS - TABLE RECORD ID{ table_record(id: XXX) { assignees { id name } created_at created_by { id name } due_date finished_at id labels { id name } parent_relations { name source_type } record_fields { array_value date_value datetime_value filled_at float_value name required updated_at value } summary { title value } table { id } title updated_at url }}📍 FIND TABLE RECORDS - FIELD ID | FIELD VALUE{ findRecords(tableId:"xxxx", first: 50,
Do you need help with your API queries and/or mutation?Here are a few that might help you!😉🔎Queries📍LIST PIPES{pipes(ids: [ID1, ID2]) { id name phases { name cards (first: x) { edges { node { id title } } } } }} 📍SHOW PIPE{ pipe(id: 123456) { id name start_form_fields { label id } labels { name id} phases { name fields { label id } cards(first: X) { edges { node { id title } } } } }} 📍SHOW ALL FIELDS FROM PIPE{ pipe(id: XXXXX) { start_form_fields { id internal_id label type options } phases { fields { label internal_id type options } } }}🛠Mutations📍CREATE PIPEmutation { createPipe( input: { organization_id: XXXX name: "XXXX" labels: [ {name: "Label 01", color: "#FF0042"} ] members: [ {user_id: 00000, role_name: "admin"} {user_id: 00001, role_name: "member"} ] phases: [ {name: "First Step"} {name: "Finished", done: true} ] start_form_fields: [ {typ
API queries to dense databases could potentially return millions, if not billions, of results. Pagination thus helps to limit the number of results. It’s a process used to divide a large dataset into smaller chunks (pages).⚠ Pipefy API endpoint supports pagination with a limit of 50 cards/records per pipe or 30 cards per phase.👉🏼Here are two examples of how to use pagination:🔹Example 1 > query allCards { allCards(pipeId: xxxx, first: 50) { pageInfo { hasNextPage endCursor } edges { node { id } } }}You will set the pageInfo attribute and it will return the "endcursor", with the endcursor you can see the other cards within that phase, putting it as an argument in the "after" command. And hasNextPage will show you if there are more pages. You can then use the ID returned by the endCursor to get to the next page: {allCards(pipeId:XXXXX, first:50, after:"WyIyLjI1IiwiMTg1LjAiLDI2ODc1OTNd"){pageInfo {hasNextPageendCursor}edges {node {id}}}}🔹E
Do you need help with your API queries and/or mutation?Here are a few that might help you!😉🔎Queries 📍LIST CARDS{ cards(pipe_id: XXXX, first: 10, search: {title: "XXXXX"}) { edges { node { id title assignees { id } comments { text } comments_count current_phase { name } done due_date fields { name value } labels { name } phases_history { phase { name } firstTimeIn lastTimeOut } url } } }}⚠This query has a limit of 50 cards/records per page, so it is necessary to use pagination, you can find this information here. 📍SHOW CARD{ card(id: XXXX) { title assignees { id } comments { text } comments_count current_phase { name } done due_date fields { name value } labels { name } phases_history { phase { name } firstTimeIn lastTimeOut } url }} 🛠Mutations 📍CREATE CARDmutation{ createCard( input: { pipe_id: XXXX fields_attributes: [ {field_id: "assignee", field_value:[00000, 00001]} {field_id: "checklist_vertical", field_value: ["a", "b"]} {field_id: "checklist_horizontal", field_value: ["b"
You can download the attached files in a pipe!😃 To get the links to the card attachments from a pipe via API, these are the queries you will need: ◾Attachments to cards on the pipe{ cards(pipe_id:XXX){ pageInfo{ hasNextPage endCursor } edges{ node{ id title attachments{ url } } } }}◾Card attachments{ card(id:XXXX) { attachments { createdAt path url } }}
First you need to have a report already defined, with the filters you want.Then you can run the following mutation:mutation {exportPipeReport(input: { pipeId: X, pipeReportId: X}) {pipeReportExport {id}}}The answer to this call will contain a numeric ID. Using this ID obtained in the previous call, you can execute the following query:{pipeReportExport(id: XX) {fileURLstatestartedAtrequestedBy {id}}}The result of this second call will generate a link, which you can copy and paste into your browser and the file will be generated!⚠Important: Requests are counted from the last request the client made before taking the request limit and not when the day ends.You have 24 hours to make a new request after receiving the daily request limit message, but not from 00:00 to 00:00 but from the last request the client made. In this case, if you made the last request before receiving the message, for example, at 9 a.m., you can only redo the request at 9 a.m. the next day.
Do you need help with your API queries and/or mutation?Here are a few that might help you!😉 🔎Queries 📍LIST COMMENTS FROM A CARD{ card(id:xxxxxxxx) { title comments { id author_name created_at text } }}🛠Mutations 📍CREATE COMMENTmutation {createComment(input: {card_id: XXXXXXXtext: "Life is like a box of chocolates.."}) {comment {idtext}}}📍UPDATE COMMENTmutation {updateComment(input: {id: XXXXXtext: "Let me explain something to you."}) {comment {idtext}}}📍DELETE COMMENTmutation {deleteComment(input:{id: XXXX}) {success}}
Do you need help with your API queries and/or mutation?Here are a few that might help you!😉 🛠Mutations📍CREATE LABELmutation { createLabel( input: { pipe_id: XXXX name: "Important!" color: "#FF0000" } ) { label { id name } }} 📍UPDATE LABELmutation { updateLabel( input: { id: XXXXX name: "Very Important!" color: "#FF6347" } ) { label { id name } }}📍DELETE LABELmutation { deleteLabel(input: { id: XXXX }) { success }}
Do you need help with your API queries and/or mutation?Here are a few that might help you!😉🔎Queries📍SHOW PHASE{ phase(id: XXX) { id name cards_count cards { edges { node { id title } } } fields { id } }}📍SHOW ALL PHASES FROM PIPE{pipe(id:XXXXX){phases{idnamecards_count}}}🛠Mutations📍CREATE PHASEmutation { createPhase( input: { pipe_id: XXXX name: "First Phase" done: false lateness_time: 172800 description: "XXXXXXXXXX" can_receive_card_directly_from_draft: true } ) { phase { id name } }}📍UPDATE PHASEmutation { updatePhase( input: { id: XXXXXXX name: "New name" done: true description: "New phase description" can_receive_card_directly_from_draft: false } ) { phase { id name } }}📍DELETE PHASEmutation { deletePhase( input: { id: XXXX }) { success }} 📍CREATE PHASE FIELDmutation { createPhaseField( input: { phase_id: XXXXX type: "radio_horizontal" label: "Did you finish the task?" options: ["Yes", "No"] description: "XXXX" required: true editable: false } ) { phase_field { id label }
Welcome to the Pipefy Developers ! Here you can find documentation on how to develop your own Pipefy App and on how to use GraphQL API query language to extend Pipefy capabilities.Pipefy is a process platform designed to standardize and advance business workflow processes. Users can create custom workflows, generate reports to find process bottlenecks, centralize communications, and improve overall productivity by using Pipefy.The Pipefy Developers is an open space where developers can build powerful products on Pipefy’s platform. Create game-changing process advancements for your team or for managers in +15k companies around the world.What you can do on the Pipefy Developers:
Hi guys, I’ve looked up the documentation but couldn’t find anything specifying which fields are allowed at the AdvancedSearch option for the allCards query. Could you please list them here and/or append to the documentation? ThanksBernardo
Hello!Can somebody help me?I’m using MAKE and need to download a file from a card.Can somebody help me with an GraphQL command os some idea?Thank you!
Is it possible to create Field Conditionals via Pipefy API Query? I did my best following the documentation, and got to the query mutation { createFieldCondition( input: { name: "Mostra Endereço de Entrega para Produtos (show endereco_entrega)", phaseId: "340497504", actions: [ { actionId: "show", phaseFieldId: "endere_o_de_entrega", whenEvaluator: true } ], condition: { expressions_structure: [0], expressions: [ { field_address: "tipo_de_compra", operation: "equals", value: "Produtos", structure_id: 0 } ] } } ) { fieldCondition { id name } clientMutationId }}Which yields me { "data": { "createFieldCondition": null }, "errors": [ { "message": "Validation failed: Actions field não pode ficar em branco", "locations": [ { "line": 2, "column": 3 } ],
Hello Pipefy Community, This week we will share with you the integration of Pipefy with Twilio (Whatsapp). This recipe aims to bring information from Pipefy to notify someone on whatsapp when a phase move happens in Pipefy.The recipe contains the following steps: Trigger - When a card is phased in Pipefy 1st Action - Search the card's content2nd Action - Send the whatsapp Template through Twilio Most common use case: Notification in sales process, purchasing process, onboarding, customer service, etc. Click here to access the recipe in our library. You can clone it to your organization and follow the step-by-step configuration provided in this video. There are more than 40 recipes shared in English on the Workato Community. Every week we will post a new integration here in the community and we will be able to use this space to exchange information regarding this topic. See ya next week!
I’m sending the task e-mail via integration with make, i want to send the task e-mail and the notification to pop up on the “tasks & requests” interface, is there any way to do this?i already did the mutation to get the publicphaseform:configurePublicPhaseFormLink(input: {cardId: XXXX, enable: true}) {url}But it does not make a notification of task pending on the “tasks & requests” interface :c
To update the status of a record via API, just follow the steps below.👉🏼First you need to know the Status ID. The following query will give you this information:{ table(id: "XXXXXXXXXX") { statuses { name id } }} 👉🏼Next, you will use the Status ID obtained to update the field of a record by executing the following mutation:mutation { updateTableRecord(input: {statusId: XXXXX, id: XXXXXXXX}) { table_record { title status { name } } }}⚠To find out the record's ID, simply access the database and when you open the record identify the final number that appears in the browser's address bar. Or via API by running the query below:{ table_records(table_id: "XXXXXXXXX") { edges { cursor node { id title } } pageInfo { endCursor hasNextPage hasPreviousPage startCursor } }}
Hi there,In the documentation of Webhooks Filters is mentioned that you can filter by field ID, but it is waitng an array of integers. As far as I know, I have used ids like (id) “field_2_string” when reading fields and “this_type_of_id” (index_name) for writing. There is also the uuid. But how can I get a numeric ID for fields that can be used in filters?It says:mutation { createWebhook(input: { actions: ["card.field_update"], name: "Field Update Webhook", pipe_id: 123456, url: "https://your-endpoint.com/", filters: { field_id: [ 123, 345 ] } }) { webhook { id actions url } } } I try using the following mutation:mutation { createWebhook( input: { actions: ["card.field_update"], filters: { field_id: [ "field_37_string" ] }, name: "card.field_update", url: "myserver.app", email: "myemail@gobusinessinc.com", pipe_id: 1234 } ) { webhook { id actions ur
Hello,I am building a custom dashboard to display the latest emails from the pipe. I understand there is an API endpoint called inbox_email, but I do not see many parameters available for configuration. Therefore, I believe I need to integrate the inbox_email endpoint with other API endpoints to retrieve the information I need.If, for example, a card has 50 emails and I use the inbox_email endpoint, will it display all 50 emails, or is there a way to limit the results to only the most recent ones? If it retrieves all 50 emails, does that mean it will consume 50 API calls or just one? Our system is not very busy, so it is not necessary to create a cron job to pull these records at regular intervals. Is there a way to configure the API, perhaps using webhooks, so that the API is only triggered when a new email arrives?The dashboard should display the latest emails, ideally those received within the past 24 hours. Any ideas or guidance would be appreciated.
ERRO TO SEND API UPDATE ON POWER AUTOMATE.ERROR: errors.0.messageUnexpected end of document
I need to connect a SharePoint spreadsheet to Pipefy via Workato. I have already created the connections, but when creating the SharePoint Recipe I cannot find the Excel file via URL. Has anyone made this connection?
When I query the API for database records, how can I tell if a record is connected to a parent card?From what I can tell, the ‘Parent Connection’ property only shows if a connection exists, not whether any specific record is actually connected to a card.If this is not possible, is there a way to do this from the other end - use the API to see if a card has any child records connected?Thank you.
What do I need to do to let Pipefy access my App?Your application needs to accept CORS requests from https://app.pipefy.com, you can find more info about CORS here: https://enable-cors.org 👆 What is the best way to get started?Remix our Emoji sample app, add to your organization, or edit and see your changes live in Pipefy.
Hello everyone. I am trying to obtain all the cards from a pipe using the following query/code: pagina = true while pagina == True: # Define quais informações serão extraídas dos cards do pipe query = """ { allCards(pipeId: %s, first: 50, after: "%s") { pageInfo { hasNextPage endCursor } edges { node { id current_phase { name } done fields { name value } } cursor } } } """ % (pipe_id, endCursor if endCursor else "") response = requests.post(pipefy_url, json={'query': query},
Hi everyone! I am currently using python to move a card to a certain phase in my pipe, using the following code: payload = { "query": f""" mutation {{ moveCardToPhase (input: {{ card_id: "1085486680", destination_phase_id: "329687449" }}) {{ card {{ id current_phase {{ name }} }} }} }} """ } response = requests.request("POST", pipefy_url, json=payload, headers=pipefy_headers) print(response.text) However, right now response.text gives me the following error: {"data":{"moveCardToPhase":null},"er
Can someone tell me, categorically, which identifier(s) are immutable for each Pipefy Object;Pipe Phase Card FieldWhen discussing “Fields”, my understanding is that “field_id” or “id” is reliably immutable. However, there are other identifiers “internal_id”, “index” and “uuid” each of which would suggest they too could be immutable.Thanks for any helpMark
Already have an account? Login
No account yet? Create an account
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.