xTuple Web Portal

 

Overview

xTuple has developed a web-based front end to the CRM module in xTuple ERP that interacts with the xTuple database using API views.  This solution is designed to allow users of xTuple ERP to interact with customers via a web portal.

The xTuple Web Portal is designed to work with a Drupal 6.x web site and an xTuple ERP (version 3.4 or higher) database. The Drupal web site and the xTuple database may be hosted on different servers. 

Components

The solution consists of a flexible combination of Drupal modules and xTuple extension packages.

Drupal Module xTuple Package Function Expected Completion
xTdb none Connect Drupal site to xTuple db 06/10
xTprofile xTprofile Manage relationship between Drupal users and xTuple contacts 06/10
xTsupport xTsupport Manage incidents related to a specific CRM account 06/10
xTtrack xTtrack Manage incidents by Project and Project Category 07/10
xTb2b xTb2b B2B ordering 09/10
xTreturns xTreturns Returns management TBD
xTquote xTquote Sales quote and configurator TBD

Drupal modules

The following two foundation modules will be required by all other xTuple Web Portal components

xTdb module

This module is needed to manage the connection between a Drupal site and an xTuple database. xTdb is used by all other Drupal modules in the xTuple Web Portal suite for connecting to xTuple.

xTprofile module

xTProfile allows the Drupal admin to configure information about the xTuple Contact, Address, and Characteristics fields, such as which fields to require at registration, etc.

Integrates with the Drupal registration process, and allows a user to enter data directly into an xTuple db when registering for a Drupal account

Requires the xTprofile package in xTuple

The following application modules function on top of the foundation modules, which are required for them to work. Each application module includes a specific set of functionality, and each can be run independently or together with the other application modules.

xTcrm module

xTcrm is designed to faciitate communications between a company and existing customers. Drupal users will only be able to enter/view incidents related to a specific CRM account. 

Authenticated Drupal users will be able to view and enter incidents via the web site that will be inserted into an xTuple database, where they can be updated and managed via the xTuple client. 

xTtrack module

This module functions as a public issue tracker, similar in purpose to a tool such as Mantis Bug Tracker.

The module shares much of the look and feel of xTcrm, but it is meant for managing categories of issues that can be viewed by all site users, rather than restricting users to incidents related to a particular account.

Future modules

xTb2b

B2B ordering portal

xTreturns

Returns processing system

xTquote

Sales quoting system

configure product and get a quote

 

xTuple packages

These packages are extensions to the xTuple ERP application. They consist of scripts and resources that are zipped together into a .gz file, and they must be installed in xTuple via the updater application.

xtWebPortal manager 

View and manage installed Drupal modules from the xTuple Web Portal suite

xTprofile package

xTuple Web Portal connection manager

Drupal user associations manager

Drupal tab on xTuple contacts screen to manage user info and roles

xTsupport package (goes with xTsupport module)

Display Drupal user name in incident workbench incident list

Display Drupal user name on incident screen, in contact section

xTtrack package (goes with xTtrack modules)

Install preconfigured set of characteristics to store data about issues

Ability to compile release notes and print report

xTb2b package (goes with xTb2b module)

Show Drupal username on customer workbench CRM tab

Show Drupal usernames on CRM Account screen when listing all contacts

xTreturns package

Display drupal username on returns-related screens

xTquote package

Install screens for managing quotes submitted from the website

Use Cases

CRM

  1. Register new account
    When a new user registers for an account on the Drupal site, a new contact record will automatically be inserted into xTuple for that user. In order to use the xTuple Customer Web Portal, an xTuple adminstrator will have to assign the Contact record to a CRM Account in xTuple and assign the Drupal user to a role that is authorized to use the portal.
  2. View incidents
    Once a Drupal user has been created, granted the proper Drupal role, and assigned to a CRM account in xTuple, he will be able to view a list of incidents related to his CRM account.
  3. Create incidents
    Users with the proper role may create new incidents via the CRM Support module.
  4. Update incidents
    Drupal users may add comments to an existing issue.
    xTuple users may add comments to an issue, or change its status, owner, etc. via the GUI.
  5. Administer xTprofile module
  6. Administer xTuple Customer Web Portal module 

Example Workflow (Use Case # 3, Create Incident)

  1. Customer logs in to xTuple.org and submits incident
    1. Attachments are stored in a directory on the webserver
    2. URLs are stored in the Documents tab of the incident
  2. Users are notified of new incident
    1. Web site sends email to incident creator and xTuple Support
  3. Support lead assigns incident
  4. xTuple staff updates issue and submits new comment
    1. If there's an attachment it must be manually uploaded to the web directory
      1. URL reference is entered in the Documents tab of the incident
    2. Customer receives email notification of update from xTuple
  5. Customer goes to site and views incident
  6. Customer enters new comment via site
    1. Web site sends email to incident creator and xTuple Support
  7. xTuple user closes incident
    1. Customer receives email notification of update from xTuple 

Issue Tracker

  1. View public issues
  2. Report public issue
  3. Subscribe to a public issue

 

Required Functionality (Phase 1)

xTprofile module

  1. List xTProfile fields
  2. Configure an xTProfile field
  3. Placement in Drupal admin menu
  4. Drupal permissions
 
1. List xTProfile fields

 1.1 Add new field

Administrator can set up any or all of the fields from the xTuple Contact record to be visible in Drupal.

When a particular field is selected, you go to the Field Settings page for that field

2. Configure xTPRofile field

2.1 Category: [TEXT FIELD]

The category the new field should be a part of. Categories are used to group fields logically. And example category is "Personal Information."

2.2 Explanation: [TEXT BOX]

An optional explanation to go with the new field. The explanation will be shown to the user.

2.3 Visibility: [RADIO BUTTONS]

  • [BUTTON]  Hidden profile field, only accessible by administrators, modules and themes.
  • [BUTTON] Private field, content only available to privileged users.
  • [BUTTON] Public field, content shown on profile page but not used on member list pages.
  • [BUTTON] Public field, content shown on profile page and on member list pages

2.4 Weight: [SELECT BOX]

The weights define the order in which the form fields are shown. Lighter fields "float up" toward the top of the category.

2.5 [CHECKBOX] The user must enter a value.

2.6 [CHECKBOX] Visibile in user registration form. 

3. Placement in Drupal admin menu

Admin menu, User Management section, display as “xtProfiles”

4. Drupal Permissions

Access user xTprofiles

Configure xTprofile fields

xTcrm Module

  1. Settings
  2. Not Authorized Message
  3. Incident List Screen
  4. Search/filter incidents
  5. Create incident
  6. Modify incident
  7. Attach files to incidents
  8. Email Notifications
  9. Placement in Drupal admin menu
  10. Drupal permissions

1. The Settings screen for the Customer Web Portal looks like this (see explanatory text below for modifications to this screen):

1.1 General Settings

General Settings For CRM Support Module

1.1.1 CRM Support Module Path:  [TEXT FIELD]

Designate the url path information for the CRM Support Module, DO NOT INCLUDE any slashes, i.e. http://www.yoursite.com/CRM = CRM

1.1.2 CRM Support Permission Role:  [MULTIPLE SELECT BOX]

Select the roles that will be granted access to incidents for their account 

1.1.3 [REMOVE the demo information from the Settings page]

1.1.4 Administrator Role: [SELECT BOX]

Select the role that will be granted access too incidents for all accounts

1.2 Mail Settings

Email Settings For Customer Web Portal

1.2.1 Email Notification:  [ENABLED/DISABLED]

Select email notication toggle

1.2.2 From Email Address:  [TEXT FIELD]

The From Address of the CRM Support email

1.2.3 Bcc Email Address:  [TEXT FIELD]

If you wish to Bcc the Customer Web Portal email, please list them here, for example, support@xtuple.com

1.3 File Attachment Settings

Files that are attached to incidents are stored in this directory on the web server: /sites/default/files/incident_files/

1.3.1 File Extensions Allowed:  [TEXT FIELD]

Please use space to separate each file extensions, do not include the dot (.) Also: the following file extensions will NOT be allowed by drupal default: engine inc info install module profile test po sh .*sql theme tpl.php xtmpl svn-base pl Entries Repository Root Tag Template all-wcprops

1.4 Server Settings

Incident Server settings

1.4.1 xTuple Server IP Address: [TEXT FIELD] 

The IP address of your xTuple ERP database

1.4.2 xTuple Server Port: [TEXT FIELD]  

The port needed to connect to your xTuple ERP database

1.4.3 xTuple Server Database Name:  [TEXT FIELD]

The name of the xTuple ERP database

1.4.4 xTuple Database User: [TEXT FIELD]

The xTuple user name that will be used to access the xTuple ERP database

1.4.5 xTuple Database password: [PASSWORD FIELD]

The xTuple password that will be used to access the xTuple ERP database 

1.5 Misc. Settings 

Miscellaneous settings for Customer Web Portal

Access denied message [TEXT BOX]

2. Not Authorized

Users who are not logged in or not authorized to use the Customer Web Portal will see an error message instead of a list of incidents. Content of the message is controlled on the Settings screen.

Authorized users will see a list of incidents. They can view/update existing incidents or create new ones.

3. Incident List Screen

4. The Incident List screen needs additional filtering and sorting capabilities.

For Phase 1

  • [checkbox] Hide closed

  • Add a date/time column called Updated

  • Columns should be sortable

  • Hide (remove) the time in the Created column

For Phase 2

  • Full set of Mantis-like filters (TBD)

5. Create Incident Screen

6. Modify Incident Screen

7. Attach files to incidents

Users may attach up to 4 files to an incident. Files may be attached when incident is created or modified.

8. Email Notifications

Email is generated whenever a new incident is created or modified via the Customer Web Portal

Emails are sent to the following recipients:

  • Incident author
  • Incident owner
  • Incident assignee
  • Email notification address from Settings page
  • bcc address from Settings page

 

------------------------------

New Incident Email

Trigger: new incident submitted via CRMsupport module

Subject: Incident #[x] has been submitted to xTuple.

To: [email of named support contact]

BCC: [crmsupport@xtuple.com]

From: Do-Not-Reply

Body:

This email is to acknowledge that Incident # [x] was created at [time, date] by [name of named support contact]. xTuple Customer Support has logged your incident and we will notify you when we take further action.

IMPORTANT: To view or update this incident, go to the Customer Support website at xTuple.org – http://www.openmfg.info/crmsupport/showincident/183 – and login with your xtuple.org username and password. Please do not reply via email.

Incident Description: [Description]

Comment: [Initial Comment]

Thank you for using the xTuple Customer Support interface to report your issue. We will respond as soon as we can.

Sincerely,

The xTuple Team

 

-------------------------------------

Incident Update Email

Trigger: new comment on existing incident submitted via CRMsupport module

Subject: Incident #[x] has been updated.

To: [email of named support contact]

BCC: [crmsupport@xtuple.com]

From: Do-Not-Reply

Body:

This email is to acknowledge that Incident # [x] was updated at [time, date] by [name of named support contact]. xTuple Customer Support has logged your update and we will notify you when we take further action.

IMPORTANT: To view or update this incident, go to the Customer Support website at xTuple.org – http://www.openmfg.info/crmsupport/showincident/183 – and login with your xtuple.org username and password. Please do not reply via email.

Incident Description: [Description]

Comment: [Most Recent Comment]

Thank you for using the xTuple Customer Support interface to report your issue. We will respond as soon as we can.

Sincerely,

The xTuple Team 

 

9. Placement in Menus

Admin menu, Site configuration section, display as “xTuple Web Portal”

10. Permissions

View xTuple Web Portal

Configure xTuple Web Portal 

xTprofile package

  1. Drupal tab on Contact screen
  2. xTuple permissions
  3. Notes on usage

1. Drupal tab on Contact screen

        [IMAGE OF DRUPALUSER TAB]

2. Permissions

Manage xtprofile

3. Notes on usage

Here are the important points about adding or editing an incident in xTuple.

The Notes field is for internal discussion only—it will not be displayed to customers on the web.

The Comments field is where you write text that will display to users on the web.

When you submit or update an issue, you have the option to send an email to the customer. Use this option when you want to alert a customer to a specific update, but make sure to cancel the email if you are updating the issue with internal information only.

Required Functionality, xTtrack module

Update the xTuple Web Portal Module to manage "public" incidents to replace the Mantis issuetracker.

  1. Public incident list
  2. Filter options for public incidents
  3. View/update page a public incident
  4. Option to subscribe to an incident

Internal Design

Module installer must set up a folder for file attachments for incidents. 

Location: /sites/default/files/incident_files
  Need to designate a postgres user for the module to use to access the database
 

xTuple drupaluserinfo package

Package must be installed with the xTuple updater

 

Package contents

 

  1. new db schema drupalcontact
  2. new table drupalcntct
  3. new table drupalserverinfo
  4. Web Portal Configuration screen
  5. Drupal tab for Contacts screen
  6. Menu items

 

When will the module be available

When will the drupal module be available to download.

Reporting features?

Do we want to add any minimal reporting requirements to the spec? One report I can think of that would be useful (having been using the web portal in production for almost a year now) would be Named Support Contacts by CRM Account.

Another report I've thought would also be useful would be one where you could see incident/comment volume over a date range.

Pierce