Details
-
Type: New Feature
-
Status: Done/Fixed
-
Priority: Major
-
Resolution: Fixed/Completed
-
Affects Version/s: None
-
Fix Version/s: 1.0
-
Component/s: None
-
Labels:None
Description
Overview
=======
Phase 1 implementation will support simple entry of phone calls and meetings in association with a single target contact by a source contact ('source' is the contact_id of the user creating the activity item) . Links to create these activity items will be accessed from the Contact Summary (view/contact) screen and the Contact's Activity tab. Open (not completed) activities will be browsable from both the target and 'source' contact views.
These activities my be scheduled for a future date/time, or logged as completed. In phase 2, we will expand Activity support to include To-do's, assignment of activities to others, and activities encompassing multiple 'target contacts' (e.g. host + multiple invitees/attendees for meetings). We will also provide dashboard/blocks for tracking the current user to view their upcoming and overdue activities, and possibly automated reminders.
The following functionality is included for phase 1:
1. Schedule A Meeting OR Log A Meeting
2. Schedule A Call OR Log A Call
3. Insert crm_activity_history when meeting or call is 'completed'.
4. Browse top 3 open activities for a contact (Contact Summary screen)
5. Browse all open activities for a contact (Contact's Activity screen)
6. View details of a completed call or meeting
7. Create follow-up activity for a completed call or meeting
Schema
======
The schemas for crm_phonecall and crm_meeting have been updated as shown here such that fields with the same purpose are given the same name. If there is a better approach to storing duration (rather than hours and minutes as separate integers) - please feel free to modify.
– both tables —
source_contact_id
target_contact_id
scheduled_date_time
duration_hours
duration_minutes
subject
details
– crm_meeting —
location
status ENUM('Scheduled', 'Completed')
– crm_phonecall —
phone_id
phone_number
status ENUM('Scheduled', 'Left Message', 'Unreachable', 'Completed')
Implementation
============
1. Schedule A Meeting OR Log A Meeting
1.1 "Schedule..." link appears above (new) Open Activities section on contact/view and contact/view/activity
1.2 "Log.." link appears above Activity History section on contact/view and contact/view/activity
1.3 "Schedule A Meeting" form fields (required fields have *):
Name (target contact display_name - frozen)
Subject *
Location
Scheduled* (date / time selector)
Duration (hours / mins selector)
Status* (drop-down, defaults to Scheduled)
Details
1.4 "Log A Meeting" form fields (required fields have *):
Same as 1.3, but Scheduled defaults to current date/time and Status defaults to Completed,.
1.5 View Meeting - all fields, frozen + 2 buttons for follow up (see 6. below)
---------
2. Schedule A Call OR Log A Call
2.1 Link placements same as for meetings above
2.2 "Schedule A Call" form fields (required fields have *):
Name (target contact display_name - frozen)
Subject *
Select or Enter Phone Number (2 fields: select dropdown displaying all entered phone numbers for target contact and a text field to enter phone_number if not in dropdown)
Scheduled* (date / time selector)
Duration (hours / mins selector)
Status* (drop-down, defaults to Scheduled)
Details
2.3 "Log A Call" form fields (required fields have *):
Same as 1.2, but Scheduled defaults to current date/time and Status defaults to Completed,.
2.4 View A Call - all fields, frozen + 2 buttons for follow up (see 6. below)
---------
3. Insert crm_activity_history when meeting or call is 'completed'.
When either type of activity is saved w/ status = Completed, insert history record with module = CiviCRM, entity_table = crm_contact, entity_id = target contact id, activity_id = PK from meeting/phone table, activity_type = "Meeting" or "Phone Call", activity_summary = subject, activity_date = current date-time, callback = ? (appropriate function call to VIEW the source meeting or phonecall record).
---------
4. Browse top 3 open activities for a contact (from both source and target contact view screens) on Contact Summary screen
Display top 3 of combined phonecall and meeting tables (by scheduled_date_time ASC) where target_contact = currently viewed contact OR source_contact = currently viewed contact AND status != 'Completed'.
Display columns are:
Type (e.g. Meeting, Phone Call)
Subject
Scheduled
Status
(action link = Edit)
Link to 'View all Open Activities...' in last row of table (same as for Relationship section...)
NOTE: I think we can do a union of the 2 tables, and pick top 3. If not or a hassle, just show top 2 from each table.
--------
5. Browse all Open Activities for a contact (Contact's Activity screen)
Display all of combined phonecall and meeting tables (by scheduled_date_time ASC) where target_contact = currently viewed contact OR source_contact = currently viewed contact AND status != 'Completed'.
Same browse table columns as above with added pager features. Sortable by Date (ASC and DESC), Subject and Activity Type. Default sort is Date ASC
Action links are: Edit, Delete.
View mode is accessed by clicking Subject (let's try this rather than having a View action link, which I'm thinking is redundant and clutters things up).
NOTE: Open Activities are browsable from both target and source contact view pages. However, once an activity is completed the activity 'disappears' from the Open Activities browser. The resulting Activity History record is only linked to the target contact and therefore will not appear in History for the source contact's view. This is 'acceptable' for now.
------
6. View details of a completed call or meeting and create follow-up activity
6.1 Clicking "Details" link on Activity History browse table brings up Meeting or Phone Call form in view (frozen) mode.
6.2 In addition to 'Done', this form has 2 other buttons:
- Follow Up Call
- Follow Up Meeting