DiscipleTools / disciple-tools-mobile-app

The React Native code base for the Disciple.Tools mobile app
https://disciple.tools/
16 stars 19 forks source link

Ticketing System #586

Open benmclure opened 3 years ago

benmclure commented 3 years ago

Hi friends. Really appreciate your all of your work on this system. I am not a coder at all and as such need your help!

As you are all I'm sure aware, one of the common issues with any follow up system is getting people to do follow up effectively. As our team has been thinking about getting our multipliers to meet our contacts in a more timely fashion, we came up with some ideas. It would be wonderful to see if we could maybe develop some of these.

1) What if there could be a ticketing system based on location? Let's say a national outreach movement that has multipliers in many cities receives a new contact into its D.T. system through a webform. This new contact is from City A where there are 5 multipliers who are all available. Currently, to my knowledge, the dispatcher would have to choose one of those 5 multipliers to have them follow up on this new contact. Could this be automated so that all 5 receive the contact at the same time on a first come first serve basis. A good example of a similar system would be Uber's or Bolt's or the like's driver apps.

screen-1

Whenever there is a new ticket for a taxi, these services send the drivers the above screen and whichever driver in the area accepts the ticket first get the passenger. In a similar fashion, what if based on the location of a new contact we could send a ticket request to any person who has registered themselves in City A or said they would like to follow up people in City A, B and C?

2) Reminders for reporting It's no secret that one of the most challenging parts of managing a follow up system is getting people who are busy doing the multiplying to report on what's happening. Could the web app be altered so that following the assigning of the contact that a variety of push notifications be sent over time. For example: Multiplier X receives our contact from above and accepts the ticket. He then logs nothing. So in 6 hours or 12 hours or 24 hrs Multiplier X gets a push notification saying: "Hi! Please contact [new contact name] and log the data" Perhaps this could be used to then send up the ticket again to the other multipliers if Multiplier X does not respond in 2-3 days. A similar and good notification would be for reminding to detail Faith Milestones and details for any missing contact data. Weekly or monthly report reminders of stories to let our supporters know etc. would be great too.

I apologise for the long post. These details would, I believe, be a huge addition to the already very powerful system you have already built. Thank you very much for being willing to read through. And please let me know if I've missed some simple setting to make this work and now sound a bit silly :)

Final note, for something like this to work I believe that it would need to be able to push notifications on the mobile app. Our followup people are almost all mobile-only users.

zdmc23 commented 3 years ago

Hi @benmclure !

Thanks for taking the time to write this up! These are really great ideas, and I think that we could def get these on the roadmap (I'll bring these up for discussion on our upcoming Mobile App Dev call).

We've been starting to think about "gamification" strategies to keep the Multipliers engaged, and this is a great first step. Are you on our Disciple.Tools Slack? If not, we should get you added so we can discuss these ideas, and also share what we've been planning.

Per 1, let's start planning this out!

Per 2, I think that we can probably pull that off via the Mobile App Plugin (without requiring a change to the D.T Theme) by using WP-Cron as the scheduler.

Thx, Zach

PS. We are only starting to think about modernizing the look-and-feel of the mobile app, so if you know others who would be able to provide helpful feedback, then let's get them in to our D.T Slack as well (we have a "design" channel where we are brainstorming possibilities)

ericchen59 commented 3 years ago

@benmclure - great to hear your ideas! It'd be great to have you join in on our Slack workspace, if you're up for it.

Feel free to drop me an email and I can get you an invite link: eric.chen59 @ gmail . com (remove spaces)

benmclure commented 3 years ago

Hi @zdmc23 and @ericchen59!

Thank you very much for taking the time to read through our ideas and seriously considering them. I just told our team and they are very excited!

"We've been starting to think about "gamification" strategies to keep the Multipliers engaged" this sounds amazing and I would really love to hear more about it. I'm not on the D.T. Slack but will send @ericchen59 my email now to get the ball rolling.

ahillbilly commented 3 years ago

@benmclure - love the bolt ticketing system idea. The only thing I would add to that is the need to figure out some form of rating system or ability to offer to subgroups before offering to all... Our experience shows that some multipliers are high capacity with medium quality while others may have lower capacity but great quality. One person may be quick to take new contacts, while failing to update the last 17 they took (or lack language), where another may be a bit slower but more faithful (or have incredible language). It can get tricky...

In regard to the push notifications... there is an update needed system with settings to adjust the timing and content of the update needed messages. Any system notification should come through as a push notification... though I think the push notifications were broken in a recent release.

benmclure commented 3 years ago

Hi ahillbilly,

This makes a lot of sense. Prioritising good quality multipliers is definitely key.

2 thoughts:

1) Perhaps a filter could be applied for those who have not updated in the last week or so e.g. a push notification could be sent out to the multiplier saying: "in order to receive new contacts, please update the last x number of contacts from last week". I imagine the amount of detail required from such updating should be specified by the dispatcher in advance? How could this be monitored effectively?

2) The dispatcher could have a tool where the multipliers in any given place are ranked and placed in a sub-group as you said. Those who rank as most effective multipliers and are placed in subgroup 1 would get notified first. I would have to say though, the major problem I see with this is in cities where there might be many multipliers there might be discouragement for people ranked lower on the multiplier list as they would be unlikely to receive contacts. Perhaps, speaking of gamifying, there could be push-notifications like in point 1 which if acted upon boost people back into the higher ranks. Not sure how that would work but it would appear less biased towards a successful few.

benmclure commented 3 years ago

Hi all,

In a slight side note, I would like to have the location field search for addresses in the local language - in our case Azerbaijani. This would be an important step in delegating contacts to multipliers. OR if possible we could have a limited number of details such as a drop down menu for City and then from there people could select their Neighbourhood the contacts could then be delegated to multipliers on the basis of pre-set location names. Is this possible?

Thanks!

Ben

crafton commented 3 years ago

Hi All,

Did you already have the discussion about adding these features to the roadmap? And what's your typical process for accepting contributions?

Cheers

zdmc23 commented 3 years ago

Hi @crafton !

We did have an initial discussion, but would like to continue that discussion with you and @benmclure

It was pointed out that we should enable (and provide configuration options for) this functionality via a WordPress plugin bc there are Teams that would not want their Multipliers (field workers) to self-select new contacts. That said, we can assist with the plugin development.

As for the mobile app development, please feel free to clone this repo and then issue a Pull Request. We are fairly lenient with our coding standards (probably too lenient). One important note! After a Development Team hand-off, we are refactoring our mobile codebase. The most significant changes relate to factoring out components into their own files for reuse, and use of Functional Components (and Hooks) rather than Classes. Please see components/ScreenModal.jsx (https://github.com/DiscipleTools/disciple-tools-mobile-app/commit/d66948f4fcfe7d5f9b0bc577a0c65908b8c914da) for a recent example of what we are looking for

Thanks!