Forum Discussion

TonyGonzalez's avatar
TonyGonzalez
Qrew Trainee
4 months ago

Send an email when a date is reached

I have a app to manage all my annual agreements.  I would like an email to my management staff when 90 days is reached (later at 60 and 30) to remind them an agreement is expiring.  My problems are as follow and am looking for the solution:

  • Reminders don't let me include just a few specific fields.
  • Customer Emails don't allow me to send based on a date being reached (Only when a record is added, modified, etc.)
  • I don't want a subscription - Or do I?


------------------------------
Gonzo - A Newbie, but learning fast. (Former SmartSheet evangelist who is quickly converting to QuickBase)
IT Director City of New Braunfels
------------------------------

6 Replies

  • Maybe the solution is to create a report of agreements with a Next Due Date in less than 90 days and email that report?



    ------------------------------
    Gonzo - A Newbie, but learning fast. (Former SmartSheet evangelist who is quickly converting to QuickBase)
    IT Director City of New Braunfels
    ------------------------------
    • TonyGonzalez's avatar
      TonyGonzalez
      Qrew Trainee

      Reports created and subscriptions made.  Just needed to keep exploring.  



      ------------------------------
      Gonzo - A Newbie, but learning fast. (Former SmartSheet evangelist who is quickly converting to QuickBase)
      IT Director City of New Braunfels
      ------------------------------
    • ChayceDuncan's avatar
      ChayceDuncan
      Qrew Captain

      The option really just comes down to format. The most basic and simple solution is a subscription. You make a report of the data you want and have that sent out to your users. A subscription will embed that report as part of the email and it includes whatever fields are on the report. 

      If you need something where it sends an email for each record individually you'll need to leverage Pipelines and have it monitor for records that meet your criteria and then edit the record in a way that it sends a notification instead ( a modification to the record ). This is an example where you could make a formatted email with specific calls to action & style. 

      With how you described it though I would recommend a report + subscription to start though. 



      ------------------------------
      Chayce Duncan
      ------------------------------
  • I just had a similar need to send an email to non-users when a date is reached. 

    I created a pipeline to do a query for records where the date of the record is today, and for each record that is found to check a checkbox in the record. 
    I then set up a notification that is triggered by the record being updated and the checkbox field changing to checked. 


  • I've used similar strategies to what @chayce and @elazar described. And have found it useful to create "helper checkboxes" formulas, resulting in either true or false, which are super useful for debugging logic and building out reports showing a list of records that would've receive an email in this case. Checkout the Rem or Mod functions which are similar, but different for negatives (which may not matter in your use case). 

    For example, here are some fields ideas:

    // Agreement Expiration Date (Type: Date)
    // Use the calendar picker to specify a date on the front-end
    
    // Agreement Expiration Date Countdown (Type: Formula Duration)
    [Agreement Expiration Date] - Today()
    
    // Agreement Expiration Date Countdown To Days (Type: Formula Numeric)
    // Cast the Duration "Smart Units" to a number for consistency
    ToDays([Agreement Expiration Date Countdown])
    
    // Should Notify Management (Type: Formula Checkbox)
    If (
        // Check the box
        // There is no remainder after dividing two numbers
        // 30 is your "follow up frequency" interval
        Rem([Agreement Expiration Date Countdown To Days], 30) = 0,
        true,
    
        // Default to unchecked box
        false
    )

    You'd also want to omit records with an Agreement Expiration Date greater than 90 Days via your report filter criteria or in the Should Notify Management logic, something like:

    If (
        // Check the box
        Rem([Agreement Expiration Date Countdown To Days], 30) = 0 and
        [Agreement Expiration Date Countdown To Days] < 91,
        true,
    
        // Default to unchecked box
        false
    )

    These example could be consolidated into a single formula to reduce the number of fields in the table, but it may help to at least keep the "countdown" as it's own field for testing and future maintenance! Hopefully that helps :)



    ------------------------------
    Brian Seymour
    ------------------------------
  • I have something set up in my app where automated emails are sent to clients when we are waiting on information from them. So we'll request information, then for example 2 weeks later, an email will go out reminding them that we're still waiting for X.

    I use Notifications for this, which trigger when a record is created or updated and there is a Pipeline that sets a status to overdue for all overdue tasks first thing each morning, that triggers a new task to say we've chased once or twice etc and that triggers the emails.

    Since we use a table of tasks that act as child records to the main work records, it might not work as effectively in your situation, but there are ways to use pipelines and/or actions to trigger notifications effectively.



    ------------------------------
    Joe Alderson
    ------------------------------