How would you implement a follow up reminder system?

I’m trying to implement a system inside of Fibery that will be used to track and remind about:

  • Following up on prospective clients to see if they are ready to start
  • Following with new current clients to see how their project is going
  • Following up with long standing clients to ask for referrals
    (These are all in separate spaces or DBs)

The way I have it now is just a “Follow Up Date” field which I manually update. But generally the periods between which I follow up have a defined length.

For example, for following up on prospective clients we do it: 1 day after first meeting then (if no response) → 2 days later then → 1 week later then → 2 weeks later. For following up with long standing clients for referrals its a more regular process of every 6 months, so after I send an email the Follow Up Date is reset to 6 months from today.

Any advice on how to automate the date changes of above? Maybe creating some kind of Follow Up Type field that defines the length?

Hi, @Dimitri_S

Thanks for the question. I have an idea on how it can be implemented.
Let’s say there is a Client database inside Fibery.

  1. Add Follow Up database with relation many-to-one to Client
  2. Create Rule which is executed on Client creation (or it can be a button) which adds several Follow Ups with corresponding dates (1 day, 1 week and etc.)
  3. Create Scheduled rule which occurs every day on Follow Up database. Apply filter to this rule with criterion: the follow up date should be equal Today. Add action step Notify Users with your text which reminds about Follow Ups.

Please let me know about any questions or comments.

Thanks,
Oleg

This is a pretty good approach, but I couldn’t figure out how to shift the future follow-up dates with the native automations. For example, if the notification comes but the user doesn’t actually follow up it shouldn’t just move on to the next interval.

I did a script based approach which works like this:

  1. User gets notified to follow up on a client
  2. User follows up with client, clicks Followed Up button
  3. The Follow Up On date is shifted according to what the next follow up interval should be
  4. Follow Up Stage is used to track what stage the client is in in the follow up interval

6Awb1J1UHu-output

Here is the script code:

const fibery = context.getService('fibery');
for (const entity of args.currentEntities) {

    const stageConditions = {
        'First': { waitDays: 2, nextStage: 'Second' },
        'Second': { waitDays: 4, nextStage: 'Third' },
        'Third': { waitDays: 8, nextStage: 'Fourth' },
        'Fourth': { waitDays: 30, nextStage: 'Last' },
    }

    const currentStageName = entity['Follow Up Stage'].Name
    const conditions = currentStageName ? stageConditions[currentStageName] : { waitDays: 1, nextStage: 'First' };
    let today = new Date();
    const nextDate = today.setDate(today.getDate() + conditions.waitDays);

    await fibery.updateEntity(entity.type, entity.id, {
        'Follow Up On': new Date(nextDate).toISOString().split('T')[0],
        'Follow Up Stage': conditions.nextStage,
    });
}