Skip to content

Releases: oroinc/crm-application

Release Notes

13 Feb 21:34
Compare
Choose a tag to compare

List of improvements and fixed bugs

  • Fixed Magento integration doesn't create Account and Contact when required fields are empty
  • Fixed RFM metric backward compatibility
  • Fixed reminders without task date
  • Fixed Lifetime value calculation in multi currency configuration
  • Fixed calculation RFM analytic out of memory

Release Notes

19 Jan 23:15
Compare
Choose a tag to compare

New features – OroCRM.

Availability of email campaign results for filtering in reports & segments.

Now email campaign results, such as opens, clicks, bounces, etc., are available for filter queries in reporting and customer segmentation. This also includes campaign statistics received via MailChimp integration.

Release Notes

18 Dec 20:47
Compare
Choose a tag to compare

New features – OroCRM.

RFM analytic for Magento channels.

RFM is a popular set of metrics used to analyze customer value and to determine the best customers, especially for retail and e-commerce. The 1.5.0 release of OroCRM adds the ability to configure RFM metrics for Magento channels.
The RFM score consists of three metrics:

  • Recency, that evaluates the number of days that passed since the last purchase. The more recent is the purchase, the better.
  • Frequency, that evaluates the number of orders placed by the customer in the last 365 days. The more frequently the customer buys, the better.
  • Monetary value, that evaluates the total amount of orders placed by the customer in the last 365 days. The more money customer spends, the better.

To construct these metrics, the entire range of values is divided into a small number of categories, or "buckets." The number of buckets usually lies in range of 3 to 10, and scores for R, F, and M range accordingly—from 1 (the best score) to the maximum number of buckets (the worst score). You can change the number of buckets and move their boundaries in order to adjust the scores to characteristic values of your business.
After the metric is applied, every customer gets a three-number set of RFM scores. R1 F1 M1 identifies the best customers, and the higher the scores are, the worse these customers perform in a particular field.
RFM scores are displayed on the Magento customer view page and on the customer section of the Account view. You may also re-use these scores in reporting and segmentation.

Release Notes

02 Dec 12:29
Compare
Choose a tag to compare

List of improvements and fixed bugs

  • Implemented form type guessers for custom fields of existing entities
  • Magento import: Fixed failed queries with empty contact phone
  • Magento import: Removed sensitive data displayed in API request logs
  • Magento import: Fixed duplicated jobs on two way Magento sync
  • Magento import: Fixed incorrect implementation Customer TAX/VAT Number
  • Magento import: Fixed lost address types after magento customer update
  • Zendesk: Detached entities issue after Entity Manager fail

Release Notes

17 Nov 16:32
Compare
Choose a tag to compare

List of improvements and fixed bugs

  • Added MailChimp support changes
  • Added migration for b2b customers
  • Added related entities to segments filters
  • Added shopping cart management to Oro Bridge support
  • Made Email campaign entities configurable
  • Made contact address, email and phone entities extendable
  • Fixed issues with lifetime value after update
  • Fixed upload pictures/avatar to entity
  • Fixed missing Campaign details grid and chart
  • Fixed "Sync data" on cart page with invalid API credentials
  • Fixed duplicates of entities during magento import

Release Notes

15 Oct 14:15
Compare
Choose a tag to compare

The re-introduction of Channels.

We started the implementation of a new vision for the Channels in 1.3 version and now we bring Channels back, although under a new definition.
The general idea behind channels may be explained as follows: a channel in OroCRM represents an outside source customer and sales data, where "customer" and "sales" must be understood in the broadest sense possible. Depending on the nature of the outside source, the channel may or may not require a data integration.
This new definition leads to multiple noticeable changes across the system.

Accounts.

Account entity now performs as the "umbrella" entity for all customer identities across multiple channels, displaying all their data in a single view.

Integration management.

Albeit the Integrations grid still displays all integrations that exist in the system, you now may create only "non-customer" standalone integrations, such as Zendesk integration. The "customer" integrations, such as Magento integration, may be created only in scope of a channel and cannot exist without it.

Channel management UI.

The UI for channel creation now allows the user to specify channel type. By default there are three channel types: Magento, B2B, and Custom; more channel types may be created by developers.
Each channel type characterizes the following:
Whether a channel requires an integration. If the answer is yes (cf. Magento), the integration should be configured along the creation of the channel.
Which entity will serve as the Customer Identity. This entity cannot be changed by the user.
Which entities will be enabled in the system along with the channel.
A specific set of entities comes by default (e.g. Sales Process, Lead, and Opportunity for B2B channel), but the user may remove or add entities if necessary.

B2B functionality.

B2B functionality, such as Leads or Opportunities will no longer be available by default—in order to work with them the user should create at least one B2B channel first. As a result it is now possible to configure your instance of OroCRM to be fully B2C-oriented and work only with entities that make sense in eCommerce context—with no mandatory Leads and Opportunities at all.
In order to comply with the new concept of Customer Identity, the new entity named B2B Customer was added to the system. It replaces Account in most cases of our default Sales Process workflows.

Lifetime sales value.

This feature provides the means to record historical sales for every channel type. The exact definition of what constitutes sales is subject to channel type: for Magento channels lifetime sales are counted as order subtotal (excluding cancelled orders), and for B2B channels it is counted as total value of won opportunities. The common metric allows you to quickly compare sales across channels in the account view, where both per-channel and account total values are displayed.

Marketing lists.

Marketing lists serve as the basis for marketing activities, such as email campaigns (see below). They represent a target auditory of the activity—that is, people, who will be contacted when the activity takes place. Marketing lists have little value by themselves; they exist in scope of some marketing campaign and its activities.
Essentially, marketing list is a segment of entities that contain some contact information, such as email or phone number or physical address. Lists are build based on some rules using Oro filtering tool. Similarly to segments, marketing lists can be static or dynamic; the rules are the same. The user can build marketing lists of contacts, Magento customers, leads, etc.
In addition to filtering rules, the user can manually tweak contents of the marketing list by removing items ("subscribers") from it. Removed subscribers will no longer appear in the list even if they fit the conditions. It is possible to move them back in the list, too.
Every subscriber can also unsubscribe from the list. In this case, he will remain in the list, but will no longer receive email campaigns that are sent to this list. Note that subscription status is managed on per-list basis; the same contact might be subscribed to one list and unsubscribed from another.

Email campaigns.

Email campaign is a first example of marketing activity implemented in OroCRM. The big picture is following: Every marketing campaign might contain multiple marketing activities, e.g. an email newsletter, a context ad campaign, a targeted phone advertisement. All these activities serve the common goal of the "big" marketing campaign.
In its current implementation, email campaign is a one-time dispatch of an email to a list of subscribers. Hence, the campaign consists of three basic parts:
Recipients—represented by a Marketing list.
Email itself—the user may choose a template, or create a campaign email from scratch.
Sending rules—for now, only one-time dispatch is available.
Email campaign might be tied to a marketing campaign, but it might exist on its own as well.

Ecommerce dashboard

In addition to default dashboard we have added a special Ecommerce-targeted board with three widgets:

  • Average order amount
  • New web customers
  • Average customer lifetime sales

Every widget displays historical trend for the particular value over the past 12 months. You can also add them to any other dashboard using the Add Widget button.

Release Notes

30 Sep 17:10
Compare
Choose a tag to compare

The re-introduction of Channels.

We started the implementation of a new vision for the Channels in 1.3 version and now we bring Channels back, although under a new definition.
The general idea behind channels may be explained as follows: a channel in OroCRM represents an outside source customer and sales data, where "customer" and "sales" must be understood in the broadest sense possible. Depending on the nature of the outside source, the channel may or may not require a data integration.
This new definition leads to multiple noticeable changes across the system.

Accounts.

Account entity now performs as the "umbrella" entity for all customer identities across multiple channels, displaying all their data in a single view.

Integration management.

Albeit the Integrations grid still displays all integrations that exist in the system, you now may create only "non-customer" standalone integrations, such as Zendesk integration. The "customer" integrations, such as Magento integration, may be created only in scope of a channel and cannot exist without it.

Channel management UI.

The UI for channel creation now allows the user to specify channel type. By default there are three channel types: Magento, B2B, and Custom; more channel types may be created by developers.
Each channel type characterizes the following:
Whether a channel requires an integration. If the answer is yes (cf. Magento), the integration should be configured along the creation of the channel.
Which entity will serve as the Customer Identity. This entity cannot be changed by the user.
Which entities will be enabled in the system along with the channel.
A specific set of entities comes by default (e.g. Sales Process, Lead, and Opportunity for B2B channel), but the user may remove or add entities if necessary.

B2B functionality.

B2B functionality, such as Leads or Opportunities will no longer be available by default—in order to work with them the user should create at least one B2B channel first. As a result it is now possible to configure your instance of OroCRM to be fully B2C-oriented and work only with entities that make sense in eCommerce context—with no mandatory Leads and Opportunities at all.
In order to comply with the new concept of Customer Identity, the new entity named B2B Customer was added to the system. It replaces Account in most cases of our default Sales Process workflows.

Lifetime sales value.

This feature provides the means to record historical sales for every channel type. The exact definition of what constitutes sales is subject to channel type: for Magento channels lifetime sales are counted as order subtotal (excluding cancelled orders), and for B2B channels it is counted as total value of won opportunities. The common metric allows you to quickly compare sales across channels in the account view, where both per-channel and account total values are displayed.

Marketing lists.

Marketing lists serve as the basis for marketing activities, such as email campaigns (see below). They represent a target auditory of the activity—that is, people, who will be contacted when the activity takes place. Marketing lists have little value by themselves; they exist in scope of some marketing campaign and its activities.
Essentially, marketing list is a segment of entities that contain some contact information, such as email or phone number or physical address. Lists are build based on some rules using Oro filtering tool. Similarly to segments, marketing lists can be static or dynamic; the rules are the same. The user can build marketing lists of contacts, Magento customers, leads, etc.
In addition to filtering rules, the user can manually tweak contents of the marketing list by removing items ("subscribers") from it. Removed subscribers will no longer appear in the list even if they fit the conditions. It is possible to move them back in the list, too.
Every subscriber can also unsubscribe from the list. In this case, he will remain in the list, but will no longer receive email campaigns that are sent to this list. Note that subscription status is managed on per-list basis; the same contact might be subscribed to one list and unsubscribed from another.

Email campaigns.

Email campaign is a first example of marketing activity implemented in OroCRM. The big picture is following: Every marketing campaign might contain multiple marketing activities, e.g. an email newsletter, a context ad campaign, a targeted phone advertisement. All these activities serve the common goal of the "big" marketing campaign.
In its current implementation, email campaign is a one-time dispatch of an email to a list of subscribers. Hence, the campaign consists of three basic parts:
Recipients—represented by a Marketing list.
Email itself—the user may choose a template, or create a campaign email from scratch.
Sending rules—for now, only one-time dispatch is available.
Email campaign might be tied to a marketing campaign, but it might exist on its own as well.

Ecommerce dashboard

In addition to default dashboard we have added a special Ecommerce-targeted board with three widgets:

  • Average order amount
  • New web customers
  • Average customer lifetime sales

Every widget displays historical trend for the particular value over the past 12 months. You can also add them to any other dashboard using the Add Widget button.

Release Notes

22 Sep 12:58
Compare
Choose a tag to compare

Stored XSS Vulnerability fixes

* added "|json_encode|raw" for values outputted in JS objects
* removed "|raw" from outputs of path in url attributes
* added "e('html_attr')|raw" when outputting html attributes
* removed mentions of "flexible entity" and unused code
* added validator for css field of embedded form, now if user will enter html tags in this field he will get an error message
* added stiptags filter for css of embedded forms
* changed translation message oro.entity_config.records_count.label to contain placeholder of records count and use UI.link macros in template instead of slicing str
* changed method of validation of emails on the client, old validation was working very slowly with some values like '">< img src=d onerror=confirm(/provensec/);>', n
* removed "trans|raw" where it's not required
* minor changes in templates to improve readability
* added Email validator for Lead
* fixed XSS vulnerability in Leads, Case Comments, Notes, Embedded forms, Emails, Business Units, Breadcrumbs
* fixed escaping of page title

Release Notes

14 Aug 18:37
Compare
Choose a tag to compare

The 1.3.1 release is mostly bug-fixing. Below is a list of the most important fixes.

Fixed issues:

  • Synchronization with Magento channel breaks after SQL error;
  • Incorrect row count on grids;
  • Reports and Segments crash when "Is empty" filter is added;
  • Initial synchronization with Magento channel completes with errors;

Release Notes

23 Jul 21:35
Compare
Choose a tag to compare

Website event tracking.

It is now possible to track user activity on web pages and record it in OroCRM. The tracking is done using Piwik JavaScript Tracking code snippets. (For additional information on the subject please check the documentation)
In order to start track events, you have to create a website first—this can be done under Marketing > Tracking Websites. After a site is created, you will get a template of tracking code that you can edit to suit your tracking demands and then embed it on desired pages of your website. By default the code contains only tracking of page views, but the template also contains a placeholder for event tracking code (hidden with comments).
By default all information is passed to OroCRM directly in the real time; note that it may cause performance issues if the traffic on the website is intensive. To avoid this, you may disable dynamic tracking and choose longer log rotation interval in the tracking configuration (System Configuration > General Setup > Tracking). You can also choose to store data not only in OroCRM, but on the Piwik host as well; to do so, specify Piwik credentials in the tracking configuration. Note that if this option is executed, website identifiers in OroCRM must be exactly the same as in Piwik.

Marketing campaigns.

This release introduces support for marketing campaigns. It is now possible to create Campaign records that contain name of the campaign, a unique campaign code that can be used for campaign tracking; provide a lengthy description to the campaign; specify its start and end dates, and estimate a budget.
A relation between Campaign and other entities may be introduced via entity configuration; by default such relation exists for Leads. These relations are available for segmentation and reporting; to provide an example of such use the bundle contains custom Campaign Performance report.
Campaigns are subject to standard ACL permissions; the default ownership type for them is User.

Campaign code tracking.

This feature is build atop the previous one. Its purpose is to link some events that have been registered on the website with a code of a particular campaign in order to measure its performance.
The campaign code can be registered in two possible ways: it can come in the get URL (a good example is a link that is provided to the customer in the newsletter email), or it can be attached to all events that occur on some "landing page."
Either way, such events will be registered in OroCRM with a link to the campaign, and will appear not only on the website page, but on the campaign page as well. The campaign page will also contain a summary report with the aggregate number of registered events of various types, and a timeline graph that will show the dynamics of event aggregation over the campaign lifetime.

Cases.

Case management is a CRM feature that is very important to e-Commerce users. Cases are CRM equivalents for real-world customer problems; when a customer writes an angry email about nondelivery of a product, or calls the hotline and asks for the nonstandard payment method—every time the case should be opened and maintained.
The case must contain a description of the problem that makes a case; some user should be made responsible for handling the case; and some context for the case might be provided. By default, the case has relations to Contact and Account, but you can add more relations via Entity configuration if necessary. For example, it might be useful to tie cases not just to customer's account, but also to the particular order the customer has problems with.
Cases in OroCRM are usable on their own, but they can also be a target to integration with third-party systems (see below).

Processes within Magento integration.

We have rewritten the existing Magento integration jobs and moved part of its functionality to built-in process. This change allows to separate the "synchronization" logic that will still be fulfilled by cron jobs, and the "CRM" logic that from now on will be fulfilled by processes triggered as a result of synchronization job. In this release, the built-in process only handles creation of Account and Contact upon Magento Customer data, but in future releases we intend to complete the separation of logic.

Activities.

In this release we introduce a new type of entities that we call Activities. From the user standpoint, activities equal to some widespread standardized tasks such as adding notes to entities or sending an emails in their context. Using activities allows to standardize user experience for such tasks all over the system, and makes them easily configurable in scope of every entity. All activities are subject to standard ACL permissions.
In scope of this release we introduce three activities: Notes, Emails, and Attachments. Calls and Tasks are in the roadmap for future releases.

  • Notes.
    Notes are small text messages that will appear in a dedicated Notes section on an entity view page below the record information.
    To add a note, click a corresponding button on top of a page, then enter a note text in the popup window that appears. Notes are added in a "string" in reverse chronological order—that is, they appear one after another and more recent notes appear higher by default. You can reverse the sorting order with a sorting control. You can also collapse or uncollapse each individual note, or collapse all of them at once using the corresponding control. You can also edit or delete notes if you have permissions to do so.
  • Emails.
    The ability to send an email in context of an entity record has been redesigned as a system-wide activity, providing a standardized and configurable user experience all over the system.
    Note that sending of emails via workflow transactions (e.g. in the Abandoned Shopping Cart flow) has not been refactored yet.
  • Attachments.
    Another activity added in 1.3 release is the ability to attach files and images to entity records. Attachments must be configured in scope of every entity; the admin should specify maximum file size and allowed MIME types for attached files.
    Attached files or images will be displayed in scope of the record and, if necessary, the user can download them from the system. The download link for every attachment will be protected: when a non-OroCRM user will try to use it, he will be prompted to login screen, and only after successful login the download will start.

Data import in CSV format.

The existing feature of CSV import and export of Contacts was expanded and generalized. It is now possible to configure templates for import & export of every entity, including custom ones. Ready-to-use import & export actions are available by default on the following entity grids: Account, Contact, Lead, and Opportunity. Export is also available for Users.

Zendesk integration.

Zendesk is a customer service software which main purpose is to provide means of communication between business owners and their customers. It is therefore a great match to Cases feature of OroCRM.
The integration allows the following features:

  • Synchronization with the existing Zendesk account (multiple integrations possible)
  • One-way synchronization of Zendesk users with OroCRM contacts: for every Zendesk user there will be a matching OroCRM Contact
  • Two-way synchronization of Zendesk tickets with OroCRM Cases
    • When a ticket is created in Zendesk, a matching Case will be created OroCRM
    • When a case is created in OroCRM, the user may link it to Zendesk ticket
    • All changes in a matching pair of Case and ticket are synchronized; the strategy for resolving conflicting changes is subject to configuration.
  • Two-way synchronization of comments to Cases/tickets between two systems.
    Zendesk integration will not come in default OroCRM package; it will be available as a free extension in the Marketplace.

Other changes and improvements

  • Default owners were introduced for channels; this value will be applied to all data.
  • Magento Order creation/completion form that appears in the iframe popup when the user tries to convert an existing shopping cart or create a new order now looks more in line with OroCRM style.
  • Entity grid data is now exported with filters and sorting applied; pagination is not preserved (all pages are exported at once).
  • Attribute key has been changed from the "attribute name" to the "scope + attribute name," so attributes of the same name can be used in different scopes.
  • User avatars are now processed the same way as other fields of image type.
  • The content of image and file type fields can now be imported and exported in the form of download links in the standard CSV import/export feature.
  • Job queue has been improved with multiple workers and jobs priorities.
  • Custom jobs for Magento integration were turned into processes.
  • Declaration of doctrine types for money an percent have been moved to config.yml.
  • Doctrine subscribers were converted to listeners, and all doctrine listeners have been marked as lazy.