Get Started. It's Free
or sign up with your email address
Talk by Mind Map: Talk

1. Scheduled contact sync

1.1. Use a solution similar to the photo cache refresh method

1.1.1. At a certain time interval, the application requests all the contacts that have changed since the last refresh.

1.1.2. Is effective just until someone changes the phone, change that won't be reflected on my phone until the next refresh

1.1.2.1. Worst case scenario: I came to work first, picked up a phone before everyone else. The synced contacts are from yesterday, and everyone that comes to work after me will potentially have different phone numbers. This won't be fixed until the next refresh

2. On-demand contact sync

2.1. Every time the application downloads a list of contacts, the phone numbers will be updated

2.2. Every time I place a call, the contact's phone number is updated (could be bad UX, there will be a noticeable delay)

2.3. It's not a reliable syncing method

2.3.1. No way to ensure which contacts get synced

2.3.2. It depends on the user's behaviour

3. Notification contact sync

3.1. Every time a user logs in, a notification is sent company-wide, and everyone will update the contact

3.2. Possible performance issue, especially at the beginning of a shift

3.3. Thinking forward, with a large number of users spanning multiple timezones, this could become a permanent performance issue.

4. Call management

4.1. Despite what I've thought, I can restrict outgoing calls

4.1.1. If we'll use this, we need a quick way to filter allowed numbers on every call

4.2. I can't restrict incoming calls

4.3. The native dialler screen will display the corresponding contact for that phone number

4.3.1. Issue: if the contact name is not updated, it will be displayed, even if it's wrong

4.3.2. I can't change anything already displayed on this screen.

5. Contact syncing issues

5.1. The biggest issue identified in our call was calling someone who has recently changed their phone and the new number was not updated on my phone.

5.1.1. Solution: when the user selects a contact to call, request the updated phone number from the server before placing the call

5.1.1.1. If the user uses the phone's contact list to call, I can't do anything.

5.1.1.2. Possible bad UX, there will be a delay until the call is placed

5.2. Another issue is receiving a call from someone whose number is not updated on my phone.

5.2.1. I can't do anything in this case

5.2.1.1. I have access to the call info, but I can't delay it, the call will go through

5.2.1.2. Even if I update the contact, the info won't be updated on the dialler screen

6. Proposed solution (based on my understanding of the real mechanics)

6.1. At the beginning of the shift, there will be a period of setting up

6.1.1. Everyone receives a phone (possibly different phone number than yesterday)

6.1.2. No notifications are sent, no scheduled syncs

6.2. After setting up, trigger a sync

6.2.1. Scheduled after a reasonable interval

6.2.2. Or triggered by a manager

6.3. After this sync, use all sync methods

6.3.1. Scheduled

6.3.2. Notification on phone change

6.3.3. On-demand

6.4. Issues

6.4.1. Have to account for different airports, companies and time zones

6.4.1.1. This is where you can suggest the best way to define a "sync group"

6.4.1.1.1. Airport?

6.4.1.1.2. Team?

6.4.1.2. Once a "sync group" sends the "finished setting up" notification, the entire company has to refresh that group of contacts