Customer Management CRM

Customer Management

All of the customer management part (Customer relationship management or CRM) of Integria IMS is designed to support support management by incorporating a database of contacts, companies and contracts. It is designed to be able to carry out an integrated follow-up of the management of support contracts, software licenses and management of their expiration dates. It can even be used to issue invoices, but Integria IMS is not a CRM/ERP (Enterprise resource planning) and it is not designed for it.

To be able to use the CRM, you must first activate it in the visibility options, of the Setup:

We will delete the CRM entry that makes it hidden from everyone (except admin users). In this way, it is already visible to all users.

CRM Permissions

The profile permissions that apply to the CRM are these:

The management of access to CRM information is given by the companies. The owner of a company (we will see later how this is established) is the one who can modify information. Those who belong to the same company as the company owner can also view information. Only those with management permissions can modify data of peer companies (users of the same company). Let's see an example.

User #1 and Manager #1 both belong to the “parent” company, which we will call My company. Customer #A and Customer #B are two companies, customers, managed by User #1 and Manager #1 respectively. We also have a user, User #2, who is a user who has access to support, but not to the CRM part, and who belongs to the company “Customer #A”.

  • User #1, has the following permissions: CRM View and Write.
  • Manager #1, has the following permissions: CRM View, Write and Manage.
  • User #2, does not have CRM permissions.
  • User #1 will be able to see and modify the data related to the company Customer #A since he is its “owner”. You will also be able to see the data related to the company Customer #B since its owner, Manager #1, belongs to the same company as him (My Company). But you can only view, you can't modify anything.
  • Manager # 1 , can see and modify data from both companies since he belongs to My company and also has management permissions.
  • User # 2 cannot see any data, since he does not have access to the CRM.

CRM data

When we talk about “data that a CRM user can see” we are talking about the following elements and their relationship between them:

Companies

The basic element of CRM and the first to be defined is the business or company. The basic tab of a company looks like this:

The “admin” is the owner of the company, and the parent company is the company he “hangs” from. In order for another user to have access, he must be a user associated with that company. Remember that there is a field in the “company” user file:

A company that does not have a “main company” will go free, and only the owner of that company or users with super-administrator permissions will be able to see it. Generally, the first step to work with a CRM is to create the “parent” company of all the employees and make this the company they have in their user file. Then it will be the parent company of the rest of the companies (customers, suppliers, etc.).

The company role is a basic identification to be able to make filters, and you can easily customize the roles from CRMCompaniesCompany Roles. Fields like tax ID, country and address are later used to make invoices.

As in other elements of Integria IMS, it is possible to create custom fields for companies. To do this, from CRM → Companies → Custom fields. Custom fields are grouped into “custom field sections” to be able to view and manage that information by blocks.

Import of companies

The import may be done by means of an export made in Integria IMS (in which the structure should not be manipulated as it is generated in the system) and may be done by means of a CSV file created by hand.

For the first case, the input file will be the same as the one we previously exported, so there are no problems when processing the CSV.

For the second case, a series of parameters must be entered in order, some mandatory and others not, being able to choose empty values for the latter. FieldsThey will be the following following the logical order established by the tool:

  • Name.
  • Address.
  • Tax ID.
  • Country.
  • Website.
  • Comments.
  • Company role identifier.
  • Father's identifier.
  • Manager of the company.
  • Last update.
  • Payment conditions.
  • Custom fields: they must previously exist in your Integria IMS system and must be indicated in order, being able to choose a value, or in case of not wanting to give them a value, blank space

Example:

Test company,,,Spain,,,,,admin,0000-00-00 00:00:00,,Integria,20

Contacts

Contacts are associated with companies, so any Integria IMS user who has access to a company will be able to see their contacts (and their contracts and invoices). The contacts have nothing to do with the users, they are just pieces of information without any access to Integria IMS.

Contracts

Contracts contain various information, in fact several types of contracts can be defined (for example: services, software licenses) and each type can have its own custom fields, similar to what happens in incidents.

To create different types of contracts, we go to CRMContractsContract Types and add or edit any of the existing ones.

Contracts are associated with a company, so a company can have 1 or several contracts. In turn, the contracts can be (or not) linked to one or more invoices. For this we use the External code field:

If we want to link it to several invoices, we will put all separated by commas. In the event that the contract is linked to one or more invoices, we can see the invoices associated with that contract in the tab on the top left:

There are “fixed” contract fields such as the external code (the linked invoice), a short descriptive field (contract reference) that serves to identify it in the lists and where each company can apply its nomenclature, start and end dates and fields to know if the contract is active and the type of contract it is. Then the custom fields appear depending on the type of contract we have chosen.

Generation of contract documents

Using the contract data, we can generate a PDF with said data. This can be used to generate “certificates” or “formal documents” that carry, for example, the contract ID, the client's name, the contract's validity dates, or data that we have entered in the personalized fields.

To do this, from the contract view we will click on the button to generate PDF from template:

And it will allow us to choose between the templates that exist (we can use the ones that come as an example and modify them).

When you generate a PDF document based on the contract, it is automatically attached to the contract, as attachment:

The appearance of the default template is as follows:

To edit this template and modify it (or create a new one), we will use the template editor that is in CRM → Contracts → Edit template. The template is nothing more than an HTML that uses macros to replace contract data. We can use images and text simply by copying/pasting the same from another source. We can also use native HTML if we know how to use it for layout.

The macros that can be used in the contract templates are the following:

  • _id_contract_ : Contract identifier.
  • _name_contract_ : Contract reference (the small descriptive field).
  • _contract_number_ : External number (invoice number).
  • _contract_description_ : Long description of the contract.
  • _date_begin_ : Start date.
  • _date_end_ : End date.
  • _id_company_ : Company identifier.
  • _private_ : Whether it is private.
  • _id_status_ : Contract status identifier (0 inactive, 1 active).
  • _name_status_ : Name of the status.
  • _company_name_ : Company name.
  • _company_address_ : Company address.
  • _company_fiscal_id_ : Fiscal identifier of the company.
  • _company_country_ : Country of the company.
  • _company_website_ : Company website.
  • _company_comments_ : Company comments.
  • _company_manager_ : Company manager.
  • _company_last_update_ : Last update of the company.
  • _company_payment_conditions_ : Payment terms of the company.
  • _contract_type_id_ : Contract type identifier.
  • _contract_type_name_ : Name of the contract type.
  • _contract_type_description_ : Description of the contract type.
  • _custom_XX_ : Custom macros are formed with the word custom together with the contract type field identiffer and this “id” will be visible in the contract type field list.
  • _template_id_ : Identifier of the template.
  • _template_name_ : Name of the template.
  • _template_description_: Description of the template.
  • _format_long_time_ Long current date format, example: 11 Wed April 2021.
  • _format_short_time_ : Short current date format, example: 11/04/2021.
  • _format_annual_date_ : Current date format only year example: 2021.

Contract Import

The import may be done by means of an export made in Integria IMS (in which the structure should not be manipulated as it is generated in the system) and may be done by means of a CSV type file created by hand.

For the first case, the input file will be the same as the one we previously exported, so there are no problems when processing the CSV.

For the second case, a series of parameters must be entered in order, some mandatory and others not, being able to choose empty values for the latter. The fields will be the following following the logical order established by the tool:

  • Name.
  • Contract number.
  • Description.
  • Start date.
  • Finish date.
  • Company identifier.
  • SLA identifier.
  • Group identifier.
  • Private.
  • State.
  • Type of contract.
  • Custom fields: they must previously exist in your Integria IMS system and must be indicated in order, being able to choose a value, or in case of not wanting to give them a value, blank space.

Example (type 1 with two custom fields, one text and one numeric):

Test contract,123456789,Description,2017-07-25,2017-07-31,1,,,0,1,1,Integria,20

Invoices

In a similar way to contracts, they help us to know when there are unpaid invoices issued, and to know when and how much a certain company has been invoiced. The system is in no case an ERP that serves to calculate treasury cycles, default management or other characteristics of an ERP.

Let's see an example of invoice:

The most significant fields of the invoices are:

  • Company: The invoice will appear in the private invoice section of the selected company.
  • Invoice identification: Invoice number. It cannot be duplicated with another system invoice. The system automatically calculates the next invoice number based on the invoice configuration of the configuration. Exceptions can also be defined.
  • Reference: Informative. Generally to indicate an order number, purchase order or similar.
  • Invoice status: Pending payment, paid or cancelled.
  • Creation dates, expiration dates and effective payment date.
  • Taxes: Withholdings and discounts, which alter the final amount.
  • Language: The invoice will be generated in PDF in the language that we specify.
  • Internal note: An internal comment, which is not reflected in the PDF invoice.
  • Description: Text that will appear on the invoice, generally clarifying order details, adding additional information (such as account number for payment, etc).

Once the invoice is created, we can attach files (purchase order, offers, etc.)

The invoice can be locked so that only the creator can modify it (lock icon). It can also be deleted (administrators only) and can be exported to PDF using the option icons in the invoice list:

The appearance of a PDF invoice is designed to be delivered to the administration, the client, the Treasury, etc. Keep in mind that if you change an invoice, you can regenerate the PDF to reflect those changes and replace the old PDF. This is a PDF of invoice:

Leads

Integria IMS allows the management and administration of sales leads (business leads or people in charge of business with companies).

Through Integria IMS lead management we can track potential customers. Generally, these leads enter “externally”, through an integration with the Integria IMS API, although they can also be created manually from the editor. Like other Integria objects, a lead has an “owner” who is the person who manages it.

The system allows you to record the activity of that lead, and to modify its status, so that it progresses accordingly.From an unqualified lead to a closed sale (or loss). Leads can be forwarded (mail forward) or managed directly by mail from the tool. If it is done from Integria IMS itself, it will be possible to manage the sending and receiving of the responses by email, which will be reflected in the follow-up of the lead, by having the Integria IMS address in CC, so that this can “capture” the lead's response email.

Macros in lead templates

The following macros can be used in lead templates:

  • _DEST_NAME_ : Full name of the recipient of the email, as it is in the lead record.
  • _DEST_EMAIL_ : Email mailbox of the lead.
  • _SRC_NAME_: Full name of the Integria IMS user who sends the lead.
  • _SRC_EMAIL_: Email of the Integria IMS user who sends the lead.

Management of lead activity through emails

Integria IMS allows you to manage the commercial activity of leads through emails. This Enterprise functionality will allow you to update the conversation between the parties and upload files to the lead automatically.

For this, an email mailbox is used as a reference, from which Integria IMS will read the messages to extract the information and attachments. In the Email Settings section you can see all the details about the mailbox settings.

This functionality is used through the Reply Email option available in leads. With this option, Integria will send an email message adding a token of the type [Lead#35] at the beginning of the subject of the email. In addition, when sending mail, the reference mailbox address will be added in the CC field.

In this way, when a customer or salesperson responds to the email, a copy will reach the reference mailbox and Integria IMS will identify the email and process it. To update the lead, the information from the email body will be added to the lead activity and the attached files will be uploaded to the server, associating with the corresponding lead.

It is very important that both your customers and business employees use the Reply All functionality of your email client to ensure that a copy of the email reaches the reference mailbox that is in the CC field. .

Creation of a lead through a web form

Using the Integria IMS REST API, it is possible to create new leads from a web contact form. In this way you can enter the information of your leads automatically in the tool. Here is a brief example of how to create a script to accomplish this task.

The following PHP code creates a form and collects the data submitted by the form. With them, he composes a call to the Integria IMS API that creates a new lead.

 <?php
 config parameters
 $integria_url = "http://192.168.70.163/integria";
 $user = "api_user";

 Get post parameters
 $name = $_POST["name"];
 $email = $_POST["email"];
 $company = $_POST["company"];
 $role = $_POST["role"];
 $country = $_POST["country"];
 $comments = $_POST["comments"];
 
 Create url to call the API
 $myurl = $integria_url."/include/api.php?user=".$user."&op=create_lead&params=";
 $myurl .= urlencode($name).",".urlencode($company).",";
 $myurl .= urlencode($email).",".urlencode($country).",0,0,,,";
 $myurl .= urlencode($role).",,,".urlencode($comments).",1,0";
 
  configure curl
 $ch = curl_init();
 curl_setopt($ch, CURLOPT_URL, $myurl);
 curl_setopt($ch, CURLOPT_HEADER, 0);
 curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
 
  Send curl request and close
 $ret = curl_exec($ch);
 
 curl_close($ch);
 
 ?>
 <h2>Integria IMS Lead form</h2>
 <form method="post">
   Full name: <input type="text" name="name" size="35" ><br><br>
   Email: <input type="text" name="email" size="25" ><br><br>
   Company: <input type="text" name="company" size="30"<br><br>
   Position: <input type="text" name="role" size="30" ><br><br>
   Country: <input type="text" name="country" size="20" ><br><br>
   Comments and questions:<br>
   <textarea name="comment" cols="50" rows="8"></textarea><br><br>
 <input type="submit" name="submit" value="Submit">
 </form>

The resulting example form looks like this.

Next we will discuss the code part.

The first two variables define the url where Integria IMS is hosted and the user who has permissions to use the API functions

config parameters
$integria_url = "http://192.168.70.163/integria";
$user = "api_user";

The following assignments collect the values submitted by the form and assign them to variables for your postmisuse.

Get post parameters
$name = $_POST["name"];
$email = $_POST["email"];
$company = $_POST["company"];
$role = $_POST["role"];
$country = $_POST["country"];
$comments = $_POST["comments"];

Next, a text string is created with the url that we will use to create the leads through the Integria IMS API. In addition to the address of the server and the user, the op parameters are configured with the value create_lead indicating the API function to use and with the function parameters.

 Create url to call the API
 $myurl = $integria_url."/include/api.php?user=".$user."&op=create_lead&params=";
 $myurl .= urlencode($name).",".urlencode($company).",";
 $myurl .= urlencode($email).",".urlencode($country).",0,0,,,";
 $myurl .= urlencode($role).",,,".urlencode($comments).",1,0";

An example of the result of the resulting url could be the following:

 http://192.168.70.163/integria/include/api.php?user=api_user&op=create_lead&params=Jimmy,PFMS,Rodriguez,Spain,0,0,,,Developer,,,,1,0

Finally, the code makes a call to the Integria IMS API through the PHP CURL utility.

  configure curl
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $myurl);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);

  Send curl request and close
$ret = curl_exec($ch);
curl_close($ch);

When submitting a form such as the following:

Configuration and customization of the CRM

In the configuration section, you can find a tab for CRM administration:

You can activate or deactivate the automatic generation of invoice ID, and modify its structure:

In the Invoice ID pattern field, a text string is stored that will be used as a pattern to generate the IDs. This pattern will contain a fixed and a variable part. The variable part must be numeric and will serve as the first element from which to calculate a sequence. The variable part will go between square brackets. The rest will be constant in all invoices.

Pattern example: 15/[1000]

In this case, the first three invoices to be generated will be 15/1000, 15/1001 and 15/1002.

Invoice ID generation is applied only to Sent type invoices.

You can also modify the data of your invoices, including the logo (to upload images, you can do it using the integrated file manager, in SettingsFile manager), in the Custom logos folder.

In the CRM configuration section you can also change the name of the lead statuses to customize your pipeline.

Macros in lead templates

The following macros can be used in lead templates:

  • _DEST_NAME_ : Full name of the recipient of the email, as it is in the lead record.
  • _DEST_EMAIL_ : Email mailbox of the lead.
  • _SRC_NAME_: Full name of the Integria IMS user who sends the lead.
  • _SRC_EMAIL_: Email of the Integria IMS user who sends the lead.

Management of lead activity through emails

Integria IMS allows you to manage the commercial activity of leads through emails. This Enterprise functionality will allow you to update the conversation between the parties and upload files to the lead automatically.

For this, an email mailbox is used as a reference, from which Integria IMS will read the messages to extract the information and attachments. In the Email Settings section you can see all the details about the mailbox settings.

This functionality is used through the Reply Email option available in leads. With this option, Integria will send an email message adding a token of the type [Lead#35] at the beginning of the subject of the email. In addition, when sending mail, the reference mailbox address will be added in the CC field.

In this way, when a customer or salesperson responds to the email, a copy will reach the reference mailbox and Integria IMS will identify the email and process it. To update the lead, the information from the email body will be added to the lead activity and the attached files will be uploaded to the server, associating with the corresponding lead.

It is very important that both your customers and business employees use the Reply All functionality of your email client to ensure that a copy of the email reaches the reference mailbox that is in the CC field. .

Creation of a lead through a web form

Using the Integria IMS REST API it is possible to create nNew leads from a website contact form. In this way you can enter the information of your leads automatically in the tool. Here is a brief example of how to create a script to accomplish this task.

The following PHP code creates a form and collects the data submitted by the form. With them, he composes a call to the Integria IMS API that creates a new lead.

<?php

config parameters
$integria_url = "http://192.168.70.163/integria";
$user = "api_user";

Get post parameters
$name = $_POST["name"];
$email = $_POST["email"];
$company = $_POST["company"];
$role = $_POST["role"];
$country = $_POST["country"];
$comments = $_POST["comments"];
Create url to call the API
$myurl = $integria_url."/include/api.php?user=".$user.
"&op=create_lead&params=".urlencode($name).",".urlencode($company).",";
$myurl .= urlencode($email).",".urlencode($country).",0,0,,,
".urlencode($role).",,,".urlencode($comments).",1,0";

configure curl
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $myurl);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
Send curl request and close
$ret = curl_exec($ch);

curl_close($ch);

?>
<h2>Integria IMS Lead form</h2>
<form method="post">
Full name: <input type="text" name="name" size="35">
<br>
<br>
Email: <input type="text" name="email" size="25">
<br>
<br>
Company: <input type="text" name="company" size="30">
<br>
<br>
Position: <input type="text" name="role" size="30">
<br>
<br>
Country: <input type="text" name="country" size="20">
<br>
<br>
Comments and questions:
<br>
<textarea name="comment" cols="50" rows="8"></textarea>
<br>
<br>
<input type="submit" name="submit" value="Submit">
</form>

The resulting example form looks like this.

Next we will discuss the code part.

The first two variables define the url where Integria IMS is hosted and the user who has permissions to use the API functions

config parameters
$integria_url = "http://192.168.70.163/integria";
$user = "api_user";

The following assignments collect the values submitted by the form and assign them to variables for later use.

Get post parameters
$name = $_POST["name"];
$email = $_POST["email"];
$company = $_POST["company"];
$role = $_POST["role"];
$country = $_POST["country"];
$comments = $_POST["comments"];

Next, a text string is created with the url that we will use to create the leads through the Integria IMS API. In addition to the address of the server and the user, the op parameters are configured with the value create_lead indicating the API function to use and with the function parameters.

Create url to call the API
$myurl = $integria_url."/include/api.php?user=".$user."&op=create_lead&params=".urlencode($name).",".urlencode($company).",";
$myurl .= urlencode($email).",".urlencode($country).",0,0,,,".urlencode($role).",,,".urlencode($comments).", 1.0";

An example of the result of the resulting url could be the following:

http://192.168.70.163/integria/include/api.php?user=api_user&op=create_lead&params=Jimmy,PFMS,Rodriguez,Spain,0,0,,,Developer,,,,1,0

Finally, the code makes a call to the Integria IMS API through the PHP CURL utility.

  configure curl
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $myurl);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);

  Send curl request and close
$ret = curl_exec($ch);
curl_close($ch);

When submitting a form such as the following:

Configuration and customization of the CRM

In the configuration section, you can find a tab for CRM administration:

You can activate or deactivate the automatic generation of invoice ID, and modify its structure:

In the Invoice ID pattern field, a text string is stored that will be used as a pattern to generate the IDs. This pattern will contain a fixed and a variable part. The variable part must be numeric and will serve as the first element from which to calculate a sequence. The variable part will go between square brackets. The rest will be constant in all invoices.

Pattern example: 15/[1000]

In this case, the first three invoices to be generated will be 15/1000, 15/1001 and 15/1002.

Invoice ID generation is applied only to Sent type invoices.

You can also modify the data of your invoices, including the logo (to upload images, you can do it using the integrated file manager, in SettingsFile manager), in the Custom logos folder.

In the section CRM configuration you can also change the name of the lead statuses to personalize your pipeline.

Back to Pandora FMS documentation index