Resource Icons
Latest Highlights
Check Out The Latest in The Qrew
Hello Qrew!
Weβre thrilled to launch a brand-new series called Certification Wins β your monthly spotlight on the amazing individuals across our community levelling up with Quickbase certification...
bhavaniramana
Quickbase Staff
2 MIN READ
Quickbase Admin Getting Started Guide
If you're new to being a Quickbase admin, start here! While it may feel like there is a ton to learn, the Getting Started Hub has you covered. This is how...
ben_simon
Community Manager
May is blooming with Quickbase events to help you grow your skills and connections! Our meetups, webinars, and community gatherings offer fresh opportunities to build and grow your knowledge of using...
EstherLaVielle
Moderator
The Content Feed
Feed
Required Fields Not Validating on Edit Form with Custom Save Button
I have required fields in one of my forms. I'm using a custom button to save the form. When I click the "Save" button, it checks for the required fields in the Add Form, but it doesn't perform the validation in the Edit Form. How can I ensure that required field validation works on the Edit Form as well when using the custom save button? This is the custom button formula: // Define the container style var text container = "display: flex;" & // Use flexbox layout for arranging children "justify-content: center;" & // Center all child elements horizontally "gap: 17px;"; // Add space between child elements // Define the subcontainer style var text subcontainer = "display: flex;" & // Use flexbox layout for subcontainer "justify-content: center;"; // Center all child elements horizontally // Define the button container style var text buttonContainer = "width: 130px;" & // Set fixed width for the button container "display: flex;" & // Use flexbox layout "flex-direction: column;" & // Stack buttons vertically "gap: 10px;" & // Add space between buttons "padding: 5px 3px;" & // Add inner spacing (5px top/bottom, 3px left/right) "border-radius: 8px;"; // Round the container's corners // Define the orange button style var text orangebutton = "border-radius: 40px;" & // Fully round the button's edges "color: #ffffff;" & // Set the button's text color to white "background-color: #f8761f;" & // Set the button's background to orange "font-family: Roboto, sans-serif;" & // Use Roboto font with sans-serif fallback "font-weight: 700;" & // Make the text bold "font-size: 12px;" & // Set the text size "padding: 12px 40px;" & // Add spacing inside the button (12px vertical, 40px horizontal) "display: inline-block;" & // Ensure the button behaves like an inline-block element "line-height: 20px;" & // Set the line height for text "text-decoration: none;" & // Remove underline from the button text "text-align: center;"; // Center the text inside the button // Define the black button style var text blackbutton = "border-radius: 40px;" & // Fully round the button's edges "color: #ffffff;" & // Set the button's text color to white "background-color: #252525;" & // Set the button's background to black "font-family: Roboto, sans-serif;" & // Use Roboto font with sans-serif fallback "font-weight: 700;" & // Make the text bold "font-size: 12px;" & // Set the text size "padding: 12px 40px;" & // Add spacing inside the button (12px vertical, 40px horizontal) "display: inline-block;" & // Ensure the button behaves like an inline-block element "line-height: 20px;" & // Set the line height for text "text-decoration: none;" & // Remove underline from the button text "text-align: center;"; // Center the text inside the button // Define the Record ID or placeholder if not available var text rid = If([Record ID#] > 0, // Check if a Record ID exists ToText([Record ID#]), // Use the existing Record ID "%%rid%%" // Placeholder for new records ); // Define the close window URL var text closewindow = URLRoot() & "db/" & AppID() & "?a=dbpage&pageid=11"; // URL to redirect to page 11 after an action, which closes the popup page // Construct the Submit URL var text Submit = URLRoot() & "db/" & Dbid() & // App root and database ID "?a=API_EditRecord&rid=" & $rid & // API call to edit a record using Record ID "&_fid_23=" & URLEncode("Pending FP&A Approval") & // Update status field with "Pending FP&A Approval" "&_fid_25=2" & // Update field 25 with value 2 "&_fid_26=1" & // Update field 26 with value 1 "&rdr=" & URLEncode($closewindow); // Redirect to the close window URL after editing // Construct the HTML structure "<div style='" & $container & "'>" & // Outer container with flexbox layout "<div style='" & $subcontainer & "'>" & // Subcontainer centered within the outer container "<div style='" & $buttonContainer & "'>" & // Button container for Cancel button "<a style='" & $blackbutton & "' href='" & $closewindow & "'>Cancel</a>" & // Cancel button styled as black "</div>" & If([Payment Request Status] = "New", // Conditional logic for Submit or Save button "<div style='" & $buttonContainer & "'>" & // Button container for Submit button "<a class='SaveBeforeNavigating' data-replaceRid=true style='" & $Orangebutton & "' href='" & $Submit & "'>Submit</a>" & "</div>", "<div style='" & $buttonContainer & "'>" & // Button container for Save button "<a class='SaveBeforeNavigating' data-replaceRid=true style='" & $Orangebutton & "' href='" & $closewindow & "'>Save</a>" & "</div>" ) & "</div>" & "</div>" This is the code page content: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <script> window.close(); </script> <body> </body> </html> Any help would be greatly appreciated!0likes4CommentsQuickbase Qrew: May 2025 Community Events
May is blooming with Quickbase events to help you grow your skills and connections! Our meetups, webinars, and community gatherings offer fresh opportunities to build and grow your knowledge of using Quickbase. Watch the video below to view the Qrew events happening this month. The four Qrew events we highlight in the video above include: May 13th at 12pm EST - App Builders Qrew Meet Up Prashant Maheshwari, Director at Krishna Beads Industries, will show how he uses formulas and AI in Quickbase for validation rules, multi-status reporting, and intuitive reports and forms. We'll also have our product team share an update on Audit logs. May 14th at 12pm EST - Pipelines Qrew Meet Up Wes McAda, Senior Software Developer at Versar Inc., will give an enhanced encore of his Empower 2025 session on using Pipelines for secure, time-bound links with cascading permissions and advanced document staging. May 15th at 1pm EST - Governance Webinar: Expanding the Power of Governance Core Apps May 22nd at 1pm EST - Feature Focus Webinar: Unite Your Data and Put it Work with AI Click the links above or check out the events page to learn more or register for Mayβs events. We look forward to seeing you there!0likes0CommentsUser Focus Table Bug - New Record ID not being passed from source table to user focus table
I have a User Focus table that has worked without any issues for nearly a year. Today, a user let me know that records stopped appearing on their end partway through the day (the API_RunImport call needs to work for them to see the records on their end once created). The first 12 records they created worked fine, then suddenly, new records stopped behaving as expected. After some investigation, I found that the problem is due to the Record ID (RID) from the source table not being written to the User Focus table. This breaks the subsequent API_RunImport, since there is no RID to tell the import which record to merge with. The workflow was still working fine earlier today, then stopped without any changes being made. Context: I am the only builder for this app and no one else has access to change fields or formulas. No recent changes have been made to the fields involved. I have run several tests, but the RID ([Record ID#]) is consistently not being passed through anymore. All other fields are still being written correctly to the User Focus table. Workflow Summary: User creates a new record in the Immature Plant Batches table. A Formula-URL button is clicked, which triggers the logic below and reloads the form. The form is set to auto-save when redirected. Here is the relevant portion of the formula: var text ProductionAddUser = URLRoot() & "db/" & [_DBID_USER_FOCUS] & "?act=API_AddRecord" & "&_fid_6=" & ToText(User()) & "&_fid_118=" & URLEncode([Record ID#]) & "&_fid_119=" & URLEncode([Plant - Strain]) & "&_fid_143=" & URLEncode([IMPB - Next Immature Plant Batch Suffix - Production]); var text ProductionEditUser = URLRoot() & "db/" & [_DBID_USER_FOCUS] & "?act=API_EditRecord" & "&key=" & ToText(User()) & "&_fid_118=" & URLEncode([Record ID#]) & "&_fid_119=" & URLEncode([Plant - Strain]) & "&_fid_143=" & URLEncode([IMPB - Next Immature Plant Batch Suffix - Production]); var text ProductionEditOrCreateUser = If([Current User - User Exists?], $ProductionEditUser, $ProductionAddUser); var text RunProductionImport = URLRoot() & "db/" & [_DBID_IMMATURE_PLANT_BATCHES] & "?act=API_RunImport&ID=14"; var text NewProductionBatch = URLRoot() & "db/" & Dbid() & "?a=API_GenAddRecordForm&dfid=15" & "&_fid_57=" & URLEncode([Related Scheduled Task]) & "&_fid_77=" & URLEncode([Related Planned Harvest]) & "&_fid_17=" & URLEncode(Today()) & "&_fid_8=" & URLEncode([Related Planned Harvest - Location]) & "&ifv=1&hs=1" & "&z=" & Rurl(); var text ProductionBatch = $ProductionEditOrCreateUser & "&rdr=" & URLEncode($RunProductionImport) & URLEncode("&rdr=" & URLEncode($NewProductionBatch)); $ProductionBatch Again, everything except for the RID from the source table not getting passed and written to the user focus table anymore. Without that RID, the import fails to find a matching record to merge. Has anyone experienced something similar recently? Or does anyone have ideas why [Record ID#] might suddenly stop resolving mid-day when it was working previously? Thanks in advance for any insight. I am really stumped here.0likes3CommentsMay 2025 Qrew Meetup Event
Portland Qrew is meeting the forth Wednesday at 3PM PST at Harder Mechanical Contractors and also on Teams. We will talk about current projects, new changes and challenges. Anyone can show off work and cheer each other on to higher heights. We ask attendees to bring problems to solve and then work together to provide a solution. Anyone willing to share is welcome to have a problem solved by a team of very nice people who all love helping. Afterwards I suspect we will go out somewhere and welcome recommendations. If you would like to join remotely email jharrison@harder.com directly and he will send you a Teams invitation.0likes0CommentsApril 2025 PDX Qrew Notes
Attendees: Barry Dolan Seattle, Kennedy Maxey, Lee Gilmore, Jen Clarke, Jim Harrison, Pat Wenger, Jacob McIntyre, Elena Larabee There were no collaboration challenges this month. On the plane back to Portland a fellow Empower attendee said hello when he noticed my Quickbase shirt. I mentioned PDX Qrew and invited him to attend, welcome Barry Doland! After brief introductions to Barry Dolan who joined us via Teams from Seattle we moved into discussing Empower. Empower Recap, Jen said she didn't really learn anything but enjoyed the chance to meet other QB builders and see how they use Quickbase to get work done. Jim also found Empower was good for meeting people. He learned that Harder has built an advanced system using Quickbase. Pat then expanded the conversation on what Harder has built and then moved on to more of a discussion about different use cases and the intentions of using Quickbase at Harder. Next we moved on to talking about using AI in Pipelines. Jacob gave an example of how they are recording online meetings and then putting them through a pipeline that uses AI to analyze and "score" the conversation. An example was given where a sales meeting is recorded and then scored or compared with other sales meetings. What they are finding is in some meetings the sales representative provides good information and the conversation covers many Quickbase features and appears successful. In other meetings the conversation doesn't go as well, information is missed or not included and the meeting doesn't go as well. It was an interesting example to consider and as I write this it seems obvious that some sales calls will go better than others for so many reasons. Part of sales is having the ability to react and move with the customer, sometimes the customer isn't interested. The area where AI may be beneficial is in helping the Sales representative to understand where they may have missed a que in the conversation, per se. I hope Jacob and team continue to investigate this example and look forward to hearing the fruit it bears. Next Jacob asked Pat about Empower and Pat talked about what we are doing with Quickbase. The conversation lead off into the realm of software platform comparisons. An example was when some of the Harder Team went to Groundbreak (a Procore sales event) to look at Procore and compare it to Quickbase. The questions or goals of the visit included answering topics like, What is the state of the Quickbase development processes versus other products? What is the business model that allows for success with Quickbase? One area that came up is the challenge of collaborating within departments. Some organizations are separated by walls of policy and the process of change takes patience. We talked about the value Quickbase provides to a company willing to break down walls and bring collaboration into the processes. Is it better to develop an in-house product with consultants or is it better to build a product using Quickbase with a team that takes on the challenge and owns the process? Quickbase is a solution for a company that has a leader committed to building a solution in Quickbase, a team of intelligent, curious and productive builders and a supportive environment in which to build. Part of building in Quickbase is the long term investment required to actualize value for the business. Other products provide value more out of the box but the business is required to change around the product and there is little to no customization without cost. Once the team learns how Quickbase works, it doesn't take long to train new builders and help them be successful. Quickbase tends to be more organic and malleable to a business willing to make the investment. The conversation wandered around these areas for a few minutes. Barry mentioned that having the understanding how the data is structured is also important for supporting business. The data entry side of understanding and solving when something doesn't work and how it tends to be the data that is the problem more so than the software. We then heard from Lee and Elena regarding their experience with Procore. One observation was it can be used as long as you are able to spin up a separate pipeline for each Job. One Pipeline per table per Job. Could it be done with callable Pipelines? One challenge we discussed for example is Invoices from Procore into QB. We also talked about pushing RFI's / Invoices in or out or Procore. Observations around leveraging the API. Getting data out of Procore or putting data into Procore. All of these use cases are challenging from the experiences shared by Lee and Elena. Jen mentioned excitement about the Pipeline integration with Bluebeam. Pat mentioned we use Egnyte for drawings and markup. He noted it could be interesting to use Bluebeam to perform markup and see how it compares with our current process. While we discussed Bluebeam Jacob mentioned it may be possible to create our own channels or connectors in Pipelines. This is something Harder has experience with after using Workato. When we first started to use Workato in 2019, there was no connector to Quickbase. Workato built a connector for us to develop and we worked with Workato to make improvements to the connector. Now we are beginning to do the same with Pipelines. Last we talked about another aspect of building software. One method is to take an idea, come up with a solution, define the architecture, build a Product, and then resolve problems until a stable product is reached. The other option is to get Users to define the requirements and then try to meet the requirements without an understanding of the underlying platform. Pat said it is easier to build a solution around the platform than to try to fit Users requirements. The challenge is to continue the conversation with the users to understand the needs and look for opportunity to improve the initial product. Developers then become responsible to support the product, train users and make changes as needed. During the building process there needs to be training and support for the Employees at the company. The product is an investment in collaboration and running the business. The product is then grown with the company. We ended the meeting and then headed over to Prost for more conversation and tacos.0likes0CommentsReport help, take 2
Figured out my first one (well, kind of). I'm building a summary report summarizing several check-box fields. Two questions: Is there a better way to do this where I want summaries of a LOT of check-box fields? It looks like the cap of line items to summarize is 24 Do I have to "Group by Rows"? I basically just want a total summary, but don't want to group it. Speaking in Excel terms, what this might look like in an ideal world is: Rows that are limitless, identifying each field to summarize Columns are only two -- 1) The title of the field being summarized, and 2) distinct count Here is what I'm looking at, and I ended up just creating a summary field generally to just have one summary row.... but really, I just want the bottom line.0likes0CommentsNew Mobile Form
Is anyone haveing trouble with lookup fields on the new forms not populating? I have switched a few forms to the new style and it seems to now want to populate the lookup field sometimes the search function will pull in a result but 99% of the time it just says 0 results I have over 400 choices in this field it usually shows me the first 100. Is anyone else expierencing these issues?0likes1CommentReport help
Hello! I'm diving into someone else's app, trying to wrap my head around their reporting needs. The previous admin created several "checkbox" fields that are in reality, types of answers to a master field. I need to tally each checkbox and ideally, I'd love to get this all on one report. I theorize the reason they did individual checkboxes vs. one multi-select field is because, in my own experience with multi-select, a report of such won't cleanly count how many times each item was selected, but will report out instances of the specific combination of what was selected. In my example, I'm tallying types of support received, where there are 10 sub-types as check-boxes, so ideally this report shows the exact count of each type of service counted. Please and thank you!0likes1CommentBoston Qrew Meetup - May 21, 2025
Great News! I'm excited to share that we're bringing back monthly in-person events. Starting in May, we'll be hosting Boston Qrew Meetings on the 3rd Wednesday of every month. These meetups are a great opportunity to connect with other Quickbase users, get help with your apps, share ideas and challenges, and hear from Quickbase product experts about new features and updates. Whether you're just getting started or have been building for years, there's something for everyone. Upcoming Meetups: May 21 (4β6 PM) Quickbase, 255 State Street, Boston Guests: Ryan Murray, Heather Karas, Sam Trachy June 18 (Time TBD) Quickbase, 255 State Street, Boston Guests: Scott Galloway, TBD July 16 (TBD) β Boston August 20 (TBD) β Boston If youβre interested in joining us on May 21, register here: https://resources.quickbase.com/nav/app/buzeg8mdy/table/bu2pvgz53/action/nwr?originalQid=td&page=1 Hope to see you there!3likes3Comments