0% found this document useful (0 votes)
31 views

1CRM 8.6 Implementation Guide

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
31 views

1CRM 8.6 Implementation Guide

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 231

1CRM IMPLEMENTATION GUIDE

A Comprehensive Guide to Implementing


and Administering 1CRM
1CRM System 8.6 Implementation Guide Table of Contents

Navigating This Guide:

This Guide has been designed to be helpful both as a printed document, and as an
electronic document accessed on your computer screen. If you are accessing it via
a PDF viewer such as Acrobat Reader or Mac Preview, please notice:

1. The Table of Contents entries are all live hyperlinked to the pages to which
they refer.
2. At the top of each page there is a link back to the start of the Table of
Contents.
3. Be sure to use the search feature of your PDF reader.

Version 8.6, February 2021. This document is subject to change without notice.

Disclaimer
While every effort has been made to ensure the accuracy and completeness of information included in this document, no
guarantee is given, or responsibility taken, by 1CRM Systems Corp. for errors and omissions.

Copyright © 2004-2021 1CRM Systems Corp.


688 Falkland Road
Victoria, British Columbia
Canada V8S 4L5

www.1crm.com

1CRM, Personality Pack, CRMSync, info@hand and Lead Guerrilla are trademarks of 1CRM Systems Corp.

1CRM System 8.6 Implementation Guide Page 2


Table of Contents Table of Contents

1.0 Welcome ....................................................................................................7


1.1 About this Guide .......................................................................................................7
1.2 Who Should Read this Guide? ............................................................................8
1.3 Additional Documentation...................................................................................8

2.0 Implementing 1CRM in Your Business...................................................9


2.1 Identifying the CRM Needs of Your Business..............................................10
2.2 Setting the Scope of Your CRM ........................................................................11
2.2.1 Accounts and Contacts .............................................................................................................11
2.2.2 Tracking Targets, Leads, Accounts, Contacts and Opportunities...........................12
2.2.3 Salesforce Automation............................................................................................................13
2.2.4 Tracking the Sales Pipeline ...................................................................................................14
2.2.5 Tracking Service Cases and Support Contracts ............................................................14
2.2.6 Corporate Calendar Management ......................................................................................15
2.2.7 Corporate Email .........................................................................................................................15
2.2.8 Corporate Directory .................................................................................................................17
2.2.9 Interface Consolidation ...........................................................................................................17
2.2.10 Document Repository............................................................................................................18
2.3 Business Models and Their Specific Requirements..................................18
2.3.1 B2B or B2C? .................................................................................................................................18
2.3.2 Products or Services? ..............................................................................................................19
2.3.3 Average Transaction Value, Sales Cycle, and the Recurring Business Model ....19
2.3.4 Location, Location, Location...............................................................................................20
2.3.5 Size Does Matter: Two or Two Hundred? .........................................................................21
2.3.6 International Needs .................................................................................................................22
2.4 How Do I Make Shrink-Wrapped Software Suit My Business? ...........23
2.5 Key Steps to a Successful CRM Implementation .....................................24
2.5.1 Planning the Implementation ...............................................................................................25
2.5.2 Some Common Pitfalls ...........................................................................................................26
2.5.3 It Takes a Team to Win ...........................................................................................................27
2.5.4 Setting Project Goals and Specifications .......................................................................28
2.5.5 Selecting a CRM Development Partner ...........................................................................28
2.5.6 System Development .............................................................................................................29
2.5.7 Data Migration ..........................................................................................................................30
2.5.8 Pilot Testing ...............................................................................................................................30
2.5.9 The CRM Training Process ....................................................................................................30
2.5.10 CRM Training Materials .........................................................................................................33
2.5.11 Going Live: Stepwise Introduction ....................................................................................36
2.5.12 Continuous Feedback and Enhancement .....................................................................36
2.6 Deployment Alternatives ..................................................................................36
2.6.1 Making An Informed Choice of Deployment Option ...................................................38
2.6.2 Choosing a Server Operating System ..............................................................................38
2.6.3 Web-Based Application Platforms....................................................................................39
2.6.4 LAMP vs. WAMP vs: MAMP .................................................................................................40
2.6.5 Specifying Your Server Hardware .....................................................................................40
2.6.6 Backup and Security Considerations ...............................................................................43
2.6.7 Server Security .........................................................................................................................43
2.6.8 Bandwidth Capacity and Reliability Considerations..................................................44

Table of Contents Page 3


Table of Contents Table of Contents

2.7 Customer Centric Business Management...................................................46

3.0 Installing 1CRM on CentOS 7.6 ............................................................47


3.1 Linux Server Reference Platform ....................................................................47
3.2 Getting Started .....................................................................................................47
3.3 Install CentOS 7.6 Linux.....................................................................................48
3.4 Test Apache and PHP ........................................................................................50
3.5 Configure php.ini..................................................................................................50
3.6 Install 1CRM.............................................................................................................52
3.7 Configure Installation Settings .......................................................................64
3.8 Linux Server Software Stack ...........................................................................65

4.0 Installing 1CRM on Windows 10 ..........................................................66


4.1 Windows 10 Reference Platform .....................................................................66
4.2 Installing WampServer .......................................................................................67
4.3 Configure PHP & MySQL ....................................................................................71
4.4 Test Apache and PHP .........................................................................................74
4.5 Install 1CRM ............................................................................................................75
4.6 Configure Installation Settings .......................................................................87
4.7 Windows 10 Software Stack ............................................................................87

5.0 Installing 1CRM on macOS High Sierra ...............................................88


5.1 macOS Server Reference Platform.................................................................88
5.2 Getting Started .....................................................................................................88
5.3 Install & Configure MySQL................................................................................89
5.4 Install PHP ...............................................................................................................92
5.5 Test Apache and PHP .........................................................................................92
5.6 Configure php.ini ..................................................................................................93
5.7 Install 1CRM ............................................................................................................96
5.9 Configure Installation Settings .....................................................................108
5.10 macOS Server Software Stack ....................................................................108

6.0 Installing 1CRM on Azure Cloud ........................................................109


6.1 Azure Cloud Reference Platform ..................................................................109
6.2 Getting Started ...................................................................................................109
6.3 Create the CentOS 7.6 Virtual Machine ......................................................110
6.4 Configure php.ini .................................................................................................114
6.5 Install 1CRM ............................................................................................................116
6.6 Configure Installation Settings ......................................................................128
6.7 Azure Cloud - CentOS 7 Software Stack ...................................................129

7.0 System Administration ........................................................................130


7.1 System Settings ....................................................................................................133
7.1.1 System Settings: Company Information ...........................................................................133
7.1.2 System Settings: System Settings .....................................................................................137

Table of Contents Page 4


Table of Contents Table of Contents

7.1.3 System Settings: Scheduler .................................................................................................142


7.1.4 System Settings: Currencies ................................................................................................143
7.1.5 System Settings: Locale Settings ......................................................................................143
7.1.6 System Settings: License & Support.................................................................................145
7.2 System Support Tools .......................................................................................147
7.2.1 System Support Tools: Maintenance .................................................................................147
7.2.2 System Support Tools: Backup Management ..............................................................148
7.2.3 System Support Tools: Upgrades & Customization ...................................................155
7.2.4 System Support Tools: Diagnostic Tool..........................................................................158
7.2.5 System Support Tools: View System Log ......................................................................159
7.2.6 System Support Tools: Manage Imported Data ..........................................................160
7.2.7 System Support Tools: Storage Utilization .....................................................................161
7.3 Users ........................................................................................................................163
7.3.1 Users: User Management ......................................................................................................163
7.3.2 Users: Data Access Control Overview.............................................................................163
7.3.3 Users: Role Management .....................................................................................................164
7.3.4 Users: Team Management ...................................................................................................168
7.3.5 Users: Service Skills................................................................................................................169
7.3.6 Users: Access Control Settings .........................................................................................170
7.3.7 Users: Data Access Control Examples ............................................................................170
7.4 Email ........................................................................................................................172
7.4.1 Email: Email & Notification Settings .................................................................................172
7.4.2 Email: Manage Email Queue ...............................................................................................173
7.4.3 Email: Group Inboxes .............................................................................................................174
7.4.4 Email: Group Email Folders.................................................................................................175
7.4.5 Customize Notification Email Messages ........................................................................175
7.5 Studio ......................................................................................................................176
7.5.1 Layout Editor .............................................................................................................................176
7.5.2 Custom Fields Editor .............................................................................................................179
7.5.3 Dropdowns Editor ..................................................................................................................180
7.5.4 Smart List Tab Sharing..........................................................................................................182
7.5.5 Studio: Workflow .....................................................................................................................182
7.5.6 Studio: Configure Group Tabs............................................................................................189
7.5.7 Studio: Configure Module Tabs..........................................................................................189
7.5.8 Studio: Rename Module Tabs .............................................................................................189
7.5.9 Studio: Module Designer (Enterprise Edition Only) ..................................................189
7.5.10 Studio: PDF Form Designer (Enterprise Edition Only)...........................................198
7.5.11 Studio: Configure Personal Data (Not in Enterprise Edition) ..............................204
7.6 Quotes & Invoices..............................................................................................204
7.7 Activities Support..............................................................................................204
7.7.1 Forum Categories ...................................................................................................................204
7.7.2 News Feeds ..............................................................................................................................205
7.7.3 Resources ..................................................................................................................................205
7.8 WooCommerce Integration (Enterprise Edition Only) .......................206
7.9 Subscriptions / Chargebee Integration ....................................................209
7.9.1 Payment Processor ................................................................................................................209
7.9.2 Defining Plans, Addons, Coupons & Subscriptions ...................................................210
7.10 Lead Guerrilla Integration ..............................................................................212

Table of Contents Page 5


Table of Contents Table of Contents

7.11 API and OAuth Settings ...................................................................................215


7.11.1 API and OAuth Settings ........................................................................................................215
7.11.2 API Clients .................................................................................................................................216
7.12 Scheduler Setup .................................................................................................218
7.13 Calendar Information: Sharing Free/Busy Information .......................219

8.0 Information Import & Export .............................................................220


8.1 Full CRM Migration: Database Import ..........................................................221
8.2 Importing Just Accounts & Contacts .........................................................223
8.3 Importing Leads & Opportunities................................................................225
8.4 Importing Product Catalog Data.................................................................226
8.5 Exporting Information .....................................................................................227

9.0 Frequently Asked Questions .............................................................228

Table of Contents Page 6


1CRM System 8.6 Implementation Guide Table of Contents

1.0 Welcome
Thank you for using the 1CRM Customer Relationship and Business Management (CRBM) System
from 1CRM Systems Corp. 1CRM is designed to help you enable your organization to efficiently
collect and maintain information which is crucial to many aspects of your business. The 1CRM
system:

• Provides integrated management of corporate information on customer accounts and


contacts, sales leads and opportunities, plus activities such as calls, meetings, and assigned
tasks.
• Offers a Product Catalog, plus the ability to create Quotations, Sales Orders and Invoices
using products from the Catalog. Incoming Payments may be received and allocated against
invoices, and the system can produce PDF documents for Quotes, Sales Orders, Invoices,
Receipts, and Statements. Purchase Orders may also be created, and Outgoing Payments
recorded against them.
• Tracks financial performance of current projects, and organises a history of all project-related
documents, status reports and activities. It also provides information about resource
utilisation on projects.
• Supports inbound and outbound email, enables sharing of business documents from HR
policies to price lists, manages a photographic staff directory, and organises a calendar of
scheduled activities.
• Offers a series of graphical Dashboards to track your sales pipeline, the most successful
lead sources, service statistics, the costs and revenues from ongoing projects, and key
financial metrics.
• Offers the optional 1CRM Customer Connection Portal plugin for WordPress, for 24/7 sales
and service support of your customers and sales channel partners.
• Includes 1CRM Mobile Access and Telephony Integration.

Most importantly, the system seamlessly blends all of these capabilities into an intuitive and friendly
tabbed interface.

1.1 About this Guide


This guide is written for those individuals tasked with implementing the 1CRM System. It is current
with the details of operation for 1CRM System 8.6. It is designed to deal with implementation topics,
issues and choices, to instruct technically capable individuals in the installation of 1CRM on a Linux
server, on macOS or Windows 10, or on the Windows Azure Cloud, and to provide details of how to
administer the 1CRM system on an ongoing basis.

Readers are required to be familiar with the use of a personal computer, and Internet browser
software such as the Google Chrome browser or Mozilla Firefox, as well as having a basic familiarity
with the Linux, macOS or Windows 10 operating systems, and database principles.

Section 1: Welcome Page 7


1CRM System 8.6 Implementation Guide Table of Contents

1.2 Who Should Read this Guide?


This 1CRM Implementation Guide is intended for system administration personnel who need to
install and configure the system as part of its initial implementation, or who need to manage the
system and its users on an ongoing basis. It is also meant for business managers who must guide
the implementation of the 1CRM System.

It is not intended for conventional users who wish to record and track company activities and
outcomes – those topics are dealt with in the 1CRM User Guide.

1.3 Additional Documentation


The 1CRM Customer Relationship and Business Management (CRBM) system offers extensive
documentation for the installation and use of its various components. Click on any link below to
download that document, or click here to see all our 1CRM documentation:

• User Guide

• Mobile User Guide

• Implementation Guide

• Developer Guide

Section 1: Welcome Page 8


1CRM System 8.6 Implementation Guide Table of Contents

2.0 Implementing 1CRM in Your


Business
A CRM system is to some extent, a groupware application for managing your business. Groupware is
a term used to describe computer software designed to help a group of people work together
cooperatively. As such, a CRM helps everyone in the business (especially all those in direct contact
with customers) to know the historical and planned activities of the business which involve(d) a
specific customer. This is clearly very useful to avoid miscommunications with the client resulting
from lack of communication within the business. Everyone in the business can record all of their
interactions with a client, helping all their co-workers understand the current state of any issues,
sales opportunities, and so on.

Even more importantly, a CRM records all new business leads, and keeps track of promising
qualified leads as specific opportunities. These opportunities are recorded with an expected date on
which the business will be closed, the current stage of the sales cycle for this opportunity, and the
percentage likelihood of closing the business currently assigned to this opportunity.

This information, aggregated across the business, provides a clear view of the organization’s sales
pipeline. Visual charts of this information are typically “live-linked”, making it easy to drill down to
view the individual data items which were aggregated to build the chart. Classification of
opportunities by sales person, by lead source, or by expected close date is a simple activity, easily
performed and fantastically informative.

A properly implemented CRM, used by all customer-facing staff, will help you track the sales
performance of your business more closely with less work. It will also help you see the future more
clearly, and plan more effectively.

Just as the customer is the focus that ties together all business activity, your CRM can be the
business tool that ties together all your business information, particularly with custom integration into
other business systems such as your public web site, and the creation of new customer self-service
web sites for building orders, creating and reviewing service cases, and managing their own
information profile.

Another key area in which a CRM can help greatly is in customer communications. After all, a CRM
knows who all your customers are, is connected to the Internet, holds all your key marketing
documents in it, and can typically send and receive email. For sending out customer newsletters on a
monthly or quarterly basis, for selecting only those customers who have purchased specific products,
or for keeping track of any customers who have indicated they do not want to receive marketing
emails, there are few things as useful as a CRM.

These powerful capabilities add up to make big changes at most businesses where they are
adopted:
• Sales are increased by: Using the new marketing communications capabilities.
• Costs are reduced by: Only typing in information once.
• Costs are reduced by: Automatically sharing information with everyone instantly.
• Costs are reduced by: Everyone in the business knowing right away where to find
information, without wasting time looking for it.
• Customers are happier: Dealing with employees who now seem to know more about
them and what’s going on in their account.
• The business is managed better: Sales pipelines are better understood.

Section 2: Implementing 1CRM in Your Business Page 9


1CRM System 8.6 Implementation Guide Table of Contents

• The business is managed better: The most productive lead sources and sales staff are
clearly identified.
• The business is managed better: Any business downturn is visible well before it
represents a commercial risk to the business.

2.1 Identifying the CRM Needs of Your


Business
There are many high-level characteristics of a business that cause one business to have very
different CRM requirements from another. These include:
• The Business Model – One location, or many? Franchises? Regional Sales Offices?
Products or services? High or low unit sales value?
• The Customers – Where are they? Who are they - businesses or individuals?
• The Scale – How many employees – 2? 25? 50? 100? 200?
• The International Needs – Multiple language support? Date format? Currency format?

Compensating and adjusting appropriately for these varying requirements will make the difference
between a CRM that suits your needs, and is quickly embraced and adopted, and a CRM that never
feels like a good fit, and quickly falls into disuse and is abandoned.
To genuinely understand why a CRM typically needs some measure of customization to become a
truly effective tool within an organization, we need only examine what it is that a CRM is meant to
accomplish. Some basic CRM functions include:
• Salesforce automation – including lead capture, and the promotion of leads to
Opportunities.
• Opportunity tracking with sales stages and percentage likelihood.
• Sales pipeline tracking, with graphical charts that offer drill-down from the bar or
segment of the chart to the data that underlies it.
• Lead source analysis of sales and opportunities.
• Service case tracking, and other service/support capabilities such as tracking software
bugs, building and maintaining a knowledge base, and managing support contract
renewals.
• Corporate calendar management, for arranging meetings.
• Corporate directory, for contacting fellow employees.
• Interface consolidation, bringing into the CRM environment additional everyday needs in
order to make a company web site that employees can ‘live in’ – including news feeds,
views of financial metrics, integration of external web links and applications, and
integrated web-based email.
• Document management and revision control, for managing and retaining reference
copies of important corporate documents.

To be an effective tool, a CRM must perform all of these functions within an intuitive and easy to use
graphical interface, be available at all times, and be accessible using a wide variety of devices.
Depending on the nature of your business, some additional more advanced capabilities that may be
usefully included within your CRM are:
• Project tracking and management;
• Management of e-marketing campaigns;
• Advanced report generation;

Section 2: Implementing 1CRM in Your Business Page 10


1CRM System 8.6 Implementation Guide Table of Contents

• Definition of sales teams and territories, to manage information sharing, and track sales
performance by territory.
• Integrated views of financial metrics and performance.
• Product catalog management, and tracking sales inventory, corporate assets, and client
products covered by support contracts.
• Creation of client quotations and/or invoices, bills, purchase orders, and other
documents associated with order management.

2.2 Setting the Scope of Your CRM


As you approach the process of implementing a CRM within your business, one of the more
important decisions you must make is the application scope of your CRM. You must make a high-
level choice as to your philosophy about your CRM – are you using it uniquely to manage the sales
process, or do you see it having a major role in your overall approach to business management?

You need to examine the lists of capabilities above, and decide which of these you will implement in
the CRM for your business – at least for the initial implementation phase.

To help you sort through these topics, and help you make better informed choices, they are explained
here in greater detail with an emphasis on the kinds of choices, customizations, and variations
commonly seen in smaller businesses.

Deciding which of the basic application areas to include in your CRM implementation is the first stage
of identifying the set of customizations your CRM installation will require. Later on we will discuss in
detail how to actually perform many customizations to your 1CRM installation using the Studio
feature available to system administrators, but for now our task is merely to identify the areas of the
application which are most likely to require customization, based on the nature and needs of your
business.

Beyond the basic CRM capabilities are the more advanced functions such as project management,
advanced report generation, e-Marketing, managing a product catalog and asset register, and
generating quotes and invoices. While 1CRM lets you do all these things, for now we will just go over
the initial list of standard capabilities.

2.2.1 Accounts and Contacts


At its fundamentals, a CRM captures information about your accounts, and the contacts you have at
those accounts. By accounts, we mean the complete set of other firms you do business with –
partners, suppliers, and customers.

This much is true of CRM use at most businesses, but even this basic capability needs modification
at many firms. Some firms focus much more on contacts, as they sell to individuals, while others
focus almost uniquely on accounts, as they sell only to businesses. Many firms go to the extreme of
having a CRM which does not show both accounts and contacts in the navigation system, but
instead has only one or the other. Others choose always to show both at once.

To resolve these differences, clearly it would be useful for the CRM to have the ability to remove
unwanted functions, or types of data, from the user interface. The good news is that nowadays, most
quality CRMs include this capability – and certainly 1CRM does.

Section 2: Implementing 1CRM in Your Business Page 11


1CRM System 8.6 Implementation Guide Table of Contents

2.2.2 Tracking Targets, Leads, Accounts, Contacts and


Opportunities
The next major differentiator between firms and their associated CRM implementations lies in the
area of targets, leads, accounts, contacts and opportunities. Targets, leads and contacts are all types
of information in a CRM which represent people you hope to sell to, but at increasing (from targets to
contacts) stages of maturity of the data and of the relationship. There are two common business
models:

In one business model, the company frequently purchases lists of ‘Targets’. These are potential
clients, but very little is really known about them. By operating a variety of different types of
marketing campaigns, such as email or tele-marketing campaigns, these targets are qualified. Does
the contact information for them actually work? Do they have any interest in any product or service
offered by your organization? If so they can be promoted to being a qualified lead. If not, they can be
marked as such, and either discarded, or at least put to one side for now, for potential recycling into
another campaign.

Note that one key consideration for targets is that the quality of data is typically not up to the level
you will want for leads and contacts. Only when the accuracy of target data has been established
and verified should it be considered for inclusion in lead and contact data.

In this business model, the next step is to have relatively more skilled and senior sales staff contact
these qualified leads, and try to convert them to clients. During that process, if things go well there
will develop a need to prepare a quotation for this potential client, and a need to document an
opportunity to make a sale with them. In 1CRM, as in many CRMs, this is the user’s cue to convert
the lead into an account and a contact, and potentially create an opportunity as well. The potential
client is still not a customer yet, but they are close to becoming a customer, and need to have the
account and contact records created for them in order to associate either an opportunity or quote
with them.

This highlights two key principals of most CRMs:


1. Targets and leads are unified records that contain early stage client information. They
contain information about both a person and the company for which they work. The company
name is just another text field on the record, an attribute of the person - not a full account
record of its own.
A contact record on the other hand has no company information in it, it is just related to an
account record which has all the company name and address information in it. This is
consistent with the fact that most CRMs are account-centric, with everything that is important
happening to an account. Most other types of information need an account to be related to
them to tie them into the overall CRM data model.
2. The two activities that typically cause a lead to be converted to a contact and an account are
preparing a quote, and documenting an opportunity. Quotes and opportunities both need an
account to which they are related, and leads do not normally have related accounts, so in
order to prepare a quote or document an opportunity, the lead has to be converted or
promoted into a contact with an associated account record.

In this first business model, a company that generates, data mines, or purchases a lot of sales
targets, you need to distinguish between a target, a lead and a contact/account pair. And only the
contact/account pair can have an opportunity associated with it, or a quote prepared for it.

The second business model is a company that does not have a lot of low-level target information to
deal with. It tends to have new clients enter the sales process as well-qualified leads, perhaps from
selling horizontally across existing accounts, or by receiving a lot of web form data from potential
clients themselves. In a company that operates with this business model, you might well prefer to
dispense altogether with the concept of a target, and deal simply with leads, contacts/accounts and
opportunities.

Section 2: Implementing 1CRM in Your Business Page 12


1CRM System 8.6 Implementation Guide Table of Contents

In this simplified business model, it might be useful to be able to customize the CRM user interface
so as to remove any menus or navigation associated with targets. Most good CRM solutions provide
this capability, as does 1CRM.

Different firms have many different ways of generating leads: from a form on an Internet site,
provided by a partner or a supplier, from advertising, by word of mouth referral, and so on. It is
important to track what your most successful lead sources are, to gain the knowledge of where to
focus your marketing efforts. So creating a list within the CRM software of the lead sources your firm
uses is important. And then with each new lead, it can be characterized as to source by simply
choosing an option from a dropdown box on a screen form.

Populating dropdown boxes with options that are uniquely relevant to your business is a very
common form of CRM customization, and one that is becoming widely supported by mainstream
CRM systems, again including 1CRM.

Another dropdown box whose options often need customizing is the sales stage of an opportunity.
While there are relatively standard industry-accepted terms for the different stages of the sales
process, they can vary quite a bit by the nature of the business involved – its size, its customers, and
the length of the typical sales cycle. The list of stages of the sales cycle you intend to track is another
candidate for a customization you may want to make to your CRM.

Related to the sales stage is the percentage likelihood of a sale, ranging from 0% to 100%. Some
organizations pay little attention to the percentage likelihood, and track opportunities based on sales
stage. Other organizations do just the opposite and rank opportunities by percentage likelihood,
paying little attention to the sales stage. And some track both. You need to decide which is important
to you, and make sure that the list of opportunities and the charts of sales in the pipeline present that
information, and give you the ability to filter and focus on opportunities based on that information.

2.2.3 Salesforce Automation


One very important productivity tool that a CRM can provide is often referred to as salesforce
automation. While this can include such functions as the dashboard, dealt with in the next section on
sales pipeline, at its fundamentals salesforce automation is an automated flow of sales leads into the
CRM, their conversion into contacts, accounts and opportunities, and their tracking to a successful or
unsuccessful conclusion. Included in this are such features as:
• Lead capture from a public web site, or from partners
• Conversion of a lead to a account with a related contact and opportunity once the lead
has been qualified
• Automatic email notifications to sales people when a new lead or opportunity is assigned
to them
• The tracking of current and historical account activities against both contact and account
records
• The association of key documents to accounts and contacts, such as proposals,
contracts and agreements, and marketing collateral

Automated lead capture into your CRM from a lead form on your public web site, or from leads sent
to you from a supplier or other partner, is a key productivity improvement. If you have a current
supply of sales leads, you should identify how to automate their entry into your CRM. Many CRMs,
such as 1CRM, have a SOAP-based (Simple Object Access Protocol) web service to which external
systems can be linked in order to pass on lead data. If you do not have a current supply of sales
leads, perhaps you should create a lead form on your public web site, and devise a strategy for
driving traffic to your web site.

Once a lead has been qualified as a genuine sales opportunity, it needs to be re-classified as an
account with a related contact and opportunity within the CRM system. Most CRMs (including 1CRM)

Section 2: Implementing 1CRM in Your Business Page 13


1CRM System 8.6 Implementation Guide Table of Contents

have the ability to convert a lead into an account/contact pair, with the option of creating a related
opportunity (and perhaps even the first appointment) at the same time.

Your CRM system will be connected to the Internet, and will have an email system available to it.
Because of this, it has the capability to automatically email salespeople when they are assigned a
new lead or opportunity. Typically your CRM (as does 1CRM) will let you enable or disable this
automated notification system, and you will need to decide if your CRM will use it or not.

2.2.4 Tracking the Sales Pipeline


Each opportunity in a CRM system has an expected sales value, and an expected closing date.
Adding this information up across all the opportunities in the system produces a prediction of the
future sales of the business, known as the sales pipeline.

The sales pipeline is a key tool for anyone managing a smaller business. Usually a smaller business
has more limited financial resources to buffer them from a downturn in business, making it that much
more important to be able to detect a negative sales trend at the earliest possible moment.

Like most software designed to summarize financial activity for management personnel (known as
Executive Information Systems – EIS, or Decision Support software, or Business Intelligence
software – BI software), most CRMs (including 1CRM) present the sales pipeline in a graphical chart
form, frequently with the ability to highlight some portion of the chart and ‘drill down’ to the source
data that underlies that portion of the chart.

A series of charts which support sales and business management functions is often called a
dashboard, or a digital dashboard – and can be a powerful tool for ensuring that sales are on track in
the coming months, and diagnosing and uncovering shortcomings in the sales process, product
features, pricing, and personnel.

A fundamental choice has to be made when presenting the sales pipeline, and that is whether or not
to discount the opportunities in the pipeline by the percentage likelihood of their closing. Should a
$100,000 opportunity which is 25% likely to close in June be counted as $25,000 in June, or
$100,000? Both practices are very common, and only you can decide which behavior you feel is
correct for your business.

2.2.5 Tracking Service Cases and Support Contracts


Most CRMs, including 1CRM, offer at least basic customer service and support features. Some of the
capabilities typically offered include:
• Case Management: A service incident, trouble ticket, or case (different systems and
industries use different terminology) can be created with a date/time stamp, contact
information for the customer reporting the issue, and a description of the nature of the
problem. If a potentially defective product is involved, the type or model of the product
and the serial number of the unit may be tracked. Similarly there may be a related
service contract.
• Software Bug Tracking: If a service case involves a defect or issue in some customer
software system (yes, this is only going to happen if your business is involved in
creating, or supporting, computer software programs) then a bug report is created, and it
will note the software product involved, its revision, the nature of the issue (bug or
desired enhancement). It will also track the status of the issue, who is assigned its
resolution, and will record the eventual disposition of the issue.
• Service Contract Management: Service Contracts are often tracked using a model of a
master agreement for each account, with any number of sub-contracts per master
agreement. Each sub-contract may have related to it any number of customer assets
being supported. And each sub-contract, and asset, will have a service incident history

Section 2: Implementing 1CRM in Your Business Page 14


1CRM System 8.6 Implementation Guide Table of Contents

associated with it, to track the case history by item of equipment, and by sub-contract. A
mechanism usually exists to remind account managers when service contracts are
nearing their renewal dates, so that a proposal for the renewal may be prepared and
sent to the customer.

Not every business needs these service and support features. You will need to identify what your
business requires in the service and support area, and decide if the standard features are a good fit
for you, if some need to be hidden as they are not required, or if some extended capabilities need to
be custom-built for you. This area is a frequent source of customization requirements.

2.2.6 Corporate Calendar Management


Your CRM is almost certainly the best place for you to enter all your appointments, meetings,
scheduled calls, and planned tasks – all the business activities which have a time and/or date
associated with them. Not only does entering this information in the CRM help to associate the
activities with the related accounts and contacts, helping to generate accurate account history, but
the CRM provides a groupware environment for scheduling meetings that is aware of the all the
scheduled activities for everyone in the company.

Prior to adopting a CRM, many small and medium businesses use Microsoft Outlook, Outlook
Express, and/or Microsoft Exchange to fulfill their corporate calendaring needs. Other popular
solutions include Lotus Notes, Novell GroupWise and many other groupware products. While Outlook
is a reasonable solution for calendaring for an individual, and Exchange helps to link together
calendars across a business, this solution can never help you to position these activities within the
larger CRM context, and automatically generate and track account history.

If all this talk of Outlook and Exchange, Lotus Notes, Outlook Express, etc.. is all foreign to you –
don’t worry. They are simply other ways of addressing needs that your CRM will satisfy nicely, and
satisfy more effectively from the perspective of managing relationships with your customers.

Sometimes a counter argument to using a CRM for calendaring is that for many CRMs the
synchronization options for linking the data in smartphones like iPhone, BlackBerry and Windows
Mobile devices to your CRM data can be severely limited or non-existent. If mobile access to
calendar information is important for your firm, check out your synchronization options before making
the move to CRM-based calendaring.

1CRM has the ability to sync its calendar information with the Google calendar, and (using the
CRMSync feature of 1CRM) with iOS, Android, macOS and Outlook. The iOS and Android sync
capability can get your calendar data onto your mobile device such as iPhone or iPad. 1CRM also
has a Mobile access feature which provides web access to 1CRM specifically formatted for iPhone,
Android and other mobile devices.

Ultimately you must decide if adopting 1CRM for your corporate calendaring requirements is an
approach that suits your organization and its people, or if it is best to stay with the tools people
already know. But there is great value in using the CRM to link appointments to Contacts and
Accounts, creating a high quality history of every customer ‘touch’.

2.2.7 Corporate Email


How you will manage your corporate email once you add a CRM to your business is a very important
and potentially difficult decision. Some of the considerations are:
• Like Calendar information, emails within a separate system like Outlook can never help you
to position the email exchanges within the larger CRM context, or become an easily
accessed part of account history.
• Your staff are presumably already using an existing tool to access their email, and may be
unwilling to learn a new system.

Section 2: Implementing 1CRM in Your Business Page 15


1CRM System 8.6 Implementation Guide Table of Contents

• You don’t want to stuff your CRM with emails. You only want emails to and from clients or
potential clients, not personal emails, and not a lot of the intra-office emails. You only want
emails that are still important and relevant history for each client’s current situation. Too
much data in your CRM may create a situation where useful information is hard to come by.
• It can be very handy to send email from within your CRM. From the screen showing details
for a particular client, it is a real time-saver to just click on Compose Email and send off a
short email, knowing it is automatically addressed properly, and automatically becomes a
part of that client’s history in the CRM.
• CRMs are useful places from which to perform email campaigns as well, as they have all the
right information within them, and you’d like to track as part of each client’s history which
campaigns they have been exposed to, and track the overall effectiveness of each
campaign.
• CRMs are not email servers. You can bog them down if too many people store too many
emails in them. For a typical business with perhaps 50 employees and 1000 clients, you
should aim to keep the number of emails within the CRM below 100,000, and certainly below
200,000. To do this it can be very handy to have some facility in the CRM, as there is in
1CRM, that automatically removes emails when they get to a certain age.

The end result of all these factors is that most commonly, our optimal recommendation for most
businesses up to 250 employees is to adopt the following solution:
1. Users should keep using their current email client for day-to-day email.
2. Link their email client software to their email server using the IMAP protocol.
3. In each user’s email client, create a folder called CRM at the same level as the INBOX (not
indented under the INBOX). Because of how IMAP works, this will create a CRM email folder
on the email server for that user as well.
4. Every time a user has an email they feel should be filed in the CRM, they drop a copy in the
CRM folder within their email client.
5. Through IMAP, this will put that email in the CRM folder for that user on the email server.
6. Create a 1CRM Monitored Mailbox that retrieves email using IMAP from that email account
for that user - not from folder INBOX, but from folder CRM (this is the key to this approach!).
7. Now - every email that is dropped in the CRM folder in any user’s email client will turn up in
the CRM automatically - and will be automatically linked to any related Leads, Contacts or
Accounts, as well as to the User that filed it in the CRM.
8. Users are free to use the CRM to send emails to customers. Records of campaign emails
are only kept within the CRM, but to make sure that other individual emails composed within
the CRM and sent to customers are also filed within the user’s normal email client, the CRM
should be configured to blind copy to the user’s normal email account every individual email
sent out from the CRM. (1CRM has an Auto-Bcc option you can set to do this.)
9. Finally, you can if you wish add another Monitored Mailbox to monitor your Sent items folder.
If you do, check the box marked This Folder Contains Sent Emails, and select Sent as the
Deliver to Folder. This will bring in to 1CRM all the emails you send using another email
client, correctly mark them as Sent emails, and drop them in your Sent folder in 1CRM.

Implemented properly, this solution addresses every one of the initial considerations for an email
solution, and obviates the need for any messy, administratively intensive, and sometimes unreliable
email client plugins.

While Outlook and ThunderBird email client plugins are available to integrate to 1CRM, we still
strongly recommend the above solution be implemented whenever possible. You will need to
examine your organization’s requirements and decide if you are in a position to act on these
recommendations.

Section 2: Implementing 1CRM in Your Business Page 16


1CRM System 8.6 Implementation Guide Table of Contents

For organizations currently using Outlook, there are frequently user concerns about the migration to
the use of a CRM. Outlook can be used for EMail, Calendar, Contact Management, and Task
Management. While Calendar, Contact and Task Management be transferred by all users into the
CRM, or left to be managed with Outlook and synched to the CRM using CRMSync, Email can (and
usually should) remain in Outlook, with the above scenario implemented.

Look in the User Guide for more details on CRMSync. With this feature of 1CRM, users can sync
their Calendar, Contacts, and Tasks bi-directionally with any of iOS, Android, Outlook and macOS.
With CRMSync, users can add, delete or edit contact, task and calendar items on their phones or
tablets - even while offline - and have their CRM data updated automatically to correspond with these
changes.
For organizations currently using Mac computers, users can use the Mail email client and pursue the
same CRM folder strategy as outlined above. The local Mac Calendar can subscribe to the user’s
calendar in 1CRM, which is a handy feature. Mac clients can also use the bulk vCard export feature
to export bulk contact data to a block of vcards - and then import them into the address book
application, which makes all of them available within Mail as email addresses. So that gives the user
contacts, calendar and email integrated between 1CRM and the Mac client software. (Note that
1CRM also supports the use of the Safari web browser found on the Mac.)

2.2.8 Corporate Directory


If your business has only a handful of employees, then a corporate directory is likely unnecessary,
and you may want to remove it from the user interface of your CRM system.

But as a company grows, and reaches 25, 50, even 100 employees, it gets harder and harder to
remember everyone’s extension number, their email address, their position, even their face. Even a
smaller business will make good use of a corporate directory if it is spread out across multiple
regional offices.

A corporate directory is a very handy list of everyone’s contact information, and often (like the one in
1CRM) includes a thumbnail image of them for those situations where you just can’t put a name to
the face, or a face to the name.

2.2.9 Interface Consolidation


Interface consolidation refers to a series of tools and techniques used within a CRM to allow
employees to spend much of their day logged in to the CRM, with few business activities not
integrated in some way within the CRM.

Some of the activities and features commonly integrated within a CRM (as they are within 1CRM)
just to reduce the need to jump out of the browser interface to perform miscellaneous business tasks
include:
• News feeds (RSS, Atom)
• World Weather
• Stock Market Info
• Integration of external web links and applications
• Integrated web-based email

Clearly, by adding in news, email and commonly used external web sites, the CRM becomes an
environment that your employees can live in, one that they can log in to in the morning, and leave up
all day.

You should give some thought to what news headlines sources to include, and what external web
sites to link into your 1CRM implementation.

Section 2: Implementing 1CRM in Your Business Page 17


1CRM System 8.6 Implementation Guide Table of Contents

2.2.10 Document Repository


A document which is only stored on the hard drive of the PC of one of your employees is not a
company resource. A document which has a copy stored on every hard drive in the company is not
standardized or revision-controlled. In between these two situations is the right answer – the
document repository within your CRM system.

Typically your CRM (and 1CRM provides every feature discussed in this section) will let every
employee store documents on the system, and give them a title, a description, a file type, a status
and a revision. Some keywords are also normally entered, to make it easier to find the document.
Unlike your PC, a document repository usually allows the user to update a document with a later
revision, while keeping each previous revision intact in case it is ever required. A document’s status
indicates if it is a Draft document, an old archived document, or an Approved current version.

A web-based document repository provides key benefits for any business, allowing all important
business documents – medical claim forms, HR policies and guidelines, employee handbook,
designs, specifications, sales collateral, contracts, etc.. – to be accessed remotely and downloaded.

A document repository is a vital capability for any business, and you need to decide what sorts of
documents your business needs to store in your CRM, and how to organize them.

2.3 Business Models and Their Specific


Requirements
In the previous section, we looked at many different business activities that can be managed and
tracked by your CRM. We also looked at some of the ways that businesses perform those activities
differently, and why sometimes, your CRM might need to be customized to adapt it to the way your
business does them. In this section, we look at your business itself, and examine the nature of your
business for requirements that might need special handling or customization in the CRM in order for
the CRM to suit your business perfectly.

Businesses vary widely in their fundamental nature. Who do they sell to, and how? What do they sell
– a product or a service, and how expensive is it? Where is the business itself located, and does it
have multiple locations? Let’s look at some of these distinguishing characteristics of a business, and
see how they affect the CRM needs of a business.

2.3.1 B2B or B2C?


One of the first differentiators in CRM needs is who your customers are. To use acronyms associated
with the worst days of the Dot Com crash at the end of the last millennium, are you a B2B or B2C
business model? Meaning – do you sell to individuals (Business to Consumer, or B2C) or to
Businesses (Business to Business, or B2B)?

In a firm with a B2B business model, the typical CRM data model of accounts and contacts is usually
a good fit. In extremes, some firms will prefer to remove menu access to contacts, and focus on the
accounts – leaving contacts only as names associated with accounts.

But in a B2C business model, many firms prefer to remove the navigation access to accounts,
leaving a focus on the contacts – the individuals with whom the business does business.

At present 1CRM offers a choice of B2B or B2C business models, with a merged Account & Contact
record being used when B2C is selected. Some businesses would find it useful to support a mixed

Section 2: Implementing 1CRM in Your Business Page 18


1CRM System 8.6 Implementation Guide Table of Contents

B2B and B2C model - where there were clients of both kinds in the one system, but 1CRM does not
support this capability as yet.

2.3.2 Products or Services?


What sort of business do you have? Do you make or re-sell products? – anything from ceramics to
washing machines. Do you sell services, such as house painting, landscaping, or window cleaning?
Or do you do both on a regular basis? – like the car mechanic who charges for his labor by the hour,
but also sells the replacement parts he uses when making repairs.

If you only sell products, what about the product support, or warranty services? Or does the product
regularly wear out or need service on a predictable time line, giving you an automatic new sales
opportunity – such as a car that needs regular oil changes?

If you have an element of product warranty or support in your business, you will want to be able to
record which customer has what duration of support on what products. If your product needs regular
service, such as a car dealership, you may want to record when would be a good time to contact
each of your customers for service.

In a CRM, products and services are dealt with rather differently. Products are usually held in a
catalog, and are very standardized. When they are sold, they generate a one-time income event.

Services are often sold by the hour, such as an appliance repair technician that might bill 2 hours to
repair a washing machine in your home. You can address this by creating a product in your catalog
which is an hour’s time for technician with a specific set of skills, and invoice the service to the client
as a product, where the quantity would be the number of hours billed. (Note: 1CRM can do things
this way, but can also quote or invoice for services in a different way, not involving products from the
catalog. Sections of a quote or invoice in 1CRM can be characterized as being for products, for
services or for support, and each is handled in its own specific way.)

If your products have significant value, and have some support service sold with them (such as
computer equipment – a PC or a printer) your CRM will need to capture the make and model (ideally
the serial number as well) of the product and link it to the customer record to track entitlement to
contracted support services. Now your CRM will need to understand the concept of an asset in an
asset register, and a service contract as well. (Note: 1CRM calls these assets Supported Products,
and tracks both the asset’s initial cost, as well as the cost for support renewal.)

If your business delivers services to its customers, and those services are delivered over a significant
period of time, your CRM will need to be able to model a sales opportunity which is not a one-time
income event, but rather a stream of income (and potentially costs) over time. Kelly Girl, for example,
delivers a service – the services of temporary office staff. If a Kelly Girl temp were placed on an
assignment for three months from June to August, then the sale should be modeled as an income
stream of $X in June, $Y in July, and $Z in August. And there will be a corresponding cost stream
over the three months, of the actual salary paid by Kelly Girl to the worker involved.

These sorts of sales are often modeled as a project which delivers over time, and if your business
sells these kinds of services, your CRM will need to be able to track these ‘income stream’
opportunities, as well as the regular ‘income event’ opportunities.

2.3.3 Average Transaction Value, Sales Cycle, and the


Recurring Business Model
If your business has a reasonably high average transaction value – say over $1000 – then it
generally makes financial sense to track your customers and your opportunities to sell to them,
especially if you have a sales cycle of a few weeks or more in which to track the opportunity. This is
the classic CRM application – tracking accounts and contacts, and the sales opportunities associated

Section 2: Implementing 1CRM in Your Business Page 19


1CRM System 8.6 Implementation Guide Table of Contents

with them, then rolling it all up into a sales pipeline that gives you a good feel for how sales will go
over the next couple of months.

But what if your usual sales cycle is less than an hour? And your average transaction value is more
like $20 than $1000?

If you have a business like a CD music store, a video rental store, or a specialty frozen meats store,
then you have lots of smaller transactions, each of them bordering on impulse purchases by the
customer. In this case, your real reason for implementing a CRM is to enhance your recurring
business model. If you typically get these same customers coming back again and again, you will get
great benefit from tracking those customers in your CRM for marketing purposes. Opt-in email
marketing campaigns, membership in a discount club as a loyalty mechanism – these are going to be
some of your key activities. And you will need a CRM that can provide the kind of e-marketing and
loyalty marketing capabilities that will propel your business to success. (Yes, as you might have
expected by now, 1CRM can do all this.)

In this case, you will still keep track of accounts and contacts, but leads and opportunities have much
less significance. And your sales pipeline is also bordering on irrelevant. If yours is this type of
business, recognize that fact, and understand the sorts of changes your CRM will need in order to
help you and your staff focus on what’s important – not what would be important in another sort of
business.

2.3.4 Location, Location, Location


Where do you sell? In your shop or office? In your clients’ businesses? Over the Internet?

Where are your staff? In the office, or out servicing and selling to customers? Do they work from a
single central office, or are they spread across multiple regional offices?

These are some of the most important variables in your CRM equation. After all, if we are trying to
manage customer relationships, we need to know where those relationships are happening! And that
means knowing where your customers are, and where your staff are.

If your business only generates sales within a single location – your store or office – then clearly your
communications challenges are not as great as a business with a dozen outbound international sales
representatives working out of their homes.

One of the key questions you need to answer is: when you or anyone in your business with a
customer-facing role is in contact with customers, are they sitting at their computer and online? If not,
you may need special CRM facilities so that they can access customer history when they need it, and
so that they can enter updated information as it develops.

Let’s study two of the more common scenarios:

Multiple regional offices: If these are white collar offices with primarily inbound staff, there is not
necessarily any issue. Your CRM implementation can be located anywhere in the world, and staff in
all offices can access it via a browser with user name/password access – securely and with good
performance – as long as the office has a fast and reliable connection to the Internet. Smaller
businesses with multiple regional offices are prime candidates for CRM installations, as they are
likely to benefit greatly from the improved communications plus accurate and up-to-date account
information provided by the CRM.

Outbound sales people: No matter how many offices you have, these are the most difficult people
to service well. Some of the ways they can use the CRM, other than via the web browser on their
home or office PC include:

Section 2: Implementing 1CRM in Your Business Page 20


1CRM System 8.6 Implementation Guide Table of Contents

1. Using their laptop on a hotel room’s high speed Internet connection overnight to update the
system from the day’s activities, and look up information in preparation for tomorrow’s calls.
2. Connecting their laptop to the Internet at any time using high speed wireless data services
like 3G services, available from most wireless carriers.
3. Using a smartphone browser for handheld access to a limited subset of the CRM
capabilities.
4. Using a smartphone that has the appointment and contact data within its native applications
wirelessly synchronized with CRM data.
5. Using their laptop with a stand-alone ‘offline’ installation of the CRM, or other offline tools that
can be synchronized with the CRM. When they return to the office, their offline data can be
synchronized to the main CRM, to update any new data from the trip.

With 1CRM you can use the first three scenarios for outbound sales people. Some third-party
applications are in development at present to offer the fourth option. And we expect that in the
medium term, initiatives such as HTML5, and Google Gears, in conjunction with applications such as
Google Apps, will provide solutions like the fifth option.

2.3.5 Size Does Matter: Two or Two Hundred?


The size of your business affects how you manage your CRM, the features you need from your
CRM, and even the importance of the CRM to your organization.

In a smaller business, employees have broader responsibilities – and these narrow as the
organization grows. The narrower the responsibilities, the greater the need becomes for continuity of
business process, communication, and documentation.

A business with fifty employees also has so many more employee-to-employee information pathways
within it, compared to a business with five employees. Because of this, a CRM has even more to
offer the larger firm.

As well, in a larger firm where not everyone knows everyone else’s business, staff turnover can
create a real risk that sales leads and opportunities created through work paid for by the business,
may walk out the door when an employee leaves. With a CRM there is an element of the ISO
(International Organization for Standardization) principle that the process should transcend the
individual. The employee may leave, but their data lives on in the CRM, and another salesperson will
be hired, and they will have all the account history to work from.

The larger firm also has other issues not likely found in the smaller firm. With a certain scale of
organization, information privacy becomes more important. Sales leads will not be entered into the
system if sales people are concerned that another sales team or person may steal their leads. In a
smaller firm, there is a tendency to have everyone know everything. If a lead is stolen, everyone will
know who it really belonged to. But after a point, an organization becomes more compartmentalized
and impersonal, and protecting leads and opportunity data becomes a real and valid concern.

All of this gives rise to a complex requirement for a Data Access Control model, or a Permissions
Management Infrastructure (PMI) as it is sometimes called. In this sort of system, roles and teams
are defined. The permission to view certain types of data, and to perform certain actions, is assigned
to roles. Users are assigned to zero or more Teams. Then users and teams are assigned to roles,
and the permissions from multiple roles just add to one another to give each employee their effective
aggregate set of permissions.

In a North American sales organization, for example, accounts might be split into geographical areas
such as the West Coast, East Coast, Central USA, and Canada. Most sales people would only see
leads and opportunities within their region, but sales managers could see leads, opportunities, and
sales pipelines for broader geographies.

Section 2: Implementing 1CRM in Your Business Page 21


1CRM System 8.6 Implementation Guide Table of Contents

Lastly, the size of a business determines what a realistic budget figure is for the acquisition and
deployment of a CRM. In a firm of five people, a CRM implementation budget might be $3,000 -
$5,000. In a firm of fifty people, that budget would more likely be $25,000 - $50,000. As well, the
smaller firm is less likely to have any internal technical support capability – and running a CRM
server in the office may be beyond their abilities.

You should give some thought to your firm’s needs for data security and permission management, as
well as setting an implementation budget for the CRM, and deciding if you have the internal capacity
to manage a CRM server.

2.3.6 International Needs


If your employees live and work in multiple countries, the odds are that your CRM may need to
support more than one operating language. Language support has many aspects to it, including:
• The language used for information you enter into your CRM;
• The language used in the user interface of the CRM application;
• The language used in the online help system; and
• The language used in the written documentation for the CRM.

You will need to decide on the language to be used for data entry into your CRM, choosing one that
you feel most users can understand, even if it is not their first language.

Many languages need to be able to use a set of characters and accents that do not exist in the
English language, so your CRM will need to be able to enter, display and print these different sets of
characters if you need international support. Printing them can be particularly difficult, but 1CRM
includes full UTF-8 support in the PDFs it generates, and so can print any character set in common
use.

You should find out what operating languages you will require for your CRM, and make sure that they
are available. 1CRM has support for many different operating languages via loadable language
packs, although many languages are supported only via a non-validated user-created translation.

Another aspect of international support is the format in which dates are displayed. Your CRM should
store dates in its own internal format, but display them to users in whatever format each user has
selected as their preference. Common formats include 12.23.2006, 23.12.2006, and 2006.12.23.
(Note: 1CRM handles all these formats just fine.)

In addition to dates, different countries have differing formats in which numbers and currency are
presented. The decimal separator in North America is ‘.’ and the thousands separator is ‘,’ - but in
much of Europe (Germany for example) the decimal separator is ‘,’ and the thousands separator is
‘.’. Thus what in North America is $12,234, 678.90 in Germany is 12.345.678,90 €. If your CRM
needs to be able to present numbers and currency values to users in the format they are accustomed
to use in their country, then you will need to set this preference differently for each user of the
system. (1CRM supports the display of multiple international number and currency formats.)

Another difference in convention from country to country is their address format. In some countries
the post code or zip code is right at the end of the address, whereas in other countries it is up around
the street address. 1CRM supports many different international address formats.

Section 2: Implementing 1CRM in Your Business Page 22


1CRM System 8.6 Implementation Guide Table of Contents

2.4 How Do I Make Shrink-Wrapped


Software Suit My Business?
CRM systems are known to need customization rather more frequently than other business
applications – after all, the average Sales, Purchase, and General Ledger accounting system works
pretty much the same way for any business – just set up your structure of initial account codes, and
away you go. CRM systems are not like this!

CRM customizations tend to fall into several classes:


• Minor cosmetics: Changing color schemes, adding company logo.
• Minor user interface changes: Suppressing certain features from being seen by certain
users, or perhaps all users; re-arranging screen layouts, adding and deleting fields from
screens, changing field names, and editing the set of options presented on drop-down
boxes.
• Major application changes: Adding whole new modules to the application, or making
major changes to the business logic and function of existing modules.
• Application integration: Linking the CRM application with other business applications and
processes, to more thoroughly automate and integrate your business operations.

Minor cosmetic changes might need the skills of someone who knows how to use computer graphics
software, and some simple HTML (HyperText Markup Language – the code used to describe the
appearance of web pages). If you don’t have those skills in one of your employees, you might need
the services of a local web development and graphical design company. However 1CRM has a
feature that lets you load your own company logo and have it become part of the user interface of the
CRM. As well, 1CRM offers a number of user interface themes with different colour schemes and
screen layouts. However, you might decide you want to build your own theme for your organization,
with a specific layout, and company colours.

Historically, user interface changes were fairly difficult and expensive to perform, but that has all
changed now. With the release by salesforce.com of the Customforce tool for customizing the user
interface of their CRM, the bar was raised to a significant degree in this key area. Salesforce.com
deserves recognition as an innovator in this field of technology, and it has caused something of a
revolution in CRM. Today, most mature CRM products offer this extremely important and useful
capability.

In 1CRM for example, the Studio functions allow system administrators to add new fields to screens,
delete unwanted fields, rename fields, or just move fields around. Dropdown option lists may be
customized, menu options may be renamed or suppressed, and external web sites may be linked in
to new menu items.

You can either learn to use these customization tools, and see if you can make all the minor UI
changes you want that way, or you can hire a firm that specializes in customizing CRMs to do this
work, as well as any major customization work you may need. There is some value in getting all the
customizations done by one supplier, and this particular type of customization may take no more than
a few days to do.

These changes involve tailoring a CRM to manage aspects of a business that are not uniform across
the gamut of small businesses.

Major application changes, and application integration work, will almost always need to be developed
by professional CRM consulting, development and customization firms. These changes involve
tailoring your CRM to manage aspects of your business that are not uniform across the gamut of
small businesses. We recommend you only proceed on this type of customization work when you
have checked off these gating issues:

Section 2: Implementing 1CRM in Your Business Page 23


1CRM System 8.6 Implementation Guide Table of Contents

• The original developer of your CRM, 1CRM Systems Corp., recommends the services of
the customization firm.
• You can see that the firm is not a general web development firm, but specializes in CRM
implementation and customization – you want a partner with more CRM experience and
knowledge than you have, not less.
• Sample work of similar complexity and size from the customization firm has been
examined and approved by you.
• You have written up a requirements document, with rough drawings of what new screens
should look like, including details such as what values each dropdown box should have,
what the names and data types (text, number, date or time) are for each field, what fields
are editable, what fields are shown as columns in the list view, and what fields may be
used to filter the list.
• You have a written quote from the proposed customization firm detailing how they will
implement this requirement, how many days of effort they believe it will take, and quoting
a firm fixed price for the work. As well, the firm should explicitly describe their warranty or
acceptance period for the software developed, and detail an acceptable schedule of
payments which allows you to view work as it progresses, and see and test the final
solution (possibly operating on one of their servers) before final installment payments are
made.

You may wish to make your customizations in a step-wise fashion, to ensure each step is affordable,
and yields measurable real-world benefits, as well as to test the supplier. Take care not to get into a
front-loaded agreement that has you shelling out most of your budget for customization before you
see changes that give you some level of comfort with the supplier.

More recently, in the field of application integration, Salesforce.com has been at it again, and has
introduced the their force.com platform as a service, and its associated web services API. This API
offers a well-documented and open programming interface to link other business applications to the
salesforce.com programs and data hosted by salesforce.com for your business.

This has created a similar disruption in the CRM industry, and many firms have responded in kind.
1CRM, for one, has its own web services APIs - a legacy API based on SOAP and a very modern
API based on REST. These support such handy capabilities as filing leads captured by forms on your
public web site into your 1CRM lead database. The REST API is also used to link the 1CRM
Customer Connection Self-Service Portal to the core CRM.

2.5 Key Steps to a Successful CRM


Implementation
As you undertake your CRM implementation, before we get into a lot of specifics, you should
understand that there is one overriding attribute to any successful CRM implementation. This
common factor is open and frequent communication and collaboration.
The typical groups (or to use the recent term – stakeholders) that are going to be significantly
affected by a new CRM system, and therefore will need to be involved in its selection, development,
and delivery are the following:
• Executive sponsor
• Project Manager
• Implementation team
• Lead trainer
• Internal or external network administration and MIS
• Finance management

Section 2: Implementing 1CRM in Your Business Page 24


1CRM System 8.6 Implementation Guide Table of Contents

• Sales management
• Sales general staff
• Administration management
• Administration general staff
This group will be your CRM implementation team.
Successful CRM implementations share another important factor. The implementation team should
manage the project relatively conservatively - set realistic goals, phase the implementation in modest
steps, and view the entire process as one of continual improvement, not as a one-time event. To
quote Clint Oram of SugarCRM “Think big, start small, and move quickly.”
Another important factor in any successful CRM implementation is to review the different user groups
– especially the last five groups listed above – and make sure that in your first implementation each
of these groups perceives some value to them personally in making the effort and commitment to
support the development and to use the system once it is implemented.
For example – sales general staff may be motivated if the system calculates commission reports –
and will be receptive to the argument that the numbers will only be correct if all opportunities and
closed sales are in the system.

2.5.1 Planning the Implementation


Now that we have those most important principles in the front of your mind – let’s plan your
implementation.
First – you need to look at the list above, and translate it into the right people, and the right number of
people, in your organization. Clearly, the size of the group and the planning effort should be
appropriate to the size of the business. For a ten-person organization, likely 3-4 people need to be
involved in the implementation. For a company of about 25 people – probably 6 or so people have a
role to play. This quickly tapers off, and in a 200-person business you will still need no more than
10-12 people to be involved in the CRM implementation process.
Your two most important players are the executive sponsor, and the project manager. Your project
manager will provide the drive to ensure the project is executed successfully, and your sponsor will
provide the encouragement and resources to all other participants to play their part as well.
Commonly, the executive sponsor may be the President or owner, the finance chief, or sometimes
the sales manager. If you have an in-house MIS group, the sponsor should not be someone from that
group. You need the business and people part of this equation to work out properly, as well as the
technology – and really, the technology part is not the biggest risk. You need to be sure that the CRM
implementation is being undertaken because of perceived business process shortcomings, and that
the chosen solution has been selected because it best addresses them. Your project should not be
driven by a technology push, but by a business pull.
Your project manager needs to be someone inside your organization, not someone contracted for the
job. They can work closely with their opposite number on a vendor’s implementation team, but they
need to be someone that all the stakeholders know and trust. As well as being a person known for
being very competent and detail-oriented, you need someone who is also known for communicating
openly, taking suggestions, and not being overly political. If the people participating in the
implementation team feel they are just window dressing, and not really involved in the process, they
will quickly turn negative. If the solution feels ‘imposed’ staff will react with cynicism, resistance, and
at best low commitment.
Your project manager needs to be your champion – someone with the people skills to get employees
throughout the organization excited about the new CRM system. And as the implementation will
require a lot of work from your project manager, you need to address their normal workload to make
room for the CRM-related work.
Like any initiative, it is likely best to work from something other than a blank sheet of paper. While
you do not want to present the CRM implementation team with a fait accompli at the first meeting,

Section 2: Implementing 1CRM in Your Business Page 25


1CRM System 8.6 Implementation Guide Table of Contents

neither do you want to simply ask them what you think should be done – what are the goals, and
what are the potential technology solutions?
In order to focus and manage the process of agreeing a specific set of goals, a specific technology
solution, and a particular vendor for customization (if that is within the scope of your first
implementation), it would be advisable for the project manager and the executive sponsor to prepare
an initial briefing note for the first meeting – stating what some of the key perceived shortcomings are
in the current business processes, some of the potential solutions, the make-up of the CRM
implementation team, the proposed timeline, and candidates for the technology to be used.
In terms of the technology candidates, it is best if all solutions on the short list of candidate systems
have demo versions available for members of the team to try out. Clearly, given that you are reading
this document, it seems that 1CRM has been selected for the CRM technology. But it is essential that
all opinions on the subject be heard.
By having the CRM implementation team meet regularly for a few weeks, and do offline investigation
and preparation between meetings, you should quickly get to a set of business goals, as well as an
agreed-upon technology base and specifications for customization. These specifications can be as
simple as printed copies of screen layouts with changes marked on them.
That is where you need to get to before you talk to anyone outside your company.
As a checklist, here is what your planning needs to achieve:
• Executive sponsor identified
• Project manager identified
• Members of the CRM implementation team agreed
• Initial briefing note generated for the first team meeting
• First meeting held
• Responsibilities assigned for investigation and team briefing on key topics – these topics
include:
o Business processes needing improvement
o Suggested improvements
o Identifying the top three goals for the implementation
o Base technology to be used
o Candidates for vendor to perform implementation and customization
o Suggested goals for phase one of the implementation
o Suggested implementation schedule for multiple phases
o Approach to data migration
o Approach to training
o Approach to stepwise introduction within the organization
• Briefings delivered at later meetings, and key decisions made on the topics above
Clearly a larger organization will perform a more comprehensive and slower version of the process
above, and a smaller one will have a more abbreviated and faster process.

2.5.2 Some Common Pitfalls


Just to underscore the points made in the section above, and to highlight the importance of planning
and communications to the CRM implementation process, here is a list of some of the classic
mistakes we unfortunately see at more client sites than not:
• Failure to get someone to take ownership of the process from start to finish.
• Failure to involve your stakeholders, especially the end-users, right from the
requirements gathering stage.

Section 2: Implementing 1CRM in Your Business Page 26


1CRM System 8.6 Implementation Guide Table of Contents

• Not having a focus on the current business process, the intended business process
improvements, and the specifications for a system that will effect that change.
• Thinking that implementing a CRM means buying CRM software, installing it on a server,
and then telling the people who need to use it.
• Not making a particular and continuing effort throughout the project to communicate the
benefits specific to each user and stakeholder, to ensure their buy-in.
• Biting off too big an initial project phase, or simply proceeding as if phases are for
sissies. This will load too much expenditure up front, delay implementation, and make
the gap in time between initial good will and early project successes too great to bridge.
• Pursuing too rigid a development process. CRM systems are more about people than
they are technology. A process such as Agile Programming (Google will show you a nice
article on the topic by Martin Fowler) is the sort of approach that you should use. In this
approach early prototypes are used to generate feedback, and successive iterations of
the user interface ensure that users feel involved, empowered, and happy. Few business
users can picture every last detail of a system or screen at the outset. And few system
architects know exactly what users want. Get fairly close, then try it out, and make
adjustments. Repeat if necessary!
• Not training your trainer early enough, not giving them enough resources to train all
users thoroughly, and not planning the roll-out to allow for sufficient training time.
• Failing to define what a successful implementation looks like at the beginning of the
project.
• Failing to institute a periodic review of the CRM system, and continuing phases of
development, to further improve business processes and user satisfaction.

2.5.3 It Takes a Team to Win


As we saw above, a CRM implementation needs the involvement of a whole team of participants.
Yes, the executive sponsor and the project manager are of particular importance, but each person or
group represented on the team is important, and must be continually involved in the process from
beginning to end.
This continual involvement, and the ongoing effective and frequent communications between all team
members, is the one thing all successful CRM implementations have in common.
Like the introduction of any new business initiative, people know when they are truly involved, or just
being invited to meetings guided by an elite few in an attempt to win their cooperation.
The team members that are in management positions should typically be involved in the odd ‘pre-
meeting meeting’ to ensure they are familiar with a specific CRM system, or a solution to a business
problem, in advance, so that they can back it up in front of the whole group, or help make a change
before it goes to the whole group.
One of the most common errors seen on CRM implementations is not paying enough attention in the
team collaboration process to input from general sales, operations and admin staff. The whole nature
of a CRM is that management will have no data to analyze if these people do not use the system
regularly. These people need to be onboard for two very good reasons. One is the functional reason
that they can best determine what is an efficient data entry process, and what list views and reports
are needed for everyday use. The second is the human element - the implementation needs to win
these people over, and everyone reacts more positively when they are involved and have their input
heeded, than when a solution is imposed on them.
Some of the techniques you may wish to use in managing the CRM implementation team (depending
on the size of your business) will include:
• Define email groups to keep the entire team up to date – psychologically it makes
everyone on the team a peer.
• Have the team meet physically once a week throughout the requirements definition
process, and have the entire team physically sign off on the requirements.

Section 2: Implementing 1CRM in Your Business Page 27


1CRM System 8.6 Implementation Guide Table of Contents

• During development, the team can meet once every two weeks to review progress
against the schedule, and to review any escalated issues.
• Once the first pass of development has been completed, the team should again meet
once each week. Continue this until the entire organization has been deployed.
• Assuming there are no critical issues, have the team meet again a month after
deployment has been completed, to review initial feedback, and make or plan
adjustments.
• Meet again, three months and six months after initial deployment, to perform further
reviews.

2.5.4 Setting Project Goals and Specifications


In the initial briefing note presented at the first meeting of the CRM Implementation team, you should
include suggested project goals, couched in terms of current business processes and the manner in
which they should be improved. You should also have suggested timelines and phases to the
implementation process (if required).
After some initial discussion, and depending on the scale of your business and the CRM
implementation, one or more team members should be tasked with documenting in detail the
suggested project goals. These can be presented and agreed at later meetings.
It will help to first simply agree the manner in which each business process can be improved, and not
focus on CRM technology.
This approach enables the team to first address the business requirements, and then assign one or
more members to identifying a suggested shortlist of candidates for the core CRM technology to be
used for the project.
That shortlist should then be presented to the entire team, and a winning candidate agreed, that
appears best suited to satisfying the agreed business requirements, and which also has credible
references.
Then the team can generate and agree some sketches and specifications of suggested screen
layouts for list, detail and edit view screens. These may be only minor variants of the existing CRM
screens, or they may require heavy customization. The overall project timeline and phases foreseen
to complete it should also be discussed and agreed at this stage.
Once the team has developed and agreed a set of detailed project business goals, identified the
desired project timeline and phases, agreed a core CRM technology (at this point we suspect you
picked 1CRM!), and developed detailed drawings and specifications, it is time to look for the CRM
development partner who will put your CRM all together for you, and will in effect join the (previously
internal members only) CRM implementation team.

2.5.5 Selecting a CRM Development Partner


If you think you can do this without external help – think again. Ask yourself these questions:
• Have I worked through dozens of CRM implementations and gained insights into what
can go wrong and why?
• Have I got experience in data import and massaging techniques gained from years of
CRM implementations?
• Am I comfortable with my ability to interpret a business process into software workflow
and screen designs?
• Will I inspire the confidence internally that an external domain expert can?

Your first task in the process of finding the right partner is to assemble a short list of candidate firms.
Look in the yellow pages under Customer Relationship Management, by all means, to get started.

Section 2: Implementing 1CRM in Your Business Page 28


1CRM System 8.6 Implementation Guide Table of Contents

One of your best sources of good information is your peers who are running their own businesses –
ask your professional colleagues if they have any positive recommendations of firms focused on this
type of work.
Another way to find potential partners is to look on the web site of the CRM software you intend to
implement, and look for their approved development partners. Make sure you find a partner focused
not just on selling or hosting the software, but also on the development of custom enhancements to
the standard software – as you will need some without doubt.
1CRM, for example, on www.1crm.com, has a list of their partners organized by country, with links
back to the homes pages of each of those organizations. Nor should you necessarily rule out a
partner because they are not in your city or country.
A final suggestion for building your short list of candidates to become your CRM development partner
is to simply google the name of the CRM you intend to use, and look at the advertisements on the
right, as well as the links on the left.
Once a member of the team has the short list of candidate firms assembled (between 2 and 4 is the
number you want), then they should bring the list back to the CRM implementation team to be
approved, and to assign the evaluation work.
Do not split up the evaluations – the same one or two people should speak to all candidates firms,
and come up with a report and a recommendation to the team. Emphasis should be placed on
personal compatibility with the internal Project Manager, demonstrated competence and knowledge,
high quality reference implementations, a credible and acceptable proposed project timeline, and
acceptable pricing with perceived high value for the budget.
Before you make your final selection of a partner, the team should likely make a tentative selection,
based on initial specifications and the candidate firms’ estimated development budget. Then you
should work together to jointly develop a final agreement with a very detailed specification, and a
fixed development cost. If you can do that successfully, you have your CRM development partner.
Once you make the final selection of your CRM development partner, you will likely have to make a
substantial initial deposit against the development work to be undertaken and then you are off and
running!

2.5.6 System Development


The typical CRM development process, even within a single phase of an overall CRM
implementation program for your business, is broken down into a number of major areas – such as
enhancements to be made to the accounts model, to contacts, to projects, etc.. as well as the custom
reports and charts you may well need.
While some of these alterations may interact with each other, many of them will not, and clusters of
functionality can typically be identified which are fairly independent of each other.
Usually the best practice is to have the partner develop these off site, and then introduce each new
function-cluster to you for evaluation one at a time (typically through a development web site which is
exposed just to you). Unless you have spent the time and money to develop a remarkably detailed
specification, there will always be issues such as “I thought that control would be a drop-down, not a
radio button”, or “ I wanted the tab order of these fields to go like this …”, or “When you select a
value in that field – this other field is meant to be pre-populated”.
Performing initial acceptance testing on each function-cluster one at a time lets the internal CRM
implementation team focus on it clearly, and ensure that they get it implemented exactly as they need
it. Then they can move on to the next function-cluster, and so on until a full first pass of the
application has been implemented and accepted.
Now full acceptance testing on the integrated CRM application should be performed by your team,
and a formal sign off performed against a specific revision of the software on the evaluation web site.
Once that has been done, the CRM application is either hosted by a hosting supplier (which may be
your CRM development partner again), or the now custom CRM application software is delivered to

Section 2: Implementing 1CRM in Your Business Page 29


1CRM System 8.6 Implementation Guide Table of Contents

you for installation on your own server hardware. If the latter, you will need a further brief acceptance
test of the application as installed on your own server.

2.5.7 Data Migration


While the acceptance testing is going on, any past CRM or contact manager data which you wish to
import into your CRM solution should be getting prepared, converted, and imported. Data import,
checking and cleanup can itself easily take weeks to perform (when there is lots of data, and it
comes from an awkward and complex source format) – so make sure to allow sufficient time.
Do not think that the big job is to get the data into the CRM, and that you can clean it up afterwards.
The big job is to get the data cleaned up. Ask yourself – are there any transformations that should be
performed on the data while it is outside a CRM - the assignment of accounts to users, for example –
by postcode perhaps? Will you design and run a scan for duplicates?
When you have signed off on the software customization and development process, and your
imported data looks just right – you are ready to start introducing your new CRM to the most
important people in the process – its users.

2.5.8 Pilot Testing


Pilot testing of the CRM is a critical step of the process. Each section of the CRM should be tested by
a user that is most dependent on that section working optimally. Sales management should test the
pipeline charts. Sales staff and Finance should test the commission reports. Sales, service and
admin general staff should test the usability of account, contact, opportunity, lead and case screens.
Admin should evaluate management reports, and so on.
I always look at it this way. A year after your implementation, no one will remember clearly if it was on
time, or on budget. All they will remember is if you produced a system which is now a critical part of
the organization’s business processes, if they like the system, and if they felt a part of its introduction.
So – project managers - don’t be afraid to send the system back for re-work if the initial pilot testing
indicates significant dissatisfaction with the usability of the system, or the accuracy with which it
adheres to the desired business processes.

2.5.9 The CRM Training Process


CRM training has two goals – and only one is to make the user base familiar with the system and
how to use it. The other goal is to generate positive momentum for the implementation, and
enthusiasm in the user base.
To accomplish this latter goal, you need to make sure people generally like what they see - especially
the general sales staff, and to some degree the general administrative staff – as these are the two
most likely sources of resistance and negatives reactions.
Therefore your approach should be as follows:

Session 1: Initial Management Training and Product Exposure

Goals:
• To create awareness in Senior Management, to stimulate questions, and to discover any
shortcomings early, within a controlled group that consists of those individuals most likely
to be supportive of the CRM implementation and its goals.
• To finalize and clarify all system access details with MIS.

Attendees:
• Lead trainer

Section 2: Implementing 1CRM in Your Business Page 30


1CRM System 8.6 Implementation Guide Table of Contents

• Project Manager
• Executive sponsor
• Internal or external network administration and MIS
• Finance management
• Sales management
• Administration management
After the first session, all the attendees should be encouraged to go off and use the system, enter
live data, and take note of any problems, questions or dislikes.

Next Steps:
• A week later, this same group should re-assemble for session 2.

Session 2: Management Training Completion and Issue Management

Goals:
• To complete the management training, so that senior management has a good
understanding of the system’s capabilities, and how to operate the system.
• To make management enthusiastic about the system.
• To ensure management’s full support of the broad introduction of the CRM system.
• To allow management to answer questions about the system knowledgeably, and to
correct any misinformation later on from staff.
• To address any management concerns about the system function, clarify any
misunderstandings, and identify any last-minute system shortcomings that must be
addressed prior to general introduction of the system. .

Attendees:
• Same as session 1. MIS optional.

Next Steps:
• Any mandatory fixes must be identified, documented, summarized, agreed by the CRM
implementation team, and then developed and applied.
• If any fixes were required, this same group should re-assemble for session 3 to review
the fixes.

Session 3: Present Final System Adjustments (Optional)

Goals:
• To reinforce the perception that the system will evolve over time, and will genuinely be
guided by the needs of its users
• To ensure management’s full support of the broad introduction of the CRM system.

Attendees:
• Same as session 1

Section 2: Implementing 1CRM in Your Business Page 31


1CRM System 8.6 Implementation Guide Table of Contents

Next Steps:
• Schedule session 4 a week later.

Session 4: General User Training Session

Goals:
• Note: There may be multiple classes scheduled for session 4. No class should have
more than 6 users in it. Separating users by department is a good idea – Sales will have
questions on different topics than Admin.
• To present the CRM system capabilities and method of operation in a comprehensive
and logical manner.
• To stimulate class participation and questions.
• To record user feedback and open questions.
• To define initial goals for scope of use. (Departmental management participation is
mandatory for this.)

Attendees:
• Lead trainer
• Project Manager (not all sessions if there are many)
• Sales management
• Sales general staff
• Administration management
• Administration general staff
• All other general staff that will use the system

Next Steps:
• Optional follow-up session 5, two weeks later.

Session 5: Training Completion (Optional)

Goals:
• To close off any open questions
• To address any questions which have arisen in the last two weeks
• To re-present training sections where users seem uncertain
• To ensure a positive attitude on behalf of all users
• To record any outstanding concerns or issues

Attendees:
• Lead trainer
• Project Manager
• All staff that wish to participate

Next Steps:
• Presentation of training results to CRM implementation team, including any outstanding
issues identified

Section 2: Implementing 1CRM in Your Business Page 32


1CRM System 8.6 Implementation Guide Table of Contents

2.5.10 CRM Training Materials


The most important pre-requisites for the CRM training sessions are:
• A good trainer that can understand the business context, as well as relate to the users at
their level.
• A quiet training room, with overhead projector connected to the laptop/PC of the trainer,
a meeting table, and plenty of room for all attendees.
• A group of no more than six attendees, to create a constructive learning environment,
and to prevent any impersonal ‘mob rule’ negative feedback events from having a
chance to start.
• All users to have been pre-configured in the system prior to the session, so they can see
themselves already set up as users, and so they can use the CRM system immediately
after the session if they wish.
• Optionally – you may wish to allow users to have their own PCs or laptops in the training
session, to experiment with the system. If so – only allow laptop/PC use after initial
orientation in the system is complete. Be prepared with slips of paper with sign-on URL,
user names and passwords if you do this.
Expect each training session to be about 90 minutes long. Any longer and attendees will want to
avoid them - attention spans will only stretch so far.
While the various sessions outlined above have different goals and attendees, the material to be
presented at the main sessions (1 and 4) as well as used for backup material at the reinforcement
sessions (2 and 5) is largely common.
The remainder of this section contains suggested content to be used to make up a set of overhead
slides for use as training material for these sessions.
While you present these slides, it is a useful technique to switch back and forth between the
slideshow software, and the web browser with a live session on the go, to illustrate general points
with specifics from the live software.
Always be prepared to stop the presentation to answer (somewhat sane and valid) questions – the
users must always feel that the company is listening to them.

Slide 1: What is a CRM System?


• A system which manages the information and processes surrounding your organization’s
relationship with its customers
• Principle goals are to improve customer satisfaction & retention, plus sales efficiency &
performance
• Sales as well as service/support, plus administration and even finance
• Not a contact manager – it is typically based on the distinction between an Account and
a Contact
• Includes opportunity tracking and sales pipeline, lead source analysis
• Even corporate calendar, RSS news feeds, to-do lists, and email

Slide 2: CRM Deployment Options


• Cloud-Hosted
• On Premise, or Self Hosted Application Software
• 3rd Party Hosted Application Software

Slide 3: What are our business goals?


• For you to fill in the goals identified by your CRM implementation team
• On your list somewhere will likely be –

Section 2: Implementing 1CRM in Your Business Page 33


1CRM System 8.6 Implementation Guide Table of Contents

o To improve customer satisfaction & retention


o To improve sales efficiency & performance

Slide 4: What functional areas of CRM we will use most?


• Again – you need to fill in the key areas of focus for your organization
• Will you use simply the core basic CRM capabilities, or broaden its use to include
Marketing Campaigns, project Management, Document Management, etc…?

Slide 5: What is 1CRM?


• A leading CRM implementation for Small-Medium businesses from a vendor in Canada
• Based on the LAMP stack - Linux, Apache, MySQL, PHP
• Delivers CRM capabilities (and more) into any web browser
• What are the customizations you have had developed?
• What vendor developed those changes?
• Where do users go for support - internally and externally?

Slide 6: CRM Basics 1 – System Access, Screen Layout, Navigation


• Logging In – user name, password, selecting language and theme
• Principal Screen Layout Elements
• Navigating 1CRM – top menu or side panel navigation, shortcuts
• List, Detail & Edit Views
• Main panel and sub-panels
• Logging Out

Slide 7: CRM Basics 2 – Accounts & Contacts


• Account information content
• Contact information content
• Relating Contacts to Accounts
• Permissions and Security – who sees my information?

Slide 8: CRM Basics 3 – Opportunities & the Sales Pipeline, Home Tab
• Opportunity information content
• Home Tab – My Pipeline, My Top Opportunities
• Dashboard Charts

Slide 9: CRM Basics 4 - Calendaring


• Today Screen Calendar
• Calendar Module – Day, Week, Month Year Views
• Shared Calendar Information
• Making a Quick Appointment

Slide 10: CRM Basics 5 – Activities (Calls, Meetings, Tasks, Notes)


• Creating a Task
• Scheduling a Call
• Scheduling a Meeting
• Making a Note – file attachments

Section 2: Implementing 1CRM in Your Business Page 34


1CRM System 8.6 Implementation Guide Table of Contents

• My Upcoming Appointments
• My Open Tasks

Slide 11: CRM Basics 6 - Email


• Entering Your Email Settings
• Sending a single email
• System Email Reminders
• Email Templates

Slide 12: CRM Basics 7 – Advanced Interface Features


• Printing
• Getting Help
• Mass Update
• Quick New Item Box
• Input Business Card
• Create from vCard

Slide 13: Extending CRM 1 – RSS News & External Sites


• Interface Consolidation Concepts
• RSS News Feeds

Slide 14: Extending CRM 2 – Marketing Campaigns


• Prospects vs: Leads and Contacts
• Prospect Lists
• Marketing Campaigns
• Email Marketing Program
• Mass Emailing Queue

Slide 15: Extending CRM 3 – Document Management


• Document Information content
• Document Revisions
• Document Upload
• Document Download

Slide 16: Extending CRM 4 – Project Management


• Project Information Content
• Project Tasks
• Monitoring Project Status
• Timesheets

Slide 17: Extending CRM 5 – Customer Service Management


• Service Cases
• Bug Tracker
• Case & Bug History

Section 2: Implementing 1CRM in Your Business Page 35


1CRM System 8.6 Implementation Guide Table of Contents

Slide 18: Extending CRM 6 – Always in Touch


• Pros and Cons of Various Remote Access Techniques
• External Access Details
• Wireless Handheld Browser Access – iPhone, BlackBerry, etc..

Slide 19: Extending CRM 7 – Reaching Out


• Website Lead Collection
• 1CRM Customer Connection Self-Service Portal plugin for WordPress

2.5.11 Going Live: Stepwise Introduction


Once employees have been introduced to the new CRM and fully trained, it is time to go live.
A common technique is to conduct general user training in sections by department, and to take each
department live after they have been trained. If you adopt this approach, be sure to allow enough
time after each department is trained for them to come to grips with the system and ask their
questions of support staff, before the next group goes through and the support staff is overwhelmed.
This is typically the approach we use ourselves at 1CRM Systems Corp. with our clients. The only
caveat we would recommend is that you make absolutely sure that you have an accurate reading on
user acceptance in all departments and roles of the organization (from acceptance testing and pilot
testing) if you are going to use this approach. Once you have taken one group live, if another group
provides significantly negative feedback in their training session, you have a serious problem.

2.5.12 Continuous Feedback and Enhancement


Just as every business itself does, every CRM system needs continuous evaluation and
enhancement. As your business changes, so must your CRM system. And as the competitive
business environment gets steadily more intense, your CRM must evolve and improve to maintain
and advance your competitive standing in your industry.
Until the CRM system achieves a high level of internal user satisfaction, it should be reviewed at
least once every business quarter for usability improvements, and any potential extensions to
automate additional business processes.
Once the system is popular internally, it should be reviewed at least once every six months for
potential improvements and enhancements. In particular, opportunities should be sought for more
advanced methods (typically involving external connectivity) of improving your customer relationships
and satisfaction, such as customer self-service portals, automated website lead collection,
automated client emails advising of product shipments and problems resolutions, as well as email
marketing campaigns.

2.6 Deployment Alternatives


Simply put, if you want to use 1CRM as the CRM solution for your business, you will need to be able
to connect to an Internet-accessible server which is running 1CRM. You will then use it by typing the
web address of that server into the address bar of the browser on your PC – no matter where your
PC may be as long as it to is connected to the Internet.
So – you need to think about whose server that will be, where it will be, who will install 1CRM initially
and who will take care of that installation going forward.
You have four basic options:

Section 2: Implementing 1CRM in Your Business Page 36


1CRM System 8.6 Implementation Guide Table of Contents

• 1CRM Cloud (Also known as On Demand): In this situation, you rent use of the 1CRM
application by the month (or year), and by the user. You don’t own the server it is
operating on, nor do you have to take care of it at all. The supplier (often called an
Application Service Provider, or ASP) backs up the server, makes sure it is always
available, and makes sure that adequate bandwidth is available to ensure good
performance. There are many 1CRM sales partners that provide the 1CRM Cloud
Service - if you have trouble finding one, please get in touch with us for a
recommendation.
• Server Collocation: With this option, you buy your own server, or use one you already
own. You load it up with exactly the software image you want, and then take it down to
your local Internet Service Provider (ISP), who hosts it for a monthly charge. Again, the
supplier backs up the server, makes sure it is always available, and makes sure that
adequate bandwidth is available to ensure good performance.
• On Premise (a.k.a. Self-Hosted): This option should be fairly self-explanatory – you buy
your own server or use one you already have, load up the desired software on it, and
then connect it to the Internet connection at your office, making it externally accessible
for use by employees at home or on the road.
• Shared Server: The cheapest and lowest capacity option – you have your 1CRM
instance hosted on a server at an ISP, and that server is also used by the ISP to host
applications and web sites of several more of their customers.

Let’s look at a comparison chart of these options:

Cloud-Hosted Collocated On Premise Shared Server


Initial Cost Low Medium Medium/High Low
Ongoing Cost Medium Medium Low Low
Somewhat
Initial Setup Easy Complex Medium
Complex
Ongoing Effort Low Medium Medium Low
Custom Fit Variable Excellent Excellent Often Poor
Data Security Excellent Excellent Up to You Excellent
Performance Excellent Excellent Likely Excellent Low Capacity
Figure 1: 1CRM Deployment Options

At the time you first set up your own server, or prepare it for delivery to an ISP for collocation, your
expenses will be higher than the Cloud-Hosted option. You have to buy a server, unless you already
have a suitable server candidate available, and you may also need to buy a server operating system
(if you choose to use Windows instead of Linux). You may also have some costs associated with
developing a backup solution. And you need someone with a least a bit of a technical bent working
for you to perform the software installation.
Once you get going, however, the Cloud-Hosted service may prove to be somewhat more expensive
– costing around $30 US per user per month (still low compared to the $100-125 US per user per
month figure common with salesforce.com or NetSuite). Depending on your business, that may seem
a good deal for relieving yourself of the need to buy and maintain a server, or it may not.
The Shared Server approach is the easiest way to get a taste of what it is like to use 1CRM, and is
cheap to run and fairly easy to set up, but has limitations on how much customization you can do,
and the size of organization you can expect to run on it. As well, these installations are typically very
light on disk space, so if you are using Documents a lot, or generating a lot of PDF files, or other
binary attachments to Notes or Emails, this can make this option less viable. As well, these shared
server offerings often have tight limits on bandwidth you may use – which will likely be exceeded
greatly if you are uploading and downloading a lot of Documents and Email attachments. This option
is typically only applicable to businesses with at most 10 employees.
For most businesses with more than 10 employees, as should be clear from the table above, the
choice between the deployment options is a tradeoff of cost vs. complexity and effort.

Section 2: Implementing 1CRM in Your Business Page 37


1CRM System 8.6 Implementation Guide Table of Contents

• Going with a Cloud-Hosted service is easy to do – except for once a month when you
write the check.
• Hosting the system yourself will take some effort to set it up, require some funds for a
server, and take some ongoing effort to make sure the system runs reliably and your
data is safe and secure. But it is the cheapest option by far – at least in terms of direct
costs.
• Somewhere in between is the collocation option, which takes a little effort to set up, none
or very little to manage month to month, all at a price somewhere between the Cloud-
Hosted and On Premise models.

One important point to note: When you go with a Cloud-Hosted service, there is usually less
accommodation for substantial customizations to the CRM software to suit your business. The
hosted application tends to be very standardized – that is how the ISP/ASP controls costs of
managing multiple servers for multiple clients. In the collocation option, you get to load the software
on your own server, and then deliver it to the ISP – so a fully customized software image is no
problem. It is also usually easy to update later on, without removing it from the ISP. In the On
Premise model, of course, your solution can be as customized as you like, and it may also be easier
to link the CRM server to your other business systems (accounts, intranet, customer portal) which
may reside securely behind your company’s firewall.

2.6.1 Making An Informed Choice of Deployment Option


If you decide to go with the On Premise option, or the collocation option, you will need to know about
computer server hardware, server operating systems, and the choice of the LAMP stack vs. WAMP.
These topics are covered in the following sections.
Even if you go with the Cloud-Hosted option, it is still useful to gain an overview level of
understanding of these topics, as this information will make you an informed consumer of the product
offered to you by Cloud-Hosted vendors. Will that bandwidth be enough for me? Will that server offer
good performance and scalability? What about your backup procedures!

2.6.2 Choosing a Server Operating System


Just as a server may physically resemble a PC while differing from it greatly, a server operating
system may look a lot like a desktop operating system while being in actuality very different. A
desktop operating system, like a PC, is optimized to give good service to the user to whom is it
dedicated. A server operating system has to be talented at getting work done for many people at
once, while keeping them all happy. It also typically has less need for a rich powerful graphical user
interface, as it is frequently used and managed remotely.
Server and network operating systems have been around for a long time. While many years ago
Novell Netware and Banyan Vines, plus many variants of Unix (including notably Solaris from Sun
Microsystems) were major players in this marketplace, today the largest players in network/server
operating systems for small to medium applications are Windows Server, and Linux. While Unix still
has a very large share, it is growing slowly, and relates much more to the high end of the market.
While Windows Server comes only from Microsoft, Linux exists in many versions, from many
sources. Red Hat Enterprise Linux (RHEL) is perhaps the best known product (or distribution, as
different versions of Linux are called), with Suse (originally a German Linux vendor, now owned by
Novell) a close second. Ubuntu is a more recent success. Suse tends to be the preferred vendor in
Europe, and Red Hat in the USA. Major commercial Linux distributions while still mostly open source,
are far from free, as they command substantial annual support contracts, and initial licensing costs.
There are also many non-commercial Linux distributions of a very high quality, including Fedora Core
Linux and CentOS - both of which are heavily linked to the RHEL code. These are the cheapest
server operating systems on which 1CRM can be installed, as they are free. For this reason, Chapter
3 which describes installing 1CRM on Linux uses CentOS 7.6 Linux as the reference platform.

Section 2: Implementing 1CRM in Your Business Page 38


1CRM System 8.6 Implementation Guide Table of Contents

How to choose between Windows Server and LInux? The choice often comes down to spending
more to get the familiar Microsoft user interface, or paying less, and dealing with the potentially less
familiar Linux user interface.
Performance is also an issue, as a given server will typically run 1CRM 10-15% slower under
Windows than if it were running under Linux. Adding extra memory can reduce this gap.
Additionally, you may well already have servers deployed in your network, and trained network
administrators and company standards, which between them may well dictate your choice.
Or, if you have no network administrator on staff, you will need someone local at the very least to be
on call in case of emergencies, perhaps to come in and set things up for you in the beginning, and
possibly to perform backups each week. There are many independent network and server support
people who make their living working as the outsourced computer support technician for perhaps ten
small businesses.
Working with one of these people might cost you $5,000 - $10,000 per year, and depending on your
circumstances, could well be right for you. Or is the $30 per user per month at the Cloud-Hosted
supplier starting to look better now!

2.6.3 Web-Based Application Platforms


In today’s computing world, there are three major web-based application development and delivery
platforms:
• Microsoft’s .proprietary NET platform;
• Sun Microsystem’s partially open Java platform; and
• The Open Source LAMP (Linux-Apache-MySQL-PHP) platform.
Each of these environments provides a comprehensive set of tools for developers to build and
test new web-based applications, and for users of the applications to run them.

Microsoft’s .NET platform has very good cross-language development capabilities, but is tied to
Microsoft-proprietary products, including their operating system and other server products.
Sun’s Java platform is widely popular across many vendors (Sun, HP, IBM, etc..) as a scalable
platform that is largely hardware and Operating System independent, and non-proprietary.
While the Java platform has world-class scalability, and an excellent security model, it has been
recognized that it is not the most cost-effective environment for developing reliable business
applications with expensive development resources.
Accordingly, while .NET will likely remain the platform of choice for Microsoft’s partners and users
who don’t mind being irretrievably tied to Microsoft products, there has been a big need in the market
for a non-proprietary platform with Open Source components and the practical ability to build
applications in a particularly cost-effective manner. That platform is the LAMP stack.
LAMP stands for Linux, Apache, MySQL, and PHP (plus Perl and Python – two other popular Open
Source scripting languages we will not discuss further here). The LAMP stack looks like this:

PHP Hypertext Preprocessor


MySQL Database
Apache Web Server
Linux Operating System
Figure 2: The LAMP Stack

As you can see, Linux and Apache are the base on which LAMP is built. And what a solid base –
between them they are the two most successful Open Source initiatives in the world. The Apache

Section 2: Implementing 1CRM in Your Business Page 39


1CRM System 8.6 Implementation Guide Table of Contents

Open Source web server is the world’s number one web server - by a mile. The November 2012
Netcraft Web Server survey reports that 57% of all web servers are Apache web servers, and 17%
use Microsoft Internet Information Server.
Linux is the world’s number two server operating system, behind Windows Server, and is the fastest
growing server operating system in the world.
The PHP and MySQL components of the LAMP stack do pretty well too. PHP is used on over 20
million web sites, and Security Space reports that nearly 40% of all Apache servers run PHP. PHP
(PHP: Hypertext Preprocessor) was originally developed as a general purpose scripting language
particularly suited for web development by Rasmus Lerdorf. Version 1.0 was known as the Personal
Home Page (PHP) tool set, and was released Jun 8, 1995.
My SQL, the world’s most popular Open Source database, is also 17 years old, and has over 6
million server installations. Developed and released into Open Source by MySQL AB of Sweden, it is
known for speed, scalability, and reliability. It would be fair to say it is also known as a less
sophisticated database, lacking some advanced capabilities such as stored procedures and triggers
– features that were finally delivered in the 5.0 release of MySQL. If MySQL is a Ford Mustang –
simple, fast, and reliable, then Oracle, the leading commercial database, would have to be
characterized as a Bentley – smooth, slick, fast, and expensive. We know which one suits the
smaller business. And with 6 million servers using it already, it is a pretty safe bet!

2.6.4 LAMP vs. WAMP vs: MAMP


While the four elements of LAMP work very well together, they can be used in different combinations.
Other than the use of alternative scripting languages, the most common change to LAMP is to make
it WAMP, by using Windows underneath it, rather than Linux. Or MAMP - running on a Mac.
Another possible change might have been to make it WIMP, by using Windows Server and Microsoft
Internet Information Server (IIS – the Microsoft web server) underneath MySQL and PHP - but 1CRM
does not support the use of IIS.
Generally speaking, Windows Server has a much greater memory footprint than Linux – so WAMP
will require the server it is installed on to have more memory than if LAMP were utilized. For an
average 25 person business, your CRM server can often get away with just 4 GB of memory if you
use the LAMP stack, but 8 GB is a safer bet if you want to use WAMP. Otherwise, there are no other
significant drawbacks to running WAMP – and potential advantages as Windows Server presents a
user interface that many more people are familiar with.

2.6.5 Specifying Your Server Hardware


At home, most of us use our PCs as isolated workstations for work or play. A few may connect
several PCs at home into a network, in much the same way they are connected at the office. When
several PCs are connected in a network, there is often value in attaching one or more special
computers to the network, designed to act as a shared resource for all users. These special -
typically more powerful - computers are called servers.
Most of us are familiar enough with a home or office desktop or notebook computer - PC or Mac.
While a computer server can look quite similar to a desktop PC, it usually has a number of quite
fundamental differences, as summarized in the table below:

Section 2: Implementing 1CRM in Your Business Page 40


1CRM System 8.6 Implementation Guide Table of Contents

PC or Low-End Server Full Server


Form Factor Desktop, Tower Tower, Rackmount
Memory Type Non-parity Error Checking and Correcting (ECC)
Memory Size 2-8 GB 4-32 GB
Hard Disk Technology IDE / SATA / SSD SCSI / SSD
Hard Disk Speed 5,400 – 10,000 RPM 10,000 – 15,000 RPM
Ethernet 100/Gig E,
LAN Interface One or more Gig-Ethernet
Wireless
Power Supply Single 250W – 400W Redundant 400W
Processor (CPU) Single Core i5 or i7 One or more Xeon
Often High Performance for
Video Low Performance
Gaming
Users One – local Many - Remote
Figure 3: Comparison of Server and PC Characteristics

Note that there are plenty of low-end servers from the likes of HP and Dell that use non-parity
memory, SATA disk drives, and a single power supply. They have pretty much the same hardware
technology as a PC, but run a server operating system. They can be used for 1CRM installations up
to say 20 users fairly effectively. For larger installations than that our recommendation is for a higher
capacity, and better level of reliability, using what one might call a full server. Most of the differences
in a full server are there to make the server more reliable than a PC, and to make it better suited to
handling the needs of many users at once.
ECC memory for example, has the ability to detect and correct the most common forms of errors that
could be made by semi-conductor memory when it starts to fail. Similarly, a server power supply
often has two actual power supplies connected in a redundant manner, so that when one fails, it is
reported, but the system carries on running on the one power supply that remains, giving you a
chance to buy a replacement power supply, and schedule down time to replace it.
System memory size is often one of the biggest differences between a server and a PC. Most PC
users (other than those doing graphics design and other demanding tasks) work happily with 2-8 GB
of memory in their PC. By contrast, few servers use less than 4 GB of memory, and many use 6-32
GB – or more. With more memory, the work being done for many users can stay in memory beside
each other as it is performed, rather than being sent temporarily out to the hard disk if memory gets
too full. As system memory is at least 100 times faster than the hard disk, anything that involves the
hard disk will slow down the system substantially.
Servers are used for many tasks. A network may have a specific server to act as a database server,
for example. That type of server would be optimized for fast and reliable disk storage and high
memory capacity. Another server might be an application server – one on which applications are run,
with the results being communicated to the users on the PCs using those applications. An application
server is typically optimized with lots of memory and CPU power – to get through all that application
processing quickly. An example of an application server is an 1CRM server – the 1CRM application is
actually running on the server – and multiple user PCs are just running web browsers that display
web pages which communicate to the users what is going on in their particular session.
For a business with up to 20 users, we have configured below a powerful low-end 1CRM server, to
be used as a combined database and application server.

Section 2: Implementing 1CRM in Your Business Page 41


1CRM System 8.6 Implementation Guide Table of Contents

Component Price ($US - Nov ’12)


Model Mac Mini Late 2012 $799.00
Memory 16GB 1600MHz DDR3 SDRAM -2x8GB $300.00
Hard Disks 1 TB Fusion Drive (SSD+HD) $250.00
Processor 2.6GHz Quad-Core Intel Core i7 $100.00
Video Intel HD-4000 NA
Total Price $1,449.00

Figure 4: 1CRM Low-End Server Configuration

As you can see, a very powerful application server need not be expensive.

Figure 5: 1CRM Low-End Server, the Mac Mini Server

Note: For interest’s sake, these servers are what we historically used at 1CRM Systems Corp.
for our trial and demo servers - they hold several hundred trial sites each - although of course
trial sites are often only lightly used.

For a business with perhaps 20-50 users, a reasonable configuration might be along these lines:
• 1TB GB of SCSI storage, mirrored or some other RAID configuration
• 16 GB of ECC memory (depending on the operating system used)
• Dual Quad Core Xeon processors
• A single Gig-Ethernet connection to the network
• An Uninterruptible Power Supply (UPS)

For a business with 100 users, the recommended recommendation would move up to something
more like:
• 2 TB of SCSI storage, in a RAID configuration
• 32 GB of ECC memory
• Dual modern Quad Core Xeon processors
• A dual Gig-Ethernet connection to the network
• An Uninterruptible Power Supply (UPS)

Most ISPs and ASPs use fairly low-end hardware for their servers, and seem to charge a lot of
money for them each month when offered as dedicated servers. If you use 1CRM as a Cloud-Hosted
service, you will in all likelihood not have a whole server dedicated to running 1CRM for your
business. Instead, your ISP/ASP will likely be using a shared server facility – a controlled portion of
the resources of a physical server – to support your business’s CRM.

Section 2: Implementing 1CRM in Your Business Page 42


1CRM System 8.6 Implementation Guide Table of Contents

If you are planning to use your CRM to house a lot of shared documents for your business, you
should check with your Cloud-Hosted service provider what your disk space and bandwidth
limitations are – they are often surprisingly low.
Clearly if you collocate your own server at an ISP, or use it at your own premises, you will likely have
a better hardware platform to run on, and it will offer some room for expansion, compared to the
Cloud-Hosted situation. But collocation can be expensive too, and managing your own server is not
for everyone.
In the end, you will need to make a choice balancing several factors – your access to technical staff
(and the cost of it), how difficult it is for you to invest in a server, what price you can find for a Cloud-
Hosted service of good quality, and how much customization you feel your installation of the software
will require.

2.6.6 Backup and Security Considerations


Backup and security are the two things that are most likely to suffer if you host your server yourself,
compared to housing it at a professional hosting centre. If you are going to be hosting your own
server, and have little experience with servers, backup, and network security issues, this is an
important section for you.
Clearly, when you have got your dream CRM up and running, you will want everyone in the
organization to be using it, and the business to be largely run from it. With such a vital role in the
organization, and all your business’ vital data on it, you will not be able to afford to have the system
fail and lose your data, or produce prolonged down time.
Accordingly, you will need to devise a data backup strategy. One solution is to buy a data backup
device – which historically might have been tape-based, but today is more likely to involve directly
attached disk storage. With massive hard disks costing less than $100, disk based backup can be
fast and inexpensive. Whatever you do, adopting a reliable backup plan is completely mandatory.
Whatever solution you adopt, the most likely cause of failure will be because you did not use it
regularly, or properly – or did not test that the backups it made could be successfully restored. So
pay more attention to the policies and procedures for backup, and testing restores than you ever do
to your choice of backup technology. We recommend that once a month you test your backups by
identifying several data items that have been recently created and checking they can be successfully
restored from the backup.

2.6.7 Server Security


Your CRM server will likely be permanently accessible via the Internet, and will house your most vital
and sensitive business information. Right away, bells should be going off in your head, warning you
to make sure that the server is properly secure. Malicious attacks, or the attempted theft of your
competitive information, are two among many very real threats you must plan for.
For a start, security specialists will always tell you that nothing is completely secure. There are simply
levels of security – each more cumbersome and expensive than the last, and you need to implement
a level of security that is sensible and appropriate in your business context.
Some minimal security measures you should consider include:
• A UPS (Uninterruptible Power Supply) to save your server from crashing when there is a
power outage. Windows and Linux both have utilities that can receive a message from
the UPS notifying the server when the UPS has gone over to battery backup, so that the
server can be shut down in a controlled manner if the power remains out for too long;
• A locked server room, so only authorized employees can access the server, reducing its
chances of being stolen, being damaged, or having its data compromised or stolen; and
• A firewall between the server and the Internet connection, with only limited and specific
access to the web server being permitted from the Internet.

Section 2: Implementing 1CRM in Your Business Page 43


1CRM System 8.6 Implementation Guide Table of Contents

If you are installing the 1CRM server at your own offices, you will typically position the server behind
your firewall to the outside world, but allow external access by opening ports on the firewall to the
web server on your 1CRM server. From a security point of view, it would be even better to actually
have separate web and application servers, with security rules between them – but likely not a
necessary security measure for smaller firms.
If your 1CRM server will be collocated at an ISP, a similar networking configuration should be used –
talk to your ISP.
If you are using a Cloud-Hosted service – none of this will be vital to you, except insofar as you may
wish to ask your ASP what security architecture is in place, and how they handle the web server and
application server issues.
In either case, to protect your data as it travels over the Internet, you may well want to implement a
Virtual Private Network (VPN) solution, or certificate-based Secure Sockets Layer (SSL) encryption.

2.6.8 Bandwidth Capacity and Reliability Considerations


We have all been on Internet sites where we liked the information it provided, but were frustrated by
the slowness of the site. We need to make sure no one using your CRM ever feels that way about it!
Bandwidth, or connection speed, is an important link in the chain of good performance for a web-
based CRM.

Figure 6: 1CRM Internet Connection


In the diagram above, the Outbound traffic leaves your offices for the Internet at a speed called the
uplink, or upload speed. Inbound traffic arrives at your building at the downlink, or download speed.
Notice that with the server at your office, for a remote user it is important that the uplink speed be
good, for data to get from the office to the remote user quickly.
Usually, your employees will complain if the office download speed is slow, as web browsing, or
retrieving email from an external email service, will be slow if the office has a poor Internet download
speed (traffic moving in the direction of the Inbound traffic in the diagram above).

Section 2: Implementing 1CRM in Your Business Page 44


1CRM System 8.6 Implementation Guide Table of Contents

Now we see that employees will also complain (at least the ones who access your CRM while away
from the office) if the office’s Internet connection has a slow uplink speed (traffic moving in the
direction of the Outbound traffic in the diagram above).
So the conclusion we must draw is that if you intend to house your CRM server at the office, you
need to make sure the office now has not just a good download speed on its Internet connection, but
a good upload speed as well.
What is a good speed? Well, that depends on how much each employee has to use the Internet to
do their work. In a software development company, the Internet bandwidth required per employee will
likely be much greater than in a T-shirt printing firm. For the average (if there is such a thing) white
collar business, for each 25 people in the company, you will need something like five megabits of
download bandwidth. With a CRM server at the office being accessed by remote employees during
the day, or at night from home, you will likely need at least five megabits of upload or uplink speed for
each 25 people in the company.
It is usually best to avoid an uplink speed lower than 1 Megabits for remote access to 1CRM. It will
still work on slower connections of course, but you may find the response becomes sluggish – and
there’s really no room for that in business these days!
Many Internet connections tend to be faster in the download direction than the upload direction.
These connections are referred to as ‘Asymmetric’. If your CRM server is located at your offices, your
business becomes a candidate to have an Internet connection that is closer to being Symmetric, or
balanced, in its upload and download speeds.
When you use a Cloud-Hosted service for your CRM, or have your server collocated at an ISP, your
server benefits from the fact that the Internet connection at the provider’s location is much faster in
both directions than it is at your offices, and as well it is more reliable. Typically, an ISP or ASP has
multiple suppliers of its Internet connection ‘pipes’, so that if the connection provided by one supplier
fails, those from the other suppliers will automatically carry on moving traffic.
This redundancy of Internet connection is something that is hard to afford for the smallest businesses
– and so you may have to accept that your level of service (reliability) for a self-hosted CRM won’t be
quite as good as if your server were professionally hosted and managed. Check out pricing for
redundant connections in your area, and as well, check out the level of guaranteed availability
offered by the ISPs in your area, and their reputations amongst your business associates.
Lastly, if you choose the Cloud-Hosted or collocated server options, be sure to check out how much
bandwidth you are allowed to consume (per user, or for your whole server) before bandwidth
surcharges come into effect. With many suppliers the standard bandwidth allowance is very small, to
help generate another couple of hundred dollars of income for the supplier each month from charges
for excessive bandwidth use.

Section 2: Implementing 1CRM in Your Business Page 45


1CRM System 8.6 Implementation Guide Table of Contents

2.7 Customer Centric Business


Management
Most of this chapter deals with the issue of helping you implement a CRM that is suitable for your
business. However neither 1CRM, nor indeed any other truly effective CRM, deals only with that
narrow-defined set of topics which originally constituted a CRM system.

From product catalogs, quotes and invoices to service contract management, and from email
marketing campaigns to project management and resource tracking, extending your CRM into a
customer centric business management system is gaining increasing recognition as an appropriate
and effective technique for small and medium businesses.

At its heart, a CRM system is about consistently excellent communication – both inside and outside
the business. As an exercise in understanding the flow of information in your business, map out on a
sheet of paper the various departments within your organization, and overlay on it the typical paths
that information takes between those departments as customer transactions are processed. Think
about pre-sales requests for information, quotations, order processing, customer queries about
shipments they are waiting for, shipping, and after sales support and service.

For each transaction think about where new information originates in your organization, and examine
which other parts of the business need that information to perform their jobs properly. Jot down notes
on what items of information in your industry are key to delivering an outstanding customer
experience to your customers. Note where these items of information enter your business or are
created, and where they move within the business.

Now examine your CRM system, and check the various relevant functions to see if they keep track of
all the information that you need to deliver excellence to your customers, and if they model all the
transactions that are most important for your customers. Where they do not, you are identifying gaps
in your CRM implementation. These gaps should be addressed by extending your CRM to cover
them, managing the information for those transactions, and ensuring that all appropriate employees
always have access to the latest information about those transactions.

Now of course, every good CRM implementation has multiple phases, and many of these gaps will
not need to be addressed in your initial phase of rolling out the CRM. But just as all good IT systems
should be subject to ongoing periodic reviews for the purposes of continual improvement, you should
track your CRM to-do list, and continue to make your CRM system as useful and comprehensive, yet
practical and cost-effective, as you possibly can.

Now let’s get on with installing your CRM so you can put what you have learned in this chapter into
action. Chapter 3 contains instructions on installing 1CRM on a CentOS 7 Linux server, and Chapter
4 has the instructions for installing on Windows 10. Chapter 5 covers installation on an macOS
server, and Chapter 6 deals with installation in the Microsoft Azure Cloud. After that, Chapter 7 has
the details of the administration tools available to you for the initial setup and ongoing management
of your 1CRM system. Chapter 8 offers information on importing data into your CRM, and exporting it
back out, while Chapter 9 deals with some frequently asked questions.

Section 2: Implementing 1CRM in Your Business Page 46


1CRM System 8.6 Implementation Guide Table of Contents

3.0 Installing 1CRM on CentOS


7.6
3.1 Linux Server Reference Platform
Before we start, a word of caution. As ever, User and Implementation guides are written, but not
always read! We encourage you to make sure that this chapter on installing your new software on
CentOS 7.6 is something that you do read – if only because if you do not follow the instructions here,
we cannot effectively support your installation.

Particularly critical are the php.ini configuration instructions in section 3.5, and the chart of
compatible software revisions at the end of this chapter. This chapter, like the three that follow, is
written to document how to install 1CRM on a specific reference platform.

If you ever have a need to call for support, our technicians will make sure that your server
environment complies with the one documented here (or one of the other reference platforms),
before any incident can proceed further.

If you have chosen to install 1CRM on a Linux version other than CentOS 7.6, that’s fine, but if you
call for support and your environment or its configuration (rather than the 1CRM software itself) is
found to be the cause of your issue, the support incident will unfortunately be billable.

Our support staff can’t be expert at all variations of every environment, and neither can we document
how to install 1CRM on every conceivable environment that might support it. So we chose a few that
we felt would be popular ones.

3.2 Getting Started


To install 1CRM on Linux, we recommend, and have documented here, the use of the CentOS 7.6
Linux distribution. You will need a CentOS 7.6 installation DVD, as well as the 1CRM installation Zip
file.

An ISO image of a CentOS 7.6 (64-bit) installation DVD may be downloaded (although it is 4.59 GB,
so be ready to wait a while) from http://centos.org.

The filename is CentOS-7-x86_64-DVD-1810.iso.

Once downloaded, you must use an ISO image burning utility capable of burning a bootable installer
image onto a DVD or USB key from an ISO image. We used etcher to make a USB key installer for
CentOS. And we tested this process on an Intel NUC7i5BNH.

Section 3: Installing 1CRM System 8.6 on CentOS 7.6 Page 47


1CRM System 8.6 Implementation Guide Table of Contents

3.3 Install CentOS 7.6 Linux


1. Insert the CentOS 7.6 Linux installation DVD or USB key and boot your server from it. (Make
sure the server’s BIOS is configured to allow booting from an external drive.)
2. Simply follow the normal installation process until you see the CentOS 7.6 desktop as shown
below.
Note: Make sure your server is connected to the Internet for this entire process. And be sure
to select the Server with GUI option for your installation.

Figure 7: CentOS 7.6 Login Screen

3. Use Applications – System Tools – Software Update to make sure your system has all the
most recent patches. Once you click on Install Updates, the update will take a few minutes.
4. Use Applications – System Tools – Software to load additional software components.
Choose Web Services on the left side menu, then scroll down the list.
• Web Server - Apache HTTP Server (2.4.6-89)
Choose Databases on the left side menu, then scroll down the list.
• MariaDB Database Server - The MariaDB server and related files
(mariadb-server-1:5.5.60)
Click Apply Changes to install these components.

Section 3: Installing 1CRM System 8.6 on CentOS 7.6 Page 48


1CRM System 8.6 Implementation Guide Table of Contents

Figure 8: CentOS 7.6 Software Selection

5. Close the Software window, and use Applications – Favorites – Terminal to enter the
following commands:
• sudo su (to gain admin privileges - you’ll need to provide your password)
• rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY*
• yum -y install epel-release
• systemctl start mariadb.service (to run the mariadb mysql service)
• systemctl enable mariadb.service (to run the mariadb mysql service at every
boot)
• mysqladmin -u root password yourpassword (use your own password here)
• systemctl start httpd.service (to run the apache service)
• systemctl enable httpd.service (to run the apache service at every boot)
• rpm -Uvh http://rpms.remirepo.net/enterprise/remi-release-7.rpm (to access the
Remi CentOS repository, as we begin to install PHP 7.3)
Note: As of release 8.6 1CRM now requires PHP 7.x as a minimum, and supports up
to PHP 7.3. CentOS installed PHP 5.4 by default, and now we are updating it to 7.3.
• yum -y install yum-utils (Install yum-utils as we need the yum-config-manager
utility)
• yum-config-manager --enable remi-php73 (we are installing php 7.3)
• yum -y install php php-opcache (performs the actual php install)
• yum install -y php-mysqlnd php-pdo php-gd php-pear php-mbstring php-
soap php-xml php-imap php-zip php-apcu
Note: This command loads a number of PHP extension modules. You may be asked
to confirm the action to be taken by this command once it resolves dependencies.

Section 3: Installing 1CRM System 8.6 on CentOS 7.6 Page 49


1CRM System 8.6 Implementation Guide Table of Contents

• systemctl restart httpd.service (to restart the web server with php and these new
extensions)

6. Now use Applications – Favorites – Firefox Web Browser to browse the the URL localhost.
You should see the Apache Test Page. If you do, you know Apache is now running properly.

3.4 Test Apache and PHP


1. Use Applications – Favorites – Terminal to enter
• sudo vi /var/www/html/info.php (edits a sample php file)
2. Enter
<?php phpinfo(); ?>
and then save the file and quit vi.
3. Now use Applications – Favorites – Firefox Web Browser to browse the the URL localhost/
info.php. You should see the results of phpinfo() displayed on the screen, providing a lot of
configuration information about your PHP installation. This confirms that both Apache and
PHP are running, and that they are getting along with each other. If you examine the
phpinfo() display in detail, you should see the following software is installed and running:

PHP 7.3.7, Apache 2.4.6, MariaDB: MySQL 5.5.60


Note: As of release 8.6 1CRM requires a PHP version in the range of 7.0 - 7.3.7.

3.5 Configure php.ini


In this section you need to edit the php.ini file, found in /etc. Several values in the file will
need to be changed, and then you save the file and exit the editor.
Use Applications – Favorites – Terminal to enter
• sudo vi /etc/php.ini (edits the php.ini file)

Session Save Path


The default value for session.save_path is:
;session.save_path = "/tmp" (commented out)
It is possible you may need to change this value, but normally this default value will work fine.

Set output_buffering, zlib.output_compression & output_handler


1. Search for output_buffering, and set it to On (rather than a number - it is likely 4096 by
default). This setting and the next two are used to optimize the performance of 1CRM.
2. Search for output_handler, and make sure it is commented out (;output_handler = )
3. Search for zlib.output_compression, and make very sure it is set to Off.

Section 3: Installing 1CRM System 8.6 on CentOS 7.6 Page 50


1CRM System 8.6 Implementation Guide Table of Contents

Set Timeout Limits


1. Search for max_execution_time, and set it to 300. This will allow any PHP instruction up to
300 seconds to complete. Without this, large activities, such as a large import of data, will
terminate with an error, as they will exceed the maximum execution time.
2. Also set max_input_time in the next section of the file to 300. This allows a 5 minute window
for large files to be uploaded.

Set memory_limit
1. Search for memory_limit, and set it to 200M. This will allow 1CRM to consume up to 200M of
memory. Without this setting, complex actions may run out of memory.

Set display_errors
1. Search for display_errors, and make sure it is set to Off. This will suppress the display of
warning messages which will otherwise disrupt the display.

Set post_max_size and upload_max_filesize


1. Search for post_max_size, and set it to 25M to allow large documents to be uploaded.
2. Now search for upload_max_filesize, and set it to 22M. (Together these two changes will
allow a 20M Document file to be uploaded to the system. A third setting ($upload_maxsize in
config.php), is automatically set to exactly 20M by the installation script.)

Set mysql.default_socket
1. Search for mysql.default_socket. Make sure it is set to an empty value so that it uses the
MySQL defaults.

Set session.gc_maxlifetime (Session Timeout)


1. Search for session.gc_maxlifetime. Note that by default it is set to 1440 seconds, (24
minutes). This controls the length of time a 1CRM session can be idle before the session is
terminated. Set it to 1800 for 30 minutes, 3600 for an hour, and so on.
Note: Make sure that when setting all the above values in php.ini, that the entire line is not preceded
by a semi-colon unless intended – it means that the line is just a comment, and not to be processed.

Save the Updated php.ini File


1. Perform a File - Save using the menu of the vi application. Then close the application.

Restart Apache
1. Use Applications – Favorites – Terminal to enter the following commands, to restart Apache:
• su (to gain admin privileges - you’ll need to provide the root password)
• systemctl restart httpd.service (to restart the apache service)

Section 3: Installing 1CRM System 8.6 on CentOS 7.6 Page 51


1CRM System 8.6 Implementation Guide Table of Contents

3.6 Install 1CRM


1. Download the 1CRM Zip file (use Applications – Favorites – Firefox Web Browser to browse
to the download URL). Next, unzip it within your Downloads folder (use Applications –
Favorites – Files). Download these files from our website, and drag and drop then into the
/docs folder you will find amongst your unzipped set of files:
• User Guide
• Implementation Guide
Rename them as simply UserGuide.pdf, and InstallGuide.pdf. These are the PDFs of the
documentation for 1CRM. The Implementation Guide PDF (InstallGuide.pdf) is accessed via
a link available in the installation wizard (coming up soon). The User Guide PDF
(UserGuide.pdf) is linked from the online help system available to all users.
Now zip up all these unzipped files again, and make a replacement 1crm.zip file within your
Downloads folder - one which now includes these two large PDF files.

2. Now open a Terminal window (Applications – Favorites – Terminal), and enter the command:

sudo mv /home/username/Downloads/1crm.zip /var/www/html/


This will move the 1crm.zip file into the /var/www/html folder where it needs to be in order to
run. The mv command moves the 1crm zip file from your username/Downloads folder into the
root folder from which Apache serves web content. Replace the username in that first
command with the username you are logged in as.

3. Now enter: cd /var/www/html/

And then: sudo unzip 1crm.zip

This unzips the 1crm.zip file in the correct folder on the Virtual Machine.

4. Now enter: sudo chown -R apache:apache .

Next: sudo chown apache:apache /var/lib/php/session

Then: sudo chown apache:apache /var/lib/php/wsdlcache

And finally: sudo chmod -R ug+rwX .

This sets the correct permissions on the files in /var/www/html.

5. Next, enter the commands:


sudo semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html(/.*)?'
sudo restorecon -Rv /var/www/html
Note: The last two commands configure SELinux to allow Apache to execute PHP scripts in
the /var/www/html directory, to write there, and ensure this persists after a reboot
systemctl restart httpd.service (to restart the web server again)

6. Now use Applications – Favorites – Firefox to browse to the URL localhost. You should see
the 1CRM Installer Welcome screen, as shown in the figure below. You’re getting close to the
finish line!

Section 3: Installing 1CRM System 8.6 on CentOS 7.6 Page 52


1CRM System 8.6 Implementation Guide Table of Contents

Figure 9: Installer Welcome Screen

Just click on the Start button. The 1CRM license acceptance screen is the next one you will see:

Figure 10: Install Step 1 – License Acceptance

Section 3: Installing 1CRM System 8.6 on CentOS 7.6 Page 53


1CRM System 8.6 Implementation Guide Table of Contents

7. Install Step 1: License Acceptance - Click on the I Accept checkbox, and then on the Next
button.
8. Install Step 2: System Check - Now you see the 1CRM system check screen. The 1CRM
installer checks several aspects of the installation environment, and reports their status
to you on this screen. You will see a series of green (and perhaps a few red or blue)
status messages down the right hand side of the screen.

Figure 11: Install Step 2 - System Check

If they are all green, click on the Next button to proceed to the next step of the 1CRM
installation process.

If any are red, you should act on any diagnostic details provided beside the highlighted issue,
and go back to your server setup to see where things went wrong.

Section 3: Installing 1CRM System 8.6 on CentOS 7.6 Page 54


1CRM System 8.6 Implementation Guide Table of Contents

9. Install Step 3: Database Configuration (see the figure below) - Set Host Name to localhost,
Database Name to onecrm, Database User Name to onecrm, and Database Password to
whatever you like (crm86dbpsw is one suggestion).

Click on Create Database and Create User if this is a new installation.

Click on Drop & Recreate Existing Tables only if this is a re-installation.

Click on Populate database with Demo Data if you would like some test data created for you.

Set the Privileged Database User Name to root, and the Privileged Database User Password
to the root password for MySQL (as defined in the section Configure MySQL).

Then click on the Next button.

Figure 12: Install Step 3 – Database Configuration

Section 3: Installing 1CRM System 8.6 on CentOS 7.6 Page 55


1CRM System 8.6 Implementation Guide Table of Contents

10. Install Step 4: Site Configuration – As shown in the figure below, enter the new password you
wish for the 1CRM Admin user, and confirm it. You can set the URL as you like - but make
sure it is an absolute URL not a relative one, and that is is a URL that is usable
externally, not a LAN IP address or similar. This is a critical point - if you do not do this
correctly, you will have many severe issues down the line with your installation.

Note: Make certain the URL of the 1CRM Instance field is set to an absolute URL that
is addressable externally! Also make sure that the URL can be resolved locally on the
server running 1CRM. This is of critical importance.

Then click on the Next button to proceed to Install Step 5.

Figure 13: Install Step 4 – Site Configuration

Note: The checkbox Save Installer Configuration is used at Step 4 of the installation process to tell
the installer that you want to make an 1CRM installation template from this installation session. Later
on, at Step 7 (if installing without demo data) or Step 9 (with demo data) you will see a link to
download the installer_config.zip file.

Section 3: Installing 1CRM System 8.6 on CentOS 7.6 Page 56


1CRM System 8.6 Implementation Guide Table of Contents

11. Install Step 5: Locale Settings – As shown in the figure below, you can upload language
packs at this time. You can also set your installation’s default localization values for date,
time, currency and character sets, etc.. Once you have done that, then click on the Next
button to proceed to Install Step 6.
Note: Selecting your default currency on this screen is a critical item. You cannot change it after
the system is installed and running. This is your only chance to set a default currency other than
US$.

Figure 14: Install Step 5 - Locale Settings

Section 3: Installing 1CRM System 8.6 on CentOS 7.6 Page 57


1CRM System 8.6 Implementation Guide Table of Contents

12. Install Step 6: Confirm Settings - This screen (see figure below) simply shows you all the
settings you have provided for the 1CRM installation. If they look correct, click on the
Install button to proceed with the actual 1CRM installation.

Figure 15: Install Step 6 - Confirm Settings

Section 3: Installing 1CRM System 8.6 on CentOS 7.6 Page 58


1CRM System 8.6 Implementation Guide Table of Contents

13. Install Step 7: Perform Setup - You should see a screen like the first figure below. Note it will
take a minute or two to complete – so be patient! The progress bar goes from left to right for
each step of the process. When a step is complete, it gets a check mark, and the next step
begins. By the time the setup is complete (as shown in the second figure below) your 1CRM
installation is ready to go - unless you chose to have demo data installed. If demo data is
being installed, Install Steps 8 and 9 will be performed, as shown below. If not, just skip down
to paragraph 15 below, which begins with “Congratulations - you’re done.”.

Figure 16: Install Step 7 – Perform Setup (In Progress)

Figure 17: Install Step 7 – Perform Setup (Complete)

Section 3: Installing 1CRM System 8.6 on CentOS 7.6 Page 59


1CRM System 8.6 Implementation Guide Table of Contents

14. Install Step 8: Demo Data Configuration - On this screen you select what demo data you
would like to have installed. At the top of the screen is a convenient checkbox to select or de-
select all of the items. Notice that some items will automatically select other items, as there
are dependencies between various items of data.

Figure 18: Install Step 8 – Demo Data Configuration

Section 3: Installing 1CRM System 8.6 on CentOS 7.6 Page 60


1CRM System 8.6 Implementation Guide Table of Contents

15. Install Step 9: Demo Data Installation - This screen is a bit like Install Step 7, in that a series
of progress indicator bars are generated, each leaving behind it a step of the demo data
installation with a check mark once it is completed. Eventually your screen should resemble
the one below, once all the demo data selected has been added to your database.

Figure 19: Install Step 9 – Demo Data Installation

Note: The checkbox Save Installer Configuration is used at Step 4 of the installation process to tell
the installer that you want to make a 1CRM installation template from this installation session. Later
on, at Step 7 (if installing without demo data) or Step 9 (with demo data) you will see a link to
download the installer_config.zip file (see Figure above). Once you have downloaded the file, it may
be used as part of the one-step installer process - typically by system admins making trial sites or
sandboxes for testing.

To perform a one-step install, browse to http://yoursite.com/install.php?auto. A screen


similar to the Step 3: Database Configuration screen above is displayed. It contains a set of options
that are unique to each 1CRM instance (db configuration, mainly). The installer_config.zip file can be
uploaded from this screen. If it is uploaded, any options chosen when creating the config file
(localization, demo data, language packs etc) will apply to this new installation. (The Admin user
password is always set to admin.) After clicking Next, the installation begins without any further input.
The installer can be launched via command line as well. Enter php install.php --help to see the
list of command line options. We recommend you su to the web server user before running the
installer. The installer_config.zip file can also be used with the command line installer.

Section 3: Installing 1CRM System 8.6 on CentOS 7.6 Page 61


1CRM System 8.6 Implementation Guide Table of Contents

16. Congratulations – you’re done. Just click on the Finish button to login to 1CRM for the first
time.

Figure 20: Install Complete, Ready to Login

17. Log in, using the user name admin, and the admin password you provided in step 9 (Install
Step 4) above.
18. The first time you login, the system will take you automatically to License & Support on the
Admin menu screen. (Note: Before you get to the license screen, you may first see a System
Bulletin for the highlights of this release, and be asked to set your time zone.)

Figure 21: Applying the License Key

Section 3: Installing 1CRM System 8.6 on CentOS 7.6 Page 62


1CRM System 8.6 Implementation Guide Table of Contents

19. Enter your license key in the Quick Update box, and click on the Update button. You will see
a screen like the one below, confirming that the license key has been applied successfully. If
you are installing the 1CRM Startup Edition, instead of entering a license key just click on the
Request License button, enter your license and registration information into the popup form
that appears, and then click on the Send Request button.
(Note: Your server must be connected to the Internet as you perform this step.)

Figure 22: License Key Applied Successfully

20. Click on Return to List, and you should see your license information displayed somewhat like
this:

Figure 23: License & Support Screen With License Details

Section 3: Installing 1CRM System 8.6 on CentOS 7.6 Page 63


1CRM System 8.6 Implementation Guide Table of Contents

3.7 Configure Installation Settings


Email Server and Scheduler Configuration
1. Ensure that your 1CRM installation is configured in the Admin area to use the SMTP Mail
Transfer Agent (MTA), unless you choose to configure sendmail on your server. Configuring
sendmail on a Linux server is an advanced topic, not covered here.
2. Add the scheduler to your list of scheduled tasks in crontab, as per the instructions in the
Scheduler Setup section later in this guide. This is required to enable incoming email, as well
as to enable all other scheduled tasks within 1CRM.
Congratulations – you have completed the installation of the 1CRM System. We hope you enjoy
using it, and that it makes a significant contribution to the effective management of your organization.

Section 3: Installing 1CRM System 8.6 on CentOS 7.6 Page 64


1CRM System 8.6 Implementation Guide Table of Contents

3.8 Linux Server Software Stack


Stack Components Versions Comments
Operating System
Linux CentOS 7.6 64-bit version

Web Server
Apache 2.4.6 Supports any version that runs PHP

Database
MariaDB: MySQL 5.5.60 MyISAM Tables required

PHP
7.3.7
Zend Server is supported

Browser
Firefox 67 or later
Chrome 61 or later
Safari 12 or later
Figure 24: 1CRM Linux Software Components & Compatibility

Note: MySQL 5.1.x or later is required.

Reference Platform for Linux


CentOS 7.6 Linux Software Components
• PHP version 7.3.7
• MariaDB: MySQL 5.5.60
• Apache 2.4.6
• CentOS 7.6, 64-bit

Note: As of release 8.6 1CRM requires a PHP version in the range of 7.0 - 7.3.7.

Section 3: Installing 1CRM System 8.6 on CentOS 7.6 Page 65


1CRM System 8.6 Implementation Guide Table of Contents

4.0 Installing 1CRM on


Windows 10
4.1 Windows 10 Reference Platform
Before we start, a word of caution. As ever, User and Implementation guides are written, but not
always read! We encourage you to make sure that this chapter on installing your new software on
Windows 10 is something that you do read – if only because if you do not follow the instructions here,
we cannot effectively support your installation.

Particularly critical are the php.ini configuration instructions in section 4.3, and the chart of
compatible software revisions at the end of this chapter. This chapter, like the other installation
chapters, is written to document how to install 1CRM on a specific reference platform.

If you ever have a need to call for support, our technicians will make sure that your server
environment complies with the one documented here (or one of the other reference platforms),
before any incident can proceed further.

If you have chosen to install 1CRM on a Windows version other than Windows 10 (such as Windows
Server), that’s fine, but if you call for support and your environment or its configuration (rather than
the 1CRM software itself) is found to be the cause of your issue, the support incident will
unfortunately be billable.

Our support staff can’t be expert at all variations of every environment, and neither can we document
how to install 1CRM on every conceivable environment that might support it. So we chose a few that
we felt would be popular ones.

Note: MS-SQL Server and Internet Information Server (IIS) are not supported, and will not work with
1CRM – Apache is the only web server we support.

Section 4: Installing 1CRM System 8.6 on Windows 10 Page 66


1CRM System 8.6 Implementation Guide Table of Contents

4.2 Installing WampServer


This installation of 1CRM is documented using Windows 10 and the WampServer installer for
Apache, MySQL and PHP.

Begin by opening your Chrome or Firefox browser, and going to http://www.wampserver.com.

On this site, within Downloads, choose WampServer 32 Bits (see Figure 25).

Now you’ll see the dialog shown in Figure 26. From this dialog you should click on the Visual Studio
2012 : VC 11 download link, and download the file:
vcredist_x86.exe

And also follow the link labelled download directly, to download the wampserver zip file:
wampserver3.1.9_x86.exe (yes, the site says 3.0.6 is current, but then serves version 3.1.9)

Figure 25: Downloading WampServer

Figure 26: WampServer 32 Bits Dialog Window

Section 4: Installing 1CRM System 8.6 on Windows 10 Page 67


1CRM System 8.6 Implementation Guide Table of Contents

Once you have downloaded these two files, run the install for Visual Studio 2012. After that has
completed, run the install for WampServer. You should proceed through the following screens:

Figure 27: WampServer Installer - Step 1

Figure 28: WampServer Installer - Step 2

Figure 29: WampServer Installer - Step 3

Section 4: Installing 1CRM System 8.6 on Windows 10 Page 68


1CRM System 8.6 Implementation Guide Table of Contents

Figure 30: WampServer Installer - Step 4

Figure 31: WampServer Installer - Step 5

Figure 32: WampServer Installer - Step 6 (Usual Choice is No)

Figure 33: WampServer Installer - Step 7 (Usual Choice is No)

Section 4: Installing 1CRM System 8.6 on Windows 10 Page 69


1CRM System 8.6 Implementation Guide Table of Contents

Figure 34: WampServer Installer - Step 8

Figure 35: WampServer Installer - Step 9

Once you are running WampServer, you will notice a new icon in the icon tray , and If you click on
the WampServer icon, you will see:

Figure 36: WampServer Menu

Section 4: Installing 1CRM System 8.6 on Windows 10 Page 70


1CRM System 8.6 Implementation Guide Table of Contents

We want to make one change to the WampServer software setup. Click on Stop All Services in the
WampServer menu. The icon should be Red. Then click on PHP in the WampServer menu and you’ll
see the PHP menu slide out to the left as shown below. Click on Version, and choose PHP 7.3.5,
rather than the default 7.2.18.

Figure 37: WampServer Menu - Change PHP Version

4.3 Configure PHP & MySQL


Because the WampServer 3.1.9 PHP does not include the ACPU DLL module, we need to do a few
special steps to make sure your PHP will have it.
1. Browse to http://pecl.php.net/package/APCu/5.1.17/windows and click on the link
7.3 Thread Safe (TS) x86 to download the file php_apcu-5.1.17-7.3-ts-vc15-x86.zip.
2. 2. Unzip this file, and then from the folder produced, take the php_apcu.dll file and move it
to C:/wamp/bin/php/php7.3.5/ext/. This is the folder where all the PHP extension dll files
are kept.

Next, use the WampServer menu to choose PHP – php.ini, This lets you edit the php.ini file using
Notepad. Make the changes shown below, and perform a File - Save when complete.
Note: The php.ini file will be located at C:\wamp\bin\apache\apache2.4.39\bin\php.ini. When
you install the 1CRM software, the installation screens will also show the location of the php.ini file
they are using.)

Session Save Path


The default value for session.save_path is:
;session.save_path = "/tmp" (commented out)
It is possible you may need to change this value, but normally this default value will work fine.

Set output_buffering, zlib.output_compression & output_handler


1. Search for output_buffering, and set it to On (rather than a number - it is likely 4096 by
default). This setting and the next two are used to optimize the performance of 1CRM.

Section 4: Installing 1CRM System 8.6 on Windows 10 Page 71


1CRM System 8.6 Implementation Guide Table of Contents

2. Search for output_handler, and make sure it is commented out (;output_handler = )


3. Search for zlib.output_compression, and make very sure it is set to Off.

Set Timeout Limits


1. Search for max_execution_time, and set it to 300. This will allow any PHP instruction up to
300 seconds to complete. Without this, large activities, such as a large import of data, will
terminate with an error, as they will exceed the maximum execution time.
2. Also set max_input_time in the next section of the file to 300. This allows a 5 minute window
for large files to be uploaded.

Set memory_limit
1. Search for memory_limit, and set it to 200M. This will allow 1CRM to consume up to 200M of
memory. Without this setting, complex actions may run out of memory.

Set display_errors
1. Search for display_errors, and make sure it is set to Off. This will suppress the display of
warning messages which will otherwise disrupt the display.

Set post_max_size and upload_max_filesize


1. Search for post_max_size, and set it to 25M to allow large documents to be uploaded.
2. Now search for upload_max_filesize, and set it to 22M. (Together these two changes will
allow a 20M Document file to be uploaded to the system. A third setting ($upload_maxsize in
config.php), is automatically set to exactly 20M by the installation script.)

Set mysql.default_socket
1. Search for mysql.default_socket. Make sure it is set to an empty value so that it uses the
MySQL defaults.

Set session.gc_maxlifetime (Session Timeout)


1. Search for session.gc_maxlifetime. Note that by default it is set to 1440 seconds, (24
minutes). This controls the length of time a 1CRM session can be idle before the session is
terminated. Set it to 1800 for 30 minutes, 3600 for an hour, and so on.
Note: Make sure that when setting all the above values in php.ini, that the entire line is not
preceded by a semi-colon unless intended – it means that the line is just a comment, and not to be
processed.

APCU Setup
Search for ; Module Settings ; . Under that block heading add the following lines so that you load the
apcu extension which acts to accelerate php.
[apcu]
extension=php_apcu.dll
apc.enabled=1
apc.shm_size=32M
apc.ttl=7200
apc.enable_cli=1
apc.serializer=php

Section 4: Installing 1CRM System 8.6 on Windows 10 Page 72


1CRM System 8.6 Implementation Guide Table of Contents

Save the Updated php.ini File


1. Perform a File - Save using the menu of the Notepad application. Then close the application.

Restart Apache
1. Click on Start All Services in the WampServer menu. The icon in the icon tray should now be
Green. Apache will now be operating using the updated values from your edited php.ini file.

Configure Your MySQL Password


1. Use the WampServer menu to choose MySQL – MySQL console. You will be prompted for
the password, which has not been set, so just press Enter. Enter the following commands
into the MySQL prompt, changing ‘psw’ to be your choice of a secure password for the
MySQL root user.

GRANT ALL ON *.* TO 'root'@'localhost' IDENTIFIED BY 'psw' WITH GRANT


OPTION;
quit

Set Environment Variable for openssl.cnf


1. Windows requires us to set an environment variable so that the 1CRM installer can find a
configuration file for openssl. To do this, open Windows File Explorer, and right click on This
PC. Choose Properties from the right click options menu. From the Properties dialog box,
click on Advanced System Settings, and then click on Environment Variables. On the
Environment Variables popup, click on New, then create a variable called OPENSSL_CONF,
and set it to the value c:\wamp\bin\php\php7.3.5\extras\ssl\openssl.cnf. You will
now need to re-boot your PC so that the environment variable becomes part of your system.

Figure 38a: Setting the OPENSSL_CNF Environment Variable

Section 4: Installing 1CRM System 8.6 on Windows 10 Page 73


1CRM System 8.6 Implementation Guide Table of Contents

4.4 Test Apache and PHP


1. Choose Localhost from the WampServer menu system. It should open a browser window
with a splash page like the one below. If so, Apache and PHP are both running correctly!

Figure 38b: WampServer Localhost Configuration Screen

Section 4: Installing 1CRM System 8.6 on Windows 10 Page 74


1CRM System 8.6 Implementation Guide Table of Contents

4.5 Install 1CRM


1. Put the 1CRM installation Zip file you received from us on the Windows desktop. Right click
on it, and select Extract All. This will create a folder on the desktop that contains all the
1CRM files you need to install.
2. Rename that folder to www.
3. Download these files from our website, and drop then into the /docs folder within the www
folder just created:
• User Guide
• Implementation Guide
Rename them as simply UserGuide.pdf, and InstallGuide.pdf. These are the PDFs of the
documentation for 1CRM. The Implementation Guide PDF (InstallGuide.pdf) is accessed via
a link available in the installation wizard (coming up soon). The User Guide PDF
(UserGuide.pdf) is linked from the online help system available to all users.
4. Using File Explorer, navigate to C:/wamp. Rename the www folder inside it to www-old. Now
drag and drop the www folder from your desktop into C;/wamp. The result should resemble
the Figure below.

Figure 39: Windows File Explorer

5. Choose Localhost from the WampServer menu system. You should see the 1CRM Installer
Welcome screen, as shown in the figure below. You’re getting close to the finish line!

Section 4: Installing 1CRM System 8.6 on Windows 10 Page 75


1CRM System 8.6 Implementation Guide Table of Contents

Figure 40: Installer Welcome Screen

5. Just click on the Start button. The 1CRM license acceptance screen is the next one you
will see:

Figure 41: Install Step 1 – License Acceptance

Section 4: Installing 1CRM System 8.6 on Windows 10 Page 76


1CRM System 8.6 Implementation Guide Table of Contents

6. Install Step 1: License Acceptance - Click on the I Accept checkbox, and then on the Next
button.

7. Install Step 2: System Check - Now you see the 1CRM system check screen. The 1CRM
installer checks several aspects of the installation environment, and reports their status to
you on this screen. You will see a series of green (and perhaps a few red) status messages
down the right hand side of the screen. They need to be all green for the installation to
proceed.

Figure 42: Install Step 2 - System Check

Now click on the Next button to proceed to the next step of the 1CRM installation process.

If they are not all green you should act on any diagnostic details provided beside the
highlighted issue, and go back to your server setup to see where things went wrong.

Section 4: Installing 1CRM System 8.6 on Windows 10 Page 77


1CRM System 8.6 Implementation Guide Table of Contents

8. Install Step 3: Database Configuration (see the figure below) - Set Host Name to localhost,
Database Name to onecrm, Database User Name to onecrm, and Database Password to
whatever you like (crm86dbpsw is a suggestion).

Click on Create Database and Create User if this is a new installation.

Click on Drop & Recreate Existing Tables only if this is a re-installation.

Click on Populate database with Demo Data if you would like some test data created for you.

Set the Privileged Database User Name to root, and the Privileged Database User Password
to the root password for MySQL (as defined in the section Configure PHP & MySQL).

Then click on the Next button.

Figure 43: Install Step 3 – Database Configuration

Section 4: Installing 1CRM System 8.6 on Windows 10 Page 78


1CRM System 8.6 Implementation Guide Table of Contents

9. Install Step 4: Site Configuration – As shown in the figure above, enter the new password
you wish for the 1CRM Admin user, and confirm it. You can set the URL as you like - but
make sure it is an absolute URL not a relative one, and that is is a URL that is usable
externally, not a LAN IP address or similar. This is a critical point - if you do not do this
correctly, you will have many severe issues down the line with your installation.

Note: Make certain the URL of the 1CRM Instance field is set to an absolute URL that
is addressable externally! Also make sure that the URL can be resolved locally on the
server running 1CRM. This is of critical importance.

Then click on the Next button to proceed to Install Step 5.

Figure 44: Install Step 4 – Site Configuration

Note: The checkbox Save Installer Configuration is used at Step 4 of the installation process to tell
the installer that you want to make a 1CRM installation template from this installation session. Later
on, at Step 7 (if installing without demo data) or Step 9 (with demo data) you will see a link to
download the installer_config.zip file.

Section 4: Installing 1CRM System 8.6 on Windows 10 Page 79


1CRM System 8.6 Implementation Guide Table of Contents

10. Install Step 5: Locale Settings – As shown in the figure below, you can upload language
packs at this time. You can also set your installation’s default localization values for date,
time, currency and character sets, etc.. Once you have done that, then click on the Next
button to proceed to Install Step 6.
Note: Selecting your default currency on this screen is a critical item. You cannot change it after
the system is installed and running. This is your only chance to set a default currency other than
US$.

Figure 45: Install Step 5 - Locale Settings

Section 4: Installing 1CRM System 8.6 on Windows 10 Page 80


1CRM System 8.6 Implementation Guide Table of Contents

Figure 46: Install Step 6 - Confirm Settings

11. Install Step 6: Confirm Settings - This screen (see figure above) simply shows you all the
settings you have provided for the 1CRM installation. If they look correct, click on the
Next button to proceed with the actual 1CRM installation.

Section 4: Installing 1CRM System 8.6 on Windows 10 Page 81


1CRM System 8.6 Implementation Guide Table of Contents

12. Install Step 7: Perform Setup - You should see a screen like the first figure below. Note it will
take a minute or two to complete – so be patient! The progress bar goes from left to right for
each step of the process. When a step is complete, it gets a check mark, and the next step
begins. By the time the setup is complete (as shown in the second figure below) your 1CRM
installation is ready to go - unless you chose to have demo data installed. If demo data is
being installed, Install Steps 8 and 9 will be performed, as shown below. If not, just skip down
to paragraph 15 below, which begins with “Congratulations - you’re done.”.

Figure 47: Install Step 7 – Perform Setup (In Progress)

Figure 48: Install Step 7 – Perform Setup (Complete)

Section 4: Installing 1CRM System 8.6 on Windows 10 Page 82


1CRM System 8.6 Implementation Guide Table of Contents

13. Install Step 8: Demo Data Configuration - On this screen you select what demo data you
would like to have installed. At the top of the screen is a convenient checkbox to select or de-
select all of the items. Notice that some items will automatically select other items, as there
are dependencies between various items of data.

Figure 49: Install Step 8 – Demo Data Configuration

Section 4: Installing 1CRM System 8.6 on Windows 10 Page 83


1CRM System 8.6 Implementation Guide Table of Contents

14. Install Step 9: Demo Data Installation - This screen is a bit like Install Step 7, in that a series
of progress indicator bars are generated, each leaving behind it a step of the demo data
installation with a check mark once it is completed. Eventually your screen should resemble
the one below, once all the demo data selected has been added to your database.

Figure 50: Install Step 9 – Demo Data Installation

Note: The checkbox Save Installer Configuration is used at Step 4 of the installation process to tell
the installer that you want to make a 1CRM installation template from this installation session. Later
on, at Step 7 (if installing without demo data) or Step 9 (with demo data) you will see a link to
download the installer_config.zip file (see Figure above). Once you have downloaded the file, it may
be used as part of the one-step installer process - typically by system admins making trial sites or
sandboxes for testing.
To perform a one-step install, browse to http://yoursite.com/install.php?auto. A screen
similar to the Step 3: Database Configuration screen above is displayed. It contains a set of options
that are unique to each 1CRM instance (db configuration, mainly). The installer_config.zip file can be
uploaded from this screen. If it is uploaded, any options chosen when creating the config file
(localization, demo data, language packs etc) will apply to this new installation. (The Admin user
password is always set to admin.) After clicking Next, the installation begins without any further input.
The installer can be launched via command line as well. Enter php install.php --help to see the
list of command line options. We recommend you su to the web server user before running the
installer. The installer_config.zip file can also be used with the command line installer.

Section 4: Installing 1CRM System 8.6 on Windows 10 Page 84


1CRM System 8.6 Implementation Guide Table of Contents

15. Congratulations – you’re done. Just click on the Finish button to login to 1CRM for the first
time.

Figure 51: Install Complete, Ready to Login

16. Log in, using the user name admin, and the admin password you provided in Install Step 4
above.
17. The first time you login, the system will take you automatically to License & Support on the
Admin menu screen.

Figure 52: Applying the License Key

Section 4: Installing 1CRM System 8.6 on Windows 10 Page 85


1CRM System 8.6 Implementation Guide Table of Contents

18. Enter your license key in the Quick Update box, and click on the Update button. You will see
a screen like the one below, confirming that the license key has been applied successfully. If
you are installing the 1CRM Startup Edition, instead of entering a license key just click on the
Request License button, enter your license and registration information into the popup form
that appears, and then click on the Send Request button.
(Note: Your server must be connected to the Internet as you perform this step.)

Figure 53: License Key Applied Successfully

19. Now log out of 1CRM and then log back in. Navigate back to the License & Support screen,
and you should see your license information displayed like this:

Figure 54: License & Support Screen With License Details

Section 4: Installing 1CRM System 8.6 on Windows 10 Page 86


1CRM System 8.6 Implementation Guide Table of Contents

4.6 Configure Installation Settings


Email Server Integration
1. Ensure that your 1CRM installation is configured in the Admin area to use SMTP by going to
Admin – Email Settings and selecting SMTP from the Mail Transfer Agent dropdown.
2. If your SMTP server requires authentication check Use SMTP Authentication and enter the
correct SMTP Username and SMTP Password.
3. Add the scheduler to your list of scheduled tasks in Admin - Scheduler, as per the
instructions in the Scheduler Setup section later in this guide. This is required to enable
incoming email, as well as to enable all other scheduled tasks within 1CRM.
Congratulations – you have completed the installation of the 1CRM System. We hope you enjoy
using it, and that it makes a significant contribution to the effective management of your organization.

4.7 Windows 10 Software Stack


Stack Components Versions Comments
Operating System
Windows 10 WampServer 3.1.9 x86

Web Server
Supports any version that runs
Apache 2.4.39 PHP

Database
MariaDB 10.3.14 MyISAM Tables required

PHP
7.3.5 Zend Server is supported
Browser
Firefox 67 or later
Chrome 61 or later
Safari 12 or later

Figure 55: 1CRM Windows Software Components & Compatibility

Reference Platform for Windows 10


Windows 10 Software Components
• PHP version 7.3.5
• MariaDB/MySQL 10.3.14
• Apache 2.4.39
• Microsoft Windows 10, with WampServer 3.1.9 x86

Section 4: Installing 1CRM System 8.6 on Windows 10 Page 87


1CRM System 8.6 Implementation Guide Table of Contents

5.0 Installing 1CRM on macOS


High Sierra
5.1 macOS Server Reference Platform
Before we start, a word of caution. As ever, User and Implementation guides are written, but not
always read! We encourage you to make sure that this chapter on installing your new software on
macOS is something that you do read – if only because if you do not follow the instructions here, we
cannot effectively support your installation.

Particularly critical are the php.ini configuration instructions in section 5.6, and the chart of
compatible software revisions at the end of this chapter. This chapter, like the other installation
chapters, is written to document how to install 1CRM on a specific reference platform.

If you ever have a need to call for support, our technicians will make sure that your server
environment complies with the one documented here (or one of the other reference platforms),
before any incident can proceed further.

If you have chosen to install 1CRM on a macOS version other than High Sierra (macOS 10.13.0 or
later), that’s fine, but if you call for support and your environment or its configuration (rather than the
1CRM software itself) is found to be the cause of your issue, the support incident will unfortunately
be billable.

Our support staff can’t be expert at all variations of every environment, and neither can we document
how to install 1CRM on every conceivable environment that might support it. So we chose a few that
we felt would be popular ones.

5.2 Getting Started


To install 1CRM on macOS, we recommend, and have documented here, the use of macOS 10.13.6
High Sierra. You will need the 1CRM installation Zip file. You will also need a system with at least a 2
GHz processor, 4 GB of memory, and at least 10 GB of available hard disk space. As ever, more is
better. We used High Sierra 10.13.6 on a MacBook Pro with 16 GB of memory, a 2.7 GHz Quad Core
i7, and a 1 TB SSD drive.

We will use the Apache version 2.4.33 which comes preinstalled with macOS High Sierra, and we will
install MySQL 5.7.22, and PHP 7.1.19 in the following sections.

Section 5: Installing 1CRM System 8.6 on macOS High Sierra Page 88


1CRM System 8.6 Implementation Guide Table of Contents

5.3 Install & Configure MySQL


Browse to the URL http://dev.mysql.com/downloads/mysql/, and scroll down to see the display in the
Figure below. Select the macOS operating system then click on Looking for previous GA versions?
towards the top right. You should now see the 5.7.22 release info. Choose the file:

macOS 10.13 (x86, 64-bit), DMG Archive


(mysql-5.7.22-macos10.13-x86_64.dmg)

Figure 56: Choosing the Correct MySQL Version

Download the DMG (Drive Image) file and then open it. It is about 370 MB. (Look for the link No
thanks, just start my download as you download it, to avoid providing personal information.) Once
you unzip the downloaded file, you should see contents as shown in the Figure below:

Figure 57: The MySQL DMG File Contents

This will be used to install MySQL 5.7.22 (Note: Latest tested version as of July 2018). First, double
click on the file shown. Follow the sequence of screens as shown in the figures below, to install
MySQL:

Section 5: Installing 1CRM System 8.6 on macOS High Sierra Page 89


1CRM System 8.6 Implementation Guide Table of Contents

Figure 58: Installing MySQL - Click on Continue

Figure 59: Installing MySQL - License - Click on Continue

On the screen entitled: Select a Destination choose the option Install for all users of this computer,
and then click on Continue.

Section 5: Installing 1CRM System 8.6 on macOS High Sierra Page 90


1CRM System 8.6 Implementation Guide Table of Contents

Figure 60: Installing MySQL - Standard Installation - Click on Install

During the next step, take care to note the MySQL root password which is generated and displayed.

Figure 61: Installing MySQL - Installation Complete - Click on Close

Finally, go to System Preferences, and click on the MySQL icon to see the MySQL System
Preferences panel.

Figure 62: MySQL System Preferences Panel Installed

Section 5: Installing 1CRM System 8.6 on macOS High Sierra Page 91


1CRM System 8.6 Implementation Guide Table of Contents

Be sure to check the option to Automatically Start MySQL Server on Startup. And then click the
button to start the server now, so your preferences panel resembles the Figure above.

Now open up Terminal (found in the Utilities folder within Applications) and issue this command to
use the vi editor:

vi .bash_profile

Use the ‘i’ key to go into insert mode, then enter this line:

export PATH=/usr/local/php5/bin:/usr/local/mysql/bin:$PATH

Hit the Escape key to exit insert mode and type :wq and hit Enter to write and quit the editor.

Close the Terminal application fully, then open a new Terminal window. You can then enter this
command to go to the MySQL console prompt:

mysql -u root -p (you will then be prompted to enter the password you noted after the
step shown in Figure 60)

Enter the following commands into the MySQL prompt, changing ‘psw’ to be your choice of a secure
password for the MySQL root user.

ALTER USER 'root'@'localhost' IDENTIFIED BY 'psw';


GRANT ALL ON *.* TO 'root'@'localhost' WITH GRANT OPTION;
quit

5.4 Install PHP


Enter this command in a Terminal window:

curl -s http://php-osx.liip.ch/install.sh | bash -s 7.1

This currently installs PHP 7.1.19 on your Mac, at /usr/local/php5 .

5.5 Test Apache and PHP


1. Open up Terminal and issue this command to use the vi editor:

sudo vi /Library/WebServer/Documents/info.php

2. Use the ‘i’ key to go into insert mode, then enter this line
<?php phpinfo(); ?>
Hit the Escape key to exit insert mode and type :wq and hit Enter to write and quit the editor.
• Now use Safari to browse to the URL localhost/info.php. You should see the results of
phpinfo() displayed on the screen, providing a lot of configuration information about your
PHP installation. This confirms that both Apache and PHP are running, and that they are
getting along with each other. If you examine the phpinfo() display in detail, you should see
the following software is installed and running:

Section 5: Installing 1CRM System 8.6 on macOS High Sierra Page 92


1CRM System 8.6 Implementation Guide Table of Contents

• PHP 7.1.19
• Apache 2.4.33
• MySQL 5.7.22
Now that you have PHP active, Apache configured properly, and MySQL running and configured, you
are almost ready to see if all of this is working properly. But first we need to configure some settings
used by PHP, in the php.ini file.

5.6 Configure php.ini


We want to edit this file and save it, but we can’t, due to file and folder permissions. So drag and
drop a copy of the php.ini file to your desktop, edit it there with TextEdit or preferably TextWrangler,
and then drag it back to its proper folder. You will need to provide the admin password to drop it and
over-write the original file.

The file is the php.ini file, and it is in the /usr/local/php5/lib/ directory. You can use the Finder to
bring up the folder, using the Go | Go to Folder… menu option. Then drag a copy of the file to your
desktop and edit it. Remember to use it to replace the real file after you finish all the edits below.

Set the Session Save Path


First you need to search for the line containing the text:
session.save_path = "/tmp"

Simply uncomment this line by removing the semi-colon at the start.

Figure 63: Editing php.ini to Set the Session Save Path

Section 5: Installing 1CRM System 8.6 on macOS High Sierra Page 93


1CRM System 8.6 Implementation Guide Table of Contents

Set Timeout Limits


1. Search for max_execution_time, and set it to 300. This will allow any PHP instruction up to
300 seconds to complete. Without this, large activities, such as a large import of data, will
terminate with an error, as they will exceed the maximum execution time.
2. Also set max_input_time in the next section of the file to 300. This allows a 5 minute window
for large files to be uploaded.

Set opcache.enable
Change the default value for opcache.enable:
Change this: ;opcache.enable=1 (commented out)
To this: opcache.enable=1

Set memory_limit
1. Search for memory_limit, and set it to 200M. This will allow 1CRM to consume up to 200M of
memory as it executes. Without this setting, complex actions may run out of memory.

Set error_reporting, display_errors


1. Search for error_reporting, and set it to the appropriate production value of:
E_ALL & ~E_DEPRECATED & ~E_STRICT
2. Search for display_errors, and make sure it is set to Off. This will suppress the display of
warning messages which will otherwise disrupt the display.

Set post_max_size and upload_max_filesize


1. Search for post_max_size, and set it to 25M to allow large documents to be uploaded.
2. Now search for upload_max_filesize, and set it to 22M. (The effect of these two changes will
be to allow a 20M Document file to be uploaded to the system. A third setting
($upload_maxsize in config.php), is automatically set to exactly 20M by the installer.)

Set session.gc_maxlifetime (Session Timeout)


1. Search for session.gc_maxlifetime. Note that by default it is set to 1440 seconds, (24
minutes). This controls the length of time a 1CRM session can be idle before the session is
terminated. Set it to 1800 for 30 minutes, 3600 for an hour, and so on.
Note: Make sure that when setting all the above values in php.ini, that the entire line is not preceded
by a semi-colon – as this indicates that the line is merely a comment, and not to be processed.

Save the Updated php.ini File, Restart Apache


1. Perform a File - Save, and exit TextEdit. using the menu of the TextEdit application. Then you
may also close the TextEdit application.
2. Now remember to drag the edited php.ini file back into /usr/local/php5/lib/ to overwrite the
original php.ini file there, as we discussed initially.
3. Now you must restart Apache, to make sure that all the new settings in php.ini take effect. Do
this using the Terminal window:
sudo apachectl restart

Section 5: Installing 1CRM System 8.6 on macOS High Sierra Page 94


1CRM System 8.6 Implementation Guide Table of Contents

Exchange 2007 Settings


Note: The PHP IMAP module does not work correctly with Exchange 2007. To make 1CRM
retrieve mail from Exchange 2007, the IMAP module should be disabled in your PHP
configuration file. This makes 1CRM use the IMAP library written in pure PHP, which works fine
with Exchange 2007.
The line extension=imap.so should be commented by adding a semicolon at the beginning:
;extension=imap.so

Figure 64: phpinfo Display (Top Section)

Section 5: Installing 1CRM System 8.6 on macOS High Sierra Page 95


1CRM System 8.6 Implementation Guide Table of Contents

5.7 Install 1CRM


1. Put the 1CRM folder (unzip it from the 1CRM installation Zip file you received from us) onto
the desktop of your server. This folder contains all the 1CRM files you need to install.
2. Use Finder to go to the folder /Library/WebServer/Documents/. Drag and drop the 1CRM
folder into the Finder window. You will be prompted for the admin password. Change the
folder’s name to simply 1crm.
3. Download these files from our website, and drop then into the /docs folder within the 1crm
folder just created:
• User Guide
• Implementation Guide
Rename them as simply UserGuide.pdf, and InstallGuide.pdf. These are the PDFs of the
documentation for 1CRM. The Implementation Guide PDF (InstallGuide.pdf) is accessed via
a link available in the installation wizard (coming up soon). The User Guide PDF
(UserGuide.pdf) is linked from the online help system available to all users.
4. Open a Terminal window, and enter:
sudo chgrp -R _www /Library/WebServer/Documents/1crm
sudo chmod -R g+rwX /Library/WebServer/Documents/1crm
You will be prompted for the admin password. These commands set the 1crm folder’s group
to _www (which is the user that apache runs as), and makes the files writable for all users in
that group. You can close the Terminal application once this is complete.
5. Run the Safari browser and enter localhost/1crm/install.php as the URL. You should see the
1CRM Installer Welcome screen, as shown in the figure below. You’re getting close to the
finish line! Click on the Start button.

Figure 65: Installer Welcome Screen

Section 5: Installing 1CRM System 8.6 on macOS High Sierra Page 96


1CRM System 8.6 Implementation Guide Table of Contents

6. Just click on the Start button. The 1CRM license acceptance screen is the next one you
will see:

Figure 66: Install Step 1 – License Acceptance

7. Install Step 1: License Acceptance - Click on the I Accept checkbox, and then on the Next
button.

Section 5: Installing 1CRM System 8.6 on macOS High Sierra Page 97


1CRM System 8.6 Implementation Guide Table of Contents

8. Install Step 2: System Check - Now you see the 1CRM system check screen. The 1CRM
installer checks several aspects of the installation environment, and reports their status
to you on this screen. You will see a series of green (and perhaps a few red) status
messages down the right hand side of the screen. They need to be all green for the
installation to proceed.

Figure 67: Install Step 2 - System Check

If they are all green, click on the Next button to proceed to the next step of the 1CRM
installation process. Also take a note of the location of your php.ini file, as shown on the
screen above.

If they are not all green you should act on any diagnostic details provided beside the
highlighted issue, and go back to your server setup to see where things went wrong.

Section 5: Installing 1CRM System 8.6 on macOS High Sierra Page 98


1CRM System 8.6 Implementation Guide Table of Contents

9. Install Step 3: Database Configuration (see the figure below) - Set Host Name to localhost,
Database Name to onecrm, Database User Name to onecrm, and Database Password to
whatever you like (crm80dbpsw is a suggestion).

Click on Create Database and Create User if this is a new installation.

Click on Drop & Recreate Existing Tables only if this is a re-installation.

Click on Populate database with Demo Data if you would like some test data created for you.

Set the Privileged Database User Name to root, and the Privileged Database User Password
to the root password for MySQL (as defined in the section Configure MySQL).

Then click on the Next button.

Figure 68: Install Step 3 – Database Configuration

Section 5: Installing 1CRM System 8.6 on macOS High Sierra Page 99


1CRM System 8.6 Implementation Guide Table of Contents

10. Install Step 4: Site Configuration – As shown in the figure below, enter the new password you
wish for the 1CRM Admin user, and confirm it.

You can set the URL as you like - but make sure it is an absolute URL not a relative one,
and that is is a URL that is usable externally, not a LAN IP address or similar. This is a
critical point - if you do not do this correctly, you will have some serious issues down the line
with your installation.

Note: Make certain the URL of the 1CRM Instance field is set to an absolute URL that
is addressable externally! Also make sure that the URL can be resolved locally on the
server running 1CRM. This is of critical importance.

Then click on the Next button to proceed to Install Step 5.

Figure 69: Install Step 4 – Site Configuration

Note: The checkbox Save Installer Configuration is used at Step 4 of the installation process to tell
the installer that you want to make a 1CRM installation template from this installation session. Later
on, at Step 7 (if installing without demo data) or Step 9 (with demo data) you will see a link to
download the installer_config.zip file.

Section 5: Installing 1CRM System 8.6 on macOS High Sierra Page 100
1CRM System 8.6 Implementation Guide Table of Contents

11. Install Step 5: Locale Settings – As shown in the figure below, you can upload language
packs at this time. You can also set your installation’s default localization values for date,
time, currency and character sets, etc.. Once you have done that, then click on the Next
button to proceed to Install Step 6.
Note: Selecting your default currency on this screen is a critical item. You cannot change it after
the system is installed and running. This is your only chance to set a default currency other than
US$.

Figure 70: Install Step 5 - Locale Settings

Section 5: Installing 1CRM System 8.6 on macOS High Sierra Page 101
1CRM System 8.6 Implementation Guide Table of Contents

12. Install Step 6: Confirm Settings - This screen (see figure below) simply shows you all the
settings you have provided for the 1CRM installation. If they look correct, click on the
Next button to proceed with the actual 1CRM installation.

Figure 71: Install Step 6 - Confirm Settings

Section 5: Installing 1CRM System 8.6 on macOS High Sierra Page 102
1CRM System 8.6 Implementation Guide Table of Contents

13. Install Step 7: Perform Setup - You should see a screen like the first figure below. Note it will
take a minute or two to complete – so be patient! The progress bar goes from left to right for
each step of the process. When a step is complete, it gets a check mark, and the next step
begins. By the time the setup is complete (as shown in the second figure below) your 1CRM
installation is ready to go - unless you chose to have demo data installed. If demo data is
being installed, Install Steps 8 and 9 will be performed, as shown below. If not, just skip down
to paragraph 16, which begins with “Congratulations - you’re done.”.

Figure 72: Install Step 7 – Perform Setup (In Progress)

Figure 73: Install Step 7 – Perform Setup (Complete)

Section 5: Installing 1CRM System 8.6 on macOS High Sierra Page 103
1CRM System 8.6 Implementation Guide Table of Contents

14. Install Step 8: Demo Data Configuration - On this screen you select what demo data you
would like to have installed. At the top of the screen is a convenient checkbox to select or de-
select all of the items. Notice that some items will automatically select other items, as there
are dependencies between various items of data.

Figure 74: Install Step 8 – Demo Data Configuration

Section 5: Installing 1CRM System 8.6 on macOS High Sierra Page 104
1CRM System 8.6 Implementation Guide Table of Contents

15. Install Step 9: Demo Data Installation - This screen is a bit like Install Step 7, in that a series
of progress indicator bars are generated, each leaving behind it a step of the demo data
installation with a check mark once it is completed. Eventually your screen should resemble
the one below, once all the demo data selected has been added to your database.

Figure 75: Install Step 9 – Demo Data Installation

Note: The checkbox Save Installer Configuration is used at Step 4 of the installation process to tell
the installer that you want to make a 1CRM installation template from this installation session. Later
on, at Step 7 (if installing without demo data) or Step 9 (with demo data) you will see a link to
download the installer_config.zip file (see Figure above). Once you have downloaded the file, it may
be used as part of the one-step installer process - typically by system admins making trial sites or
sandboxes for testing.
To perform a one-step install, browse to http://yoursite.com/install.php?auto. A screen similar to the
Step 3: Database Configuration screen above is displayed. It contains a set of options that are
unique to each 1CRM instance (db configuration, mainly). The installer_config.zip file can be
uploaded from this screen. If it is uploaded, any options chosen when creating the config file
(localization, demo data, language packs etc) will apply to this new installation. (The Admin user
password is always set to admin.) After clicking Next, the installation begins without any further input.
The installer can be launched via command line as well. Enter php install.php --help to see the
list of command line options. We recommend you su to the web server user before running the
installer. The installer_config.zip file can also be used with the command line installer.

Section 5: Installing 1CRM System 8.6 on macOS High Sierra Page 105
1CRM System 8.6 Implementation Guide Table of Contents

16. Congratulations – you’re done. Just click on the Finish button to login to 1CRM for the first
time.

Figure 76: Install Complete, Ready to Login

17. Log in, using the user name admin, and the admin password you provided in step 10 (Install
Step 4) above.
18. The first time you login, the system will take you automatically to License & Support on the
Admin menu screen.

Figure 77: Applying the License Key

Section 5: Installing 1CRM System 8.6 on macOS High Sierra Page 106
1CRM System 8.6 Implementation Guide Table of Contents

19. Enter your license key in the Quick Update box, and click on the Update button. You will see
a screen like the one below, confirming that the license key has been applied successfully. If
you are installing the 1CRM Startup Edition, instead of entering a license key just click on the
Request License button, enter your license and registration information into the popup form
that appears, and then click on the Send Request button.
(Note: Your server must be connected to the Internet as you perform this step.)

Figure 78: License Key Applied Successfully

20. Click on Return to List, and you should see your license information displayed something like
this:

Figure 79: License & Support Screen With License Details

Section 5: Installing 1CRM System 8.6 on macOS High Sierra Page 107
1CRM System 8.6 Implementation Guide Table of Contents

5.9 Configure Installation Settings


Email Server and Scheduler Configuration
1. Ensure that your 1CRM installation is configured in the Admin area to use the SMTP Mail
Transfer Agent (MTA), unless you choose to configure sendmail on your server. Configuring
sendmail on a Mac server is an advanced topic, not covered here.
2. To have the scheduler tasks run, create the crontab file using the Terminal command:
sudo vi /etc/crontab (you will be asked for the root password)
Then put the vi editor into Insert mode by pressing i, and then enter:
*/5 * * * * _www cd /Library/WebServer/Documents/1crm; /usr/local/php5/bin/php scheduler.php

Then press the Escape key, enter :wq and press the Enter key, to save the new crontab.

Congratulations – you have completed the installation of the 1CRM System. We hope you enjoy
using it, and that it makes a significant contribution to the effective management of your organization.

5.10 macOS Server Software Stack


Stack Components Versions Comments
Operating System
macOS High Sierra 10.13.6
Web Server
Apache 2.4.33 Supports any version that runs PHP
Database
MySQL 5.7.22 MyISAM Tables required
PHP
7.1.19 Zend Server, APC are supported
Browser
Firefox 67 or later
Chrome 61 or later
Safari 12 or later
Figure 80: 1CRM macOS Software Components & Compatibility

Note: MySQL 5.7 or later is required.

Reference Platform for macOS


macOS Software Components
• PHP version 7.1.19 (As of release 8.6 1CRM requires a PHP version in the range of 7.0 -
7.3.6)
• MySQL 5.7.22
• Apache 2.4.33
• macOS High Sierra 10.13.6

Section 5: Installing 1CRM System 8.6 on macOS High Sierra Page 108
1CRM System 8.6 Implementation Guide Table of Contents

6.0 Installing 1CRM on Azure


Cloud
6.1 Azure Cloud Reference Platform
Before we start, a word of caution. As ever, User and Implementation guides are written, but not
always read! We encourage you to make sure that this chapter on installing your new software on the
Microsoft Azure Cloud is something that you do read – if only because if you do not follow the
instructions here, we cannot effectively support your installation.

Particularly critical are the php.ini configuration instructions in section 6.4, and the chart of
compatible software revisions at the end of this chapter. This chapter, like the other installation
chapters, is written to document how to install 1CRM on a specific reference platform.

If you ever have a need to call for support, our technicians will make sure that your server
environment complies with the one documented here (or one of the other reference platforms),
before any incident can proceed further.

If you have chosen to install 1CRM on a different configuration of the Azure Cloud, that’s fine, but if
you call for support and your environment or its configuration (rather than the 1CRM software itself)
is found to be the cause of your issue, the support incident will unfortunately be billable.

Our support staff can’t be expert at all variations of every environment, and neither can we document
how to install 1CRM on every conceivable environment that might support it. So we chose a few that
we felt would be popular ones.

Incidentally, another good reference for installing on CentOS, whether inside Azure or on your own
server, is this page on howtoforge.com.

6.2 Getting Started


To install 1CRM on the Azure Cloud, we recommend, and have documented here, the use of the
CentOS 7.6 Linux Virtual Machine. Your first step is to go to https://www.windowsazure.com and sign
up for an account.

Section 6: Installing 1CRM System 8.6 on an Azure Cloud Virtual Machine Page 109
1CRM System 8.6 Implementation Guide Table of Contents

Figure 81: Getting Started with Microsoft Azure

6.3 Create the CentOS 7.6 Virtual Machine


1. Login to your Windows Azure account, and go to the Portal, where you manage your Azure
services. Now click on Virtual Machines on the left side menu, to see a screen like this:

Figure 82: Azure Portal Main Screen

2. Any Virtual Machines you have already created will be listed. Now click on the + Add link at
the top left of the screen.
3. The next screen is titled Create a Virtual Machine, and has several tabs, the first of which is
called Basics:

Section 6: Installing 1CRM System 8.6 on an Azure Cloud Virtual Machine Page 110
1CRM System 8.6 Implementation Guide Table of Contents

4. Choose CentOS-based 7.5 for the Image (which oddly, as of current writing will give you
CentOS 7.6.1810). Create your own choice of name for the virtual machine itself, and its
resource group. Select your preference of region, and machine size.

Figure 83: Create a new VM - Basics

5. You’ll likely want to create a new cloud service with no availability set unless you are setting
up an elaborate fault-tolerant implementation. Be sure to select inbound ports for HTTP,
HTTPS and SSH as shown below. Click on Review & Create, to see the Summary screen,
then click Create.

Figure 84: Azure Virtual Machine Configuration - Basics II

6. Your new VM will now be provisioned. Watch as it is created, and then starts up!

Section 6: Installing 1CRM System 8.6 on an Azure Cloud Virtual Machine Page 111
1CRM System 8.6 Implementation Guide Table of Contents

7. Within the Azure Portal, click on your new VM in the list of VMs, and then click on the
Overview. You will see some monitoring info for the VM, as well as a summary of VM
configuration data. Check there for your VM’s DNS name - you’ll need it in the next step. If it
is not set yet, set it up now.

Figure 85: Overview of Your New VM

8. Using a terminal program such as Terminal which is included on all Mac computers, enter the
command: ssh -l test-admin linuxref.eastus.cloudapp.azure.com
Note: Instead of test-admin above, you will use your own user name, from the screen in
Figure 84, and instead of using linuxref.eastus.cloudapp.azure.com, you will use the DNS
name shown on your Azure VM Overview.

9. You will see a reply such as:


The authenticity of host 'linuxref.eastus.cloudapp.azure.com
(40.117.134.139)’ can't be established.
ECDSA key fingerprint is 98:c0:2f:e8:b7:78:d9:97:20:7c:57:69:e0:35:e1:41.
Are you sure you want to continue connecting (yes/no)?

10. Enter yes


Warning: Permanently added '40.117.134.139 (40.117.134.139)
(ECDSA) to the list of known hosts.
[email protected]’s password:

11. Enter your password (from Figure 84), and you will be connected to your new VM, using an
ssh session.
12. Enter the following commands:
• sudo su (to gain admin privileges - you’ll need to provide your password)
• rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY*

Section 6: Installing 1CRM System 8.6 on an Azure Cloud Virtual Machine Page 112
1CRM System 8.6 Implementation Guide Table of Contents

• yum -y install epel-release


• yum install httpd mariadb mariadb-server unzip (installs Apache, and
the Mariadb version of MySQL, plus the unzip utility)
• systemctl start mariadb.service (to run the mariadb mysql service)
• systemctl enable mariadb.service (to run the mariadb mysql service at every
boot)
• mysqladmin -u root password yourpassword (use your own password here)
• systemctl start httpd.service (to run the apache service)
• systemctl enable httpd.service (to run the apache service at every boot)
• rpm -Uvh http://rpms.remirepo.net/enterprise/remi-release-7.rpm (to access the
Remi CentOS repository, as we begin to install PHP 7.3)
Note: As of release 8.6 1CRM now requires PHP 7.x as a minimum, and supports up
to PHP 7.3.
• yum -y install yum-utils (Install yum-utils as we need the yum-config-manager
utility)
• yum update (run yum update - which will take a good few minutes to complete)
• yum-config-manager --enable remi-php73 (we are installing php 7.3)
• yum -y install php php-opcache (performs the actual php install)
• yum install -y php-mysqlnd php-pdo php-gd php-pear php-mbstring php-
soap php-xml php-imap php-zip php-apcu
Note: This command loads a number of PHP extension modules. You may be asked
to confirm the action to be taken by this command once it resolves dependencies.
• systemctl restart httpd.service (to restart the web server with php and these new
extensions)

13. Now exit the Virtual Machine ssh session, by entering the command: Exit

14. Make sure you have the 1CRM distribution .zip file in the root directory of your current user
on your Mac or PC computer. We’ll assume in the next few steps that it is called 1crm.zip.

22. Unzip that 1crm.zip file in your root directory, and then download these two PDF files below
from our website. Then drag and drop them into the /docs folder within the unzipped folder
just created:
• User Guide
• Implementation Guide
Rename them as simply UserGuide.pdf, and InstallGuide.pdf. These are the PDFs of the
documentation for 1CRM. The Implementation Guide PDF (InstallGuide.pdf) is accessed via
a link available in the installation wizard (coming up soon). The User Guide PDF
(UserGuide.pdf) is linked from the online help system available to all users. Now zip the
fileset back up into 1crm.zip again, so things are just as they were, but now your zip file
contains the documentation PDF files as well.

23. Now enter the command:


scp 1crm.zip test-admin@ linuxref.eastus.cloudapp.azure.com:

Note: Instead of test-admin above, you will use your own user name, from the screen in

Section 6: Installing 1CRM System 8.6 on an Azure Cloud Virtual Machine Page 113
1CRM System 8.6 Implementation Guide Table of Contents

Figure 84. And instead of using linuxref.eastus.cloudapp.azure.com, you will use the DNS
name shown on your Azure VM Overview.

24. You will be prompted for your Azure VM password, and then the 1CRM software
distribution .zip file will be uploaded to your Azure Virtual Machine!

25. Re-start the ssh session with the Virtual Machine by entering the same command you did in
step 8 above.

26. Enter the command:

sudo mv 1crm.zip /var/www/html/1crm.zip


This will move the 1crm.zip file into the /var/www/html folder where it needs to be in order to
run.

27. Now enter: cd /var/www/html/

And then: sudo unzip 1crm.zip

This unzips the 1crm.zip file in the correct folder on the Virtual Machine.

28. Now enter: sudo chown -R apache:apache .

Next: sudo chown apache:apache /var/lib/php/session

Then: sudo chown apache:apache /var/lib/php/wsdlcache

And finally: sudo chmod -R ug+rwX .

This sets the correct permissions on the files in /var/www/html.

29. Next, enter the commands:


sudo semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html(/.*)?'
sudo restorecon -Rv /var/www/html
Note: The last two commands configure SELinux to allow Apache to execute PHP scripts in
the /var/www/html directory, to write there, and ensure this persists after a reboot
systemctl restart httpd.service (to restart the web server again)

30. You should be able to point your browser to the URL shown as your DNS Name in the Azure
VM Dashboard. In our example here, that was linuxref.eastus.cloudapp.azure.com. If
you see the 1CRM installation screen, things are going fine. Before we go any further with
that, however, we need to finish configuring your server.

6.4 Configure php.ini


In this section you need to edit the php.ini file, found in /etc. Several values in the file will
need to be changed, and then you save the file and exit the editor.
In an ssh session with your Virtual Machine, enter the command:
sudo vi /etc/php.ini (edits the php.ini file)

Section 6: Installing 1CRM System 8.6 on an Azure Cloud Virtual Machine Page 114
1CRM System 8.6 Implementation Guide Table of Contents

Session Save Path


The default value for session.save_path is:
;session.save_path = "/tmp" (commented out)
Normally this default value will work fine, and there is no need to edit this line.

Set output_buffering, zlib.output_compression & output_handler


1. Search for output_buffering, and set it to On (rather than a number - it is likely 4096 by
default). This setting and the next two are used to optimize the performance of 1CRM.
2. Search for output_handler, and make sure it is commented out (;output_handler = )
3. Search for zlib.output_compression, and make very sure it is set to Off.

Set Timeout Limits


1. Search for max_execution_time, and set it to 300. This will allow any PHP instruction up to
300 seconds to complete. Without this, large activities, such as a large import of data, will
terminate with an error, as they will exceed the maximum execution time.
2. Also set max_input_time in the next section of the file to 300. This allows a 5 minute window
for large files to be uploaded.

Set memory_limit
1. Search for memory_limit, and set it to 200M. This will allow 1CRM to consume up to 200M of
memory. Without this setting, complex actions may run out of memory.

Set display_errors
1. Search for display_errors, and make sure it is set to Off. This will suppress the display of
warning messages which will otherwise disrupt the display.

Set post_max_size and upload_max_filesize


1. Search for post_max_size, and set it to 25M to allow large documents to be uploaded.
2. Now search for upload_max_filesize, and set it to 22M. (The effect of these two changes will
be to allow a 20M Document file to be uploaded to the system. A third setting
($upload_maxsize in config.php), is automatically set to exactly 20M by the installation
script.)

Set mysql.default_socket
1. Search for mysql.default_socket. Make sure it is set to an empty value so that it uses the
MySQL defaults.

Set session.gc_maxlifetime (Session Timeout)


1. Search for session.gc_maxlifetime. Note that by default it is set to 1440 seconds, (24
minutes). This controls the length of time a 1CRM session can be idle before the session is
terminated. Set it to 1800 for 30 minutes, 3600 for an hour, and so on.
Note: Make sure that when setting all the above values in php.ini, that the entire line is not preceded
by a semi-colon unless intended – as this indicates that the line is merely a comment, and not to be
processed.

Section 6: Installing 1CRM System 8.6 on an Azure Cloud Virtual Machine Page 115
1CRM System 8.6 Implementation Guide Table of Contents

Save the Updated php.ini File, Restart Apache


1. Perform a File - Save using the command :wq in the vi application. Then also close the vi
application.
2. systemctl restart http.service (to restart the web server again)

6.5 Install 1CRM


1. Now continue on from the final step in section 6.3 above, and browse to the URL shown as
your DNS Name in the Azure VM Dashboard. You should see the 1CRM Installer Welcome
screen, as shown in the figure below. You’re getting close to the finish line!

Figure 86: Installer Welcome Screen

2. Just click on the Start button. The 1CRM license acceptance screen is next up:

Section 6: Installing 1CRM System 8.6 on an Azure Cloud Virtual Machine Page 116
1CRM System 8.6 Implementation Guide Table of Contents

Figure 87: Install Step 1 – License Acceptance

3. Install Step 1: License Acceptance - Click on the I Accept checkbox, and then on the Next
button.

Section 6: Installing 1CRM System 8.6 on an Azure Cloud Virtual Machine Page 117
1CRM System 8.6 Implementation Guide Table of Contents

4. Install Step 2: System Check - Now you see the 1CRM system check screen. The 1CRM
installer checks several aspects of the installation environment, and reports their status
to you on this screen. You will see a series of green (and perhaps a few red or blue)
status messages down the right hand side of the screen.

Figure 88: Install Step 2 - System Check

If they are all green, click on the Next button to proceed to the next step of the 1CRM
installation process.

If any are red, you should act on any diagnostic details provided beside the highlighted issue,
and go back to your server setup to see where things went wrong.

Section 6: Installing 1CRM System 8.6 on an Azure Cloud Virtual Machine Page 118
1CRM System 8.6 Implementation Guide Table of Contents

5. Install Step 3: Database Configuration (see the figure below) - Set Host Name to localhost,
Database Name to onecrm, Database User Name to onecrm, and Database Password to
whatever you like (crm86dbpsw is one suggestion).

Click on Create Database and Create User if this is a new installation.

Click on Drop & Recreate Existing Tables only if this is a re-installation.

Click on Populate database with Demo Data if you would like some test data created for you.

Set the Privileged Database User Name to root, and the Privileged Database User Password
to the root password for MySQL (as defined earlier when installing MariaDB/MySQL).

Then click on the Next button.

Figure 89: Install Step 3 – Database Configuration

Section 6: Installing 1CRM System 8.6 on an Azure Cloud Virtual Machine Page 119
1CRM System 8.6 Implementation Guide Table of Contents

6. Install Step 4: Site Configuration – As shown in the figure below, enter the new password you
wish for the 1CRM Admin user, and confirm it. You can set the URL as you like - but make
sure it is an absolute URL not a relative one, and that is is a URL that is usable
externally, not a LAN IP address or similar. This is a critical point - if you do not do this
correctly, you will have many severe issues down the line with your installation.

Note: Make certain the URL of the 1CRM Instance field is set to an absolute URL that
is addressable externally! Also make sure that the URL can be resolved locally on the
server running 1CRM. This is of critical importance.

Then click on the Next button to proceed to Install Step 5.

Figure 90: Install Step 4 – Site Configuration

Note: The checkbox Save Installer Configuration is used at Step 4 of the installation process to tell
the installer that you want to make a 1CRM installation template from this installation session. Later
on, at Step 7 (if installing without demo data) or Step 9 (with demo data) you will see a link to
download the installer_config.zip file.

Section 6: Installing 1CRM System 8.6 on an Azure Cloud Virtual Machine Page 120
1CRM System 8.6 Implementation Guide Table of Contents

7. Install Step 5: Locale Settings – As shown in the figure below, you can upload language
packs at this time. You can also set your installation’s default localization values for date,
time, currency and character sets, etc.. Once you have done that, then click on the Next
button to proceed to Install Step 6.
Note: Selecting your default currency on this screen is a critical item. You cannot change it after
the system is installed and running. This is your only chance to set a default currency other than
US$.

Figure 91: Install Step 5 - Locale Settings

Section 6: Installing 1CRM System 8.6 on an Azure Cloud Virtual Machine Page 121
1CRM System 8.6 Implementation Guide Table of Contents

8. Install Step 6: Confirm Settings - This screen (see figure below) simply shows you all the
settings you have provided for the 1CRM installation. If they look correct, click on the
Next button to proceed with the actual 1CRM installation.

Figure 92: Install Step 6 - Confirm Settings

Section 6: Installing 1CRM System 8.6 on an Azure Cloud Virtual Machine Page 122
1CRM System 8.6 Implementation Guide Table of Contents

9. Install Step 7: Perform Setup - You should see a screen like the first figure below. Note it will
take a minute or two to complete – so be patient! The progress bar goes from left to right for
each step of the process. When a step is complete, it gets a check mark, and the next step
begins. By the time the setup is complete (as shown in the second figure below) your 1CRM
installation is ready to go - unless you chose to have demo data installed. If demo data is
being installed, Install Steps 8 and 9 will be performed, as shown below. If not, just skip down
to paragraph 12 below, which begins with “Congratulations - you’re done.”.

Figure 93: Install Step 7 – Perform Setup (In Progress)

Figure 94: Install Step 7 – Perform Setup (Complete)

Section 6: Installing 1CRM System 8.6 on an Azure Cloud Virtual Machine Page 123
1CRM System 8.6 Implementation Guide Table of Contents

10. Install Step 8: Demo Data Configuration - On this screen you select what demo data you
would like to have installed. At the top of the screen is a convenient checkbox to select or de-
select all of the items. Notice that some items will automatically select other items, as there
are dependencies between various items of data.

Figure 95: Install Step 8 – Demo Data Configuration

Section 6: Installing 1CRM System 8.6 on an Azure Cloud Virtual Machine Page 124
1CRM System 8.6 Implementation Guide Table of Contents

11. Install Step 9: Demo Data Installation - This screen is a bit like Install Step 7, in that a series
of progress indicator bars are generated, each leaving behind it a step of the demo data
installation with a check mark once it is completed. Eventually your screen should resemble
the one below, once all the demo data selected has been added to your database.

Figure 96: Install Step 9 – Demo Data Installation

Note: The checkbox Save Installer Configuration is used at Step 4 of the installation process to tell
the installer that you want to make a 1CRM installation template from this installation session. Later
on, at Step 7 (if installing without demo data) or Step 9 (with demo data) you will see a link to
download the installer_config.zip file (see Figure above). Once you have downloaded the file, it may
be used as part of the one-step installer process - typically by system admins making trial sites or
sandboxes for testing.
To perform a one-step install, browse to http://yoursite.com/install.php?auto. A screen
similar to the Step 3: Database Configuration screen above is displayed. It contains a set of options
that are unique to each 1CRM instance (db configuration, mainly). The installer_config.zip file can be
uploaded from this screen. If it is uploaded, any options chosen when creating the config file
(localization, demo data, language packs etc) will apply to this new installation. (The Admin user
password is always set to admin.) After clicking Next, the installation begins without any further input.
The installer can be launched via command line as well. Enter php install.php --help to see the
list of command line options. We recommend you su to the web server user before running the
installer. The installer_config.zip file can also be used with the command line installer.

Section 6: Installing 1CRM System 8.6 on an Azure Cloud Virtual Machine Page 125
1CRM System 8.6 Implementation Guide Table of Contents

12. Congratulations – you’re done. Just click on the Finish button to login to 1CRM for the first
time.

Figure 97: Install Complete, Ready to Login

13. Log in, using the user name admin, and the admin password you provided in step 6 (Install
Step 4) above.
14. The first time you login, the system will take you automatically to License & Support on the
Admin menu screen.

Figure 98: Applying the License Key

Section 6: Installing 1CRM System 8.6 on an Azure Cloud Virtual Machine Page 126
1CRM System 8.6 Implementation Guide Table of Contents

15. Enter your license key in the Quick Update box, and click on the Update button. You will see
a screen like the one below, confirming that the license key has been applied successfully. If
you are installing the 1CRM Startup Edition, instead of entering a license key just click on the
Request License button, enter your license and registration information into the popup form
that appears, and then click on the Send Request button.
(Note: Your server must be connected to the Internet as you perform this step.)

Figure 99: License Key Applied Successfully

16. Click on Return to List, and you should see your license information displayed like this:

Figure 100: License & Support Screen With License Details

Section 6: Installing 1CRM System 8.6 on an Azure Cloud Virtual Machine Page 127
1CRM System 8.6 Implementation Guide Table of Contents

6.6 Configure Installation Settings


Setup the Scheduler
1. Add the scheduler to your list of scheduled tasks in crontab, as follows:
2. sudo vi /etc/crontab
and add this at the end, as the last line of it:

*/5 * * * * apache cd /var/www/html/; /usr/bin/php scheduler.php


This is required to enable automated incoming email, as well as to enable all other scheduled
tasks within 1CRM. The path /var/www/html/ is specified as that was the folder in which 1CRM
was initially unzipped.
Congratulations – you have completed the installation of the 1CRM System. We hope you enjoy
using it, and that it makes a significant contribution to the effective management of your organization.

Section 6: Installing 1CRM System 8.6 on an Azure Cloud Virtual Machine Page 128
1CRM System 8.6 Implementation Guide Table of Contents

6.7 Azure Cloud - CentOS 7 Software


Stack
Stack Components Versions Comments
Operating System
Linux CentOS 7.6 64-bit version

Web Server
Apache 2.4.6 Supports any version that runs PHP

Database
MariaDB: MySQL 5.5.60 MyISAM Tables required

PHP
7.3.7
Zend Server is supported

Browser
Firefox 67 or later
Chrome 61 or later
Safari 12 or later

Figure 101: 1CRM on Microsoft Azure Software Components & Compatibility

Note: MySQL 5.1.x or later is required.

Reference Platform for Microsoft Azure VMs


CentOS 7 Linux Software Components
• PHP version 7.3.7
• MariaDB: MySQL 5.5.60
• Apache 2.4.6
• CentOS 7.6, 64-bit

Note: As of release 8.6 1CRM requires a PHP version in the range of 7.0 - 7.3.7.

Section 6: Installing 1CRM System 8.6 on an Azure Cloud Virtual Machine Page 129
1CRM System 8.6 Implementation Guide Table of Contents

7.0 System Administration


Administrators of the 1CRM system perform their functions via the System Administration screen,
which is reached by clicking on the Admin link (see highlighted item 1, on Figure 106 below). Note
that the Admin link is only displayed for users with Administrator capability.

Figure 102: System Administration Module

Section 7: System Administration Page 130


1CRM System 8.6 Implementation Guide Table of Contents

Within the Admin home screen, there are eleven main groups of administrative functions:

1. The System Settings administration function group offers six options:


• Company Information
• System Settings
• Scheduler
• Currencies
• Locale Settings
• License & Support

2. The System Support Tools administration function group offers seven options:
• Maintenance
• Backup Management
• Upgrades & Customization
• Diagnostic Tool
• View System Log
• Manage Imported Data
• Storage Utilization - Lets you see how much storage space your 1CRM instance is taking up,
and how much remains. On the 1CRM Cloud it also shows you your storage space
entitlement.

3. The Users administration function group offers five options:


• User Management
• Role Management
• Team Management
• Service Skills
• Access Control Settings

4. The Email management administration function group offers five options:


• Email & Notification Settings – used to configure the system’s settings for email editing and
sending, for email campaigns, and for email notifications.
• Manage Email Queue – which lets the administrator monitor and control the mass mailings
generated by email campaigns within the Campaigns module.
• Group Inboxes – which lets the administrator define email boxes to be polled for group email.
• Group Email Folders - which lets the administrator define new folders within the shared
Group Inbox within the Email module. The default folders created at installation time are
Inbox, Campaign Responses, and Support.
• Customize Notification Email Messages – which lets the administrator define the content of
email notifications.

5. The Studio administration function group offers ten options:


• Layout Editor – used to customize edit and detail view screens
• Custom Fields Editor – defines new fields, which then may be used in layouts
• Dropdowns Editor – used to edit values for standard or custom dropdown fields

Section 7: System Administration Page 131


1CRM System 8.6 Implementation Guide Table of Contents

• Smart List Tab Sharing – for sharing Smart List tabs among users
• Workflow – used to define workflows that automate business rules
• Configure Group Tabs – let’s you re-arrange how modules are presented within tab groups
• Configure Module Tabs – used to suppress the display of selected modules
• Rename Module Tabs – let’s you rename specific modules
• Module Designer – let’s you create all-new custom modules, and edit metadata definitions
for existing modules (an Enterprise Edition Only feature)
• PDF Form Designer – let’s you create modified or all-new custom PDF Forms, to use when
printing Invoices, Quotes, Service Work Orders, etc.. (an Enterprise Edition Only feature)

6. The Quotes & Invoices administration function group offers four options:
• Shipping Providers
• Discounts
• Tax Rates
• Tax Codes

7. The Activities Support function group offers three options:


• Forum Categories: Allows the administrator to define the Categories for the Forums modules.
These are the major topic areas into which Forum threads are organized.
• News Feeds: Manages a list of News Feeds URLs, starting with a default list for which the
administrator may add or remove entries. These News Feeds are then used by the News
Feed dashlet on any dashboard page.
• Resources: The Resources function lets the administrator define resources such as meeting
rooms and overhead projectors that may be reserved for meetings.

8. The WooCommerce function group (an Enterprise Edition Only feature) offers one option:
• WooCommerce API Settings: For clients using the WooCommerce integration, this lets the
admin configure all the settings that control how that integration operates.

9. The Subscriptions function group offers one option:


• Payment Processor: For clients using the Subscriptions module, this lets the admin select
the Payment Processor (currently Chargebee is the only option) and link your 1CRM
instance to your Chargebee subscription.
10. The Lead Guerrilla function group offers one option:
• Lead Guerrilla API Settings: Enable/Disable Lead Guerrilla integration for 1CRM, and define
the settings for its URL and API access.

11. The API and OAuth Settings function group offers two options:
• API and OAuth Settings: Defines the Private and Public keys for OAuth interoperability, as
well as controlling API authentication and security level settings.
• API Clients: Manage the applications allowed to access the 1CRM API.

In addition, this System Administration section will deal with the topics of managing the mass email
queue, how to set up the system to enable it to perform mass emails and retrieve email using POP3
and IMAP, and how to manage free/busy calendar information.

Section 7: System Administration Page 132


1CRM System 8.6 Implementation Guide Table of Contents

7.1 System Settings


7.1.1 System Settings: Company Information
Company Information has nine sections. The first is used to set several items of General Information:
• Your Business Model - Business to Business, or Business to Consumer. While 1CRM is
primarily a Business to Business targeted design, selecting Business to Consumer here will
cause the display of Accounts data to include the information about the account’s primary
contact. As well – the logic of the Lead conversion process is changed, and Accounts have
names that are automatically generated from the name of the primary contact. In general,
Contacts become almost unused, and Accounts (with Account names generated from
Contact names) become the main data that users work with.
• If the Business to Consumer model is selected, the Account Name Format field is displayed.
It should be set to a text string of the form of l, s f, for example – which would produce
generated Account names of the form Doe, Mr. John.
• The month in which your fiscal year starts each year (used in several modules).
• The number of hours in a work day (used to add days and hours together when costing
projects).
• The timesheet period to be used in the Timesheets module (Weekly, Bi-Weekly, Semi-
Monthly, or Monthly).
• The paper size to be used when generating PDFs (Letter, Legal, A4, etc...).
• The Forecast period to be used in the Forecasts module – either monthly or quarterly may be
selected.
• The font to be used when generating PDFs (Note: Font selection is required to support
Chinese, Japanese, and Korean fonts on PDFs – see the list of fonts available).
• The number of Forecast Periods (current period and into the future) to be retained by the
system.
• PDF Footer text and link URL - Used to set the one-line message at the bottom of all
generated PDFs, as well as the hyperlink on that text. (Note: These cannot be changed in
the Startup Edition)
• The number of History Periods (before the current period) to be retained by the system.
• The first day of the week - this controls how calendars are displayed - typically with Monday
as the first day on the left side, or Sunday, depending on local convention.
• Work day beginning and end time - this is used to set the default beginning and ends times
for any new users that are added. They can then set their own preferred beginning and end
times if they like, on their My Account page. These times are used to control the daily
calendar display.
• Show Vacation info for all users in the Calendar - A simple toggle to enable this behaviour.
• Sequence Numbers Table - Lets you set the next sequence number, and the sequence
number prefix, for a wide range of modules whose records have sequence numbers.
Note: For all of the prefix strings above, there are a number of codes that may be used in
the string to include useful variables:

%y 2-digit year number


%Y 4-digit year number
%m 2-digit month number
%M 3-character month short-form text
%W 2-digit week number
%d 2-digit day number

Section 7: System Administration Page 133


1CRM System 8.6 Implementation Guide Table of Contents

%o ISO-8601 adjusted year to match the week number

The second section allows you to define a number of settings used to control the Customer Service
capabilities within 1CRM:
• Case Queue User – This is the User to which all new Cases will be assigned by default. If no
user is selected, then the system of automatic assignment of Cases when requested by
technicians is disabled. See more details in the section on Cases.
• Assign New Leads To is used to control which user all new leads are automatically assigned
to when created by the system - such as by the lead capture process.
• Next Case Number - Sets the next Case number to be used.
• Next Bug Number - Sets the next Bug number to be used.
• Standard Work Order Terms - Allows you to define text to be used as your Standard Terms
and Conditions for Service Work Orders. When a Work Order PDF is created from a Service
Case the text defined here will be automatically added at the bottom of the document.

• Auto-Add Hours to Case Invoice - Enables automatic adding of approved but un-billed
booked hours to associated case when generating an invoice for a Case.
• Auto-Add Hours to Project Invoice - Enables automatic adding of approved but un-billed
booked hours to associated project tasks when generating an invoice for a Project.
• Default Case Booking Category - Sets the normal Booking Category to be used for hours
booked to service case work.
• Default Project Task Booking Category - Sets the normal Booking Category to be used for
hours booked to Project Tasks.
• Cases Auto-Close: Warn When No Activity (days) - When this value is set to something other
than zero, the client is sent an email warning of impending case expiry that many days after
the case status is set to Pending. (The scheduler task Close Expired Cases must also be
active.)
Case Status is normally set to Pending when a user sends an email related to a case, via a
New Case Status field on Email Edit View. A different case status may be set by changing
the value of that field from the default Pending. Case Resolution information may also be
entered there.
• Cases Auto-Close: Close When No Activity (days) - When this value is set to something
other than zero (and larger than the Case Auto-Close warning value above, if non-zero),
cases will be automatically closed and set to a status of Closed - Expired that many days
after being set to Pending. (The scheduler task Close Expired Cases must also be active.)
The Survey and Ratings email will also be sent if that option is enabled.
Users will typically set Cases to Pending when awaiting client feedback, and this feature will
close cases in the absence of that feedback.
• Cases Auto-Close: Enable Case Surveys and Ratings - Checking this option will enable the
Case Rating system. A Rating field (star rating) on each case is added, visible only when the
client assigns a rating to the case. When a case is closed, the client is sent an email via
which they can simply rate the service quality on their case by number of stars, or complete
a customer satisfaction survey.
• Cases Auto-Close: Request Comments on Case Survey - When this option is checked and
the Enable Case Surveys and Ratings option is checked and a case is closed, the client is
sent an email in which they are requested to comment via a customer satisfaction survey.

The third section allows you to define a number of settings used to control the Order Management
capabilities within 1CRM:
• Add Comment Lines - This option may be enabled for Products, Assemblies, or both. When it
is enabled, then when adding a new line item to a quote, sales order or invoice, the

Section 7: System Administration Page 134


1CRM System 8.6 Implementation Guide Table of Contents

description field from the product (or assembly) will be added automatically to the line item
list as a comment line immediately following the product or assembly.
• Add Booked Hours Comments - chooses whether or not to include comments added to
booked hours entries on Invoice PDFs generated from Projects or Cases.
• Tax Information – the VAT number or other tax registration number of your business.
• Shipping Is Taxed – sets the default taxable status for shipping charges
• Default Tax Code for Shipping
• Approve Quotes – Enable if Quotes need approval before they may be printed or emailed.
• Quote Approval Threshold ($) - If Approve Quotes is enabled, then if the value of a Quote is
greater than this dollar value (if set) it must be approved by someone with the permissions
set to be able to do so before it may be printed or emailed as a PDF.
• Quote Margin Threshold (%) - If Approve Quotes is enabled, then if the Gross Margin % of a
Quote is less than this percentage value (if set) it must be approved by someone with the
permissions set to be able to do so before it may be printed or emailed as a PDF.
• Track Partial Shipping - If this option is selected (it is on by Default) then for sales orders
which have been partially shipped, generating an additional shipping record will only offer
unshipped items as options to be shipped. Otherwise all items will be offered.
• Approve Booked Hours on Cases - Un-check to disable the need for approvals on hours
booked to Cases.
• Approve Booked Hours on Projects - Un-check to disable the need for approvals on hours
booked to Projects.
• Show List Prices by Default - This option controls the default value of the Show List Prices
setting when creating a new Quote.
• Show Pre-tax Totals - Use this check box to add pre-tax totals on Quotes/Invoices, or not.
• Default Pricing Method - Set the pricing method you wish to be the default method for all
users when creating Quotes and Invoices.
• Formatting - Select if the standard address block at the top of many PDF layouts will include
your company phone number, and/or company email address.
• PayPal Link - Use this field to add a PayPal payment button to your Invoice PDFs (Enterprise
Edition only). In your PayPal account, create a simple website Buy Now Saved Button with
no item or pricing information. Then click the Email tab and copy the link and paste it here
then Save. This link should be of the format: https://www.paypal.com/cgi-bin/webscr?
cmd=_s-xclick&hosted_button_id=BUTTON_ID_HERE In the PDF Form Designer for Invoice
PDF templates there is a predefined field - PayPal Button - which uses this link. You may add
that button to your custom Invoice template if desired.
• Commissions - Settings to control the calculation of Commissions within 1CRM. See the
Commissions module in the User Guide for more information.
• Opportunities - Automatically Update Opportunities Close Date option.
• Payment Gateway – If you wish to process credit card payments from within 1CRM, you may
choose Authorize.net (if your business is based in the USA, Canada, UK, Australia or
Europe) or Stripe (if your business is based in USA, Canada, UK, Australia, Denmark,
Finland, Norway, Sweden or Ireland, with many other countries coming).
Payment Gateways:
If one of these is selected, you must of course first sign up for an account with one of these
suppliers. You will also need to define the currency your account uses, plus either your Stripe
application key (Secret key), or your API Login ID and Transaction Key for Authorize.net.
For Authorize.net, your API Login ID and Transaction Key are NOT those used to login to the
Authorize.net web interface. To obtain your correct API Login ID and Transaction Key, login to
your Authorize.net account and choose Account - API Login ID and Transaction Key. You will
see your API Login ID, which is what you must use as the login for 1CRM. Then generate
your Transaction Key using the form at the bottom of the page. Use that generated key in
1CRM.

Section 7: System Administration Page 135


1CRM System 8.6 Implementation Guide Table of Contents

The fourth section is used to upload your company logo, for use on quotes, invoices, statements, and
receipts. Note that the logo should be a PNG file, with dimensions of 400 x 88 pixels. If you upload a
new logo, and the PDF shows a blank logo – then check for transparency in the logo!

The fourth section also allows you to upload a logo to be used in the top left corner of the screen,
instead of the 1CRM logo.

The fifth section allows you to define custom user prompt text to be used on the Application Login
Page for the application, and to choose if the custom text or standard text is shown. You might
choose to add the contact phone number for the Help desk here, for example.

The sixth section allows you to define system-level Online meeting credentials (for systems such as
GoToMeeting, Zoom, Microsoft Teams, …). These will be used by default for all users that do not
define their own Online meeting credentials on their My Account page. For more information on
configuring the Microsoft Teams integration, see this page on our website. For more information on
configuring the Zoom integration, see this page on our website.

The seventh section allows you to define system-level LiveChat credentials and configuration
settings. For more information see details on this integration here.

The eighth section allows you to define text to be used as your Standard Terms and conditions for
Quotes, Invoices, Sales Orders and Purchase Orders. When a PDF is created for one of these
documents, the text defined here will be automatically added at the bottom of the document.

The ninth section is used to enter the company name and Mailing Addresses, which are used when
generating PDFs in the Quotes, Invoices, Accounts, Payments and Reports modules. The system
allows you to define multiple addresses, one of which must be marked as the main address. This will
be the address used in most situations, but for Quotes and Invoices, you can choose to use one of
the other addresses, when creating the PDF.

As well, each of these addresses may be marked as a warehouse location or not, and one may be
the main warehouse. This warehouse information is used in the Shipping and Receiving modules,
and in the inventory data kept in the Product Catalog.

Section 7: System Administration Page 136


1CRM System 8.6 Implementation Guide Table of Contents

7.1.2 System Settings: System Settings


System Settings has fifteen sections.

The first section configures several aspects of the 1CRM user interface – the number of items to be
displayed in list views and sub-panel lists, the maximum number of dashlets on a dashboard, if
server response times are to be shown at the bottom of each screen, and if Mobile Access displays
should use one or two columns. Default sidebar items per page is used by the Claro theme to set the
default number of items shown in the sidebar list view featured on detail views in the Claro theme.

Section two is used to enable or disable support for LDAP authentication. (Note: LDAP is an
abbreviation for Light Data Access Protocol) If your organization has implemented LDAP
authentication, you can also enable LDAP authentication in 1CRM. When your users attempt to log
into 1CRM, the application authenticates them against your LDAP directory. If authentication is
successful, the user is allowed to access 1CRM.

To enable LDAP authentication:

1. In the LDAP Authentication Support sub-panel, select the Enable LDAP box and enter:
Server Enter the LDAP server name.
Base DN Enter the base DN name.
Bind Attribute Enter the attribute name used to bind the user’s name.
Login attribute Enter the attribute name used to search for the user in LDAP.
Authenticated User Enter the user name.
Authenticated Password Enter the user’s password.
Auto Create Users Select this option check the 1CRM database for the
name and add it if it does not exist in the database.

The next section configures your server for the use of a proxy server, should 1CRM be intended to
use one. When selected, this option allows the administrator to enter the proxy server’s host name
and port number, with optional user name and password for authentication.

Section four configures the ability of users and/or administrators to export data from the system. The
export delimiter character is also set, as is the default character set used for any exported data.

Section five sets a number of parameters for Invoice behaviour in the system. One of these, when
enabled causes 1CRM to add all the line items on each invoice to the Products sub-panel of the
Account involved when the invoice is fully paid, making it easy to see which clients have purchased
which products. As well, another option here enables or disables the ability of a line item on an
invoice to be related to a Marketing Event. This is useful for businesses that run a lot of Marketing
Events (such as seminars), and need to see what business volume they generate. When this option
is enabled, new fields will appear on the Invoice Edit and Detail views. The next option in this section
if selected causes a serial number field to be displayed for each line item on an Invoice, allowing
multiple serial numbers to be tracked for each Invoice line item. Finally, you can set Default Terms
here - which will be set on all new Quotes or Invoices, unless over-ridden by default terms for the
Account involved.

Section 7: System Administration Page 137


1CRM System 8.6 Implementation Guide Table of Contents

Figure 103: System Settings

Section 7: System Administration Page 138


1CRM System 8.6 Implementation Guide Table of Contents

Section six has just one parameter, which sets the Default Terms for received Bills - which will be set
on all new Bills unless over-ridden by default terms set on the supplier.

Section seven has several parameters which control certain aspects of Drag and Drop support within
1CRM for all users.

• The first parameter Enables or Disables the ability to Drag and Drop files onto the History
and Documents subpanels throughout the system, to create new Notes and Documents.
• The remaining settings may be used to define defaults for Document Category, Department
and Status, when adding new Documents via Drag and Drop.

Section eight has just one parameter, which controls the ability of regular system users to add new
Tags when creating new Articles in the Knowledge Base module. When it is not enabled, users must
relate new Articles only to existing Tags.

Section nine is used to configure the settings for Google Maps integration in 1CRM. Several
important administrative functions may be performed here:

• First and most importantly, this is where you set the Google Maps API key for your 1CRM
instance. You need one of these in order for any of the Google Maps functions within 1CRM
to function properly.

Google’s current policy is to provide a monthly credit of US$200 after which use of your key
will be billed to you. Pricing is tiered, based on volume of use, with three tiers: 0–100,000;
100,001–500,000; 500,001+ (see details here). Click on the Obtain a key link to learn about
the process of getting your own API key. You will need to obtain a Google developer account,
then create a project in the Google developer console. Next you will need to enable billing for
the project, and then finally add the maps API to your project. If you google the topic how to
obtain a google maps api key and click on the Videos tab, you will see a number of videos
which show the process.

• On the Accounts, Leads and Contacts list views, 1CRM users may select multiple items and
choose to view them on a single common map, using the Display on Map option available
from the Action button. For each address displayed on a map, 1CRM can display a popup
window with the Account, Contact or Lead’s name and address. You can choose up to 3
additional fields to show in those popup windows using the multi-select dropdown controls
provided here.

Section ten is where you set the IEX API key for your 1CRM instance. You need one of these if you
plan to use the Stock Quotes dashlet (you don’t need one for any other reason). Just click on the link
to obtain a token, then paste it in the field provided, and Save.

Section eleven controls the behaviour of recurring meetings in 1CRM - both the maximum number of
recurrences will be created per scheduler run, as well as the maximum number of days in the future
that recurring meetings will be established.

Section twelve controls the Apple Push Notifications service (APNs) integration within 1CRM.
Notification Mode has two options:
• Immediate - Mobile devices running 1CRM Mobile are notified as soon as Calls, Meetings
and Tasks are updated
• Scheduled - Mobile devices running 1CRM Mobile are notified periodically via the scheduler
Scheduled mode is required for proper system performance. Use Immediate mode for
troubleshooting only.

Section 7: System Administration Page 139


1CRM System 8.6 Implementation Guide Table of Contents

Section thirteen configures a number of advanced parameters that control how the server will
manage itself:

• if Javascript/CSS compression is to be used (this setting makes a large improvement in the


speed of 1CRM when enabled)
• if IP address validation is in effect (for security the server can force you to re-login if you are
seen to be coming from a new IP address)
• if SVG (Scalable Vector Graphics) charts are enabled, or older Flash technology is used
instead when drawing charts within 1CRM. SVG works well on iPhone and iPad devices,
which Flash does not. Google Chrome, Mozilla Firefox, and Apple Safari all support SVG
perfectly well.
• the maximum file upload size
• if the Spell Checker is enabled in the HTML Editor used for email and several other large text
area fields

The fourteenth section configures logging from the application, when trying to track down some
unusual behaviour of the system. Leave most of the values here at their defaults unless instructed to
change them by 1CRM support staff.

There is a group of three controls at the bottom of this panel used to manage User Activity Logging,
described below. There is also a related scheduler task called User Activity Reporting which must be
enabled and running in order to collect User Activity data. And completing this solution are two User
Time Sheet reports. (Note: Report data is only valid for dates prior to the date of the most recent run
of the scheduler task, which defaults to running Weekly.)

User Activity Logging: (in order of least to most info collected)


• Off - Disables logging but doesn't disable the related Scheduler Task - the log data will be
removed as it ages.
• Login Duration - Records that users are active in the system. This enables basic time clock
operation. This also enables a value for Actions in the reports, which in turn enables values
for Written in the reports.
• Modules Used - Stores which Modules users touch. This also enables values for Written in
the reports.
• Records Used - Stores which Records users read or updated. This enables values for Read
and Written in the reports.

Timeout Period (minutes): Specifies the maximum period of inactivity before a User is treated as
having logged off.

Grace Period (minutes): When user inactivity exceeds the Timeout Period, they are treated as if they
logged out at the moment of their last activity in 1CRM. But they are also credited with the Grace
Period, as a way to compensate for the likelihood that they did not immediately leave their system
after the last action.

The Timeout Period represents a trade-off between crediting the user for time worked when really
they are not working, vs. failing to credit them for time spent working on something not involving
1CRM.

Example: User logs in at 9am, works away from 1CRM at 11:45 for 35 minutes, lunch break 12-1 but
forgets to log off, then finally logs out at 6pm.

Timeout Period is 15 minutes, Grace Period is 5 minutes: Report shows approx 7h25 minutes
duration - appropriate if the intent is solely to report hours worked using 1CRM.

Section 7: System Administration Page 140


1CRM System 8.6 Implementation Guide Table of Contents

Timeout Period is 50 minutes, Grace Period is 5 minutes: Report shows approx 8h duration -
appropriate to track overall attendance when lunch breaks are an hour long and unpaid.

Timeout Period is 300 minutes, Grace Period is 5 minutes: Report shows approx 9h duration -
appropriate to track overall attendance when lunch breaks are paid and users often work for long
periods away from the CRM.

Note: The moment you enable the User Activity Reporting scheduler task you should anticipate that
your system will use on average about 3MB of data per user to store activity data.

The final section controls 1CRM remote assist, a system used by 1CRM support staff to perform
advanced system support functions. Do not leave this feature enabled. It is only for use by 1CRM
support staff.

Section 7: System Administration Page 141


1CRM System 8.6 Implementation Guide Table of Contents

7.1.3 System Settings: Scheduler


The Scheduler consolidates all of the tasks within 1CRM that need to be run by the system on a
timed basis - not by the action of a user. At present, that includes twenty-five types of activities:

Figure 104: The Scheduler


• Sending email re: upcoming calls and meetings
• Creating recurring items
• Closing Expired Service Cases
• Closing off vacations whose dates are now in the past
• Cleaning up older emails
• Scanning for expired service sub-contracts, to send reminder emails
• Scanning for overdue project tasks, to send reminder emails
• Schedule drip-feed campaign emails
• Retrieving inbound user and group email
• Sending campaign emails
• Sending event reminder emails
• Syncing Google Calendar Events
• Processing workflows
• Processing bounced campaign emails
• Pruning the database
• Remove older report runs

Section 7: System Administration Page 142


1CRM System 8.6 Implementation Guide Table of Contents

• Running a system backup (both database and installation directory, including /cache)
• Updating the forecast periods
• Running scheduled reports
• Sending invoices to clients from the Recurring Services module
• Syncing Google Contacts
• Syncing Google Drive files
• Updating disk utilization statistics for the Storage Utilization screen.
• Update MaxMind database used to lookup IP address geolocation for tracking sent emails
• Updating currency exchange rates (uses web service provided by European Central Bank)
• User Activity Reporting - Collects data to track usage of the system by each user. See User
Time Sheet reports and the controls in the Logging panel of the System Settings screen.

The Scheduler needs to be linked to the operating system mechanism for scheduling tasks (see
Section 7.10) in order for it to function. If your inbound emails or scheduled reports are not working,
this is likely the cause. Look for the green LED and the status message that says “External triggering
of the Scheduler appears to be working correctly”.

Each of the Scheduler activities can be set to run automatically with a frequency as low as a few
minutes, or a high as once a day, week, month or longer. Scheduled activities can also be set to
trigger based on user activity such as a user login, or even on each page load (not usually
recommended).

7.1.4 System Settings: Currencies


The Currencies screen is used to define currencies other than the US dollar. For each new currency
defined, the name, ISO code (such as CDN for the Canadian dollar), exchange rate to the base
currency (which defaults to the US$, and is set at time of installation only), symbol (e.g. $ - a check
box can configure the symbol to be displayed after the amount) and significant digits (number of
digits after the decimal separator) must be entered.
Note: Each User can select their default currency in the User Management screen.
Note: Your default currency can only be defined during the installation process, and may not be
altered once the system has been installed and is running.

7.1.5 System Settings: Locale Settings


The Locale Settings screen contains many options to control the customization of 1CRM for the
country or region you work in. There are three panels, for User Interface, Telephony and Database
Collation.

User Interface: Use this panel to set system-wide default formats for date, time, language, name
format, and currency.

Default Date Format: From the drop-down list, select a date format for all records such as Accounts.
Users can override the default format by setting a different date format in their My Account page.

Default Time Format: From the drop-down list, select a time format to display in all records such as
Cases. Users can override the default format by setting a different time format in their My Account
page.

Default Language: From the drop-down list, select the default language for the 1CRM User
Interface. Users can select a different language from the login page, provided they have installed the
appropriate language pack.

Section 7: System Administration Page 143


1CRM System 8.6 Implementation Guide Table of Contents

Default Number Format: Choose a drop-down value to specify the number format that you want.
This controls the thousands separator and the decimal separator.

Default Name Format: Enter the default salutation and name format to display in list views and
detail views. You can specify any combination of salutation first name, and last name. For example:
Mr. John Smith, Mr. Smith, or John Smith. Users can override the default format by setting a different
time format in their My Account page.

Default Address Format: Select the address format to be used on PDFs that are generated. This
affects the order of the fields in an address, as usage varies from country to country - a sample
layout is previewed on screen for the selected option.

Figure 105: System Locale Settings

Show User Full Names: You can select here if 1CRM will show in the user interface each user’s full
name, or their system user name.

Server Timezone: Set the server timezone here, which is a critical value for things like email
timestamps. It assists 1CRM in establishing the time lead or lag between itself and each user.

Holidays: Choose the standard set of holidays to be used by default for each user on their calendar.
In their personal settings, users may override this value. Holidays are included for many countries,
and more may be added by loading custom Holiday Packs via Upgrades & Customization.

Default Theme: Sets the normal theme to be used by most users, unless they choose a different
one.

Section 7: System Administration Page 144


1CRM System 8.6 Implementation Guide Table of Contents

The second panel is used to set a number of Telephony parameters.

• You can turn Auto Call Logging on or off.


• You may enable or disable Telephony Integration. Standard options are Disabled, SkypeOut
and RingCentral, but other options are available from 3rd party providers.
• As well you may enable the automatic formatting of phone numbers within 1CRM - ensuring
that each time a phone number is entered and saved, it will be saved in a standard format
compatible with ‘click-to-dial’ capabilities of SkypeOut, RingCentral and other IP Telephony
products.
• If you choose to enable automatic phone number formatting, you must also set the
Formatting Rules to North America or Other. If you select other, you must set the number of
digits in a local phone number (7 for North America, but it varies around the world), and your
country code prefix (for example 44 for the United Kingdom).
• Either way, you need to set your area code, and the extension prefix (which defaults to x.).
The extension prefix is used to separate an extension number from the main phone number.

Finally, the Database Collation panel controls the collation order, according to various utf8 options.
This Defaults to utf8_general_ci.

7.1.6 System Settings: License & Support


Each installation of 1CRM needs to be licensed. When the system is purchased, a license key is
provided, and it needs to be entered in the Quick Update box of the License & Support screen. When
the user clicks on Update, your server will then look up the name of the licensee and the number of
users licensed (on the 1CRM Systems Corp. license management server), and will then set that
information accordingly within your system. The name of the licensed organization, and the number
of licensed users, will be shown on the same line as today’s date.

If you ever need to re-install your software completely, you will need to ask your supplier to have your
license key reset, so that the license key may be used again.
Note: Your license terms permit you to operate your production server, as well as a testing/staging
server where any customizations and/or upgrades should first be tested.

Section 7: System Administration Page 145


1CRM System 8.6 Implementation Guide Table of Contents

Figure 106: License & Support Information

As shown in the Figure above, your 1CRM license key also carries information about what products
you have licensed, and when your Support & Update Subscription expires. We see above that this
system is licensed for the 1CRM Enterprise Edition, and that support will expire at the end of the year
2015.

This screen also shows you if there are any software updates available for your system, allows you
to check for them (although the system checks automatically every few days), and provides you with
information on how to download the updates.

If updates are available, a notification icon will be displayed beside your license information on every
screen.

Perpetual Licenses
If your Support & Update Subscription has expired, a warning icon will be displayed beside your
license information on every screen.
If your Support & Update Subscription has expired, the system will no longer check for updates, and
in fact, the Upgrades & Customization screen is no longer able to apply them.

Monthly and Annual Subscription Licenses


If your Subscription has expired, once any user logs in the system will stay on the License & Support
screen until a new license key is entered in the Quick Update box. The system will not be usable.

Section 7: System Administration Page 146


1CRM System 8.6 Implementation Guide Table of Contents

7.2 System Support Tools


7.2.1 System Support Tools: Maintenance
The Maintenance page includes three sections:

• Database Maintenance
• Data Caches
• Other Maintenance Tasks

Database Maintenance
• Database Schema: This compares the current database structure with the database model
definitions in your software, and optionally updates the database structure to match the
model definitions.

Data Caches
• Clean Uploads: Identifies files for deletion in ../files/upload
• Reset Cache: Removes all system cache files
• Clear Chart Data Cache: Removes cached data files used by charts.
• Rebuild Scheduler: Rebuilds the out-of-the-box Scheduler jobs.
• Rebuild PDF Forms: Rebuilds the system’s standard PDF Forms.
• Rebuild Dashlets: Rebuilds the Dashlets cache file.
• Rebuild Javascript Language: Rebuilds Javascript versions of language files.

Other Maintenance
• Check Language Files: Used to point out any incomplete or inconsistent entries in one
language file when compared to another – usually US English, which is the base language
for 1CRM. Used by those checking newly installed language files, or by those involved in the
translation process.
• Repair Sync Dates: Use only when directed to correct sync dates on sync’d records.
• Repair Employees: Create missing Employee information records for migrated users.
• Repair Email Folders: Create or repair standard Email Folders for migrated users.
• Clear User Tab Preferences: Reset user tab preferences to display newly added tabs.
• Rebuild .htaccess File: Rebuilds .htaccess to limit access to certain files directly.

Section 7: System Administration Page 147


1CRM System 8.6 Implementation Guide Table of Contents

Figure 107: System Support: Maintenance

7.2.2 System Support Tools: Backup Management


The Backups tool is used to create a backup of your 1CRM application files and/or database, in the
form of a .zip file. These backups may be saved locally on your existing server, or remotely. Remote
storage options include FTP, SSH, and Dropbox.

Making a Local Backup


To make a local backup, follow these steps (see Figure 108):
• First set Remote Backup Type to Disabled.
• Then set the Local Backup Directory, by specifying an existing directory which is writable by
the Apache system user, or using the default which is files/backups/ within the 1CRM
installation directory. To select a new directory, just enter a new directory path.
• Set the Path to ‘mysqldump’ executable. (For Linux and macOS, the most common values
would be /usr/bin/mysqldump or /usr/local/bin/mysqldump. For Windows, the path is
highly variable depending on your MySQL version.) Then click on Check mysqldump Path. If
the path is correct, you will now see a checkmark for Database backup is available. And you
will also now see a new checkbox for Database backups enabled, which you should check to
have your backups include the contents of your 1CRM database (which you usually want).
• Set the dropdown value for Application Backup Options. Options in ascending size order are:
• No application files (none at all)
• Application config, custom/ and modules/
• All but cache and file attachments
• Entire application directory
• Now click on Save to save these new settings. And then return to this screen from the Admin
main screen, and click on Perform Backup to run the backup. The 5 most recent local
backups (default number of local backups to keep) are listed at the bottom of the screen.

Section 7: System Administration Page 148


1CRM System 8.6 Implementation Guide Table of Contents

Making a Local & Remote Backup


To make a remote backup in addition to the local backup, follow these steps (see Figure 108):
• Set the Path to ‘mysqldump’ executable. Then click on Check mysqldump Path. If the path is
correct, you will now see a checkmark for Database backup is available. And you will also
now see a new checkbox for Database backups enabled, which you should check if you
want your backups to include the contents of your 1CRM database (which you usually will).
• Set the dropdown value for Application Backup Options. Options are:
• No application files
• Application config, custom/ and modules/
• All but cache and file attachments
• Entire application directory
• Now set Remote Backup Type to FTP, SSH or Dropbox.
• Set Number of Backups to Keep on Remote Server (default is 5).

As we see above, remote backups can use 3 different transports: FTP, SSH, and Dropbox.
• FTP - you will be prompted to enter the remote Host name, User Name, Password, and the
Directory where the backups will be stored on the remote host. The backup process will not
create that directory - it must already exist. Normally you should check Passive Mode.
• SSH - you will be prompted to enter the remote Host name, User Name and Directory. Note
that you do not specify a password. This type of backup requires some preparation on both
your 1CRM server and the remote backup server - see the section below.
• Dropbox - you must first authorize the 1CRM app to access the specific Dropbox you intend
to use for backups. Once you select Dropbox as the Remote Backup Type, you will see an
Authorize button appear, to the right of a field called Authorization Token. Clicking this
button opens a popup window which prompts 1CRM backup would like access to its own
folder, Apps › 1CRM backup, inside your Dropbox. You may need to login to your Dropbox
account before this message can be displayed. After clicking Allow, an authorization token is
displayed. Just copy the token and paste the it into the text box of the same name on the
Backup Management screen, and Save the settings.

Section 7: System Administration Page 149


1CRM System 8.6 Implementation Guide Table of Contents

Figure 108: Backup Management

Preparing for Remote Backups using SSH


In this section we assume that both the 1CRM server and the remote host run either Linux or some
flavor of Unix (macOS works just fine). If you are using Windows servers, follow the equivalent ssh
procedures for those servers.

What we are going to setup here is a password-less SSH login.


1. On your remote host, you will require a user account to be used to create backups. We
recommend you create a separate user account for this purpose. You will need that user's
password, and of course, SSH login ability must be enabled for that user. Here we assume
that user name is remote_user, and the remote host name is remote.com.
2. These steps assume that you are logged in to the 1CRM server via SSH, or using a terminal
application if you have physical access to that server.
3. You will require the user name which is used to run the Apache web server on your 1CRM
server. Typical names are www, _www, or nobody. Here we assume that user name is www.

Section 7: System Administration Page 150


1CRM System 8.6 Implementation Guide Table of Contents

4. You begin by generating a key pair which will be used to authorize the backup process on
the remote machine. The text below shows the commands to enter in bold. The text in italics
will vary:
$ sudo mkdir ~www/.ssh/
$ sudo ssh-keygen -t rsa -f ~www/.ssh/id_rsa
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /Users/www/.ssh/id_rsa.
Your public key has been saved in /Users/www/.ssh/id_rsa.pub.
The key fingerprint is:
74:50:7e:df:99:d4:d1:58:17:30:f4:65:fd:b1:23:4f root@test_host
The key's randomart image is:
+--[ RSA 2048]----+
| ... .+.=O|
| o +oB|
| . o . o=|
| . . . o.E+|
| S =oo|
| . |
| |
| |
| |
+-----------------+
$ sudo chown -R test ~www/.ssh
$
Note: You enter an empty passphrase for the key - that is very important.
5. Create an .ssh directory in the remote user's home directory, if it does not exist yet:
$ ssh -l remote_user remote.com 'mkdir -p ~/.ssh'
Password: <enter remote_backup password>
$
6. Copy the public key to the remote host:
$ sudo cat ~www/.ssh/id_rsa.pub | ssh -l remote_user remote.com 'cat >
~/.ssh/authorized_keys'
Password: <enter remote_backup password>
$
7. Now we have to add the remote host to the list of known SSH hosts:
$ sudo -u www -s
$ ssh -l remote_user remote.com
The authenticity of host 'remote.com (192.168.1.100)' can't be
established.
RSA key fingerprint is 4e:fd:4e:74:9f:b1:87:c4:d0:da:45:3a:02:09:a2:61.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.1.100' (RSA) to the list of known
hosts.
$ exit
$ exit
Note: You are not asked for a password when running the ssh command. Setup is now
complete.

Section 7: System Administration Page 151


1CRM System 8.6 Implementation Guide Table of Contents

Backup File Contents


Each backup zip file (name format is backup_currentdatetime.zip) will by default contain:
• an .SQL database dump file with a filename in the format 1crmdb_currentdatetime.sql
• the entire installation directory, including the files/ directory (which can be very large, as it
contains all email attachments, and 1CRM documents)
• these contents will vary, depending on the settings of the Database backups enabled
checkbox, and the Application Backup Options dropdown

Scheduled Backups
To perform scheduled backups, either local or remote, follow these steps:
• Check Scheduled backup enabled, and click on Save to save this new setting.
• Ensure the scheduler is running. (See the section entitled Scheduler Setup)
• In Admin - System Settings - Scheduler, check that external triggering of the scheduler is
working correctly. Then locate the Run Backup scheduler task in the list of tasks, and make
sure it is Enabled, with a Run Interval of perhaps a Day or a Week.
Note: While the system will automatically limit the number of backup files retained to the maximum
you have specified, running daily backups can become very expensive in terms of remote data
transfer costs, and server loading. Use scheduled backups with great care, and with these costs in
mind.

Restoring a Backup
Before restoring a backup, you will need to have the following items available to you:

1. The backup archive (file name is in the form backup_currentdatetime.zip file)


2. Know the full path to your mysql executable file. On Linux and macOS, the most common
locations are /usr/bin/mysql and /usr/local/bin/mysql. (Note: This is not required if
the backup archive does not contain a database dump.) Plus the mysql user name, mysql
password, and mysql database name that you intend to use for your 1CRM install.
3. Access to the server where 1CRM is installed. (If you do not have 1CRM installed, but want
to restore a backup of one server onto a different server, just prepare an install directory by
unzipping the 1CRM Full install file and then setting the folder and file permissions as per the
normal install process.)
Note: The version of the empty installed 1CRM you are restoring on top of MUST be the exact same
version as the system you used to create the backup. Any version mismatch will cause the restore to
fail.

You begin the restore process by simply running the restore.php file in your 1CRM installation
directory. For example, if you normally run 1CRM by sending your browser to http://demo.1crm.ca,
then in this case enter the URL http://demo.1crm.ca/restore.php.

Right at the start of the restore process, you will be asked to create a special file restore_key.txt to
prove that you have full access to the server. The screen will show you a key value which you paste
into a new text file and then save as restore_key.txt in the root of your 1CRM installation folder. Then
click on the link try again, to confirm you have access. You can also use the Start over link at any
time to re-start the entire restore process.

Next you will be prompted to select and upload the backup archive. If the backup file contains your
database information (in addition to any installation directory files) then you will also be asked for key

Section 7: System Administration Page 152


1CRM System 8.6 Implementation Guide Table of Contents

MySQL information: Full path to mysql executable, mysql user name, mysql password, mysql
database name. Now click on Submit, and if the MySQL values all work properly, your backup will
now be restored, and the backup process will proceed to completion. You’re all done!

Encrypted Backups
1CRM can optionally encrypt the backup files it creates.

The encryption is performed using symmetric cryptography. The basic property of symmetric
cryptography is that different keys are used for encryption and decryption. Once the data is
encrypted with the public key, it cannot be decrypted without the private key. The public key and
private key together form a key pair.

Setup
Enabling backups encryption in 1CRM requires a few preparation steps.

First of all, the server running 1CRM must have zip and openssl programs installed. If your 1CRM
instance runs on our 1CRM cloud, these programs are available. To check if backup encryption is
available, open Backup Management in 1CRM Administration and look at Encryption is available. If it
is checked, then you can use backup encryption, otherwise you will see a description of the issues.

Then you need to generate a key pair. To do so, you need a computer with openssl installed. If you
are using MacOS or Linux, openssl is normally immediately available. For Windows, openssl can be
obtained from https://slproweb.com/products/Win32OpenSSL.html

To generate a key pair, open up a terminal/console window and execute the following commands:

openssl req -newkey rsa:4096 -keyout privkey.pem -out req.pem


openssl x509 -days 30000 -req -in req.pem -signkey privkey.pem -out cert.pem

These commands will generate your private key, a certificate file with your public key, and an
intermediary request file. You can remove the intermediary req.pem file.

openssl req will ask you for a private key password and a confirmation of that password. This
password will be required for backup decryption, so make sure you remember it. Also, the program
will ask for a few additional pieces of information. What you enter in response is not important, just
make sure you give a non-empty answer to at least one of the questions. Make sure that when asked
for a challenge password, you just press Enter.

openssl x509 will ask for a password - use the private key password you gave to openssl req.

Next, move the privkey.pem file to a secure location, such as a flash drive stored in a safe place.
You will not need this file until there is a need to decrypt a backup.

Now, open cert.pem in a text editor and copy the file contents. Open Backup Management in 1CRM
Administration, and paste the certificate into the Encryption certificate field. Also make sure you
check the Backups encryption is enabled checkbox. Now, click Save. You may want to keep the
cert.pem file in case you accidentally change 1CRM backup settings.

After finishing the setup, it is recommended that you create a backup, download it and then try to
decrypt it, in order to confirm everything is set up correctly and you are able to decrypt your backups.

Section 7: System Administration Page 153


1CRM System 8.6 Implementation Guide Table of Contents

Decryption
Whenever you need to decrypt a backup, you will need the backup file itself (it will have a name like
backup_20200805_053355.zip.enc), your private key password, and your private key
(privkey.pem). Execute the following command in terminal/console:

openssl smime -decrypt -binary -in backup_20200805_053355.zip.enc -inform DER


-out decrypted.zip -inkey privkey.pem -aes-256-cbc

You will be asked for a password. Use the private key password you created earlier. If decryption
was successful, a decrypted.zip file with non-zero size will be created.

Section 7: System Administration Page 154


1CRM System 8.6 Implementation Guide Table of Contents

7.2.3 System Support Tools: Upgrades & Customization


Upgrades & Customization (formerly the Module Loader and Upgrade Wizard features) provides a
quick way to upload and install several kinds of updated software within 1CRM. Using this feature,
you can install:
• System Upgrades to later versions of the software
• Custom Modules (or other customizations to alter the operation of existing parts of the
system. The 1CRM Help System (User Guide) is distributed in the form of a custom module.)
• Language Packs (containing language files for 1CRM operation in another language)
• Holiday Packs (which define the statutory holidays for a region, and which a user may
choose to show on their calendar)
• Theme Packs (to add another Theme to 1CRM, such as Delight, or Spectrum)
• Personality Packs (which can save/load studio customizations, and can also include Custom
Modules, Language Packs, Holiday Packs and Theme Packs within them)

In each case, these files are provided as .zip files.


Note: Before using the Upgrades & Customization feature, the config.php file for your installation
must be writable.

Figure 109: Select the Help Pages Module Then Click On Upload

Figure 110: Module Successfully Uploaded

Section 7: System Administration Page 155


1CRM System 8.6 Implementation Guide Table of Contents

Upgrades & Customization is used by browsing to choose the .zip file for the upgrade, and clicking
on the Upload button. Uploading the file only queues the upgrade files for installation – it does not yet
perform the installation. Figures 109-115 illustrate the entire process for uploading the User Guide
module for 1CRM Release 8.0.

First we see the selected module in the Choose File field. Now click on the Upload button, and we
see the next screen, which indicates that the module has been successfully uploaded.

Now click on the Install button, and the system will prepare to install the module.

Figure 111: Preparing Package Installation - Steps 1 to 3

The package installer first unzips the zip file you uploaded. Assuming that goes as planned, it then
checks the system configuration, and displays its compatibility with requirements. In the Figure above
we see an all-green status, which indicates that you are safe to proceed with the upgrade.

Next we see (above) Step 3 of Preparing Package Installation, which is when the system checks the
file permissions are set correctly for the package to be installed. Assuming that checks out fine, you
see the Proceed button which you can click to begin the actual package installation. Once you do so,
you will see this dialog box.

Section 7: System Administration Page 156


1CRM System 8.6 Implementation Guide Table of Contents

Figure 112: Beginning Package Installation

Now click on Continue. The Continue button will now display Please Wait, and the system proceeds
to perform the actual copying of the package files, record an audit record of the package installation,
and perform several housekeeping tasks to ensure the system is healthy after the installation. Then
the next dialog box is displayed, as shown in the Figure below.

Figure 113: Package Installation - Commit Changes Completed

Lastly, you then click on the Continue button to complete the installation. The system will then
automatically perform the final cleanup after the package installation.

Figure 114: Package Installation - Cleanup Completed

Now you just click on the Finish Upgrade button. The Upgrades & Customization screen will display a
history of all the modules that have been queued or installed.

This screen (see Figure below) can also be used to un-install modules such as Language and
Theme modules. Simply choose the module to remove and click the Uninstall button. You cannot
uninstall upgrades to new versions and system patches, so make sure you take backups prior to
applying them. The process of package removal closely resembles that of installing a new package,
with much the same flow of dialog.

Section 7: System Administration Page 157


1CRM System 8.6 Implementation Guide Table of Contents

Figure 115: Upgrades & Customization

After major upgrades every user will receive a System Notification providing information about the
changes contained in that upgrade, to ensure they are aware of it.

Figure 116: Upgrades May Trigger System Notifications

7.2.4 System Support Tools: Diagnostic Tool


Use this option to capture your system configuration data, to assist technicians in the analysis and
diagnosis of system behaviour. Select the desired options for the types of diagnostic data to be
included, then click on Execute Diagnostic.

Section 7: System Administration Page 158


1CRM System 8.6 Implementation Guide Table of Contents

Figure 117: Diagnostic Tool

As the Diagnostic runs, you will see something like this:

Executing Diagnostic Operations...


Getting application config file...
Done
Getting custom dir...
Done
Getting phpinfo()
Done
Checking that bean files exist...
Done
Getting infoathand.log
Done
Getting...... mysql info... mysql dumps... mysql schema
Done
Download the Diagnostic file
Delete the Diagnostic file

After the Diagnostic process is completed, you can use the links provided to download the diagnostic
information, or to delete it.

7.2.5 System Support Tools: View System Log


This option is provided as a convenient tool for viewing the system log files.

Figure 118: View System Log

Section 7: System Administration Page 159


1CRM System 8.6 Implementation Guide Table of Contents

To simply view the entire system log, click on All. You will need to scroll down to the bottom of the
(potentially very long) resulting screen to see the latest events in the log.

You can also use the Mark Point button to mark the current time in the log, so you can then see only
what happens after that, by clicking on Next >>.

As well, you can search the log for specific text, if you are looking for something in particular.

7.2.6 System Support Tools: Manage Imported Data


Data may be imported to thirteen different modules throughout 1CRM:
• Users
• Accounts
• Opportunities
• Contacts
• Leads
• Cases
• Product Categories
• Products
• Calls
• Meetings
• Tasks
• Notes
• Targets

This is a very necessary capability, and a very important one. But equally important is to understand
that importing data into your 1CRM system can pollute your system with poor quality, or badly
imported data. In cases like these, it is critical to be able to go back over your imported data and
examine it, and potentially edit or delete it. That’s exactly what this admin module is for.

The above order in which the thirteen importable modules are presented is significant. If you are
importing data from another CRM type of system, you should begin with Users, and carry on through
to Notes, in that order. If you have no data to import for a given module, it is generally OK to skip it,
but important modules like Users, Accounts and Contacts will likely cause problems if you skip them.
This is because the imported data includes information such as Account and Contact names and IDs
which are used to help link all associated data together into a real CRM database, not just a number
of unrelated lists of information.

The recommended import order for the modules listed is critical, as it ensures that no item being
imported will refer to an item in a module that has yet to be imported. It is also important that if you
are migrating full system data across into 1CRM from another CRM-type system, that you export it all
from the other system at the same time (a snapshot, if you like, across all the modules) and then
import it all at the same time. This helps to ensure that all the data taken together represents a single
consistent database.

Once you have imported some data into 1CRM, you will see that data represented in this Manage
Imported Data screen. At the top left of the screen is a control you use to filter (from the modules
listed above) for the module for which you wish to see data. At the control’s default - None - position,
you will see all imported data, for all modules.

Section 7: System Administration Page 160


1CRM System 8.6 Implementation Guide Table of Contents

Figure 119: Managing Imported Data

As shown above, you can review imported data for a selected module, such as Contacts. You can
click on the Name of any record to view the record details. And you can use the button to
Accept or Reject selected entries. We strongly recommend that you fully review the data from each
import session, and Accept or Reject all of that data, before you perform another import. Used this
way, this screen will always show you only the data from your most recent import session, as any
previous imports will have been removed from this screen when they were accepted or rejected.

Notice that the button offers Accept Import and Reject Import and Delete as options, in
addition to simple Print and Export options.
• Accept Import - simply removes the selected history entries from the import history screen. In
effect, you are telling 1CRM to forget they were ever imported. Presumably because they
have all been checked, and found to be valid records. Think of this option as saying ‘These
records are good. Accept them as a permanent part of our database.’
• Reject Import and Delete - this option removes the selected records from your 1CRM
database, as well as removing the history entries that they were imported. Think of this
option as saying ‘These records are bad. Reject them and remove them from my database,
and remove any record of them having been imported.’
Note: Although this feature can go a long way to helping you un-do potentially damaging imported
data, we still recommend that you take a system backup before any import session, so that you can
revert to that backup if the import session is unsuccessful, and lowers the data quality of your 1CRM
database as a whole.

7.2.7 System Support Tools: Storage Utilization


The Storage Utilization screen performs a number of functions related to the amount of storage being
used by your 1CRM system.
Note: This screen will not display accurate information unless the scheduler task Update Disk Space
Usage is active on your list of scheduler tasks. Typically it should be run once a day, overnight.

The Storage Utilization screen shows you the following information:


• Total Storage Available (or total Cloud Storage Allocation if on 1CRM Cloud)
• Storage Used (in GB, and as a percentage of Total Storage)
• Available Storage (Total Storage or Cloud Allocation, less Storage Used)
• Backups (Storage used by Backups)

Section 7: System Administration Page 161


1CRM System 8.6 Implementation Guide Table of Contents

• Emails (Storage used by Email attachments)


• Images (Storage used by images for Product Catalog items, and for logos/headshots for
Users, Contacts, Leads and Accounts)
• Reports (Storage used by saved Report Runs)
• Uploads (Storage used by Documents, and Notes attachments)
• Database (Storage used by your 1CRM database of structured data - does not include Email
attachments and Documents)

Figure 120: Storage Utilization

The Storage Utilization screen also allows you to configuration Storage Notifications:

• Notify on Storage Low - Enable this toggle switch to have the system send storage utilization
emails
• Notification Type - Notifications are to be based on Available Storage in GB, or as a % of
Total Storage
• Notify on % Used / GB Free - Specify here the number of GB or percentage below which you
wish to be notified
• Notification Email Address - Specify the email address to which storage utilization alert
emails and scheduled storage utilization emails are to be sent
• Receive Scheduled Storage Reports - You may set this to None, or choose Daily, Weekly or
Monthly to receive regularly scheduled reports summarizing the storage utilization of your
1CRM system.

Note: If you are running in the 1CRM Cloud, your system will also send Storage alert emails to us at
1CRM to let us know if you have exceeded your storage allocation on the Cloud, or if your system is
simply running low on available storage.

Section 7: System Administration Page 162


1CRM System 8.6 Implementation Guide Table of Contents

7.3 Users
7.3.1 Users: User Management
User Management is used to create, edit, and activate/deactivate users of the 1CRM system. The
User Management screen is shown as Figure 121 below.

On this screen, an Administrator can search for a user, or simply click on a user name to select their
profile to edit. Once a user profile has been selected, the Administrator may change the password,
edit the profile, or duplicate the profile, using the methods described in the My Account section.

Note: Users must have a valid email address in order to receive email notifications.
Note: Users may not be deleted once created. They may only be marked Inactive, and perhaps
eventually ‘recycled’ by renaming the user for re-use by a new employee. Inactive users do not count
against the number of users you have licensed.

Figure 121: The User Management Screen

7.3.2 Users: Data Access Control Overview


Most organizations have concerns about who will see the information in their CRM. As 1CRM
contains not just conventional CRM data, but also order management information and project and
resource financial data, the need for data access control can be even more critical in 1CRM.

1CRM meets this need by allowing administrators to set up multiple Teams of Users that reflect their
organization's structure. They can then link or assign those Teams to individual records manually or
automatically, depending on their preference. Each data record in the system (such as a Contact, a

Section 7: System Administration Page 163


1CRM System 8.6 Implementation Guide Table of Contents

Case, an Invoice or a Meeting) can be linked to multiple Teams if desired, addressing the need that
most organizations have for somewhat haphazard and flexible dividing lines for data access control.

To initially configure data access control within 1CRM you will need to do four things:

1. Define a set of Teams that reflects the structure of your organization, with a Team for each
part of the organization that has its own unique characteristics as regards the need for data
access control. (Smaller organizations might not need any Teams defined.)
2. Assign all the data records in 1CRM to one or more Teams. (You can do this using the
Teams: Mass Assign field at the bottom of each list view screen, at the end of the Mass
Update panel). (Not required for smaller organizations with no Teams.)
3. Configure Team Inheritance Rules within the Access Control Settings screen to define the
manner in which you would like the access control system to behave. Each Team also has
the option of being marked as Non-Inheritable.
4. Assign each Team to a Role that you create to define the access level of Users that belong
to each Team. (Not required for smaller organizations with no Teams.)

Some of the key principals of the 1CRM security model are as follows:
• The three components of the security model are Users, Teams and Roles.
• Users may be assigned to zero or more Teams.
• Users and Teams may both be assigned Roles.
(This enables the admin to give a certain level of access to a Team, but at the same time
give a specific User that might belong to that Team more or less access.)
• Teams consist of a set of Users, and determine which records or modules those Users have
access to.
• Roles determine what level of access a User or Team has to those records or modules (i.e.
can you see it, edit it, delete it, import/export it, etc..).
• The system allows the admin to deny access to any specific data record for a User, or for a
Team.
• The system allows the admin to delegate the assignment of Roles and Teams to a non-
admin User.
• Data access rights apply not only within the 1CRM user interface, but also over the web
services APIs used by 1CRM.

Teams are the gateway that determines what data each User can access, while Roles determine how
they may work with that data. Once you learn this basic principle, understanding data access control
within 1CRM should become much easier.

Note: For those with a desire for an in depth study of the theory behind 1CRM’s Access Control
system, you are referred to the paper “A three tier architecture for role-based access control” by Ravi
S. Sandhu and Hal Feinstein, in 17th NIST-NCSC National Computer Security Conference.

7.3.3 Users: Role Management


Roles within 1CRM are used to limit the level of access a User or Team has to data records or
modules (i.e. can you see it?, edit it?, delete it?, import/export it?, etc..). Note that Teams are used to
control which modules and records a User can work with, and Roles control the manner in which they
can work with them.

Section 7: System Administration Page 164


1CRM System 8.6 Implementation Guide Table of Contents

When you select the Role Management option from within the administration area, you will see the
Roles List View screen. It lists the Roles defined within the system, and also offers shortcuts to
create a new Role, or view/edit the system’s Default Role.

If you would prefer not to have any restrictions on who can see what data within your 1CRM
installation, simply leave the default Role set to its initial values, which have most settings for every
module set to All.

When your system is new, before you define any additional roles, all users have access permissions
as determined by the default Role. These restrictions will continue to be in effect for any users not
assigned to any other Roles that may be defined. The system administrator defines the Default
Role’s Access and available Actions (Delete, Edit, Export, Import, List, Report and View) for each
module, in order to define the default restrictions for all users in the system.
Note: In addition to the Default Role, each system includes another Role - Data Privacy Manager
(DPM). Any user assigned to this Role will have DPM rights - for more details see the 1CRM &
GDPR document.
Note: Users with system administration capability have special system access, and can see all data
in the system, other than HR data.

Figure 122: Roles List View

First – let’s practice creating a simple Role, which only controls system access for those Users
assigned to the Role. For example – sales staff will want access to the opportunities and dashboard
modules – marketing staff will want access to the campaigns module – but perhaps not all staff will
need access to all of these modules. As you can see in Figure 123 below, each Role defines the tabs
visible to the Users assigned to the Role, using the Enabled / Disabled setting in the Access column.

To create a simple Role of this type, click the Create Role shortcut, and type a name for the Role. In
the first column are the names of all the principal modules in 1CRM. Select the modules to include
for the Role by clicking on the cell values in the Access column, and then save the Role.

To assign Users to this Role, on the detail view for each User, select the Access Control tab and then
scroll down to the bottom of the screen and click on the Add Existing button to select the Role.
Note: When a Role excludes access to a module, access is also removed to the sub-panels in other
modules which relate to the excluded module.

Section 7: System Administration Page 165


1CRM System 8.6 Implementation Guide Table of Contents

Next, let’s look at the more ‘fine-grained’ access restrictions which the system offers. Re-edit the
sample Role that you just created to have a look.

As we have seen, for each module Access may be set to Enabled, Limited or Disabled. Additionally,
for each module the Actions that may be performed on data in the module (Approve, Delete, Edit,
Export, Import, List, Report and View) each have an option set to None, Admin, Owner, Role, Team
or All.

The meaning of these options is as follows:


• All – In this module you can perform this action on all data – no matter who it is assigned to.
• Team - In this module you can perform this action on any data records assigned to any Team
of which you are a member.
• Role – In this module, you can only perform this action on any data records assigned to
members of this Role.
• Owner – In this module, you can only perform this action on data records assigned to you.
• Admin – In this module, only Admin users can perform this action on data records.
• None – You cannot perform this action in this module, not even on data assigned to you.

In the figure below, we see an Executive Role defined, which allows its members full access to all
data in the system. Notice that the Executive Team is linked to the Role.

When a new role is defined, most permissions for each module are set to Enabled (for Access) and
to All (for the actions of Access, Delete, Edit, Export, Import, List, Report and View). Each module is
turned on or off using the Access (Enabled/Disabled) setting. All the other settings control a user’s
ability to perform a specific action on data within the module. These actions are as follows:

Access
The Access option can potentially control all the other settings below. When set to Limited
access, the administrator may only define individual values for List and View actions, while
all others (Report, Import, Export, Edit, Delete) are forced to Admin. When set to Enabled,
the administrator has the ability to fine tune all actions. When set to Disabled, the module
disappears from the menu system and sub-panels.

View
The View option controls which data the user will be able to see on a Detail View within this
module. It controls which data items the user will be able to click on from the List View to see
in a Detail View. As well, it also disables the user’s ability to navigate from sub-panels in
other modules to the detailed view for data records for which the user does not have View
privileges. Any other attempt to navigate to these records will result in an error message.

List
This option controls which data the user will be able to see in the List View of this module.

Edit
Controls the user’s ability to Edit data items in this module. If set to None, then the Edit
button will be disabled on all detail views for this module. As well, the Mass Update Panel at
the bottom of List Views will not update records for which the user does not have Edit
permission.

Delete
Controls the user’s ability to Delete data items in this module. If set to None, then the Delete
button will be disabled on all detail views for this module.

Section 7: System Administration Page 166


1CRM System 8.6 Implementation Guide Table of Contents

Figure 123: Role Detail View

Section 7: System Administration Page 167


1CRM System 8.6 Implementation Guide Table of Contents

Import
This option may only be set to All or None. If set to None, the Import shortcut (if there
normally is one) is not visible for this module.

Export
If set to None, then the Export option of the Action button located at the top and bottom left of
the List View will be omitted for this module.

Report
This option controls which data records the user will be able to access when preparing
reports from data in this module.

Approve
Controls the user’s ability to Approve data items in this module. If set to Disabled, then the
Approval function will be disabled on all detail views for this module. Currently available for
Quotes, Booked Hours, Timesheets, Expense Reports and Vacation/Sick Days.

Personal
This option enables a user to erase the data in fields of this module which are marked as
Personal Data. Erasing Personal Data fields also erases the Change Log entries for those
fields. As well, this option enables access to Personal Data views, detail views which only
display fields marked as Personal Data, regardless of their visibility in any layout.

For each module, some of the actions also require other actions to be set before they may be
Enabled:

• View is the most basic action


• List, Edit, Delete - require View to be set before they may be Enabled
• Export, Report - require List to be set before they may be Enabled
• Approve - requires Edit to be set before it may be Enabled

7.3.4 Users: Team Management


The Team Management screen allows the admin user to perform three functions via shortcuts
available on this screen:
• Create Team – define a new Team for the purposes of controlling access to 1CRM data.
• Teams – see the list of Teams currently defined, and potentially select one to view or edit.
• Team Settings – manage the settings for the Teams function within 1CRM.

Create Team
Use the Create Team shortcut to define a new Team, for the purposes of managing data sharing and
security within 1CRM. As shown in the figure below, just give the Team a name, a description, and
decide if it should be inheritable or not. Check the box provided if the Team’s access rights are not to
be inheritable.

A Team with inheritable access rights may be inherited by a new record when it is created, according
to the Team Inheritance Rules defined in Team Settings. A Team that is marked as Non-inheritable
will not be inherited by a new record in this manner.

Section 7: System Administration Page 168


1CRM System 8.6 Implementation Guide Table of Contents

Figure 124: Creating a Team

Teams List View


Use the Teams shortcut to see a list view of the Teams defined in your 1CRM installation.
Note: You can use the Mass Update panel of the Teams list view screen to delete Teams or assign
them to different Users.

Figure 125: Teams List View

7.3.5 Users: Service Skills


The Service Skills screen allows the admin user to enter a series of names for skills that service
personnel may require for resolving Cases. Examples might be PC Break/Fix, Windows Server
Configuration, etc... Once these skills have been entered, they may be used in two places. Each user
may be given a rating level for each service skill. And each Case may have one or more skills
attached to it, and the level of skill required. For more details see the Cases module and My Account.

Section 7: System Administration Page 169


1CRM System 8.6 Implementation Guide Table of Contents

7.3.6 Users: Access Control Settings


The Access Control Configuration screen is used to configure a number of settings which control the
behaviour of the Team security and access control features within 1CRM.

Figure 126: Access Control Settings

The figure above shows the default Access Control Settings when 1CRM is first installed.

The effects of the settings on this screen are as follows:

Additive Rights (Default: On)

If this box is checked, Users will get the the broadest (maximal) access rights of any of the Roles to
which they or any of their Teams are assigned. Otherwise they will get the narrowest (minimal)
access rights of any of the Roles to which they or any of their Teams are assigned.

The effects of the settings for Team Inheritance Rules are as follows:

Inherit from ‘Created By’ User (Default: On)

If this box is checked, then when creating any new data record, the record will inherit all the Teams
assigned to the User who creates it.

Inherit from ‘Assigned To’ User (Default: Off)

If this box is checked, then when a new record is created, the record will inherit all the Teams of the
User assigned to the record. Any other Teams assigned to the record will not be removed.

Inherit from ‘Related To’ Account (Default: Off)

If this box is checked, then when a new record is created, the record will inherit all the Teams of the
Account to which the record is related, if any.

7.3.7 Users: Data Access Control Examples


No Security - I Want Everyone To See Everything

Section 7: System Administration Page 170


1CRM System 8.6 Implementation Guide Table of Contents

This is the default state of the system when it is initially installed. Each user has no explicit Role
assignments, so the default Role apples to them. No Teams are defined, and no Teams or Users are
explicitly linked to a Role. No Users are linked to any Teams.

Basic Security - Each User On One Team With One Role


1. Define a Team for each functional division of the business that might need different access
control rules than another division - Sales, Marketing, Executive, Support, Admin might be a
good start for the Teams for a smaller organization.
2. In the Users sub-panel of each Team, add the Users considered to be part of that functional
division of the business.
3. Define a Role for each functional division of the business as well - and it might be best if you
gave them the same names as the Teams you are going to associate them with. For each
Role set the permissions matrix to control User capabilities in each module.
4. In the Teams sub-panel of each Role, add the Team that is to be associated to that Role.
5. For all data records in the system (likely using the Teams: Mass Assign panel below the
Mass Update panel on each module’s List View) assign the data records to one or more
Teams.

Additive Rights
For this example, let’s assume that a User Chris is assigned to two Teams, Sales and Support.

1. Sales is assigned to a Role that has Delete – Team rights to Accounts in its permission
matrix.
2. Support is assigned to a Role that has Delete – None rights to Accounts in its permission
matrix.

With the Additive Rights option in Team Settings turned off Chris will not have the rights to delete any
Accounts. With this option turned on Chris will have the rights to delete Accounts assigned to his
Team.

Assigning Both Users and Teams to a Role


Typically, larger organizations require more complex security configurations. To handle these
situations both Teams and Users must be able to be assigned to Roles. Let’s look at the following
example:
1. There are two teams, Team A and Team B.
2. Both Teams are assigned to a Role called Read Only which gives them read only data
access rights.
3. A manager oversees both teams and should see all of their records. However, the manager
should have edit rights to those records.

To accomplish this the manager is assigned to Team A and Team B. This only gets him read only
rights (since the Read Only Role is assigned to both Teams A and B). So a Role called Edit is created
and assigned directly to the manager. Of course, this example is simple and could also be achieved
by creating a Team Manager and assigned the Edit Role to the Team Manager directly. Basically, the
ability to assign Roles to users directly allows the admin to cater for special cases.

Section 7: System Administration Page 171


1CRM System 8.6 Implementation Guide Table of Contents

7.4 Email
7.4.1 Email: Email & Notification Settings
This screen is used to configure system email notification options. The screen contains five separate
sections. The first section is used to define the Email Notification Options associated with the emails
that 1CRM can send to Users when they are assigned new responsibilities.

Email Notification Options can also enable and disable the email notification system, and establish
the default notification setting for new Users. These settings also determine if notifications are sent
when Cases are created or changed, and if those notifications are sent only to Users related to the
Case, or to related Contacts as well.

Section two defines how general email sent by the system (not by a user) will be sent. This includes
the user name and email address from which the email will be sent, as well as the Mail Transfer
Agent (MTA) to be used.
Note: The SMTP (Simple Mail Transfer Protocol) MTA should be selected if your system is running
Windows. If your system is running Linux, either the SMTP or sendmail MTA may be selected,
depending upon how your server is configured. On 1CRM Cloud, you must use SMTP, not sendmail.

• If the SMTP MTA is selected, you must also specify the SMTP server name, and port number
(default is 25) used to communicate with SMTP.
• If Use SMTP Authentication is selected via the checkbox provided, the SMTP Username and
SMTP Password to be used must also be provided.
• If Secure SMTP is set to either SSL or TLS, you will also need to set the Certificate
Validation dropdown. Email servers should have certificates to confirm their identity. This
dropdown sets the conditions under which 1CRM will allow an email to be sent via the
specified SMTP server. Available options are: None (Send email even if no certificate on the
server), Self-Signed OK (At least a self-signed certificate is required in order to send email),
and Require 3rd Party (3rd Party Signed Certificate required to send email).

The second section also enables you to configure the maximum number of emails sent per batch,
when sending out large numbers of campaign emails via the email queue.

Lastly the second section has a toggle control to Enable/Disable Sent Email Tracking in 1CRM. In
order to use email tracking you must turn on this toggle switch, and also enable a scheduler task
(Update MaxMind GeoIP Database) which downloads and updates the MaxMind IP tracking
database.

When Sent Email Tracking is enabled, two fields are added to the Email detail view - First Opened
and Open Count. Also, a subpanel will be added to the Email detail view, to display the history of
email opens.

Note: There is an issue with Gmail - it uses a proxy to download and display images, so when email
is opened in Gmail, one cannot detect the user location from the IP address. Accordingly, if a request
comes from the Google image proxy server, no attempt is made to lookup the user location.

The third section of this screen is used to control the system’s actions as inbound email is received.
Each inbound email is automatically linked to a contact in the system, if the sender’s email is a match
to either of the email addresses on any of the contact records in the system. If this checkbox is
selected (which it is by default), the system then goes on to lookup the account for that contact, and
relate the incoming email to that account as well (assuming there is one). Other controls mark
domains not to link up on receipt of emails, and the import batch size for incoming emails (too large a
batch can produce perceptible slowdowns for users).

Section 7: System Administration Page 172


1CRM System 8.6 Implementation Guide Table of Contents

The fourth section of the screen is used to configure the default email format (HTML or text), email
client, and character set for all users.

The fifth section enables the retention of Raw Email message text. This uses a lot of storage space,
and system processing, and should only be enabled for debugging email operations.

Figure 127: Administration – Email Settings Screen

7.4.2 Email: Manage Email Queue


The system administrator can manage mass email campaigns that have been created in the
Campaigns module. Other users may create email campaigns aimed at large numbers of targets
utilizing an email template. Depending on the send date the creator assigns to the email campaign,
the emails then wait in the email queue to be sent at the particular date and time specified.

Section 7: System Administration Page 173


1CRM System 8.6 Implementation Guide Table of Contents

As an administrator, you can monitor these emails as they are sent. You can also delete emails that
are waiting to be sent. You can view information on each email such as Campaign, Recipient Name,
Recipient Email, From Name, From Address, User Name sending the email, Send On date, Send
Attempts, and In Progress status. The Mass Emailing Queue Manager only displays emails created
through email campaigns, not emails created using the Email module.

To delete an email that is waiting to be sent, click the check box next to the email and click the Delete
button. Click Check All to select all the emails in the list.

7.4.3 Email: Group Inboxes


Group email is email that all users may potentially access. Like each user’s email, it may be
organized into multiple folders - by default it includes the folders Inbox, Customer Support, and
Campaign Responses. The Group Email Folders administrative function (see below) may be used to
add more custom Group Email folders. Emails may be taken from any Group folder to any personal
email folder, or returned from any personal folder to any Group folder, using controls in the Mass
Update panel in the Emails module.

Any number of Group Inboxes may be defined. One or more email addresses may be monitored, and
incoming mail retrieved (see figure below). Each new Group Inbox that is defined must specify the
Group Email Folder into which the received email is to be added. Each Group Inbox must also
specify the Possible Actions that may be performed automatically on receipt of an email in this box.
Possible Actions include None, Bounce Handling (you must use this option for a Group Inbox you
will use with an Email Campaign), Create Case and Create Bug. If you use the Create Bug or Create
Case options, a new Bug or Case will be created automatically each time an email is received into
this Group Inbox, and the body of the email will be pasted into the detail record of the Case or Bug.

Figure 128: Administration – Creating a Group Inbox

When using a Group Inbox for Bounce Handling, each email received will be scanned for evidence
that it is a bounced email. If the conditions for this are satisfied, the Contact or Lead or Target
involved will be marked as having bounced, and the bounce total for the Campaign will be
incremented. Then the bounced email will be deleted. If the email cannot be recognized as a
bounced email, it will simply be placed in the Campaign Responses folder by default, or another if it
is named in the definition of the Group Inbox.

Section 7: System Administration Page 174


1CRM System 8.6 Implementation Guide Table of Contents

All email received by any Group Inbox (except one doing Bounce Handling) will be placed in the
Group email folder specified - and sometimes (via Possible Actions) they will also automatically
create a Case or Bug. When Possible actions for a mailbox is set to Create Case, an additional
option becomes available: Automatically create contacts. When that option is set, and a case is being
created from an email from an unknown contact, a new contact record will be created, and linked to
both the email and the case. Contact Email address is set to sender's address; if the From: header in
the email contains the sender's name, then first and last names of the contact are set accordingly;
otherwise the first name is left empty, and last name is set to the sender's email address.

7.4.4 Email: Group Email Folders


The Group Email Folders function is used to create additional custom Group Email Folders, in
addition to the standard folders created at installation time. The standard folders are: Group Inbox,
Customer Support, and Campaign Responses.

7.4.5 Customize Notification Email Messages


This screen offers the ability to customize the content of notification email messages, by selecting
additional fields of the related object to add into the email.

Figure 129: Administration – Customizing Email Notification Fields

Section 7: System Administration Page 175


1CRM System 8.6 Implementation Guide Table of Contents

7.5 Studio
In 1CRM, the Studio is a term applied to a series of tools provided for the Administrator to customize
the CRM for your specific needs. As you can see below, these tools cover a wide range of
capabilities. In overview, they perform the following functions:
• Layout Editor – used to customize normal Edit/Detail layouts plus Quick Create layouts
• Custom Fields Editor – defines new fields, which then may be used in layouts
• Dropdowns Editor – used to edit values for standard or custom dropdown fields
• Smart List Tab Sharing – for sharing Smart List tabs among users
• Workflow – used to define workflows that automate business rules
• Configure Group Tabs – let’s you re-arrange how modules are presented within tab groups
• Configure Module Tabs – used to suppress the display of selected modules
• Rename Module Tabs – let’s you rename specific modules
• Module Designer (Enterprise Edition Only) – Used to define new custom modules, their fields
and their relationship to existing modules. As well, it enables the admin to edit (for both
custom and standard modules) which fields appear on the Mass Update panel, which fields
are tracked in the ChangeLog, and which fields are required.
• PDF Form Designer (Enterprise Edition Only) – Used to define modified or all-new custom
PDF Forms, to use when printing Invoices, Quotes, Service Work Orders, etc.. (an
Enterprise Edition Only feature).

Figure 130: Administration – Studio Functions

Note: Studio customizations may be moved from one 1CRM server to another by using the Create
Personality Pack shortcut provided in the Upgrades & Customization option of Administration.

7.5.1 Layout Editor


The Layout Editor feature lets you rearrange the fields and panels on most of the screens available
within 1CRM, to customize them to fit your needs. It let’s you edit a module’s screen layouts including
Detail/Edit layouts as well as Quick Create layouts.

Begin by selecting the name of the module you want to customize. Choose the module name from
the list of modules displayed, as shown below. Then you will see a set of layouts to choose from. The
images in Figure 132 below show the options presented in Accounts and Contacts.

Section 7: System Administration Page 176


1CRM System 8.6 Implementation Guide Table of Contents

Figure 131: Administration – Studio: Edit a Module – Select Module

Notice that for Contacts, for example, there are options for the Standard Edit / Detail View layout and
for the Quick Create layout. Similarly, the Accounts module offers the same layouts. As you can see,
most aspects of the 1CRM presentation screens may be customized using the Layout Editor.

Figure 132: Administration – Studio: Layout Editor Examples

Figure 133 below illustrates editing the Accounts Standard layout. Notice that each layout consists of
one or more sections. Each section has one or more rows, and each row has two data fields within it,
side by side. The main screen display area is your staging area, as it is just a copy of your screen
layout, which you can choose to commit (using the Save Layout button) or not after doing some
editing. The editing functions available to you are:
• Add a field from the floating Available Fields list on the left into the staging area. Custom
fields are listed first, followed by the Standard fields. Just drag the field into an open position
in the layout. If you drag it onto an occupied position, the field previously in that spot will be
relegated to the Available Fields list.
• Move a field from one position in the layout to another, by dragging it. If you move it to a
position that is already occupied, that field will be swapped with the one you are moving.
• Remove a field from the current layout by hovering over it, and then clicking on the that
appears at the right of the field name.
• Change the name label for any field already in the staging area by clicking on that field. The
Edit Element popup will be displayed, allowing you to enter a new name label for the field.
• Change which field to use at any position already occupied in the staging area by clicking on
the field at that position. The Edit Element popup will be displayed. Use the Field dropdown
to select a different field to be positioned at this position in the layout.
• Add, remove or re-arrange fields in the top panel (which has no ✚ add row control) by
clicking on any field in that panel. The Edit Element popup will be displayed, including a
special Add Field dropdown to select a field to add, as well as controls to re-order fields.

Section 7: System Administration Page 177


1CRM System 8.6 Implementation Guide Table of Contents

• Add a blank new row to the layout using the ✚ miniature icon to the right of the row. The new
row will be added above the current row. You may also add a row using the ✚ add row
control at the top of each section. It will add a blank row at the bottom of the section.
• Remove a row by clicking on the miniature icon to the right of that row. Any fields
positioned on that row will be added to the Available Fields list.
• Add a blank new section by clicking on the ✚ add section link at the top right of the staging
area. The new section will be added at the bottom of the layout.
• Remove a section by clicking on the remove section link at the top of each section.
• Move a section by clicking on the up / down arrows at the top left of each section. This will
move that section up or down a spot in the section order.
• Rename a section by clicking on the section name (which is a small empty box when no
section name has yet been defined) to edit it.

Click on the Save Layout button to save the results of a good editing session, or click on the Cancel
button to abandon your edits if you don’t like how things turned out.
Note: If you ever really make a mess of a layout, and mistakenly save it and want to start over, you
can reset it to defaults. Use the Restore Default Layout option on the button available only to
Administrators, at the top right of the relevant Edit or View screen within the application itself.
Note: You can also access the layout editor for any of the system’s Edit/View layouts by simply
clicking on the button available to Administrators at the top right of Edit or Detail View screens,
and choosing the Edit Layout option.
Note: Using the same button available to Administrators on edit and view layouts, you can
choose the Create Mobile Layout option to define the Edit/View layout as seen when using Mobile
Access. This lets you add custom fields to mobile layouts as well.

Figure 133: Administration – Studio: Layout Editor – Account Standard Layout

Section 7: System Administration Page 178


1CRM System 8.6 Implementation Guide Table of Contents

Editing Sub-panel Layouts


To edit a sub-panel layout, an Admin user may click on the icon (visible only to Admin users) at the
top right of the sub-panel within the actual screens of the user application. The resulting popup
allows the user to change the column definitions for that sub-panel.

7.5.2 Custom Fields Editor


With the Custom Fields Editor, in Studio - Admin, you can add custom fields to any module in 1CRM.
First, select the module in which you want to add or edit custom fields, from a screen that closely
resembles the one in Figure 131. Then you can either create a new field, or browse existing custom
fields in that module.

To create a new field, click on the Create button on the Custom Fields list for the module selected.
That will lead to a screen like the one on the left in the Figure below, where you first select the Data
Type of the field from a dropdown list. Options are:

• Text • Multiselect List


• Text Area • Date
• Integer • Date & Time
• Decimal • Web Link
• Percentage • HTML
• Checkbox • Calculated
• Email • Related Record
• Phone Number • Value From Related Record
• Item Number • Currency
• Dropdown • Name
• Status

Next set the Field Name, Field Label (the label displayed on screen), Audit Enabled? (should this
field be tracked in the Change Log?), Personal Data? (does this field need to be treated as sensitive
Personal Data subject to General Data Protection Regulations?), Mass Update? (should it appear on
the Mass Update panel for this module?), Required Field?, and Default Value. (A valid field name
must start with a letter, followed by zero or more letters, digits and underscores.) Merge Duplicates
determines if this field can be used to detect and control the merging of duplicate records. Available
in 1CRM Mobile will cause this field to be displayed in the 1CRM Mobile App if it is selected.
Note: Be extremely cautious if you define a custom field, and set it to Required, but do not define a
Default Value. This can lead to issues such as the inability to save new items in the module involved,
as the record is deemed invalid with no value in the required field. Unless there is some critical
reason not to, always define a default value for required fields.

Some field types have different fields you will need to fill in. For example Text and Integer fields have
a Max Size value, and a Dropdown or Multiselect List field needs to refer to a pre-existing Dropdown
list from which it takes its values.

After saving a new field, you can view and edit information about the field in the Custom Fields list for
the module. In the Layout Editor, you can place the custom field on the module’s Edit/View layout by
dragging it to the new location from the Available Fields list, just like any other field. Custom fields are
shown at the top of the list in their own section. (See the section on the Layout Editor.)

Section 7: System Administration Page 179


1CRM System 8.6 Implementation Guide Table of Contents

Figure 134: Creating a Custom Field

Dependent Fields
On the left of the Figure above we see that a Custom field (and using the Module Designer, even
standard fields) can have a Depends On setting. You can use this to make a field be visible only
when it is needed. The Depends On field has to be a Dropdown type field, and you can select one or
more values for that field that will cause your custom field to be visible.
As the controlling field value is changed, you will notice that the edit and detail view screen layouts of
the module concerned are adjusted dynamically to either show or hide the field that depends on it. By
defining multiple dependent fields you can make whole sections of a screen be shown or hidden -
and any blank extra rows in the screen form will be suppressed to keep things looking good.
A special feature of Dependent Fields come into play when it is itself a Dropdown field - as shown on
the right side of the Figure above. By changing the Data Type to Dropdown, we see that Conditional
Options are now displayed. This provides you with the capability to choose which dropdown values
are offered on your custom field, depending on the value of the controlling field. You can choose a
variable set of values to be shown for each value of the controlling field.

7.5.3 Dropdowns Editor


The Dropdowns Editor is a very valuable tool for the Administrator. It permits the values in all of the
dropdown boxes in the system to be edited. Existing options may be changed or deleted, and new
options may be added. For example, when defining a new Account, in the Account Type field, the
user must normally choose from a set of dropdown options, including Analyst, Competitor, Customer,
Integrator, Investor, Partner, Press, Prospect, Reseller, and Other. By using the Dropdowns Editor,
this set of options may be altered, with more or less options, and different option values.

To use the Dropdowns Editor, choose the language you want, and typically leave the Module
dropdown set to Application. Select a name of a dropdown list from the Dropdown Name control. For
example, account_type_dom is the first option on this list. If you select that option you will see a list
of the Account Type options as shown below.

Section 7: System Administration Page 180


1CRM System 8.6 Implementation Guide Table of Contents

Figure 135: Using the Dropdowns Editor


The editing functions available to you are:
• On each row of the list, you will see a icon on the right hand side, to remove that option.
• The control on the left of each row allows you to drag an option to a higher or lower
position on the list.
• Simply click on the Display Value for an option to edit it. Typically you do not need to change
the Database Value.
• Use the ✚ add row button to add a blank row below whichever row is currently highlighted.
• Use the ✚ Create Dropdown button to define an all-new dropdown list.
• Simply click on the Save Dropdown button when your changes are finished, to save them.
• Once a dropdown list has been modified from its default values, it will be shown in the list of
dropdowns with an asterisk against it. This is a very handy way to tell which dropdown lists
have been modified. If you re-edit a modified dropdown list, you will notice a new Reset
Dropdown button you can use to reset just that one dropdown list to its default values.
• Use the Reset All Dropdowns button (with care!) to reset all dropdown lists to their
default values.
Note: There are a number of drop-down lists within 1CRM that must not be edited, or else some
aspects of system function will be compromised. These lists may only be altered in conjunction with
custom software development work on the system. These sensitive drop-down lists are:
• Opportunities module – Sales Stage, Probability %, and Forecast Category
• Quotes module – Quote Stage
• Projects module – Status
• Cases & Software Bugs modules – Status
• Meetings, Calls & Tasks modules– Status
Note: There are also a few special characters that you should not use in a drop-down entry. These
sensitive characters are “ < > and &. You can use the characters in the Display Value, but not in the
Database Value field.

Section 7: System Administration Page 181


1CRM System 8.6 Implementation Guide Table of Contents

7.5.4 Smart List Tab Sharing


One of the best features of 1CRM is the ability to define your own Smart List tabs in module list
views. This screen enables the Administrator to create new Smart Lists, and to manage the sharing
of new or existing Smart List tabs between users.

For example, you might define a Smart List tab for the Accounts module called AR List, and set it to
show only Accounts with a Non-Zero Balance, sorted Descending on Balance Receivable. This might
well be useful to all users of the system, and so may be assigned to All users. It will now become
visible as a new Smart List tab in the Accounts list view for all users.

Figure 136: Smart List Tab Sharing

7.5.5 Studio: Workflow


Workflows allow you to automate various aspects of how your business works. If you have some
normal process that you follow every time a new lead comes in, every time a support contract gets
close to expiring, every time you make a sale - Workflows are the quick and easy way to make sure
these things happen all by themselves.
Note: Workflows are only performed if the system Scheduler is operating, and the Process
Workflows scheduler task is enabled.

Workflows are defined in the Workflow module – which may only be accessed from the Admin
screen. Once you are in the Workflow module, click on the Create Workflow shortcut to create a new
Workflow. Within the Workflow edit view, there are four main sections:

1. Workflow Name, Trigger Module and Status:


• Enter a name for the Workflow.
• Set the Workflow to Active or Inactive.
• Select the module you want to use to trigger the Workflow. (Sections 3 and 4,
Conditions and Actions are shown once this module is selected.)
2. Trigger Action: In this section, you begin to define the Workflow.
• Trigger Action: Saved or Deleted - Choose if the Workflow is triggered when a
record in the selected module is Saved, or when it is Deleted.

Section 7: System Administration Page 182


1CRM System 8.6 Implementation Guide Table of Contents

• Applies to: Choose if the Workflow is to be applied to to New Records Only, Existing
Records Only, or New Records and Existing Records in the selected module.
• Execute as: Choose who is seen as the ‘current user’ while this workflow is
executed - User who triggers workflow, Administrator, Record owner.
3. Conditions: In this section, you define the conditions in which the Workflow should be
performed when a record in the module you select is Saved, or Deleted. You can add any
number of filters, or filter groups, which are based on the values of any of the fields in the
record structure for the module you selected.

Individual Filters: (see also section below - Workflow Filter Details)


1. Under Add Conditions use the button to add new individual
conditions (filters).
2. Next select any Field in the trigger module from the scrollable popup list.
3. Then for each Filter set the When dropdown to one of:
• Value changed to
• Check current value
• Check previous value
• Value is changed
• Value is unchanged
4. Finally set the Filter value as desired, to match the When comparison you selected.
Note: If multiple individual conditions are defined, the conditions are all AND’d together,
meaning that they must all be satisfied for the workflow to trigger.
Note: Use the control to the left of each individual condition to drag it up or down in
your list.
Note: Use the control to the right of each condition to remove that condition.

Filter Groups:
1. Use the button to add a new filter group - a grouped set of
conditions. When you add a new Filter Group, you will see a new line added
beginning Group: with a dropdown control with the options as follows:
• All Of: All the conditions indented under the Group must be true
• Any Of: Some of the conditions indented under the Group must be true
• None Of: None of the conditions indented under the Group may be true
• Not All Of: Not all of the conditions indented under the Group may be true (so if
only some, or none of them are true, that’s fine)
2. After creating a Filter Group, you can then add filter conditions to that group with the
button.
Note: Use the control to drag a filter left and right, to indent it under a filter group, or
un-indent it from one.

Section 7: System Administration Page 183


1CRM System 8.6 Implementation Guide Table of Contents

Figure 137: Administration - Studio: Workflow Conditions

4. Actions:
• You can perform a single action, or create a list of multiple actions.
• You can add actions using the ✚ add action link (below any existing actions).
• Clicking on ✚ add action produces a popup dialog box to define that action. Once
saved, the action details are added to an assembled list of actions in this panel.
• As defined in the popup dialog box, each of these actions may be performed after
the trigger event, and some of them optionally may be performed after a delay.
• You can edit any existing action using the control to the top right of the action.
• You can remove any existing action with the control to the top right of the action.
There are ten different types of action that may be performed if the conditions are met for the
Workflow. Your choices for types of action are as shown in this Figure:

Section 7: System Administration Page 184


1CRM System 8.6 Implementation Guide Table of Contents

Figure 138: Administration - Studio: Workflow Available Actions

An example of creating a Workflow is shown in the figure below. In this example, assigned Leads that
have a promising Temperature which have been ignored for two days cause a reminder email to be
sent to the user to whom the lead is assigned. Note the ability to email the user responsible for the
workflow being triggered. The use of an email template allows variable fields to be inserted in the
email body content.

Figure 139: Administration - Studio: Workflow Edit View

Section 7: System Administration Page 185


1CRM System 8.6 Implementation Guide Table of Contents

Workflow Filter Details


Each individual workflow condition is set by choosing a Field, a When dropdown option, and
sometimes also some Filter details. To experiment with this, create a new Filter, then choose a Field.
Next choose a When value from the options:

• Value changed to
• Check current value
• Check previous value
• Value is changed
• Value is unchanged

When setting the Filter value, the rules will vary depending on the Field Type of the Field you have
selected, as well as on the When value you selected. For When values of Value is changed, and
Value is unchanged, you will need no Filter value at all. For the other When values (Value changed
to, Check current value, Check previous value):

• For Field Types Text, Multiline Text, Email Address, Fax Number, Phone Number, Name,
Skype ID, and URL your Filter consists of a dropdown selection from these options:
Contains:, Equals:, Starts with:, Ends with:, Doesn’t contain: and Not equal:, followed by a
text field to test against.
• For Field Types Status Indicator or Drop-down Selection your Filter consists of a dropdown
selection from these options: Any Value, Equals:, Not equal:, Any of:, None of:, Empty, and
Not empty, followed by a selection from the options contained in your dropdown list.
• For True or False Fields your Filter options are simply (none), Yes or No.

Workflow Date Filters


For Field Types Date or Date & Time the workflow Filter values have some interesting and powerful
options. Initially you see these options:

Figure 140: Administration - Studio: Workflow Date Filters (1)

• If you select Any Date, Empty or Not empty then the filter is complete.
• If you choose Select month... then simply choose one of the 12 months, and the filter is
complete.
• If you choose Current... then simply choose one of the options (day, week, month, quarter,
year, fiscal quarter, fiscal year) and the filter is complete.

Section 7: System Administration Page 186


1CRM System 8.6 Implementation Guide Table of Contents

• If you choose Before date... or After date... then you have a single date comparison filter. You
will be prompted to choose one of these options:

Figure 141: Administration - Studio: Workflow Date Filters (2)

- Select date... displays a calendar picker to choose a specific date.


- Select date field... lets you choose the value of any date field in the current module.
- Today is simply today’s date at the time the workflow is executed.
- Start of... lets you choose a date at the start of the current day, week, month, quarter,
year, fiscal quarter, or fiscal year.
- End of... lets you choose a date at the end of the current day, week, month, quarter,
year, fiscal quarter, or fiscal year.
- Custom offset... lets you choose a date which is a specified number of days, weeks,
months, quarters, years, fiscal quarters, or fiscal years either before or after the current
date (there is a dropdown for plus or minus).

• If you choose Select date... or Select date field... from the list in Figure 140 then you have a
dual date comparison filter. If you choose Select date... this displays a calendar picker to
choose a specific date for your first date. If you choose Select date field... this lets you
choose the value of any date field in the current module as your first date. In either case you
then need to specify your second date, by using the next seven options presented:

Figure 142: Administration - Studio: Workflow Date Filters (3)

In the figure above, we see the first date to be used in the comparison (in this case Email
Opt in Date) followed by the choice of seven comparison options. Simply select one of these
options, and the filter is complete.

- Selecting To date... sets the second date to a specific date.


- Selecting To date field... sets the second date to the value of the selected date field.
- Selecting To start of... sets the second date to the start of the current day, week, month,
quarter, year, fiscal quarter, or fiscal year.

Section 7: System Administration Page 187


1CRM System 8.6 Implementation Guide Table of Contents

- Selecting To end of... sets the second date to the end of the current day, week, month,
quarter, year, fiscal quarter, or fiscal year.
- Selecting Within range... lets you choose a date range specified as a number of days,
weeks, months, quarters, years, fiscal quarters, or fiscal years before or after the date
selected as the first date. The setting shown below indicates a 4-week period from 2
weeks before today to 2 weeks after. The dropdown control also allows you to select
Next or Previous, to choose just the 2 weeks before or after the selected date.

Figure 143: Administration - Studio: Range Date Filter (1)

- If you choose To custom offset... ... you can set the second date as a number of days,
weeks, months, quarters, years, fiscal quarters, or fiscal years either before or after the
current date (there is a dropdown for plus or minus).
- Selecting Done simply means that the two dates are set to the same date - i.e. the date
range is simply that one date.

• If you choose Offset date... from the list in Figure 140 then you have a dual date comparison
filter. For the first date you have a choice of three options:

Figure 144: Administration - Studio: Offset Date Filter

- Start of... lets you choose a date at the start of the current day, week, month, quarter,
year, fiscal quarter, or fiscal year.
- End of... lets you choose a date at the end of the current day, week, month, quarter,
year, fiscal quarter, or fiscal year.
- Custom offset... lets you choose a date which is a specified number of days, weeks,
months, quarters, years, fiscal quarters, or fiscal years either before or after the current
date (there is a dropdown for plus or minus).
When selecting the second date you have the same options as shown in Figure 140 above.

• If you choose Within range... from the list in Figure 140 ... you may choose a date range
specified as a number of days, weeks, months, quarters, years, fiscal quarters, or fiscal
years before or after the current date. The dropdown control allows you to select Range,
Next or Previous, to choose just a period before or after the selected date or a range each
side of that date.

Figure 145: Administration - Studio: Range Date Filter (2)

Section 7: System Administration Page 188


1CRM System 8.6 Implementation Guide Table of Contents

Perform After A Delay - Unique Option


The ability of a workflow to perform an action After a delay has a Unique checkbox option. To
understand this option better, let’s consider an example. If Contacts is selected as the Trigger
module, and a condition of After a delay: 5 Days is defined on the Last Activity Date field When Value
is Changed - what happens if the value of Last Activity Date changes once each day for a few days?

The first time it happens a pending action is created for 5 days later. But then if the next day the
value changes again, another pending action would be scheduled. To prevent multiple pending
actions from being queued up and all of them getting executed over time, the Unique flag will ensure
that as a pending action is scheduled it replaces any previous pending actions on that specific
workflow. So in this example the action would only be performed after there has been a solid gap of 5
days since the last activity with this Contact, as long as the Unique option has been selected.

7.5.6 Studio: Configure Group Tabs


This function is used to define the names of tab groups, and the set of modules within each group. It
has an easy to use drag and drop interface.

7.5.7 Studio: Configure Module Tabs


Both system administrators and users can easily configure which modules are available within the
1CRM application. In the Configure Tabs administration option, administrators can define which
modules will be available, and which will not, for all users.

Users can then further modify their own personal module tab settings in the Display Options tab of
the My Account screen. Any tabs that an administrator removes cannot be added back by a user.

7.5.8 Studio: Rename Module Tabs


Using this function, as Administrator can rename the module tabs that display for all users. In the list
of modules, you can click on the names in the right-hand column of the list to edit the name. The
name in the left-hand column will remind you what the value used to be.

7.5.9 Studio: Module Designer (Enterprise Edition Only)


The Module Designer Administrative function is used to define new custom modules, their fields and
their relationship to existing modules. As well, it enables the Administrator to edit (for both custom
and standard modules) which fields appear on the Mass Update panel, which fields are tracked in the
ChangeLog, and which fields are required. In many ways a more accurate name for this function
might be the System Metadata Editor (but we decided to go for 5 syllables not 9).

When the Administrator first enters the Module Designer, an initial screen is displayed as seen in
Figure 146. Your options are:
• To create a new custom module, just click on the Create Module shortcut.
• To make changes to an existing module, click on the link for that module.

Section 7: System Administration Page 189


1CRM System 8.6 Implementation Guide Table of Contents

Figure 146: Module Designer (Enterprise Edition Only)

Next, if you choose to make changes to an existing module, you will see this screen:

Figure 147: Module Designer (Enterprise Edition Only)

• To edit an existing module definition for a standard module (or a custom module you have
already defined), just click on the Edit Module link for that module
• To edit the existing fields for a standard module (or a custom module you have already
defined), simply click on the Edit Fields link for that module. You can also add new custom
fields with this option. Note that custom fields and standard fields are indistinguishable in this
list, as they are treated in exactly the same way.
• To edit the relationships for any module, just click on the Relationships link for that module.
• To edit the subpanels for any module, just click on the Subpanels link for that module.
• To edit the default List View filters for any module, just click on the List Filters link for that
module.

Section 7: System Administration Page 190


1CRM System 8.6 Implementation Guide Table of Contents

Create Module / Edit Module


When either using the Create Module shortcut to create a new module definition or clicking on the
Edit Module link for an existing module you see the same sort of screen displayed, as shown below:

Figure 148: Creating a Custom Module

For an existing module, the Module Name is already defined, and not editable. Each module also has
a Default Tab Group, a Module Icon file, and a Module Title. An Access Level is also defined for each
module, which may be set to either Editable or Fixed. Most normal user-accessible modules have the
value Editable. Example of modules with a Fixed Access Level are Currencies, Monitored Email
Accounts, Outbound Email Queue, and Users - all used by administrators.

Once you have created a new module, you then need to go to the main screen of the module
designer and define the Fields, Relationships and Subpanels for your new module. It’s a good idea to
study this type of data for an existing module before implementing your own. Then you can use the
Layout Editor to define the Edit and List view layouts for your new module.
Note: It is entirely possible to damage your 1CRM installation through the use of the Module
Designer, as it is so powerful. Be sure to always use it in a planned session, and back up your entire
system first. Then test any new modules and existing modules once you have finished. Roll back to
the backup if you have any concerns. And always test on a ‘sandbox’ installation first. New modules
you add can never be removed - make sure you understand that and proceed with caution!

Section 7: System Administration Page 191


1CRM System 8.6 Implementation Guide Table of Contents

Edit Fields
The Field Editor (see Figure below) lists all the fields in the selected module: the field name, the label
to be displayed on that field, and the field type.

Figure 149: Editing a Module’s Field Definitions

Section 7: System Administration Page 192


1CRM System 8.6 Implementation Guide Table of Contents

Your options include:


• Add a new field by clicking on the Create button.
• Edit the values for an existing field by clicking on that item in the list (see Figure 150).
• Click on Save when you have completed your changes.

Figure 150: Editing a Field

When editing a field definition, first select the Data Type of the field from a dropdown list. 1CRM
supports 21 different kinds of optional fields, which are:

• Text • Multiselect List


• Text Area • Date
• Integer • Date & Time
• Decimal • Web Link
• Percentage • HTML
• Checkbox • Calculated
• Email • Related Record
• Phone Number • Value From Related Record
• Item Number • Currency
• Dropdown • Name
• Status

Next set the Field Name, Field Label (the label displayed on screen), Audit Enabled? (should this
field be tracked in the Change Log?), Personal Data? (does this field need to be treated as sensitive
Personal Data subject to General Data Protection Regulations?), Mass Update? (should it appear on
the Mass Update panel for this module?), Required Field?, and Default Value. (A valid field name
must start with a letter, followed by zero or more letters, digits and underscores.) Merge Duplicates
determines if this field can be used to detect and control the merging of duplicate records.
Note: Be extremely cautious if you define a custom field, and set it to Required, but do not define a
Default Value. This can lead to issues such as the inability to save new items in the module involved,
as the record is deemed invalid with no value in the required field. Unless there is some critical
reason not to, always define a default value for required fields.

Some field types have different fields you will need to fill in. For example Text and Integer fields have
a Max Size value, and a Dropdown or Multiselect List field needs to refer to a pre-existing Dropdown
list from which it takes its values.

After saving a new field, you can view and edit information about the field in the Custom Fields list for
the module. In the Layout Editor, you can place the custom field on the module’s Edit or View layout
by dragging it to the new location from the Available Fields list, just like any other field.

Section 7: System Administration Page 193


1CRM System 8.6 Implementation Guide Table of Contents

Special Custom Field Types

Calculated Fields
Calculated fields are an especially powerful type of custom field. An example of their use is shown in
the Figure below.

The bottom of the popup panel includes a scrollable list of the available Functions, and an example
of their use is shown as a tooltip. A list of Fields available for you to use in your calculations is also
displayed. Just build your Formula by clicking on Functions and Fields, and by typing in any numeric
or text constants, additional parentheses, and any spaces you want for readability.

The Format field is used to specify the data type in which you wish the result to be stored - for
example you might want a numeric result to be expressed as a percentage, or a text result to be
evaluated and stored as a decimal number.

Figure 151: Calculated Fields


You can use a function call as an argument to another function. For example, in the formula:
• add(12, 2)

Here 12 and 2 and are arguments or parameters. You can insert another function call in place of
either of them, e.g. :
• add (multiply(3, 4), divide(10, 5))

The value of your custom field is the result of evaluating the formula you enter. Each formula must
have a top-level function, but as in general programming or mathematics it can use other functions
as its arguments. That creates a nested structure, and this nesting can be of arbitrary depth.

Section 7: System Administration Page 194


1CRM System 8.6 Implementation Guide Table of Contents

Numeric and Text Constants

Numeric constants may be included in your formulas, as may string constants in double quotes.
Numeric constants may be integer or floating point values, and floating point values smaller than one
may be written without a leading zero:

• 12
• 12.345
• 0.1234 ( or .1234)

Numeric constants may also have an optional sign:


• -12
• -0.5657
• +15
• +.56

Available functions include: add, subtract, multiply, divide, pow, max, min, floor, ceil, equal, abs, log,
exp, negate, round, ifElse, ifNull, strlen, concat, stringToUpper, stringToLower, and substring.

Numeric functions:

• add(Number n, ...) : Returns the sum of the given numbers, for example: add(2, 1, 3) = 6
• subtract(Number a, Number b, ...) : Returns a minus b, for example: subtract(10, 5, 2) = 3
• multiply(Number n, ...) : Multiplies the supplied numbers, for example: multiply(2, 1, 3) = 6
• divide(Number a, Number b) : Return a divided by b, for example: divide(8, 2) = 4
• pow(Number base, Number exp) : Returns base raised to the power of exp, for example:
pow(2, 3) = 8
• max(Number n, ...) : Find the highest value among the given arguments, for example: max(2,
4, 7) = 7
• min(Number n, ...) : Find lowest value among the given arguments, for example: min(2, 4, 7)
=2
• floor(Number n) : Returns the next lowest integer value by rounding down the value if
necessary, for example: floor(4.3) = 4
• ceil(Number n) : Returns the next highest integer value by rounding up the value if
necessary, for example: ceil(4.3) = 5
• equal(item1, item2) : Returns true if item1 is equal to item2, for example: equal("hi", "hi") =
true, equal(1, 2) = false
• abs(Number n) : Returns the absolute value of the number, for example: abs(-2.5) = 2.5
• log(Number arg [, Number base]) : Returns the supplied base Log of arg, for example:
log(100, 10) = 2
• exp(Number arg) : Returns the value of e (the base of natural logarithms) raised to the power
of arg, for example: exp(0) = 1
• negate(Number n) : Returns the negated value of n, for example: negate(5) = -5
• round(Number n [, Number decimals]) : Rounds a number to a given number of decimal
places, for example: round(12256.24, 1) = 12,256.2

Logical functions

• ifElse(Boolean c, val1, val2) : Returns val1 if c is true or val2 if c is false, for example:
ifElse(true, "A", "B") = "A"
• ifNull(arg, default) : Returns default if arg is a null (undefined) value, for example:
ifNull(NULL, 0) = 0

Section 7: System Administration Page 195


1CRM System 8.6 Implementation Guide Table of Contents

String functions

• strlen(String s) : Returns the length of the given string, e.g. strlen("Hello!") = 6


• concat(String s, ...) : Concatenate strings, e.g. concat("Hello", " ", "world!") = "Hello world!"
• stringToUpper(String s) : Make a string uppercase, e.g. stringToUpper("Hello") = "HELLO"
• stringToLower(String s) : Make a string lowercase, e.g. stringToLower("Hello") = "hello"
• substring(String s, Number offset [, Number len]) : Return a portion of a string from position
offset spanning len characters, or to the end of the string, e.g. substring("Hello", 2, 1) = “e"

Web Link and Email Fields


Web Link and Email fields both appear on detail view screens as links. Email fields link to an email
compose window with the To: address pre-set to the email address provided. Web Link fields link to
the URL provided.

Related Record Fields


Related Record fields link to a related record in another module. When defining the field, you need to
choose the Related Type. This is the module in which you will point to a record, which might be
Contacts, Accounts, Leads, or just about any other module in the system. On an Edit view, a Related
field looks like this: Here we have set Related Type to Leads.

If you like you can leave Related Type set at the default value ** Dynamic **. This creates a Dynamic
Related field, which looks like this in an Edit view: Here you see a
prefix of the module type, which is a dropdown the user can choose from. In this example it has been
set to Meetings, and is followed by a selected meeting.

Value From Related Record Fields


Value From Related Record fields will display any field from a record related to the current record.
First choose from the Related Record dropdown - it shows a list of all module types linked to the
current module. Then just choose the Field you want to display from that module.

Name Fields
Name fields are fairly simple. They are in general just the same as a normal text field. But when
displayed on a list view, Name fields will be shown with a hyperlink to the detail view of the item.

Status Fields

Status fields are similar to dropdown fields, in that they require you to specify a dropdown list which
contains the set of option values for the field. An example list to choose might be bug_status_dom,
or you can make your own list. These fields are displayed as status badges on detail and list views.

Item Number Fields


Item Number fields are basically the same as a normal text field, but they are displayed in a font
more like a Courier - such as 10055-017.

Section 7: System Administration Page 196


1CRM System 8.6 Implementation Guide Table of Contents

Edit Relationships
You can edit the relationships between the various modules of 1CRM using the Relationships link for
each module on the main Module Designer screen (see Figure below). To add a new relationship,
simply select a module from the dropdown, and then click on .

Figure 152: Editing Relationships

As seen above, the screen offers three columns: Related modules, the internal names for the tables
used by those related modules, and the names of the relationship tables used between the modules.
Note: While editing Relationships, you can remove new ones you have added in error. But once you
save that screen, any added Relationship is permanent. So again, as with all aspects of the
Module Designer, make sure you know what you are doing by planning carefully first. And back up
your entire system every time before you have a session with the Module Designer.

Section 7: System Administration Page 197


1CRM System 8.6 Implementation Guide Table of Contents

Edit Subpanels
You can edit the subpanels to be displayed on the detail view screen for a module by using the
Subpanels link for that module on the main Module Designer screen (see Figure below).

Figure 153: Editing Subpanels

Using this screen, for each relationship defined for the selected module to another module you can
choose if a subpanel will be displayed for that related module on the detail view of the selected
module. You can also set a specific name for that subpanel - it does not have to remain set to the
default value of the module name.

Subpanels & Relationships


• Subpanels may be created from two types of relationships: One-to-many and many-to-many.
• One-to-many relationships are created by a Related value field. The module owning the field
is on the many side, and related module is on the one side. The subpanel for this sort of
relationship is always in the module that is on the one side
• Many-to-many relationships are defined either in core 1CRM software, or created using the
Relationships tool in the Module Designer. Such relationships may have subpanels in both
related modules.
• One-to-many relationships only have Create buttons in the corresponding subpanel, while
many-to-many have both Create and Select Existing buttons.

7.5.10 Studio: PDF Form Designer (Enterprise Edition Only)


The PDF Form Designer allows you to create new designs for the PDF forms produced by 1CRM.
While the Professional Edition is supplied with standard forms for Invoices, Quotes, Service Work
Orders, Expense Reports, Timesheets, etc.. the Enterprise Edition lets you use these standard
forms, or create your own new forms. You can create new forms either from scratch, or by copying
standard forms and then modifying them.

Section 7: System Administration Page 198


1CRM System 8.6 Implementation Guide Table of Contents

New forms are visible to the user when using the button on the detail view of the modules
listed in the figure below:

Figure 154: Administration – PDF Form Designer - List View

While you can certainly create new PDF forms using the Create PDF Form shortcut, it is usually
easier to create one by duplicating an existing PDF Form, saving the copy under a new name, and
then proceeding to edit that copy.

To make a new form that way, just click on an existing form from the relevant module as shown on
the list view as seen above. In the Figure below we have clicked on the form Default Quote, and we
see the Form Designer detail view with that form in it. To start making our own customized Quote
Form, we just click on the Duplicate button.

You cannot edit the standard PDF Forms, but by clicking on the Duplicate button, you will see the
Edit view of the PDF Form Designer, with the existing Default Quote form definition in it, ready to be
edited and saved off as a modified copy of that standard form.

Note: All PDF forms include a field called Order. This controls the order in which the forms are listed
in the dropdown list when using the button in the detail view of the relevant module. Set
Order to 1 for the form you wish to be the default, and set the Order value to a value greater than 1
for all other forms for that module. Typically when you define a custom PDF for a module, you will set
its Order value to 1 so that it will become the default form for all users.

Section 7: System Administration Page 199


1CRM System 8.6 Implementation Guide Table of Contents

Figure 155: PDF Form Designer - Detail View

In the Edit view, you can perform the following functions:

• Set a new name for the form.


• Select an existing record from the related module, and Preview it both on-screen in the edit
form and as a generated PDF.
• Un-check the Simplify Styles for Editing control (enabled by default) - When disabled, this
control ensures that all colour combinations you make for foreground and background
colours will be displayed on-screen in the edit mode. When enabled, a simplified set of
colours is used, to ensure visibility in case you have set colours that make editing difficult.
• Click in an open area of the form. The resulting popup will allow you to add a data field, a
horizontal Line, an Image, or a Text field. (Figure 156, beside the address in the editing grid.)
• Click on an existing element of the form. This will allow you to replace or delete an image. It
will allow you to set the colour or width of a line, or delete it. On a Text or Data field you can
delete the field, or edit any of the values shown in Figure 157 (border width and colour,
foreground and background colours, font type and size, bold and italic styles). The Increase
Height on Overflow option allows the field to increase in height if its content more than fills
the field, pushing down all fields below it.

Section 7: System Administration Page 200


1CRM System 8.6 Implementation Guide Table of Contents

• Click in the Header or Footer sections of the form, which offer additional special data fields
for Formatted Address, Total Pages and Page Number, Terms, Date and others, plus Text,
Image and Line objects.
• Save the form.

Figure 156: PDF Form Designer - Edit View

To re-size any item on the form, use the handle on the bottom right corner and drag to adjust the
size. The height and width values are shown dynamically as you re-size.

To move any item on the form, click on the item and then drag to move it. The x and y co-ordinates of
the item are shown dynamically as you move it.

Section 7: System Administration Page 201


1CRM System 8.6 Implementation Guide Table of Contents

Figure 157: PDF Form Designer - Editing a Text Field


Note: When you add a data field to your form, you can choose any field from the related module -
including any custom fields you may have added. On Invoices you can also add a PayPal button
which allows your client to pay the Invoice by clicking on that button on the PDF they receive.

Adding Related Fields in Headers and Footers


The form above can look a little different when adding a field in the header or footer sections of the
PDF (or in some other sections of the PDF, for some modules). Figure 158 below shows what the
edit box above looks like when clicking in the Header area using the PDF Form Designer.

Figure 158: PDF Form Designer - Adding Fields in Header or Footer Sections

Section 7: System Administration Page 202


1CRM System 8.6 Implementation Guide Table of Contents

In the Figure above the field being edited has an additional Source field at the top of this form. If
Predefined Fields is selected from the dropdown list shown, then the fields that may be selected are
the normal ones. The next option on the list will always be the current module name, in this case
Quotes, allowing any field to be selected from the current record. The remaining options on the
dropdown list will be all available related records - in this case Sales Orders, the Billing Account, the
Shipping Account, the Billing Contact, the Shipping Contact, and Shipping Provider. This can be
remarkably useful for adding in key data from a broader scope of data in your CRM.

Horizontal Section Dividers


As shown in Figure 156, strong black horizontal lines divide different logical sections of the PDF form
as seen in the Edit view. If desired you may click on a section divider (including those for headers
and footers) and drag it up or down to force more or less white space in the design.

Editing Table Sections in the PDF


As you can see in Figure 156, in the section labelled Group 1, small editing controls are visible in edit
mode at the right of a multi-column section (called a Table). Clicking on the pencil icon displays this
sort of screen:

Figure 159: PDF Form Designer - Editing a Table

This dialog box lets you adjust several properties of the table layout and presentation. Additional
controls include:

• Clicking on the + icon lets you add blank columns on the right-hand end of the table.
• You can also drag the vertical dividers between cells of the table left and right, to adjust the
width of each cell.
• Clicking within a cell lets you delete that column of the table, set or change the field
displayed in that column, or change the column title.

Section 7: System Administration Page 203


1CRM System 8.6 Implementation Guide Table of Contents

Editing Header & Footer Sections in the PDF


The standard forms include a formatted address field in the header with rule lines above and below it,
and in the footer a promo for 1CRM with a web link, plus page counter fields, all placed under a rule
line. You can alter these layouts for the header and footer, or remove all the standard content and
replace them completely.

7.5.11 Studio: Configure Personal Data (Not in Enterprise


Edition)
The Configure Personal Data function is used to define which modules contain Personal Data, and to
mark the fields regarded as containing Personal Data.

This function only exists in the Startup, Startup+ and Professional Editions of 1CRM, as the
Enterprise Edition contains the Module Designer which can edit the properties of all fields in any
1CRM module (see Figure 150 within the Edit Fields section of the Module Designer).

7.6 Quotes & Invoices


The Quotes administration functions define the set of available shipping providers and the set of
available tax rates and codes.

The Shipping Provider option is used to define the shipping providers to be used in the Quotes and
Invoices modules. For each new shipping provider defined, the name of the shipping provider and
the status (Active or Inactive) must be entered.

The Tax Rates option is used to define tax rates to be used in the Quotes and Invoices modules. For
each new tax rate defined, the tax name, rate (enter 7, for example, if the rate of tax is 7%), and
status (Active or Inactive) must be entered.

The Tax Codes option is used to define tax codes to be used in the Product Catalog, to classify them
by tax class. For each new tax code defined, the name of the tax code, order (when presenting the
drop-down list), and status (Active or Inactive) must be entered. Then you must relate one or more
Tax Rates to the Tax Code (watch out – many users forget to do this!). What you are creating is a tax
code that says – any products coded like this will have the following tax rates applied to them – for
example, federal taxes, state/provincial taxes, and even municipal taxes where they apply.

7.7 Activities Support


7.7.1 Forum Categories
Forum Categories are defined using this menu option, shown in the Figure below. Forum Categories
must first be defined by an Administrator using this option, then new threads may be created within
these categories. Threads may be linked to Accounts, Opportunities, Cases and Software Bugs.

Section 7: System Administration Page 204


1CRM System 8.6 Implementation Guide Table of Contents

Figure 160: Administration – Forum Categories

7.7.2 News Feeds


The administrator can use this function to manage a list of News Feeds that are easy for users to
search and select for use on News Feed dashlets that they can place on their dashboard pages. A
standard set of News Feeds are included with 1CRM, and the administrator can add News Feeds via
the Create button provided. Typically an organization’s set of available News Feeds might include
general news, business news, and industry-specific news for their industry.

7.7.3 Resources
Meeting Resources are items which you may wish to reserve at the same time you are scheduling a
meeting. They include the following types of resources: Meeting Room, Television, DVD, VCR,
Projector, Projection Screen, Desktop PC, Notebook PC, Conference Phone, and Telephone Bridge.

Resources which are meeting rooms also have a number of attributes which may be checked off for
them: TV, DVD, VCR, Projector, Screen, PC, and Conf. Phone.

When scheduling a meeting, resources may be invited to the meeting, and their schedule checked
for conflicts. In the Calendar module, the calendar Day Grid and Week Grid layouts let users check
for free meeting rooms and other resources.

Section 7: System Administration Page 205


1CRM System 8.6 Implementation Guide Table of Contents

7.8 WooCommerce Integration


(Enterprise Edition Only)
When you select WooCommerce Integration from the Admin screen, you will see this set of
configuration options, once you toggle on the Enable WooCommerce control.

Figure 161: Configuring Your WooCommerce Integration

These configuration values are explained below:


• WooCommerce URL: Set this to the base URL of your WordPress website.
• API Consumer Key: REST API Key from WooCommerce.
• API Consumer Secret: REST API Secret from WooCommerce.
• Assigned Orders To: Orders sync’ed into 1CRM will be assigned to the user you select here.
• Save Order in 1CRM As: You can decide if you want WooCommerce orders sync’ed into
1CRM to arrive in 1CRM as Sales Orders, or as Invoices.
• Sync 1CRM Products: If enabled, 1CRM Products and Categories will be pushed to
WooCommerce to begin the sync process.
• Initial Sync of WooCommerce Products to 1CRM: If enabled, the initial sync will add existing
WooCommerce product catalog items to the 1CRM product catalog.
• Initial Sync of WooCommerce Customers (Accounts) to 1CRM: If enabled, the initial sync will
add existing WooCommerce Customers (Users with type = Customer) to 1CRM as Accounts.
• Sync Customer (Account) Updates to WooCommerce: If enabled, changes to 1CRM Account
data will be sync’ed to WooCommerce to update the corresponding Customer data.
• Initial Sync of WooCommerce Orders to 1CRM: If enabled, the initial sync will add existing
WooCommerce orders to 1CRM as either Sales Orders or Invoices.

Section 7: System Administration Page 206


1CRM System 8.6 Implementation Guide Table of Contents

You normally begin by toggling on the Enable WooCommerce control. Then set the WooCommerce
URL and the API Consumer Key and API Consumer Secret. Then click on the Test Connection
button to see if those basic settings to establish your connection with WooCommerce are working. If
they are, you’ll see the message: Successfully connected with WooCommerce.
Note: You will get the API Consumer Key and API Consumer Secret values from your
WooCommerce system within WordPress administration. Go to WooCommerce > Settings >
Advanced, and follow the instructions here to get the WooCommerce REST API ready for use.
Note: It is critically important that you set permissions for the new API key to Read/Write. Use of the
REST API with the generated keys will follow the WordPress user's roles and capabilities. This
WordPress User related to the API should have privileges within WordPress to view, create and
update Customers, Orders, Products and WebHooks.

Then continue to set the rest of the configuration values as desired, based on the explanations
above. Once they have all been set as desired, click on Save. The 1CRM Scheduler has a Scheduler
task (Synchronize with WooCommerce) for the WooCommerce sync, and this will perform all the
sync actions from 1CRM to WooCommerce. You should make sure this scheduler task is enabled if
you are using the WooCommerce Sync (and disabled if not!).

When that scheduler task runs, it will perform your initial sync. Then on subsequent runs it will
continually update the two systems according to the preferences you have indicated in your
configuration settings. If you ever want to run the Initial sync again for any reason, click on the
Resync All button. Once the scheduler task has run, your Sync Status area will show information in
this format:

Figure 162: WooCommerce Integration - Sync Status

You will note that the initial sync run will create a series of webhooks in WooCommerce, which you
will see on the WooCommerce > Settings > Advanced > Webhooks screen, as follows:

Figure 163: WooCommerce Integration - Webhooks in WooCommerce

Section 7: System Administration Page 207


1CRM System 8.6 Implementation Guide Table of Contents

Note: The WooCommerce integration was tested at the time of release with WooCommerce version
3.8.0 and WordPress version 5.2.4. Also note that these require the use of at least PHP version 7.x
on the server where they are installed.

Field Mapping & Status Updates


When WooCommerce syncs a new account to 1CRM, it sets the 1CRM Account name to the
Company value from the user account in WooCommerce. If that field is empty, it sets Account name
to Lastname, Firstname. Either way it also creates a 1CRM Contact using Firstname and Lastname
from the WooCommerce user.

When WooCommerce syncs product catalog items to 1CRM, note that WooCommerce has no
information about product suppliers, so the new catalog items created in 1CRM will be missing that
information - which you may wish to add using the Mass Update panel on the catalog list view.

When the status of an order in 1CRM (which might be a Sales Order or an Invoice) is updated, the
corresponding order status is updated in WooCommerce. As the status values differ in the two
systems, they have been mapped in this manner:

1CRM Sales Order status updated:

• Ordered ==> on-hold in WooCommerce


• In Manufacturing ==> processing in WooCommerce
• Partially Shipped and Invoiced ==> processing in WooCommerce
• Partially Shipped and not Invoiced ==> processing in WooCommerce
• Shipped and not Invoiced ==> processing in WooCommerce
• Closed - Shipped and Invoiced ==> completed in WooCommerce

1CRM Invoice Updated:

• If 1CRM Invoice Cancelled flag is set ==> cancelled in WooCommerce Status, otherwise
• If 1CRM Invoice Amount Due = 0 and Shipping Stage is None or Delivered ==> completed in
WooCommerce Status, otherwise
• Pending ==> pending in WooCommerce
• Partially Shipped => processing in WooCommerce
• Shipped => processing in WooCommerce
• Delivered => processing in WooCommerce

Section 7: System Administration Page 208


1CRM System 8.6 Implementation Guide Table of Contents

7.9 Subscriptions / Chargebee


Integration
7.9.1 Payment Processor
The 1CRM system administrator uses the Payment Processor screen to configure the link from your
1CRM system to your instance of a Payment Processor system used in conjunction with the 1CRM
Subscriptions module.
Note: At the moment only Chargebee is supported as a Payment Processor system for 1CRM
Subscriptions.

To enable a Payment Processor link for 1CRM, set the dropdown selector to Chargebee.

Next, set your Chargebee site name. You can find your Chargebee site name by logging in to your
Chargebee dashboard and looking at the address line of your browser. For example, if the address
line says "my-company.chargebee.com" then your site name is my-company.

Next enter your Chargebee API key. You can find your API key in the API Keys and Webhooks
section of the Chargebee configuration screen.

Next configure the webhook to 1CRM, within the Chargebee configuration screens. You will need to
enter the Webhook URL, the Webhook User Name and the Webhook Password.

Finally, you can choose to disable calling webhooks over the insecure HTTP protocol, by enabling
the Webhook SSL Required toggle control.

Figure 164: Payment Processor Configuration

Section 7: System Administration Page 209


1CRM System 8.6 Implementation Guide Table of Contents

7.9.2 Defining Plans, Addons, Coupons & Subscriptions


You will need to define in Chargebee all of the data to be used in the Subscriptions module. All of it is
created within Chargebee, but visible within the 1CRM Subscriptions module thanks to the 1CRM-
Chargebee integration.

Your workflow will be along the lines of:


• Create your Plans
• Create your Addons, if any
• Create your Coupons, if any

Then you are free to start defining Customers, and their Subscriptions.

A good place to get started is the Chargebee Implementation Guide. This guides you through the
initial setup of your billing rules and payment methods.

Next, learn about the Building Blocks of Chargebee Subscriptions. This explains the Chargebee
concepts of Customer, Subscription, Plan, Addon, Coupon, Invoice and Transaction.

Plans look something like this: (we show here a selection of 1CRM Subscription Plans, as an
example)

Figure 165: Plans in Chargebee

Plans
A Plan defines the frequency of billing and amount to be charged for a product or service. Each
Subscription is defined by the Plan associated with it, as the Plan contains information regarding the
pricing, the billing cycle, the billing and trial periods of the product.

Pricing model options include Flat fee, Per unit, Volume, Stairstep and Tiered. (More details ...)

Section 7: System Administration Page 210


1CRM System 8.6 Implementation Guide Table of Contents

Addons
To define a service or item that's being offered in addition to a plan, you can make use of an Addon.
These pre-defined components can be specified as one-time or recurring, and also flat fee or
quantity based items. (More details ...)

Coupons
Promotions and incentives play a key factor in driving customers toward a product and to boost
sales. A Coupon defines the benefit being applied, and the period up to which it will be applied, on a
Subscription. (More details ...)

Subscriptions
Subscriptions may be created directly in Chargebee, or they may be created (or edited) using the
1CRM Customer Connection portal, which will update the subscription records within Chargebee.

A Subscription is used for modelling the bundle of items subscribed by a customer. It contains all the
recurring items, applicable credits and a track of all ad-hoc charges to be included in subsequent
billing cycles.

Each Subscription must be associated with a Plan to define the base cost and the billing frequency
(e.g. monthly renewal, yearly renewal, etc). Details such as trial period, duration of the subscription
are inherited from the Plan but can be overridden at the Subscription level.

Any changes to the subscribed items, including billing date, and scheduled changes can be managed
within the Subscription. When an invoice is generated for a Subscription, the required information on
the charges is picked from the Subscription. (More details ...)

Section 7: System Administration Page 211


1CRM System 8.6 Implementation Guide Table of Contents

7.10 Lead Guerrilla Integration


This integration enables Lead Guerrilla Contacts to automatically update 1CRM Leads or Contacts,
and vice versa. The process of linking a 1CRM instance with a Lead Guerrilla instance is as follows:
(We use the example here of a Lead Guerrilla instance at http://example.leadguerrilla.cloud,
and a 1CRM instance at https://example.1crmcloud.com.)

One-Way or Two-Way Sync?


A useful aspect of the 1CRM to Lead Guerrilla Sync is that there are two parts to it - one part in
1CRM, and one in Lead Guerrilla (the Plugin). Should you wish your sync between them to be two-
way, just follow all the instructions below. If on the other hand, you’d prefer it to be only one-way you
can do that too.

• One-way sync: Lead Guerrilla --> 1CRM - Just enable and configure the Lead Guerrilla
Plugin, and do not configure the 1CRM end.
• One-way Sync: 1CRM --> Lead Guerrilla - Just configure the 1CRM settings for Lead
Guerrilla Sync, and do not enable and configure the Lead Guerrilla Plugin.

Configure the Lead Guerrilla Plugin


1. In 1CRM, enable the REST API (see Section 7.8.1). You may also choose whether or not to
Allow API calls via insecure connections (http://).
2. In 1CRM, go to API Clients in Admin (see Section 7.8.2), and create a new API Client. Give it a
name, and set Enabled Grant Types to Client Credentials. Make sure it is Enabled, and select a
user. Requests from Lead Guerrilla will be executed on behalf of the selected user. Save the
record, then change the API Secret. Take a note of the API Secret and the Client ID.
3. In Lead Guerrilla, click on the icon then select Plugins from the Settings menu. Click on the
1CRM plugin, to edit its configuration. Set App ID and App Secret to those from the previous
step, and the 1CRM URL to https://example.1crmcloud.com. On the Features tab, choose to
Sync to Leads or to Contacts - and be sure to coordinate this setting with your choice in the next
section! Then choose to sync all Lead Guerrilla Contacts, or only those in one or more specific
Segments.

Figure 166: Lead Guerrilla - 1CRM Plugin Settings

Section 7: System Administration Page 212


1CRM System 8.6 Implementation Guide Table of Contents

Configure the 1CRM Settings for Lead Guerrilla Sync


1. Within Configuration, select API Settings, and enable the API, then Save the configuration.

Figure 167: Lead Guerrilla - API Settings

2. Now a new option is available in the Lead Guerrilla Settings menu - API Credentials. Select it,
then click New. Make sure Authorization Protocol is set to OAuth 2.

Enter a name, for example 1CRM. For Redirect URI, enter


https://example.1crmcloud.com/index.php?module=LeadGuerrilla

Click Apply, then Save & Close. Note the Client ID (Public Key) and Client Secret (Secret Key).

Figure 168: Lead Guerrilla - API Credentials

3. In 1CRM, go to Lead Guerrilla API Settings in Admin. Check Enable and choose Leads, Contacts
or Contacts and Unconverted Leads to send to Lead Guerrilla - and and be sure to coordinate
this setting with your choice in the previous section! (If you choose Contacts and Unconverted
Leads here, then choose Leads when configuring the Lead Guerrilla plugin.) Next enter the Lead
Guerrilla URL, API Client ID and API Client Secret from the previous step, then Save.
4. In 1CRM, return to Lead Guerrilla Settings and click Authorize. A window opens where you login
and then grant 1CRM permissions to access Lead Guerrilla. The window then closes and the
1CRM settings are saved automatically. You’re all done!

Section 7: System Administration Page 213


1CRM System 8.6 Implementation Guide Table of Contents

Figure 169: 1CRM - Lead Guerrilla API Settings Screen

1CRM / Lead Guerrilla Field Mapping


When the two systems are linked by the integration process described above, the following fields are
mapped by default:

Lead Guerrilla 1CRM


title title
firstname first_name
lastname last_name
company account_name
phone phone_work
mobile phone_mobile
fax phone_fax
address1, address2 primary_address_street
city primary_address_city
state primary_address_state
zipcode primary_address_postalcode
country primary_address_country
website website

In addition the Lead Guerrilla / 1CRM Integration features the extremely useful ability to map 1CRM
Checkbox fields within the Leads module to Tags on Contacts within Lead Guerrilla. Simply create
custom Checkbox fields in the Leads module within 1CRM and matching Tags will be created within
Lead Guerrilla, and the two corresponding elements will sync values with each other.
Note: These 1CRM fields must have names starting with tag_, followed by the tag name, with
spaces replaced with underscores. Field names are limited to using only letters and digits, and
character case matters. For example if you create a field named tag_Sample_Tag within the 1CRM
Leads module, a tag named Sample Tag will be added to Contacts in Lead Guerrilla, and vice versa.

Other fields within Lead Guerrilla Contacts can be mapped to custom fields in 1CRM. Simply create a
custom field in 1CRM with Lead Guerrilla’s field name, prefixed with lg_. For example, to sync the
points field we see on each Contact in Lead Guerrilla, create a corresponding custom Integer field
in the 1CRM Leads module called lg_points.

Section 7: System Administration Page 214


1CRM System 8.6 Implementation Guide Table of Contents

7.11 API and OAuth Settings


7.11.1 API and OAuth Settings
The first three checkboxes on this screen control the 1CRM REST API, which is only available in the
Professional and Enterprise Editions of the system. The first checkbox can be used to disable the
API, in case it becomes a security issue for you for some reason. The second checkbox allows the
API to be accessed via a non-SSL session - the default normally is that an https:// type address is
required.

Figure 170: API and OAuth Settings


Note: The 1CRM Mobile App uses this REST API and so it will need to be enabled for that App to
function. Use the https:// prefix on your access URL in that App - unless you prefer http:// for
some reason, in which case check the option Allow API calls via insecure connections (http://).

The checkbox Enable Basic Authentication typically only needs to be enabled if you are using an
older version of the 1CRM Mobile App, prior to version 1.2, or if for some reason you prefer to allow
users of 1CRM Mobile (or other applications) to login directly with username & password instead of
via OAuth authentication.

Note: In most cases, you should have Basic Authentication disabled. This will require upgrading the
1CRM Mobile App to version 1.2 or newer (and logging into 1CRM in that App using OAuth), but that
is highly desirable for the added security and features. If you develop software internal to your
organization which uses the 1CRM REST API, it may be acceptable to have Basic Authentication
enabled. But otherwise, if you are using any 3rd party applications which access the 1CRM REST
API, disabling Basic Authentication is very highly recommended.

Note: Enabling Basic Authentication does not mean that OAuth authentication is Disabled. When
Basic Authentication is enabled users of the 1CRM Mobile App may login using either OAuth or
conventional Username & Password.

Section 7: System Administration Page 215


1CRM System 8.6 Implementation Guide Table of Contents

Session authentication is an authentication method for embedded 1CRM applications. The checkbox
Enable Session Authentication typically only needs to be enabled if you are using an application of
that nature. It is disabled by default. Authentication is performed by adding the Session ID from
browser cookies to HTTP requests when calling endpoints that require authentication. The request
would be automatically authenticated using the credentials from the current 1CRM session with all
user's ACL rights.

Note that Session Authentication is disabled by default

How Does It Work?


With Basic Authentication, you enter your username and password into an external application (such
as the 1CRM Mobile App) and each time the app needs to read or write 1CRM data it sends your
username and password to 1CRM so it can check your access rights.

With OAuth, you never enter your username and password directly into the external application.
Instead, from the external application you are redirected to login to 1CRM itself via a web browser -
much the same as you would do when using 1CRM normally in a browser. 1CRM then issues an
access token that is used instead of a password. That token is short-lived, and will eventually expire -
but 1CRM can renew that token automatically when it expires, without requiring the user to login
again.

OAuth Private and Public Keys


The Private Key and Public Key fields are the RSA keys for OAuth operation for your 1CRM system.
1CRM has the ability to act as an OAuth server for other applications which have been registered
with 1CRM.

Private and Public keys are generated automatically when 1CRM is installed. The private key should
be kept secret and never disclosed. At any time you can create a new key pair using the Regenerate
Keys button.

The 1CRM Mobile App has the ability to use 1CRM’s OAuth capability to allow you to login to the
Mobile App using OAuth authentication, rather than a simple username and password in the App
itself. This is one illustration of the power of the OAuth authentication to be found within 1CRM.

If you have a software product that uses the 1CRM REST API and you would like it to be added to
the 1CRM App registry so that others may discover your App, please contact [email protected].

7.11.2 API Clients


This screen allows the system administrator to manage the applications allowed to access your
1CRM instance via the REST API found within 1CRM at /api.php.

Applications that access 1CRM data via the REST API are referred to as API Clients. In order to gain
access to 1CRM, an application must be registered either globally or locally (within one specific
1CRM instance).

These two categories are known as Public clients (global) and Private clients (local). Public clients
are known to all 1CRM instances, and are managed by 1CRM Systems Corp. Private clients are
managed by individual customers, only for their own instance. The purpose of Private clients is to
develop API clients internal to a customer's organization.

• Public clients can access any 1CRM instance, and should be registered with 1CRM Systems
Corp.

Section 7: System Administration Page 216


1CRM System 8.6 Implementation Guide Table of Contents

• Private clients can only access one 1CRM instance, and they are registered as an API Client
in that instance only, by the system administrator.
• For Public clients, each 1CRM system administrator must explicitly enable those he wants to
use with his system.

The topic of API clients is inextricably linked to OAuth authentication. When Basic Authentication is
enabled, 1CRM does not know which client it is talking to and will grant access to any client sending
a correct username and password. This is a key reason why clients are discouraged from enabling
Basic Authentication.

Customers manage API clients using this API Clients screen within 1CRM Administration. The
following fields are available for each API Client:
• Name: API client name. Read-only for Public clients, editable for Private clients.
• Publisher: Name of organization responsible for API client development and support. Read-
only for Public clients, editable for Private clients.
• Is Public: Indicates whether the client is Public or Private. Read-only.
• Enabled: Used to enable or disable the API client.
• Enabled Grant Types: Specifies how the API client will gain access to 1CRM. When adding
Private clients, the system administrator should consult with their developer about the
appropriate value for this field. Read-only for Public client, editable for Private clients.
• User: When Client Credentials grant is enabled, the API client will access 1CRM on behalf of
user specified in this field.
• Redirect URL: Client-specific URL to which the user will be redirected after log in. When
adding Private clients, the system administrator should consult with their developer about the
appropriate value for this field.

For customers using Public API clients, your only control is to set them Enabled or Disabled. Any
available Public API Clients will be listed on this screen, and the list will be automatically updated as
new Clients become available.

In some scenarios, an API client may need to provide an API Secret to the API. An API secret should
not be disclosed to anyone except the API client developer. For Private API clients, administrators set
the secret using the Change API Secret button on the API Client detail view. For Public clients, API
secrets are managed by 1CRM Systems Corp.

Figure 171: API Clients Screen

Note: 1CRM Mobile is added as a Public API client automatically, at installation time.

Section 7: System Administration Page 217


1CRM System 8.6 Implementation Guide Table of Contents

7.12 Scheduler Setup


1CRM’s Scheduler runs all timed tasks within 1CRM. Currently, that includes three classes of
activities:
• Retrieving Inbound Email
• Sending Outbound Mass Email, and
• Running Scheduled Reports
Note: For these activities to be performed properly, you will need to setup the scheduler as detailed
in this section.

The scheduler requires that the operating system scheduling mechanism be used to run the
scheduler on a regular basis. For Microsoft Windows, you can use the Task Scheduler. For UNIX,
you can use cron. Examples for both are described here.

For Unix/Linux systems, as a root user, edit the crontab file in /etc, and add an extra line at the end
which reads:

*/5 * * * * <username> cd </srv/www/vhosts/1crm>; </usr/bin/php> scheduler.php

where

<username> is the username that the web server runs as (usually defaults to 'apache' or ‘wwwrun’),

and where

</srv/www/vhosts/1crm> is the path to your 1CRM directory,

and where

</usr/bin/php> is the path to your php executable file.

This will setup a cron job to run the scheduler every 5 minutes. The scheduler will, in turn, check to
see if any of its tasks are due to be run, and will run them as required.

For Windows servers, as a user with Administrator privileges, go to Start > Settings > Control Panel >
Scheduled Tasks. Double-click on Add Scheduled Task. When the Scheduled Task Wizard asks you
for the program you want Windows to run, browse for the php.exe executable under your PHP
installation directory. Continue with the rest of the Wizard, making sure you click on the Daily option
when asked when to perform this task.

Before you click on the Finish button for the Scheduled Task Wizard, check the box that says, Open
advanced properties for this task when I click Finish. A new dialog box displays after you click Finish.
Enter a space and the filename scheduler.php into the Run: box, after php.exe. Now change the text
in the Start in: box to the path to your 1CRM installation directory. Now click on the Schedule tab and
then on the Advanced button. Check the box for Repeat task and specify every 5 minutes with a
duration of 24 hours.

For macOS, create the crontab file using the instructions in the Configure Installation Settings section
of the macOS Installation chapter.

In any case, Windows, macOS or Linux, the scheduler will take care of all timed activities. If any
reports need to be run, it will run them. If any emails have arrived, it will process them and put them
in the inbox for the correct users, with contacts and accounts automatically associated to them. If any
Mass Emails need to be sent out, the scheduler will ensure that they are sent.

Section 7: System Administration Page 218


1CRM System 8.6 Implementation Guide Table of Contents

Mass Email Details


The scheduler processes emails that are scheduled to be sent from within Campaigns. The
templated emails are sent to their recipients by the scheduler, which must be run at regular intervals
to send out the emails at the appropriate time. The user specifies the email template in the
Campaigns module, as well as the sender name, sender email address (recommended to be no-
reply@<your company.com> or something similar), and the time and date to send the email.

When an email is processed, a link is appended to the end of the email for recipients to opt out of
receiving emails. This will link back to a page on the same machine as your 1CRM instance.

To use Email Campaigns, you must first correctly configure the email settings covered in the
administration section Configure System Settings. The scheduler uses the same email server
connection settings. Notifications do not necessarily have to be turned on, but the settings must be
properly configured for recipients to receive emails.

7.13 Calendar Information: Sharing Free/


Busy Information
You can specify settings in Outlook so that the free/busy information from the Outlook calendar for a
user is shared with the user’s Calendar in 1CRM. The settings must be configured on each user’s
computer.

In Microsoft Outlook, select Tools > Options. Then click the Calendar Options button and then click
Free/Busy. Select the Publish at my location checkbox and enter the path for the 1CRM email
account information following the syntax:

http://servername/infoathand/vcal_server.php/type=vfb&source=outlook&email=
[email protected]

where ‘myemail@servername’ is the email address specified for Email Options in the user’s My
Account page in 1CRM. On the My Accounts page in the Calendar Options, the URL for publishing
free/busy information is displayed in Your Publish URL.

For Search location, enter the path for the Outlook account information, such as:

http://servername/infoathand/vcal_server.php/
type=vfb&source=outlook&email=%NAME%@%SERVER%

where %NAME% and %SERVER% are Outlook replacement variables to construct the email
address.

Section 7: System Administration Page 219


1CRM System 8.6 Implementation Guide Table of Contents

8.0 Information Import &


Export
One of the most important aspects of any CRM software is getting the data from your last CRM
system moved across into the new one, and getting the data out of your new CRM system for use in
other applications. Note that this should typically only be done by a system Administrator.

Data may be imported to thirteen different modules throughout 1CRM:


• Users
• Accounts
• Opportunities
• Contacts
• Leads
• Cases
• Product Categories
• Products
• Calls
• Meetings
• Tasks
• Notes
• Targets

It is very important to understand that importing data into your 1CRM system can pollute your system
with poor quality, or badly imported data. In cases like these, it is critical to be able to go back over
your imported data and examine it, and potentially edit or delete it. That’s exactly what the Manage
Imported Data module is for (see relevant section earlier in this Guide).

The above order in which the thirteen importable modules are presented is significant. If you are
importing data from another CRM type of system, you should begin with Users, and carry on through
to Notes, in that order. If you have no data to import for a given module, it is generally OK to skip it,
but important modules like Users, Accounts and Contacts will likely cause problems if you skip them.
This is because the imported data includes information such as Account and Contact names and IDs
which are used to help link all associated data together into a real CRM database, not just a number
of unrelated lists of information.

The recommended import order for the modules listed is critical, as it ensures that no item being
imported will refer to an item in a module that has yet to be imported.

It is also important that if you are migrating full system data across into 1CRM from another CRM-
type system, that you export it all from the other system at the same time (a snapshot, if you like,
across all the modules) and then import it all at the same time. This helps to ensure that all the data
taken together represents a single consistent database.

1CRM supports the importation of various kinds of data from several different popular contact
managers and full CRM systems, such as Salesforce.com, SugarCRM, ACT!, Outlook and most
others.

Section 8: Information Import & Export Page


220
1CRM System 8.6 Implementation Guide Table of Contents

8.1 Full CRM Migration: Database Import


When you use the Database Import shortcut from any of the fourteen modules that support importing
data, you will enter the full database import facility offered by 1CRM, positioned at the current module
within the sequence of fourteen.

Database Import is used to import a series of related CSV files into 1CRM, for the purpose of
migrating an entire CRM database into 1CRM from another product. This tool automatically creates
the relationships between items of data such as Accounts and Contacts, or Meetings and Contacts,
that are so key for using a CRM. When you select this option you will see something like the screen
below:

Figure 172: Database Import - Initial Screen

For now, files may only be imported from several generations of SugarCRM databases or via custom
mappings of generic CSV files, but more options will be available in future releases to import from
other competitive CRM products. If you have already exported a series of CSV files from a
SugarCRM 6.0 CRM, for example, and want to migrate that data into 1CRM, you would click on the
SugarCRM 6.0.x link.
Note: To export the CSV files from SugarCRM systems, you simply go to each module in turn and
use the Export link to export all records from each module.

Figure 173: Database Import - Select CSV File to Import

The Figure above shows you the recommended import order when performing a database migration
from another CRM, and you want all information in the various modules to be linked up once it is
imported: Users, Accounts, Opportunities, Contacts, Leads, Cases, Product Categories, Products,
Calls, Meetings, Tasks, Notes, Targets and Price Books. Simply select from the dropdown list the

Section 8: Information Import & Export Page 221


1CRM System 8.6 Implementation Guide Table of Contents

type of CSV data to import, then choose the file and click on the Import button. You’ll see a screen
such as the one below, asking if imported data should be added to a Target List (for Contacts and
Leads) and if or how duplicate checking should be applied. You’ll also see a screen like Figure 177,
where you map CSV columns to fields in your 1CRM data. Once you have imported one CSV file, the
system defaults afterwards to the next one in the recommended sequence.

Figure 174: Database Import - Duplicate Checking

The system then shows you the results of importing that CSV file, as below. As you import the
various CSV files, the system highlights the CSV files already processed. The system also lists the
modules for which data has been imported on the Manage Imported Data screen as in Figure 176.
Simply carry on importing the various CSV files in the recommended order until you have imported
them all.

Figure 175: Database Import - File Imported Successfully

Figure 176: Database Import - Manage Imported Data

Section 8: Information Import & Export Page 222


1CRM System 8.6 Implementation Guide Table of Contents

Note: You can view, edit or delete any imported data with the Manage Imported Data function in
Administration (see that section in this guide for more information). Selecting the Users module, for
example, would show you a list view type screen for the imported Users, and let you review them,
view their details, edit them, or remove any that were imported in error using the Actions button.
Note: Import operations can take a long time - expect pauses of up to 20 minutes during the process.

8.2 Importing Just Accounts & Contacts


Importing Contacts into 1CRM is fairly straightforward. First you use your old CRM application or
contact manager to export the data into a Comma Separated Values (.CSV) file format. Then you use
the Database Import function within the Contacts module (accessible via the Navigation Shortcuts
Box) to import the data. If a Contact record is imported which refers to an unknown Account, then a
new record is automatically created for an Account of that name.

One thing to watch, however, is that when Account records are created automatically in this fashion,
they are essentially empty – they have associated contacts, but no address or telephone information
is recorded. Because of this, you should typically import your Account data first, creating the records
complete with address and telephone information (plus perhaps Account Type and lots of other
information, depending on your old CRM system). This avoids creating rather empty Account
records, and having to manually add the rest of their information later.

See the sections below for exact steps on exporting and importing Contacts and Accounts.

8.2.1 Export Contacts from Your Current Contact Manager…


We will use Outlook 2003 as an example of exporting contact manager data. Other systems tend to
work in similar ways.

1. Under the File menu, select Import and Export. The Import and Export Wizard dialog box is
then displayed.
2. Select the action Export to a file, and click the Next button.
3. Choose to create a file of the type Comma Separated Values (Windows), and click on the
Next button.
4. Select an Outlook folder from which to export – typically your contacts folder - and click the
Next button.
5. Enter the filename and directory location for the exported file to be created, and click the
Next button.
6. Confirm your intention to export this file by clicking on the Finish button.
7. The desired .CSV file is then created by Outlook 2003. You can view the file easily, using
Microsoft Excel or a simple text editor, to confirm that the data you intended has been
exported.

8.2.2 Import Accounts…


If your Account data is coming in from another CRM system, then typically that system understands
the distinction between a Contact and an Account – that one Account can have multiple Contacts –
and has separate data for each. If, however, your data is being imported from a simpler contact
manager – such as Microsoft Outlook, then the only data available is Contact data, and you will have
to be a bit creative to avoid a lot of manual data entry as described above.

Section 8: Information Import & Export Page 223


1CRM System 8.6 Implementation Guide Table of Contents

If you are importing Account data from a full CRM, proceed now to step 5. If you only have exported
contact data, and need to massage it to act as Account data to be imported, perform steps 1-4 below:

1. Copy your exported Contacts.csv file, and call the copy Accounts.csv.
2. Edit the Accounts.csv file using Excel. First, sort the file on the column which contains the
Company name.
3. Now the more complex part: As you scroll through your data, sorted by Company name, you
will see successive records which have the same company name, because there is more
than one Contact from that Account (in 1CRM terminology!). To avoid multiple copies of the
same Account within 1CRM, you need to delete these duplicates. And to make sure that the
best information is attached to the Account record, you should retain only the contact whose
address and telephone information best represents the Account as a whole.
Also look out for Company names which are similar but not identical due to inconsistencies
in the way the Company name was entered – you should delete all duplicate records except
the one with the Company name spelt exactly as you wish to see it in 1CRM.
4. Now that you have a nice clean set of Account data, save the Excel file as a .CSV file type,
and let’s proceed to import this Account data.
5. Click on the Database Import function within the Navigation Shortcuts Box of the Accounts
module.
6. Specify the Data Source: For ‘massaged’ Outlook files where the field names no longer
match exactly what is exported from Outlook, use the Custom CSV data source.
7. Upload the Export File: Use the Browse button to locate the Accounts CSV data file, and
then click on the Next button to continue.
8. Database Import / Prepare: This screen (see Figure 177 below) shows four columns of data.
Column 2 (Header Row) is the key – this contains the names of the fields being exported
from your old CRM or contact manager. Columns 3 and 4 show example data from the first
two records you are about to import. Column 1 (Database Field) is where you come in – you
need to use all of the drop-down box controls in this column to select the fields within 1CRM
into which each incoming Account field is imported.

Figure 177: Database Import / Prepare

Section 8: Information Import & Export Page


224
1CRM System 8.6 Implementation Guide Table of Contents

Spend some time with this, exploring the names of the incoming fields, and the names of the
corresponding 1CRM fields, until you are sure you have defined the optimum mapping
between them.
9. When you are satisfied you have the field mapping right, click on the Continue button, at the
bottom left of the screen. Before you do this you may choose to select a Custom Mapping
action, and provide a name for this mapping so that it may be used again in future.
10. The Database Import / Execute screen is displayed. It will summarize how many records
were successfully imported, how many were skipped over, and the reasons they were
skipped over.
11. You can now click on Continue. You may want to carry on with importing data for more
modules, or to go to the Manage Imported Data screen to review your new data.

8.2.3 Import Contacts…


Now that you have a set of Account records with fully descriptive data, let’s import your Contact data:

1. Click on the Database Import function within the Navigation Shortcuts Box of the Contacts
module.
2. Specify the Data Source: Select Custom CSV – then click on the Continue button.
3. Upload the Export File: Use the Browse button to locate the data file exported by your
contacts manager, and then click on the Import button to continue.
4. Confirm Fields and Import: This screen (see Figure 177 above) shows four columns of data.
Column 2 (Header Row) is the key – this contains the names of the fields being exported
from your old CRM or contact manager. Columns 3 and 4 show example data from the first
two records you are about to import. Column 1 (Database Field) is where you come in – you
need to use all of the drop-down box controls in this column to select the fields within 1CRM
into which each incoming Contact field is imported.
Spend some time with this, exploring the names of the incoming fields, and the names of the
corresponding 1CRM fields, until you are sure you have defined the optimum mapping
between them.
5. When you are satisfied you have the field mapping right, click on the Import Now button, at
the bottom right of the screen. Before you do this you may choose to select a Custom
Mapping action, and provide a name for this mapping so that it may be used again in future.
6. The Database Import / Execute screen is displayed. It will summarize how many records
were successfully imported, how many were skipped over, and the reasons they were
skipped over.
7. You can now click on Continue. You may want to carry on with importing data for more
modules, or to go to the Manage Imported Data screen to review your new data.

8.3 Importing Leads & Opportunities


Leads and Opportunities are typically only tracked by a full CRM system, not a simple contact
manager. If your old system is Microsoft Outlook or a similar contact manager, then you will have no
data to import. If you are migrating from a full CRM system such as Salesforce.com, then the Lead
and Opportunity data may be exported from that system and imported into 1CRM in a very similar
fashion to importing Contact data, as described above.

Section 8: Information Import & Export Page 225


1CRM System 8.6 Implementation Guide Table of Contents

8.4 Importing Product Catalog Data


When importing product catalog data, you will notice that there are two import modes: Normal Import
and Update Catalog (see Figure below). The first mode performs an import the same way it does for
other modules - it adds a new product item for each row in the source CSV file.
When the Update catalog mode is chosen, another option becomes available, and you will have to
make a selection for the Identify Product By method. Choices are Manuf. Part Number, Vendor Part
Number and Product Name. Your choice of method defines how the product import process will
decide on a match for existing catalog items to update from the data in the CSV file.

When a match in the selected field is found in an existing catalog item, then that item is updated with
information from the CSV file. Otherwise, a new record is created, as per the normal import mode.
Note: If you choose a field for which catalog items do not have unique values, your results will likely
not be what you intended.

Figure 178: Importing Product Catalog Data

Section 8: Information Import & Export Page


226
1CRM System 8.6 Implementation Guide Table of Contents

8.5 Exporting Information


1CRM has quite flexible data exporting capabilities. Essentially all of the 1CRM modules have an
export function, accessed by clicking on the button at the top left of each list view screen,
and choosing the Export option from that dropdown.

In each case, a Comma Separated Values (.CSV) file is produced, which contains all the currently
selected records from the module in use (not just those records currently displayed on the screen).
CSV files can be opened by Microsoft Excel for viewing, or by Notepad, Wordpad, and other text
editors – and can easily be parsed as input files by most software.

A sample portion of a CSV file, exported from the Accounts module and viewed in Excel, is shown in
Figure 179 below. When exporting to a CSV, the columns currently displayed in the list view are what
is written to the CSV file - so you may want to define a custom list view tab that includes the columns
you want to export.

Figure 179: CSV File in Excel

Section 8: Information Import & Export Page 227


1CRM System 8.6 Implementation Guide Table of Contents

9.0 Frequently Asked


Questions
Here are answers to some of the most common questions we get asked by administrators and users:

Q: How do I make 1CRM link incoming emails to a Case?


A: This is the beginning of the normal include/config/local_config.php file:

<?php
// created: 2007-01-13 05:19:13
$sugar_config = array (
'admin_export_only' => false,
'cache_dir' => 'cache/',
'calculate_response_time' => false,
'create_default_user' => false,
'currency' => '',
After adding this option it would be this:
<?php
// created: 2007-01-13 05:19:13
$sugar_config = array (
'case_email_subject' => 'Case ID#: nnnn',
'admin_export_only' => false,
'cache_dir' => 'cache/',
'calculate_response_time' => false,
'create_default_user' => false,
'currency' => '',
"Case ID#: nnnn" is the default setting, and emails with subjects "Re: Case ID#: 12", "Case
ID#: 12", "Whatever Case ID#: 12 whatever" will all match case #12
So if you send out a case-related email, and make sure it has this sort of info in the subject
line, when the reply comes back, it will be parsed as above, and automatically associated
with the case.

Q: Why Is My Upgrade Not Working?


A: Have you checked the latest installation guide, to make sure all the correct settings are set in
php.ini? Settings such as maximum upload file size, maximum time, etc.. - these are very
important.
Have you checked the latest Implementation Guide, to make sure compatible versions of
MySQL and PHP are installed (see the table at the back of the installation chapter for your
server operating system), and that you also have installed the php modules for cURL, LDAP,
IMAP and for MBStrings?
Have you enabled write permissions to the install directory for the user that is the web server
(apache, www, or similar)?
These are by far the most common causes of this sort of issue.

Q: Why do I get the message: Terminated due to a significant change in your IP address?

Section 9: Frequently Asked Questions Page 228


1CRM System 8.6 Implementation Guide Table of Contents

A: This is a security check. IAH captures your IP address and stores it in the session record. On
each page request, the system checks your IP against the one stored in the session. If they
are different, your session will be terminated and you get this error message.
To change this behaviour, use the Admin - System settings page. There is a checkbox -
Validate User IP Address. Un-check it to disable this security check. If you do, however, you
will no longer be able to detect a session hijack.

Q: How do I backup and restore my 1CRM system?


A: See section 7.2.2 on Backups, part of the System Support Tools.

Q: What are some of the special entries in the include/config/local_config.php file?


A: A fairly typical local_config.php file might resemble the following:

<?php return; /* no output */ ?>


config
unique_key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
installer_locked: true
config.is_demo_site: false
site
features
persist_calendar_grid: false
top_logo
primary: files/images/logos/1/image.jpg
install_date: 2013-11-30 19:42:33
base_url: http://75preview.1crm.ca
host_name: 75preview.1crm.ca
timezone: America/Los_Angeles
upgrade_in_progress: null
js_custom_version: 3
accounts_numbering: true
database
primary
type: mysql
host_name: localhost
name: testvalue
user_name: testvalue
password: xxxxxxxx
locale
base_currency
significant_digits: "2"
layout
disable_relative_dates_times: false

While many of these entries simply reflect settings from the Admin - System Settings or
Locale screens, some controls may only be set by editing the local_config.php file:

installer_locked: false : set to false if you want to re-run installer


config.is_demo_site: true : set to true to bulletproof public demo sites
disable_relative_dates_times: true : set to true to disable relative date/times
show_empty_detail_rows: true : set to true to show empty detail view rows

Section 9: Frequently Asked Questions Page 229


1CRM System 8.6 Implementation Guide Table of Contents

accounts_numbering: true : set to true to enable automatic account #’s


persist_calendar_grid: true : set to true to retain calendar grid settings

Note: Make sure that values are only entered under the appropriate section headers. For
example, disable_relative_dates_times: false and show_empty_detail_rows: true may
only be entered under the layout section, and account_numbering: true may only be
entered in the site section. Maintain proper indentation when editing the file - add a tab for
each indentation level.

Q: What is the operating logic for Storage Notifications?


A: Notifications to the CRM client organization (likely their admin user) are as described in
1CRM documentation. The settings they have available are:

• Notify on Storage Low - Enable this toggle switch to have the system send storage
utilization emails
• Notification Type - Notifications are to be based on Available Storage in GB, or as a % of
Total Storage
• Notify on % Used / GB Free - Specify here the number of GB or percentage below which
you wish to be notified
• Notification Email Address - Specify the email address to which storage utilization alert
emails and scheduled storage utilization emails are to be sent
• Receive Scheduled Storage Reports - You may set this to None, or choose Daily, Weekly
or Monthly to receive regularly scheduled reports summarizing the storage utilization of
your 1CRM system.

External storage notifications to the hosting organization (1CRM or one of their hosting
partners) are as follows:

• 1CRM Cloud Instances: Will send notifications if over limits, notifications are sent to
the email_support variable, which is [email protected] by default.
• Partner Cloud Instances: Partner needs to set storage_notify_email and storage_type
variables and set the limits as required. If instance goes over this limit, the notification
will be sent to storage_notify_email.
• Other/On Premise Instances: No external notifications will be sent for storage usage.

The main trigger here will be the global variable ONECRM_CLOUD - if this is true, the
procedure will be followed for 1CRM Cloud Instances, if not, it will look at the storage_type
variable to see how storage should be calculated. If this is empty, it will be treated as per
Other/On Premise Instances.

Q: I’d like to change the image used for the PayPal button on custom invoice PDFs - how
do I do that?
A: You can find and replace that image at include/images/paypal_button.png. The size is
195 x 74 pixels.

Section 9: Frequently Asked Questions Page 230


1CRM IMPLEMENTATION GUIDE

A Comprehensive Guide to Implementing


and Administering 1CRM

You might also like