Discussions

 View Only
  • 1.  Invoice Routing

    Posted 20 days ago
    Tried a few searches but not quite sure how to describe my desire in just a few words.

    What I'd like to find out if it is possible would be to build an application for the tracking and routing of invoices.  I know I can build tables and pipelines to functionally achieve this but the part I'm not sure how to do is to design the app so that when a user receives an email, indicating they have an invoice to review, to build in the ability for them to indicate somehow in that email their response.

    We are currently using a SharePoint Power Automate workflow but it seems to run into issues and I am the only one that knows how to investigate and fix those flows.  The email provides basic information in the body, includes the original invoice as an attachment and then gives them the option to Approve or Reject from right in the email.  For the majority of our invoice approvers they never actually visit our SP site, their interactions are solely through the approval emails they receive.  Once they've selected their response the flow continues on to create an "approval page" and then merges that page with the original invoice.  Post merge it is forwarded to a specific accountant for payment.

    I've been trying to migrate our solutions to various QuickBase apps as it has proven easier for non-technical persons to use and manage.  Just wondering if a similar set up could be built in QB so that users wouldn't have to log into QB to respond to invoice approval requests.

    Thanks

    ------------------------------
    Ember
    ------------------------------


  • 2.  RE: Invoice Routing

    Posted 13 days ago

    @Ember Krumwied

    I think what you are describing is achievable. However, in order to allow users to record a response without logging in to Quickbase​ you'll have to make a choice:

    1. Make part of the app accessible to Everyone on the internet (EOTI) so that anonymous users can create records.
    2. Include a user token with access to part of the app that can modify records.

    Both have their own risks to consider and will depend on your tolerance.

    Because this will be an anonymous response, you also won't be able to leverage native user data about who approved or denied the request. So you'll either need to have the approver fill that data or make the URL unique enough to only apply to the recipient of the notification.

    Let's assume our risk tolerance aligns with the first option. Here is how I would do it.

    1. Create a new table called responses with a field for Invoice Record ID and Approval Choice
    2. Create a role called Email Responder with access to add records and view records in this table
    3. Give that role to EOTI
    4. In the approval notification that is sent to the user, display dynamically generated Reject and Approve buttons that take the user to a new record in that table with the fields pre-filled. (See below for URL structure)
    5. Create a pipeline that triggers when a record is added to the table
      1. When a record is added
      2. Find an invoice record with the Invoice Record ID
      3. Edit the invoice record from step 2 and pass the Approval status from the response record into the approval status field of the invoice table

    URL Structure:

    URLRoot() & "db/" & [_DBID_RESPONSES]
    & "?a=API_GenAddRecordForm"
    & "&_fid_6=" & URLEncode([Record ID#])
    & "&_fid_7=" & URLEncode("Approve")
    & "&z=" & Rurl()

    In this example, fid 6 is Invoice Record ID and fid 7 is the Approval Choice.

    Once the User saves their response, the workflow should kick off.


    I recommend consulting with a QuickBase expert or a developer to help you determine the right level of risk for your application.

    #EOTI #urlformula #Pipelines #rolesandpermissions #Notifications/Email

    ​​​​​

    ------------------------------
    Justin Torrence
    Quickbase Expert, Jaybird Technologies
    jtorrence@jaybirdtechnologies.com
    https://www.jaybirdtechnologies.com/#community-post
    ------------------------------