Omnifocus Perspective Help?

hey MPU,

Need help with setting up a structure/perspective in Omnifocus (unless you have a better suggestion). There’s a list of about 70-80 people that I follow up with for guidance/mentoring. At times, I forget whether it has been 30 days, 60 days, 90 days since last follow-up. I end up having to search their name in Fantastical and compare appointment dates.

I imagine I should be able to do the following in Omnifocus, but not sure on the best setup.

Project - Guidance
Task - Follow Up on Person Name - Person Number

But then I want something to tell me if it has been 30, 60, or 90 days since the last follow-up?
Is there an automation to build out or is OF not the right app for this?

I could replicate in AirTable (I think), but then AirTable wouldn’t send me an app notification if someone has gone from day 30 to day 31 or something.

I am seeing if Craft can do this…but I don’t see that either

I think there are many ways you could do this in OmniFocus, but:

  • Have a repeating task using defer dates. The defer date would be for when you want to follow up with a person. Make the repetition every X number of days give you have a mix.
  • Then create a perspective that only shows tasks in the ‘Guidance’ project that are available (and sorted by however might make sense). If they are available, you would only see those tasks (or persons) who have met your repetition criteria.
  • As for keeping track of the dates, you could put that in the task note, adding a date each time you do it, but that might get unwieldy. Maybe a link in the note to another app (I would probably opt for Drafts, but Airtable or Craft could work as well) where individual records for each person are kept for the dates you last checked.

Lots of possibilities for how you might do this, but that’s one that came to mind!

1 Like

There are many way to do this depending on what you’re trying to achieve. You can set repeating tasks or projects that repeat every x days.

It’s also possible to set the next defer and due dates before completing an action.

If you want something more flexible, OmniFocus isn’t the tool you need, you probably need some form of CRM which is far more closely related to people rather than tasks.


Personally I would do it this way. I would create a spreadsheet with the list of 80 people. I would have a column with the date you last spoke to them. Add another column showing how many days it has been since that date. Then you can sort by that column. I would do a weekly review and look at that spreadsheet and create tasks in Omnifocus for all the people you want to follow up for that week.



I love Omnifocus, but for this use case the spreadsheet solution seems a better choice.

1 Like

I like that or the CRM (potentially automatable with the check-in script updated in one place periodically.) Whatever will make it easiest to train an replacement/share the workload, ultimately…

Here’s one way you could do it:

  • Use a specific tag (or two) for this type of agenda item.
  • Use Defer rather than Due dates (and Repeat each of these tasks on completed rather than Due). This will allow the follow up task to be available for completion even though you may be waiting to complete it according to your cycle for that person.
  • Use the Organized Structure settings for the perspective and you can get a read on relative dates for each follow-up. In my example below, one follow up would have been available for the last week, I just didn’t take the action. One more will come available the next week.

Thank you everyone for the insight!!

As of right now as an initial test of this workflow…

In AirTable, I have the following fields

  • First Name
  • Last Name
  • Mobile Phone
  • Birthdate
  • Email
  • Last Follow-Up Date
  • Days Since Last Follow-Up (Formula in AirTable)

In Omnifocus, I added a Repeating Task as part of my Weekly Review to check each week on the AirTable.

It’s been 24 hours so far…I am now trying to figure how to store the history of ‘follow-up’ dates. Because as of now, my current setup only saves the last date in AirTable. This is getting bigger than I anticipated.

Is it still possible to continue doing this in AirTable?

1 Like

You’ll have to add another table to do that.

  • Add a table called something like Communications or Followups
  • Create a date field
  • Create a person field, type ‘link to record’, choose from your People table

Then, on your People table:

  • Create a new field called last follow-up date
  • Type rollup, rollup source communications
  • Choose date as the field you want to rollup
  • Use MAX(values) as your aggregation formula

Now you should see the most recent contact of that person from the communications table. And in the linked field on People, you can see all of the communications dates, or you can filter on the communications table.

1 Like

I think I might need to try this again, I keep doing it and testing it. But only getting the 1 date, nothing is rollup on my end (other than most recent).

Would it be possible to message me a screenshot? Maybe I missed a step?
Also, do I need to be on a paid version of AirTable for this to work?

Hey, sure. Here’s a proof of concept app. It’s doable in the free version except you’re going to run into a 1000 row limit on the interactions table, probably within a year with so many people you’re tracking. So you might have to periodically archive some of the data.

Here’s the app, two tables:

Counselor column on the communications table:

Making that should automatically create the has-many Communications column on People:

With that relation in place, the rollup should work with the has-many Communications column as the source, and Data as the field on the Communications table.

I can’t figure out what I am doing wrong here. I have everything setup exactly as you do, but I keep only getting the most recent entry to display

Edit - I figured it out. Silliest mistake ever on my end. I thought I was changing the same date in the same box each time. LOL. It didn’t dawn me that the communications table is a running list hahah

Thank you!! It works now

1 Like

Hah, been there. Glad to hear it’s working. :slight_smile:

I have a calculation setup for the Last Contact and a new field called “Number of Days Since”

Is there a way to color-code that calculation?

Anything greater than 90 is a color, 40-89 is another color, 0-39 is another color?

You can color badge the whole row. While your table is selected, choose Color > Conditions, and then you can add your conditions based on those numbers and the row will color based on the first one it matches. So you probably want > 90, then > 40, then the default color.

I’m not sure if you can color the cell itself, like in Excel, unfortunately.