From RPM Wiki
Summary
A contact is
- A collection of contact information
- Belongs to one or more customers
Relationship
Customers
Contacts and customers have a many-to-many relationship with contacts belonging to more than one customer and customers having more than one contact.
- A contact must belong to at least one customer.
- A customer does not have to have a contact.
Contact's "Company" (a customer)
- A contact always has one customer specified as being the company for the contact. This is the customer shown as the company name along with the contact name to identify the contact
- {first name} {last name}, Customer contact, {company}
- Example: "John Doe, Customer contact, Acme Inc."
- For new contacts it's the first customer they are added to
- If the customer is deleted and the contact has other customers then the contact is not also deleted (see below), then the contact's company will be set to the first/next customer in the list (whatever is easiest, it doesn't really matter)
Customer's "Primary contact"
- Once a customer has at least one contact, one of the contacts is specified as being the primary contact for that customer (see below)
Unique
The combination of first name and last name must be unique across all contacts per customer.
- In other words, it is legal for two customers to each have a "John Smith" contact who is not the same contact as the other. I know this could lead to problems, but we're more likely to have problems with different agents trying to add completely different contacts who have the same name. We already hear about that problem with reps, and that's likely a much smaller number of people.
Management
Template
- Template permissions: Every process will have "May participate", "Change the status level" and "Add actions for staff users" options for contacts.
- Default no (unchecked) for all
- Customer contacts can not start forms
- Template default columns: The template designer will also specify the columns seen by all customer contact users
Template and custom fields
- Add/edit field: Every form data field, customer custom fields, and account custom field will have a "Customer contact" security setting of "Hidden", "Read", or "Edit"
- Default for existing and new fields: "Hidden"
Not used yet
The customer contact logon has been deferred (see Future below), but the field security options are being left in. This allows designers to prepare their templates for future customer users. Although this may cause confusion, it was determined to be easier to leave the work done so far in rather than remove it.
Display
- Contacts don't have their own details page. Instead, they are listed together on customer details page in the "Info" web box and have their own edit page.
- "Add a contact" link at top to the right of the "Edit" for info
- Each contact preceded by a toolbar with "Edit" and "Delete"
- This is the same design pattern as form sets on the form details page.
- The primary contact for this customer is listed first.
- TODO: Some further visual indication of the primary status
- Other contacts are listed alphabetically by first name + last name
- For each contact if the current customer is not their company then display their company (customer) in an info style
- Example: "Company: Acme Tools, Inc."
- Within a JS show/hide box will be additional information including
- A list of other customers the contact belongs to
- Each customer is a link to that customer followed by the text (not a link) "(primary for)" if the contact is the primary contact for that customer
- At the top of that list will be a "Add to customer" link that will launch a 1-page wizard where the user can select another customer by combo box to add the contact to. The user will be returned to the original customer.
Add to customer
A link from a contact to select an additional customer for that contact:
- Only customers the user can see are listed.
- Any customers the the contact already belongs to are also excluded
- Any customers with a contact with the same name are also excluded
- If that leaves no customers then the wizard displays a msgError span "There are no eligible customers" and just the cancel button.
Add a contact
The "Add a contact" link goes to a blank contact edit page (see below).
- Clicking cancel means no contact is added.
Edit contact
Clicking "Edit" over a contact takes you to a page where you can edit one contact
- "Company:" Lists all customers the contact belongs to.
- Standard infoContact information including name, email, and phone numbers
Delete contact
The effect of clicking "Delete" depends on how many customers the contact has access to.
- Just this customer: Delete the contact to the recycle bin
- One or more other customers this user doesn't have access to: Remove the link between this contact and customer
- Other customers all of which this user has access to: Confirmation page that lists the other customers and if the user wants to delete the contact or just remove access from this customer.
Edit customer
A drop down selector is shown on the customer info edit page to select the primary contact.
- "Primary contact:"
Delete customer
If a customer is deleted any contacts who belong to only that customer are also deleted and do not show up in the recycle bin (like reps when an agency is deleted).
Primary contact
- If a customer's primary contact is deleted and there are other contacts for the customer then select the first/next remaining contact to be the new primary contact (whatever is easiest, doesn't really matter.
Access from
Staff & agent users
Migration
- All existing processes will have contact participate and start permissions of "No" (unchecked).
- All existing process data fields and custom fields will start with a contact permission of "Hidden"
- Primary contact: The primary contact as it is now would be removed. Existing customers would need a migration to create contacts if they have existing contact info. This contact specified as being primary is what would show up in views (and Shared fields)
Future
- Contact import
- Contact access to customer commissions data (net billed)
- Contact start forms
- Agency branding when the contact logs on that replaces or augments the subscriber branding
History
- Themisto: Feature added
Future: Customer logon
- Contacts have an RPM logon (a customer user)
- Was initially going to be a part of the Themisto customer contact debut, but was deferred for schedule reasons.
Contact display
- Change "Other customers" to a general "Details" area including logon history information
Contact edit
- RPM logon edit control
- Default is logon "disabled"
Add a participant
If the process allows customer contact participants then the add a participant wizard gets a new "Customer contact" section:
- Link to select a contact "By customer". This goes to a page with a combo box that has every customer the user can see that has at least eligible contact. The page after that then lists the eligible contacts for the selected customer and clicking one adds the participant.
- Under the "By customer" link will be a list of all referenced customers that the user has access to and that have at least one eligible contact. Clicking the customer name goes to the next page that lists the eligible contacts for that customer. If present, the primary contact is indicated with some extra text after their name but not part of the link. Clicking the name adds them as a participant.
- Eligible contacts are contacts that aren't already a participant and have a user record created.
As a contact
- Notes for staff and anything else specifically hidden from agent users is also hidden from contacts.
- Customer contacts do not have shortcuts
- Customer contacts do not have access to the recycle bin
- Customer contacts do not have access to labels
Agencies
If agent users are not hidden from contacts and a contact has an agency owner specified then the contact user can see that agency.
- See agency info and custom fields (per-field security)
Customers
Process management
- Contacts see any form they are a participant of in processes that the contact user type has access to. (per-field security)
- Views: All, Action required by me, Unread, Archived
- For history use the contact's primary customer (see Relationship above)
- Customer contacts can not start forms (yet)
- Customer contacts can not add participants (yet)
- Customers can be owners of actions and can add actions for themselves.
Commissions
None at this time other than fields in forms.
Reconciliation
None at this time
Home page
Uses \Sub\Home.aspx
- Agencies
- Display agency that owns the contact if specified, but only if agent user contact access is not hidden. Hiding contacts from agent users also hides agencies from contact users. (this is on purpose for subscribers who don't use agencies)
- Customers
- Display primary customer
- Then list any other customers alphabetically in smaller font in a list that will be wrapped in an auto-scroll div that uses JavaScript to add scrollbars when the list is too long and would push the process list below off the page)
- Processes
- Each process customer users have access to
- The same style and alphabetical sorting as the home page list for agent users
- Attention list (no commissions)
- Home page notes
Preferences
- All except "Default views" and "Shortcuts"
Code
- Contacts will use .aspx pages in the Sub folder like both agent user types.
- Contacts will have their own type, including in the security.config
Future: Agency ownership
- Allows agent user managements of contacts
- Was initially going to be a part of the Themisto customer contact debut, but was deferred for schedule reasons.
Agency
Each contact may have an agency specified as the contact's owner. This affects agent user control of the contact and the contact's visibility of agency information.
- n/a (no agency) is allowed
- If the contact is added by staff it is the first agency listed with access to the customer is the owner.
- If there are no agencies with reps that have access to the customer, it's n/a.
- After a contact is created any agency with reps that have access to any customer of the contact can be selected.
- By removing rep access or a customer contact relationship it is possible to end up with a contact owned by an agency that owns them but can't see them anymore. This is an acceptable and unlikely result of the rules and is easily fixed by a staff user.
- If an agent user adds a contact their agency owns it
- Only staff users see the ownership setting and can edit it.
Contact edit
- "Owned by:" agency drop down selection.
- Lists all agencies that have reps with access to a customer the contact belongs to.
- Not shown if agent user contact access setting is "Hidden" (See "All contacts" management, above)
- This page was last modified 20:30, 18 Mar 2008.
- This page has been accessed 8455 times.
