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
-
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. -
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. -
Create incidents
Users with the proper role may create new incidents via the CRM Support module. -
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. - Administer xTprofile module
- Administer xTuple Customer Web Portal module
Example Workflow (Use Case # 3, Create Incident)
-
Customer logs in to xTuple.org and submits incident
- Attachments are stored in a directory on the webserver
- URLs are stored in the Documents tab of the incident
-
Users are notified of new incident
- Web site sends email to incident creator and xTuple Support
- Support lead assigns incident
-
xTuple staff updates issue and submits new comment
-
If there's an attachment it must be manually uploaded to the web directory
- URL reference is entered in the Documents tab of the incident
- Customer receives email notification of update from xTuple
-
If there's an attachment it must be manually uploaded to the web directory
- Customer goes to site and views incident
-
Customer enters new comment via site
- Web site sends email to incident creator and xTuple Support
-
xTuple user closes incident
- Customer receives email notification of update from xTuple
Issue Tracker
- View public issues
- Report public issue
- Subscribe to a public issue
Required Functionality (Phase 1)
xTprofile module
- List xTProfile fields
- Configure an xTProfile field
- Placement in Drupal admin menu
- Drupal permissions

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
- Settings
- Not Authorized Message
- Incident List Screen
- Search/filter incidents
- Create incident
- Modify incident
- Attach files to incidents
- Email Notifications
- Placement in Drupal admin menu
- 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
- Drupal tab on Contact screen
- xTuple permissions
- 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.
- Public incident list
- Filter options for public incidents
- View/update page a public incident
- Option to subscribe to an incident
Internal Design
Module installer must set up a folder for file attachments for incidents.
xTuple drupaluserinfo package
Package must be installed with the xTuple updater
Package contents
- new db schema drupalcontact
- new table drupalcntct
- new table drupalserverinfo
- Web Portal Configuration screen
- Drupal tab for Contacts screen
- 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