Recent Discussions
Center For Community Alternatives: QB and Human Services
One of the most powerful aspects of Quick Base is its ability to wrap around your workflow and be customized to what matters most to your organization. For one of our customers, the data being collected, and reporting produced is critical for a greater cause: the livelihood and success of the people enrolled in their human services programs. Michael Pasquale, Director of Program Quality Improvement at the Center for Community Alternatives, has been leveraging Quick Base to make an impact in the non-profit human services sector, enhancing his organizations data management workflow and reporting capabilities. “The mission of the Center for Community Alternatives is to work with individuals who have been involved in the criminal justice system, or the juvenile justice system, and provide them with the services that they need to effectively reintegrate with society. Individuals who have a criminal history number in about 70 million across the country.” While oftentimes overlooked and lacking resources to achieve positive outcomes, the data on this population and the ability to report on program success plays a major role in the longevity and impact of an organization like the Center for Community Alternatives. “When you think about the adults in the United States, that 70 million represents about 1/3 of the population. That’s about as many people as those who have a bachelor’s degree. These are folks who are members of our community, who are facing some significant barriers because of their involvement in the criminal justice system for whatever reason. We provide both jail-based and community-based services to those with an incarceration history or an arrest history and our goal is to help them engage in the workforce productively and stay in the workforce.” Prior to Quick Base, the CCA was faced with challenges of data input and consolidation. Time consuming practices and scattered data sources played roles in disorganization and extra steps in data management. Various Access databases, spreadsheets, and paper files were culprits of a cumbersome, antiquated system, resulting in a loss of time and effectiveness. Mike leans on Jennifer Schafer, the primary Quick Base builder at CCA, to overcome these challenges through QB apps. “The Department of Labor requires us to use an electronic MIS tool in Microsoft ACCESS for one of our grants. Unfortunately, this tool doesn’t include many of the questions that CCA would like to ask so I recreated it in QB and added tables to track additional education, employment, and other case management data.” Says Jennifer Schafer, the primary QB builder at CCA. “I had to add a formula field for each “MIS” field in QB so I could convert the text answers to numbers or dates to display as a numeric with the year then month then day to match what they are doing in ACCESS. I can pull Excel spreadsheets from both and then do some conditional formatting to compare data entry. This is super helpful for the person who manually transfers the data from QB to ACCESS.” In addition to bridging gaps with other tools, CCA is looking to Quick Base to help quantify the results of their programs to determine whether or not they are successful: the number of people enrolled in programs, those who obtain jobs, and those who keep them. “Using Quick Base was a game changer for us, because we were able to more effectively collect information about our outcomes, share that information within the agency, and more effectively report that information to our funders.” Says Schafer, who has been building and maintaining Quick Base apps for the last 7 years. CCA is now embarking on their most ambitious build yet, combining all of their reintegration programs from 3 offices into one app. Jen is looking forward to the newly designed Quick Base Community for crowdsourcing her efforts. “I am looking forward to brainstorming with more people within my organization and with QB users, especially those who are in the Non-Profit industry, in the new QB Community site. I am grateful that Quick Base is providing a place for us to more easily find each other.”11likes1CommentChicken Tracking with QB
Here's my latest cause for Quick Base celebration: A while back I made a Quick Base app for tracking my flock of chickens and supply inventory, but just incorporated RFID scanning to help move toward automatically tracking egg production instead of manually tapping URL formula buttons. Very much still a work in progress, but here's what it does so far and how it works: The app keeps records of what chickens are in the flock, egg production, store health records, supply purchasing/use, and a journal to write entries about any or all of the chickens. One night I was browsing my favorite overseas merchant website and came across these leg bands for fowl that contain an RFID chip. They were about $.27 a piece, so I bought a bunch, and a cheap USB RFID reader too. I created a table of all of the RFID tags, and a table for scanner entries, and linked each chicken to an RFID number, so that when one was scanned the entries table would "know" who the chicken was. Then I needed the scanner to be in a stationary place ready to scan anytime, so I wrote a little Python script that sits and waits for a scan, and when it detects one creates a record in the entries table using the Quick Base API. I decided to put the scanner in the nest box to find out who was laying eggs and when. It's also a confined space where I thought I'd have the most luck with the RFID system, which is the low-frequency passive type (chosen because they're cheap and don't require batteries or charging. The trade off, however, is that they only get scanned when they are close enough to receive power from the scanner). After hiding the scanner under some straw on the side of the nest near where the banded leg would be, the Raspberry Pi was put outside of the nest on a nearby shelf. With everything set up, connected to the network and seemingly working, it was time to put the bands on the chickens: Over the next few days of anxiously awaiting email notifications of scans, I finally got about 40 one morning over the course of about 45 minutes, all from the same chicken. I've had some luck so far, but have been looking into a more powerful scanner that would ensure scans without the RFID chip needing to be so close to the scanner. (Since putting in the scanner I've also found a couple of bushes the chickens have been laying eggs under since they have the run of the yard in summer, but with winter coming they should be laying more inside). I'd also like to add more scanners in various locations, but that may depend on what can be done to find a scanner that could read at a longer distance. I also need to find a better way to display some of this data, especially if its coming from multiple scanners. I'm thinking a summary type table that would group by location and calculate duration to show how long a chicken was in a given spot over the course of a day. A way to detect if an egg is actually laid, and automatically log that in the egg table for the correct chicken is also a future addition once the best way to do that is figured out. Ultimately, it'd be cool to have scanners that could also track various spots to get an idea of how they spend their days, and know when they're all inside for the evening and automatically close the coop door for the night. If anyone has any ideas about any of this, or experience working with RFID or Raspberry Pis and Quick Base, I'd love to hear about it! ------------------------------ steve. ------------------------------11likes13CommentsWhy Low-Code Integrations and Workflow Orchestration is the Future of How Businesses Use Software
It’s probably no surprise thatthe vast majority ofbusinesses are managing a continuously growing number ofsoftwaretools. These continuouslyevolvingecosystems arecreating risk andmaking it difficult tofindoraccess the information needed for critical decisions.That means that in order to remain competitive, organizationsexperiencing this issuemust establish new ways to securely make data accessible when and where it is needed in order to unlock the insights that will guide them into the future. There have been many ideas on how to stop this proliferation of tools, but we believe that modern businesses will continue to need a wide variety ofsoftwarein order to accommodate the growing number of business processes that make them unique. Instead of trying to block people from using the tools they need, wethink thatorchestrating workflow across different systemsisan even better way tostreamline the way that work gets done. We’re not the only ones who are seeing an increase in thedemand for process innovation and automationeither. Industry experts are beginning to talk more about how the needforautomationacross multiple systemsis far outpacing the methods and resources available to support it, putting businesses at risk of falling behind expectations and competition. “By 2022, 80% of organizations that pursue a cloud-first strategy will forgo the use of RPA (robotic process automation) in favor of low-code integration platforms.” -Gartner (2019)* As we get ready to introduce new capabilitiesin early 2020 for Quickbase that will make it both fast and easy for businesses to automate processes and integrate workflow, here are a few ways that you can tell whether your business might benefit: Legacy systems no longer support the unique workflow and integration needs of your business There are not enough developers to support the pace of innovation required to stay ahead The cost, complexity, and risk of your application and integration ecosystem is burdening IT groups and slowing business down If any of these scenarios sound familiar, then here are 3 reasons why we believe that our new Pipelines technology will offer you an intuitive way to use the Quickbase platform,finally makingit possible for the tools in your business to work together the way you need them to. Pipelines executes workflow in real-time, meaning that data is up to date where you need it, when you need it. Pipelines has a library of pre-built integration channelsthatmake it easy to stretch processes and workflow across all the systems that people use The intuitive drag and drop interfacemakes it easy for Quickbase app builders of all different backgrounds to define exactly what needs to happen and when If you’re interested in learning more, we recommend signing upfor updatesbelow. *Gartner, "Automate Business Operations to Scale Your Digital Business," Rob Dunie, Saikat Ray,26 November 20196likes0CommentsService Accounts and YOU!
Service Accounts and YOU! These days you may hear a lot about 'service accounts' out in the world. They are ubiquitous among databases and SaaS systems alike. But what exactly IS a service account...and how does it differ from a normal user account? Why would you want to use one? In the Quickbase universe, a service account doesn't differ from a user account except for in their intended/practical use. A service account must be tied to a real email address, just like a normal user, and provisioned just as any regular user would be. However, service accounts are generally used to drive system processes like API calls. Specifically, for Quickbase, they can be very helpful for Pipelines! If you've never had to transition an app from one admin to the next...consider yourself lucky! Service accounts can help streamline shifts in ownership to make things easier on everyone. When I was a Quickbase client - our realm grew organically in the initial years. Lots of builders who all owned different things from apps to email notifications. But as we grew as a company, we quickly realized we needed to apply some future-proofing governance in the event key people moved on to other opportunities. Our first order of business was: how would we manage a service account? Who would have access to the credentials? How would we monitor how this account was utilized? We began with laying the ground rules for our service account: 4 people would have access to the credentials: CTO (they were not a Quickbase builder) VP of Business Systems (they were not a Quickbase builder) Manager of Business Systems (overall owner of Quickbase at the company) Most senior CRM Administrator (one of the main Quickbase builders) This service account would be the owner of any and all applications in the realm. It would also be one of our Quickbase Super User accounts in the case for whatever reason ownership of an application was not transferred. This service account would be used for any Quickbase - to - Quickbase integrations. Automations Webhooks Server-side scripting (Were I still employed there, we would also use it to build pipelines.) If any of the 4 people with access left the company, the password and any usertokens they had access to would be changed within 24hrs of their departure. Anyone accessing a Quickbase application through the UI with the service account credentials would log that action in a specified table. This was cross-referenced with audit logs as a SOC II audit control to prove access. Any access had to be tied to an active work request ticket in our system. Any integration work would need to be requested via the ticketing system, and performed by one of the builders with access to service account credentials. These rules were documented as part of our larger governance documents and stored in a central location. You may be thinking 'that's a lot of rules'. The good news is that this post is not intended to be prescriptive as much as it is to clear the cloud of uncertainty around service accounts and their use. Our implementation was based on many different deciding factors: risk management, compliance with security controls, and any number of other considerations. That being said, your mileage may vary. Governance of service accounts may already be defined by your IT department. Good communication between security-managing departments is key! Interested in more? Our Customer Success team regularly partners with Quickbase clients to help distinguish which governance path is right for them. Talk to your account team for more information!4likes0CommentsIOL Technique Officially Approved By QuickBase
I missed this the other day when I posted about the form used by QuickBase on thier Quick Base Customer Awards nominations. In my post I mentioned that QuickBase had created a custom Save button that saved and redirected to a unique page and I also presented the code they used. What I forgot to mention (I missed seeing it) is that QuickBase itself is using a version of the IOL technique to hide the native Save button so as to make the custom Save button the only functioning button. The Forum post has been removed: https://community.quickbase.com/quickbase/topics/quick-base-customer-awards-nominations-are-open But the new record pages are still accessible: The Quick Base Hero Award ~ Add New Record https://team.quickbase.com/db/bneu8emfj?a=nwr If you watch very carefully upon page reload you can see the Save button momentarily appear and is then rapidly hidden. The HTML code QuickBase is using to achieve this is as follows: <table id="sect_s8" class="formSection LabelsAbove"> <tr class="formRow "> <td id="tdl_23" class="label lc RichTextField" colspan=100> <label class="fieldLabel " for='_fid_21'><b >Hide Green Buttons</b></label> <div id="tdf_23" class="cell dc RichTextField" > <img src='/i/clear2x2.gif' onload="javascript:$(document).ready(function(){$('.IconOnly').hide();$('#saveButton').hide();})"> </span> </div> </td> </tr> </table> Here is a screenshot of the relevant HTML in the inspector (which helpfully points out an unbalanced </span> element) The code above basically uses the image onload technique I created almost a decade ago but simply doesnot use a code page because the script in question was so short. So we have to conclude that QuickBase sees the value in script as a handy workaround and will be working hard to provide a supported way to introduce script into the product. For reference here is the accompanying post that described how QuickBase formed their custom Save button: This is !important https://community.quickbase.com/quickbase/topics/this-is-important Pastie Database https://haversineconsulting.quickbase.com/db/bgcwm2m4g?a=dr&rid=6334likes7CommentsCommand Line Interface for Quickbase
Quickbase is a no-code platform that problem-solvers use to build powerful business applications regardless of their technical ability, but that doesn't mean software developers can't have fun, too! For example, Quickbase has robust and powerful APIs that enable coders to extend and automate Quickbase. In fact, API requests make up a higher percentage of traffic to Quickbase than one might think. In that spirit, I want to introduce you to the Command Line Interface for Quickbase, which makes it even easier to interact with and automate Quickbase through its APIs. https://github.com/QuickBase/quickbase-cli Graphical interfaces like web browsers make it possible for a wide range of people to use software and simplify tasks. With that said, how many times has your index finger felt like it was going to fall off while fighting sleep as you repeatedly perform some monotonous task in Quickbase through the browser? It's situations like this where the command line can save you hours, not to mention your sanity. You can find examples of how to use the tool in the repository's README. Hopefully, it inspires ideas on how you might use it to save time automating your Quickbase tasks. The CLI tool is one of many capabilities in the Quickbase platform that help you automate repetitive tasks. Here are some guidelines to help point you towards the best tool for your task: Use Pipelines and consume the API directly if you are automating a task in response to an action that happens in Quickbase or another system. Consume the API directly with the language of your choice when building a non-Quickbase application that connects to your Quickbase app. Use the Quickbase CLI to perform app setup/admin tasks and ad-hoc calls to the API. Finally, the Quickbase CLI is released as an open source project, which means you can submit enhancements, bug fixes, and documentation through GitHub pull requests if you can write code. Installation instructions, examples, and tips are provided in the README. The tool is subject to the permissive MIT license, so you can freely use it as you see fit inclusive of use in proprietary applications, provided that you maintain the copyright and license with the code. The license also states that the code is provided as-is without warranty, so unlike the Quickbase platform, the tool is not subject to assistance through Quickbase support entitlements. However, contact with the authors is only a GitHub issue away, so please post and feedback, bugs, and questions through the repository's normal GitHub channels as per the guidelines. Happy building! ------------------------------ Chris Pliakas ------------------------------Announcing QuickBase Service Worker Council and QuickBase Crank
The newly formed QuickBase Service Worker Council met this morning for breakfast at the annual QuickBase Empower conference in Boston to welcome new members, clarify it's charter and review new applications that incorporate Service Worker technology into QuickBase. I am happy to announce the the Service Worker Council has unanimously voted to implement and release the QuickBase Crank proposal which will allow QuickBase users to significantly speedup their QuickBase applications. QuickBase Crank allows a user to configure a custom Service Worker which can modify the caching policy of critical assets such as JavaScript and CSS files, substitute a minimized and faster loading version of an asset or even block the loading of subordinate assets that are not critical to the performance of a QuickBase application. Initial testing of QuickBase Crank have demonstrated a twofold increase in page loading times as well as the potential for offline usage of a QuickBase application with later synchronization when network connectivity is regained. In addition to its technical capabilites - which are quite impressive - QuickBase Crank requires no external services or subscription fees and is widely supported in modern evergreen browsers. The QuickBase Service Worker Council is also announcing a call for new members and new features to implement with Service Worker technology. If you would like to participate in the Service Worker Council meetings and deliberations or have a suggestion for using Service Worker technology with QuickBase feel free to reply to this message or contact me off-line using the information in my profile.3likes3CommentsHow to install BOL (Branding On Load)?
We previously posted the BOL (Branding On Load) instruction as a file attachment but in the conversion to the new forum attachments were dropped. Here is an updated method of installing BOL: Step 1 Create a code page named moduleBOL.js and place some simple content in it such as this one line of code: console.log("moduleBOL.js loaded"); Step 2 Visit your Branding Page https://<YOUR SUBDOMAIN>.quickbase.com/db/<YOUR APP DBID>?a=AppPropertiesBrandGuide Step 3 To turn BOL ON, press F12 and paste this code into the console tab: //turn on BOL (function(){ var page = "moduleBOL.js"; var formData = new FormData(); formData.append("PageToken", $("input[name=PageToken]").val()); formData.append("customHeader", "on"); formData.append("uiCustomHeaderOptions", "iBasic"); formData.append("uiCustomTextColor", 'white !important\n}</style><img src='' style='display:none' onerror=$.getScript(gReqAppDBID+'?a=dbpage&pagename=${page}');><style>foo {\nbar: baz'); fetch("?a=SaveAppSettingsBrandGuide", { method: "POST", body: formData, credentials: "include" }); })(); Step 4 To turn BOL OFF, return to the branding page, press F12 and paste this code into the console tab: //turn off BOL: (function(){ var formData = new FormData(); formData.append("PageToken", $("input[name=PageToken]").val()); formData.append("uiCustomHeaderOptions", "iDefault"); formData.append("uiCustomTextColor", "white"); fetch("?a=SaveAppSettingsBrandGuide", { method: "POST", body: formData, credentials: "include" }); })(); Notes: 1) This code uses the Fetch API, the FormData API and ES6 backticks. You can google these terms or ask a question here if you need a better understanding. 2) Some people have inquired about the credentials: include property and value used in the code. This is not your QuickBase login/password credentials and is perfectly safe to use. By default the Fetch API does not send cookies so includingcredentials: includemerely sends your cookies to QuickBase which includes your ticket. Sending your cookies to QuickBase is the normal operation. 3) Setting up BOL will include moduleBOL.js on every page in your application including administrative pages. In contrast the IOL technique injected code only into {new, view, edit, report, grid edit} pages. Also, moduleBOL.js will load relatively early in the process of loading your page. You will have to supply your own decoding logic to determine what page you are on and what actions you want to take. 4) Part of the reason we are introducing this version of BOL is to acquaint you with theFetch API, theFormData APIandES6 features (not just backtick). These are powerful features to use with QuickBase in their own right as you can do some amazing things in a short amount of code. 5) But the real reason is to slowly introduce you to Service Workers which will blow away all these other methods of introducing JavaScript into your QuickBase pages and provide amazing new features you never though possible in a browser (like offline QuickBase - nope I am not joking). In the next few days (maybe tomorrow - it depends on if I get my grass cut today) we will launch the Service Worker Travel Log which will feature a new aspect of using Service Workers with QuickBase. So clear you head, pack your bags and bring lots of cash as we embark on a 30 day adventure of using Service Workers with QuickBase.3likes7Comments