CRM/SFA application in OFBiz
The CRM/SFA application
is designed for sales representatives, sales managers, and customer service
representatives to manage the sales and customer service process of an
organization. Its key functions are:
- Track sales leads
- Qualify sales leads and convert them into accounts
- Track contacts at accounts
- Enter and track sales opportunities from initial
prospecting to final closing
- Manage quotes for customers
- Create and view sales orders for accounts and contacts
- Generate sales forecasts
- Manage customer cases (customer service requests)
- Send emails
- Track activities and work performed, including
meetings, calls, emails
- Track marketing programs such as customer surveys
Data
history
The history of a
customer relationship is a source of wealth, so it helps build a relationship
over time and improve the quality of the commercial relationship. The data
history relate specifically information about customers, making contacts
references, business, bids submitted, the products ordered.
What are the segments
identified? What is the competition? What is the position of our offer relative
to the market?
The marketing campaigns
also help the market definition.
The CRM aims to give
commercial tools to sell more. Each salesman can monitor its clients, contacts,
make plans and make its reminders at the appropriate time. The scoreboards are
tailored to offer summaries to feed a better understanding of customers. They
also learn about projects and tenders.
Creating
New Users
Creating users needs to
be done in the Party Manager, which can be accessed from the regular
applications tab bar. Go to [Party] > [Create] and create a new Person.
Assign at least one of the following roles for the person: “Account manager”,
“Account Rep”, or “CSR”. Note that each person can have other roles, such as
“Employee”, but the above three roles are required for them to use the CRM/SFA
application. Next create a user login and associate it with the security group
SALES_MANAGER, SALES_REP, or SALES_REP_LIMITED, or CSR
Note that “role” in the
party manager is different than “role” in CRM/SFA. In party manager, role
merely defines a possible role a person or group has with respect to any other
possible person or group. In CRM/SFA, “role” means specifically a user’s role
in a sales account relationship, and it implies a certain amount of security
permissions as well.
If a user forgets his
password, a new one will be mailed to the PRIMARY_EMAIL address on file with
the “Forgot Your Password” feature.
There is a [Profiles]
link in the upper right hand corner of the screen in the CRM/SFA application,
between the user’s name and the [Logout] button. This link takes you to the
user profiles page, where you can modify the user’s name, change passwords, and
additional contact information (email, address, phone #) for your user. Note
that you cannot create additional user logins here—you can only do that in the
Party Manager. This profiles page also shows you a history of the user’s past
visits.
You may see a link for
[My Accounts] on the right of “My Team Accounts”. If you click on “My
Accounts”, your login will be configured to view only your personal accounts instead
of your teams’ accounts. This will also work for leads, contacts, cases, and
opportunities.
Account teams in the
CRM/SFA application are groups of people who usually work together as a team in
a certain set of roles and permissions. A team can be assigned to an account
when it is first created. Then, the account’s team manager or account owner can
reassign team members or re-arrange their responsibility, so the real team working
on any account at any one time could be very different than the “usual” work
team. This is very different than the “military unit” team, where a team with
fixed membership and hierarchy is assigned to various accounts over time.
To create a team, you
would need to use the Party Manager. Go to [Party] > [Create] >>
[Create New Party Group] and give it the name of your team. Then go to [Roles]
and add a role of [Account Team] to it. Then go to [Relationships] and add your
team members. The following fields must be added: PartyId of team member Role
of team member (Account Manager, Account Rep, or CSR), based on the role
assigned earlier when creating users. The “Is a” field must be set to “Assigned
To” The current party’s role must be “Account Team” Set the from date Party
Relationship Security must be the security privilege of your team member. In
the Party Manager, a long list of security permission groups will show up. Pick
one of the ones relevant for the CRM/SFA application.
Now your team member has
been added. When you create an account and then assign a team to it, you will
see the team members.
![]() |
Create accounts page |
The system allows you to
create multiple contact information per person or group, so your accounts,
leads, or contacts could have as many phone numbers, addresses, or emails as
you need. Each contact information also needs a purpose associated with it to
identify what this contact information is to be used for.
When you use the [Create
Contact], [Create Lead], [Create Account], the system will create the following
contact information based on your web form inputs: The address will be created
as the General Correspondence and General Shipping Address The phone number
will be created as the Primary Phone Number The email will be created as the
Primary Email Address The URL will be created as the Primary Website URL
When creating contact
information on your own, you should create an email with a Primary Email
Address purpose and an address with a General Shipping Address purpose. The
Primary Email Address will be used to send automated notification emails. The
General Shipping Address will be used for orders.
The phone number and
email shown on lists of accounts, leads, and contacts are the PRIMARY_EMAIL and
PRIMARY_PHONE number.
You can click on any
email address listed in the contact information section to send an email. See
“Sending Emails” below.
Throughout the CRMSFA
application, notes can be created for various things and stored. The Notes menu
is typically at the bottom of a screen.
![]() |
Create Contacts page |
A core function of a CRM
application is tracking the process of turning prospects or leads into
customers. In the Neogia/opentaps CRM application, prospects are created as a
Lead first in the [Leads] tab. A lead is one person at one company and cannot
have additional contacts associated with it. After you have qualified your
lead, perhaps by a follow up call, you can mark the lead as qualified. Then,
when the lead has become a customer, you can convert your lead into an account
and a contact. You can then add additional contacts to an account.
Note that if you have
several leads from the same company, the system allows you to create them all
as different leads, then convert them into the same account. The lead
conversion screen allows you to select an existing account.
There is no formal
requirement of when a lead can be marked qualified or converted to an
account—you can do this whenever it fits your company’s needs.
Technical note: To be
considered an account, lead, or account, a party must have the PartyRole
“Account”, “Contact”, or “Prospect” and have an active PartyRelationship in one
of the roles with another party. Therefore, OFBiz parties which do not have
those PartyRole or PartyRelationship defined would not show up as an account,
lead, or contact. Also, an account is an OFBiz PartyGroup, and lead and contact
are OFBiz Person.
Account owners have the
ability to create opportunities for their accounts.
Each account can have
one parent account at a time. The parent account can be entered during [Create
Account] and then changed during an [Update].
Lists of accounts are
sorted by name of account.
Once created, a Contact
can be added to an Account from the Account main page with the [New Contact”
menu or from the Contact main page with the [New Account] menu.
Lists of contacts are
sorted by last name of contact, then first name.
Leads are early stage
contacts/accounts. When a lead is converted, a contact and an account are
created.
Leads can also have a
parent. This parent must be an existing account.
Leads are first assigned
to the user who created them and in the “Assigned” state.
When you have qualified
a lead, click on [Qualify Lead] to mark it as “Qualified.”
When you convert a lead,
you will be taken to a screen and asked whether you want to create it as a new
account or as a contact of an existing account. If the lead's company has
already been created, then select an existing account. Otherwise, leave the
field blank. The lead person would become a Contact. If an existing account was
selected, then the lead would be a contact of that account. If no existing
account was selected, then a new Account would be created based on the company
information, and the lead becomes a Contact of that Account.
A lead can only be
converted to contact/account successfully if it has a company name.
NOTE: If you select an
existing account when converting a lead, then all the company information of
the lead is lost. This includes “Company Name,” “Annual Revenue,” “Industry,”
“SIC Code,” “Ownership,” “Ticker Symbol”, “parent company”
When converting a lead
with opportunities associated with it, the opportunities become associated with
both the account and contact to which the lead is converted.
If you create a new
Account from Lead, the Lead's contact info (address, phone, email) also become
contact info of the Account. If you create a Lead into an existing Account, its
contact info would stay with the Lead/Contact and not be copied to Account as
well.
Leads can be deleted if
they have not been qualified or converted (ie, still in the “New” or “Assigned”
state.).
Lists of leads can
either be sorted by lead company name, then last name or by last name, then
lead company name.
You can merge
leads/contacts/accounts and consolidate duplicate records. Use the [Merge ___]
link on the shortcuts menu on the left and enter the from- and to-
lead/contact/account’s partyId. A page will ask you for confirmation. If you
confirm the merge, then data from the from- lead/contact/account will be copied
to the to- lead/contact/account. Then the from- lead/contact/account will be
removed from the system. Be very careful with this feature—once removed, it
cannot be recovered!
The merge feature may
not work if too much data has already been created from the from-
lead/contact/account.
Opportunities
When the opportunity is
initially created, the stage is used to create the probability. The probability
can be updated later, but when it is updated to a new stage, the probability is
overwritten with the probability corresponding to that stage. Estimated closing
date is required for opportunities so forecasts can be made.
An opportunity can be
created for one account only but can have multiple contacts associated with it.
To edit or update an
opportunity, you must be on its account team. To create an opportunity for an
Account, you must be able to update that Account. Updating opportunities
requires you to fill in a change note.
An opportunity can also
be created for a lead once the lead has been qualified. When the lead is
converted, the opportunity will be associated with both the account and the
contact.
Note that opportunity's
estimatedCloseDate is actually stored as a date-time (Java Timestamp) because
time periods for forecasting are java Dates that end at midnight, so if we
didn't have a time of estimated close, an end or beginning of month opportunity
could be put into the wrong time period for forecasting. The system
automatically sets to the hour of closing to 23:59:59.999 (ie, 1 millisecond
before midnight.)
The probabilities of
each opportunity stage is stored in the SalesOpportunityStage.defaultProbability
field.
A case must be created
with at least one account or contact. A case can have multiple contacts or
accounts associated with it, although there is currently no interface for doing
this.
“My Cases” shows a list
of all cases for accounts or contacts that you are assigned to. Currently the
assignment of cases to users is implicit: if you're assigned to an account and
there's a case for the account, then it's your case.
To update a case, you
must have permission through its contact or account team.
A special permission is
required to mark a case closed.
NOTE : Cases should
may have some integration problems with Neogia Service Management component.
Sending
Emails
From the Contact Info
screen of Accounts, Contacts, or Leads, you can click on any email, and a
screen will pop up to send it. You can type a different email address or lookup
an opportunity or case. When you are ready, you can either [Send] the email or
[Save For Later] to send it later. [Save For Later] saves the email as a
pending activity for the recipient. Once sent, the email becomes part of the
activity history.
If the email is not an
email of the recipient party, you will get an error.
Note that the [Text] and
[HTML] buttons will toggle the MIME format of the email between text and HTML,
but currently an HTML editor has not been integrated in yet. Thus, you’d have
to paste or write in HTML code if you want to send in the HTML format. An
integrated browser HTML editor is planned.
The CRMSFA application
will sort your inbound emails, store them as communication events in the
system, and associate them with your users and contacts, accounts, or leads. To
configure inbound email sorting, first configure your mail container. Then,
edit the file
hot-deploy/crmsfa/servicedef/smcas.xml
and change the value of
the condition to the domain where you will be receiving your emails. Re-start
your server, and the system should now be monitoring your domain and storing
new emails. It will check the FROM address of every email and try to match it
against those of your account/lead/contact and match the TO and CC of every
email and match it against your CRM users.
When a new email is
received, it is logged as a CommunicationEvent in the system. If the FROM email
address matches the email of a party (account, lead, or contact), it will be
logged as being from that party. If the TO email matches the email of another
party, it will be logged as an email to that party. (Technical note: the CRMSFA
application uses the OFBiz storeIncomingEmail service but wraps a WorkEffort
around it and associates the recipients as parties of the WorkEffort.)
New emails are created
as pending activities both for the party (account, lead, or contact) and for
the recipient user. When you log in to the CRMSFA application, you will see
your incoming emails on your “Pending Activities” list and on the “Pending Activities”
of the account/lead/contact which sent it. You can click on the activity to
view the email, then mark it started, then mark it finished when you are done.
(Technical note: the CRMSFA application will mark the CommunicationEvent of the
email as “Pending” when you start the activity and “Complete” when you finish
it.)
Emails which are not
associated with any parties will still be stored in the system. You can use the
Party Manager application to sort them manually. Go to [Party] > [Comm] and
look for communication event type of “Auto Email” and status of “Unknown
Party”. Then edit them and associate them with users in your system, and mark
them as “Completed.”
There are two types of
activities: tasks and events. Events are meetings which show up on the
calendar. Tasks are phone calls, emails, or general tasks and do not show up on
calendars. The “My Home” page you see when you first login will show a list of
Pending Activities, which includes both events and tasks.
Events can be created from
both the calendar (click on the time of the day or on the icon) or from
accounts, contacts, leads, cases, opportunities screens. Tasks can only be
created from the latter or from task lists, since they don't show up on the
calendar.
When creating an activity
(event or task), you can enter the scheduled start date/time and the duration.
If the user will be busy during that interval, then click on “Busy” or “Away.”
If there is another event or task already scheduled for the user in that
interval where he is “Busy” or “Away,” it will generate an error message. If
you still want to schedule it, then set “Ignore Schedule Conflicts.” When you
update an event, you must always set “Ignore Schedule Conflicts” if it
conflicts with an existing event.
To log an activity is to
record something that has already taken place. These activities are created as
Completed, and the user gets to enter the actual start and finish time.
To create a new
activity, event or task, is to schedule something. The user gets to enter the
scheduled start time and due date. For an event, it is first in the “Scheduled”
state but can then be “Confirmed.” Once confirmed, you can add parties to the
event or invite them by sending an email. Adding a party automatically confirms
them. Inviting them sends an email. Enter a note to be included, and the email
will be sent with two links: one to accept, one to decline.
Parties cannot be added
to an event if they are already assigned to another event or task at the same
time and their availability status on that is “Busy.” If no status is set, then
the time slot is assumed available.
When you've had your
event, you can log the actual time (start and finish time) and mark it as
“Completed.”
A task is created in the
“Scheduled” state as well. When the user is ready to start the activity, update
the task to “Started” and enter the start time. If no time is supplied, the
system will record the current time as started. Similarly, when the user is
ready to mark it done (“Completed”), the system will record the finish time if
the user does not enter a time.
Note that this is
different than actual time entry and billing—billable time needs to be entered
separately. (It could actually be done in the Workeffort Manager right now.)
In the case of an email,
when you click [Send Email] the system will record the start time of your
email. When you actually click [Send], the system will record the completion
time. If you save it for later, the activity will not be recorded as Completed
until you actually send your email.
When viewing Activity,
you will see the activity's details on top, a list of parties
(accounts/contacts/leads/team members) associated with it in the middle, and
then, if it is an email, the email below. Note that OFBiz is designed to allow
many communication events per work effort, but we're only showing one per
activity. The concept is a bit backwards here: in OFBiz, you create work effort
as “projects” and many emails, etc. associated with it. Here, workeffort is
used as a discrete “task,” such as sending one email. You can still create
workefforts as projects, but that would involve creating sub-tasks where are
discrete. This again is currently supported in the Workeffort Manager but has
not been ported to the CRM/SFA application’s screens yet.
When logging a phone
call or email, the “INBOUND/OUTBOUND” flag determines to to/from parties in
question.
The list of parties
shows parties (accounts/contacts/leads) and attendees for a task or event.
Currently only the calendar owner (ie, creator of activity) can update
availability status of attendees, add, or remove them. This may change later.
Find activities shows a
list of activities which are EVENT or TASK and shows them as if they were
completed.
Once an event is
canceled, it will no longer show up on the calendars.
Sales forecasts use the
opportunities' probabilities and amounts to calculate the amount of sales a
company can expect to close over a period of time. Forecasts are calculated
from opportunities. Each salesperson’s forecast is based on the opportunities
for that person’s accounts and leads during the time period of the forecast.
Any account or qualified lead with which the person is associated would be used
to calculate the forecasts. As a result, the total forecasts of all the
salespeople would be greater than the total forecast for the whole company,
because multiple salespeople could be related to the same account. To get a
forecast for the company, add a sales manager once and only once to each
account and qualified lead.
Any sales rep can create
a forecast for himself and enter his own committed amount. Only the sales
manager can create a forecast for a team or a territory. Currently, each sales
person can only create his own forecasts.
To create a forecast for
yourself, select [Create Forecast] and select a quarter to create a forecast
for. Only quarters which are not officially closed, whose end date has not
passed, and for which no forecast is available.
You will then be
prompted to enter your quotas for the quarter, month-by-month. When you are
done, click on [Create]. Your quotas will be entered into the system and then
both monthly and quarterly forecasts will be created. Each month’s forecast is
calculated based on: 1.Closed Amount = sum of opportunities which are already
CLOSED in that month 2.Best Case Amount = sum of all opportunities scheduled to
close in the month, regardless of stage 3.Forecast Amount = sum of probability
* amount of each forecast above a critical threshold of minimum probability.
This minimum threshold is configured in the crmsfa.properties file.
The quarter’s forecast
is the sum of all its months’ forecast.
A special permission is
required to view anyone's forecast. Otherwise, you are only allowed to view
your own forecast.
If you have permission
to view others' forecasts, click on [Find Forecasts] and you will be able to
find forecasts for other people. Then you can search by team member or time
period. The list of forecasts returned is of the quarters.
By default, only the
sales manager or supervisor can modify existing forecasts. To modify a
forecast, click through to the month of the forecast, then enter an update
quota, fill in a change note, and click [Update]. The forecast for the month
and the quarter which contains it are updated.
Each time a forecast is
updated, the old version is stored into history. When viewing a forecast, you
can see its whole history with change dates and the quota, best case, and
forecast amounts of the old versions.
Once a time period is
officially closed or has passed, its forecast can no longer be updated.
If a forecast is already
created for a time period, it will be automatically updated when new
opportunities are created or when existing an opportunity is changed. The
forecasts of all team members which are related to the changed opportunity
through any account or lead is automatically updated. If the estimated close
date of an opportunity moves from one time period to another, the forecasts for
both are changed. If, however, the opportunity moves to a period far enough
into the future that it does not have forecasts yet, a new forecast would not
be automatically created.
Partners are external
parties who can also be part of an account team. This feature has not been
implemented yet, so the tab for it is disabled right now.
The Quotes tab allows
you to view and create quotes for your customers. The key features are to
lookup quote by quote name, type, or status; create quotes; and create orders
from quotes. Note that these screens are the same as the ones in the Order
Manager’s Quote screen. Important functionality of Quotes are: [Find Quote] –
look up quotes [View Quote] – view summary quote information [Quote] – manage
the header of the Quote, including which customer and what store [Quote Items]
– add or remove items from a quote and change their prices [Create Order] –
create an order from the quote.
The Orders tab allows
you to lookup orders or create new orders from the CRM/SFA application.
The order tab is
basically an import of the order entry system from the OFBiz order manager. For
more information about order entry, see the “Order Entry” document in the
“Order Manager” folder or the “Sales Order to General Ledger Process Narrative”
in the “General Overview.”
The order tab from
version 1.0.x and later has been re-written to support order entry and lookup.
You can create orders for accounts and look up existing orders with this tab.
The “My Orders” tab will
show orders entered by the logged in user.
To create a new order,
you can either do so from the account detail screen for the account under the
Accounts tab, from the Orders tab using Quick Create Order, or use the [Create
Order] link.
If you use the Quick
Create Order, you must enter the account, order name, and desired delivery
date. You can also enter a productId, and this product with a quantity of 1.0
will be added to your order.
Note that the “desired
delivery date” is the same as the “ship before date” in Order Manager. It is
not∫ the desired delivery date field from Order Manager. That particular field
is not supported at this time.
When you are done with
entering the items of the order, click on [Finalize Order]. You will see a
screen which will prompt you to select the shipping destination and method for
each line item on your order. The system will create a separate ShipGroup for
each combination of destination and shipping method and will show you this on
the final confirmation.
The remaining order
entry screens are the same as those from the Order Manager.
The product store for
order entry is configured in config/crmsfa.properties. Currently the CRM order
entry system will support order entry for one product store only. It does not
support product catalogs at this time.
Thanks for this Article.
ReplyDelete