Compare commits
7 Commits
17.0-marke
...
17.0-sourc
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
bdaf736eef | [IMP] on_premise: update version number in source install | ||
|
|
83d105c067 |
[ADD] CRM: Merge Leads and Opps
closes odoo/documentation#8428 Signed-off-by: Jessica Rogers (jero) <jero@odoo.com> Co-authored-by: ksc-odoo <73958186+ksc-odoo@users.noreply.github.com> Co-authored-by: Sam Lieber (sali) <36018073+samueljlieber@users.noreply.github.com> |
||
|
|
79289bf99b |
[IMP] supported_versions: release saas-17.2
closes odoo/documentation#8497
X-original-commit:
|
||
|
|
ee2cfe2bb5 |
[ADD] Manufacturing: Shop Floor time tracking
closes odoo/documentation#8432 Signed-off-by: Samuel Lieber (sali) <sali@odoo.com> |
||
|
|
490eb9a865 |
[ADD] database management: odoo mobile apps
task-3821019
closes odoo/documentation#8489
X-original-commit:
|
||
|
|
f019e3b18f |
[IMP] email marketing: update essentials doc
closes odoo/documentation#7521 Signed-off-by: Samuel Lieber (sali) <sali@odoo.com> |
||
|
|
31bfb0c693 |
[IMP] marketing automation: audience targeting
closes odoo/documentation#8018 Signed-off-by: Samuel Lieber (sali) <sali@odoo.com> Co-authored-by: ksc-odoo <73958186+ksc-odoo@users.noreply.github.com> |
1
conf.py
|
|
@@ -213,6 +213,7 @@ sphinx.transforms.i18n.docname_to_domain = (
|
|||
# is populated. If a version is passed to `versions` but is not listed here, it will not be shown.
|
||||
versions_names = {
|
||||
'master': "Master",
|
||||
'saas-17.2': "Odoo Online",
|
||||
'saas-17.1': "Odoo Online",
|
||||
'17.0': "Odoo 17",
|
||||
'saas-16.4': "Odoo Online",
|
||||
|
|
|
|||
|
|
@@ -61,4 +61,5 @@ functionalities, including functional support, upgrades, and hosting. `Pricing
|
|||
administration/upgrade
|
||||
administration/neutralized_database
|
||||
administration/supported_versions
|
||||
administration/mobile
|
||||
administration/odoo_accounts
|
||||
|
|
|
|||
67
content/administration/mobile.rst
Normal file
|
|
@@ -0,0 +1,67 @@
|
|||
================
|
||||
Odoo mobile apps
|
||||
================
|
||||
|
||||
Two kind of Odoo mobile app exist: the progressive web app (PWA) and store apps. Using the PWA is
|
||||
recommended.
|
||||
|
||||
Progressive web app (PWA)
|
||||
=========================
|
||||
|
||||
PWAs are web-based applications designed to function across different devices and platforms,
|
||||
leveraging web browsers to deliver user experiences similar to native apps.
|
||||
|
||||
The Odoo PWA features include:
|
||||
|
||||
- Quick access by adding the PWA to a device's home screen
|
||||
- Seamless and borderless navigation experience
|
||||
- Push notifications
|
||||
- SSO authentication
|
||||
|
||||
To install the Odoo PWA, launch a browser supporting PWAs, and sign in to an Odoo database. The
|
||||
instructions to install a PWA depend on the platform and browser used.
|
||||
|
||||
.. tabs::
|
||||
|
||||
.. tab:: Android
|
||||
|
||||
**Chrome**: open Chrome's menu (:guilabel:`⋮`), select :guilabel:`Install app`, and tap
|
||||
:guilabel:`Install`.
|
||||
|
||||
**Firefox**: open Firefox's menu (:guilabel:`⋮`), select :guilabel:`Install`, and either touch
|
||||
and hold the Odoo icon or tap :guilabel:`Add automatically`.
|
||||
|
||||
The PWA can also be installed with **Samsung Internet**, **Edge**, and **Opera**.
|
||||
|
||||
.. tab:: iOS
|
||||
|
||||
**Safari**: open the **Share** menu by tapping the square with an arrow pointing upwards icon,
|
||||
select :guilabel:`Add to Home Screen`, edit the PWA details if desired, and tap
|
||||
:guilabel:`Add`.
|
||||
|
||||
On iOS 16.4 and above, the PWA can also be installed with **Chrome**, **Firefox**, and
|
||||
**Edge**.
|
||||
|
||||
.. tab:: Desktop
|
||||
|
||||
**Chrome** and **Edge**: click the installation icon at the right of the address bar and click
|
||||
:guilabel:`Install`.
|
||||
|
||||
.. seealso::
|
||||
- `Google Chrome Help: Use progressive web apps
|
||||
<https://support.google.com/chrome/answer/9658361>`_
|
||||
- `MDN Web Docs: Installing and uninstalling web apps
|
||||
<https://developer.mozilla.org/en-US/docs/Web/Progressive_web_apps/Guides/Installing>`_
|
||||
- `Microsoft Support: Install, manage, or uninstall apps in Microsoft Edge <https://support.microsoft.com/en-us/topic/install-manage-or-uninstall-apps-in-microsoft-edge-0c156575-a94a-45e4-a54f-3a84846f6113>`_
|
||||
|
||||
Store apps
|
||||
==========
|
||||
|
||||
The Odoo mobile apps are available for download on the `Google Play Store
|
||||
<https://play.google.com/store/apps/details?id=com.odoo.mobile>`_ and `Apple App Store
|
||||
<https://apps.apple.com/app/odoo/id1272543640>`_.
|
||||
|
||||
.. important::
|
||||
The iOS app cannot be updated and will be deprecated at some point in the future.
|
||||
|
||||
While the store apps support multi-accounts, they are not compatible with SS0 authentication.
|
||||
|
|
@@ -144,7 +144,7 @@ Odoo requires **Python 3.10** or later to run.
|
|||
to download and install Python 3 if needed.
|
||||
|
||||
.. note::
|
||||
If Python 3 is already installed, make sure that the version is 3.7 or above, as previous
|
||||
If Python 3 is already installed, make sure that the version is 3.10 or above, as previous
|
||||
versions are not compatible with Odoo.
|
||||
|
||||
.. tabs::
|
||||
|
|
|
|||
|
|
@@ -31,6 +31,12 @@ This matrix shows the support status of every version.
|
|||
- On-Premise
|
||||
- Release date
|
||||
- End of support
|
||||
* - Odoo saas~17.2
|
||||
- |green|
|
||||
- N/A
|
||||
- N/A
|
||||
- April 2024
|
||||
-
|
||||
* - Odoo saas~17.1
|
||||
- |green|
|
||||
- N/A
|
||||
|
|
|
|||
|
|
@@ -8,3 +8,4 @@ Shop Floor
|
|||
:titlesonly:
|
||||
|
||||
shop_floor/shop_floor_overview
|
||||
shop_floor/shop_floor_tracking
|
||||
|
|
|
|||
|
|
@@ -0,0 +1,119 @@
|
|||
========================
|
||||
Shop Floor time tracking
|
||||
========================
|
||||
|
||||
.. |MO| replace:: :abbr:`MO (Manufacturing Order)`
|
||||
.. |MOs| replace:: :abbr:`MOs (Manufacturing Orders)`
|
||||
|
||||
By signing in to the Odoo *Shop Floor* module as *operators*, employees are able to track the amount
|
||||
of time they spend working on each work order.
|
||||
|
||||
Odoo tracks the time it takes to complete each work order, as well as the time each operator spends
|
||||
on each work order.
|
||||
|
||||
Operator sign in
|
||||
================
|
||||
|
||||
To sign in to the *Shop Floor* module as an operator, sign in to the Odoo database, and open the
|
||||
:menuselection:`Shop Floor` module. The employee profile that is signed in to the database is
|
||||
automatically signed in as an operator.
|
||||
|
||||
All active operators are listed in the operator panel on the left side of the module. The panel can
|
||||
be opened or collapsed by clicking the :guilabel:`show/hide panel (white square with black column on
|
||||
left side)` button, located in the top-left corner of the module.
|
||||
|
||||
.. image:: shop_floor_tracking/operator-panel.png
|
||||
:align: center
|
||||
:alt: The operator panel in the Shop Floor module, with the show/hide panel button above it.
|
||||
|
||||
To sign in to *Shop Floor* as a different employee, click the :guilabel:`+ Add Operator` button at
|
||||
the bottom of the panel. Doing so opens the :guilabel:`Select Employee` pop-up window, which lists
|
||||
every employee that is able to sign in to the module.
|
||||
|
||||
Click on a specific employee to sign in using their profile. If no PIN code is required to sign in
|
||||
as that employee, the profile will be signed in automatically.
|
||||
|
||||
If a PIN code is required, a :guilabel:`Password?` pop-up window appears, showing a number pad, from
|
||||
which the code can be entered. Enter the code using the number pad, and click :guilabel:`Confirm` to
|
||||
sign in to the *Shop Floor* module.
|
||||
|
||||
.. image:: shop_floor_tracking/pin-code.png
|
||||
:align: center
|
||||
:alt: The "Password?" pop-up window, which is used to enter an operator PIN code.
|
||||
|
||||
.. note::
|
||||
A PIN code can be set for each employee, which must be entered each time they sign in to the
|
||||
*Shop Floor* module, check in or out in the *Kiosk Mode* of the *Attendances* application, or
|
||||
sign in as a cashier in the *Point of Sale* application.
|
||||
|
||||
To set an employee PIN, navigate to the :menuselection:`Employees` app, and select a specific
|
||||
employee. At the bottom of the employee's form, click on the :guilabel:`HR Settings` tab, and
|
||||
enter a numerical code in the :guilabel:`PIN Code` field.
|
||||
|
||||
Once an employee is signed in to the module, their name appears in the operator panel, along with
|
||||
every other employee that has signed in. While the panel can list multiple employees, only one
|
||||
employee can be active at any given time, on a single instance of the *Shop Floor* module.
|
||||
|
||||
Click on an employee's name to make their profile active. The active employee appears highlighted
|
||||
in blue, while employees that are signed in, but not active, have their names faded out.
|
||||
|
||||
To sign out a specific employee from the module, click the :guilabel:`X (remove)` button next to
|
||||
their name, in the operator panel.
|
||||
|
||||
Track work order duration
|
||||
=========================
|
||||
|
||||
To track time spent working on a work order, begin by selecting the employee working on it from the
|
||||
operator panel.
|
||||
|
||||
Next, navigate to the page for the work center where the work order is scheduled to be carried out.
|
||||
This can be done by selecting the work center from the top navigation in the *Shop Floor* module, or
|
||||
by clicking the name of the work center on the card for the manufacturing order (MO) that the work
|
||||
order is a part of.
|
||||
|
||||
On the page for the work center, find the card for the work order. Once work begins, click the
|
||||
header of the work order card to start timing the duration it takes to complete. This duration is
|
||||
displayed by a timer on the header of the work order card, which tracks the collective time spent
|
||||
working on the work order, by all employees.
|
||||
|
||||
.. image:: shop_floor_tracking/work-order-timer.png
|
||||
:align: center
|
||||
:alt: A work order card with an active timer.
|
||||
|
||||
In addition, the reference number of the work order appears in the operator panel, under the name of
|
||||
the employee working on it, along with a second timer, which tracks the amount of time the employee
|
||||
has spent on the work order individually. This timer only reflects work done during the current
|
||||
session, even if the employee has previously worked on the work order.
|
||||
|
||||
Employees are able to work on multiple work orders simultaneously, and track their time for each.
|
||||
The reference number for each work order being worked on appears below the employee's name, along
|
||||
with a timer.
|
||||
|
||||
.. image:: shop_floor_tracking/employee-timer.png
|
||||
:align: center
|
||||
:alt: An employee card in the operator panel, showing two work order timers.
|
||||
|
||||
To pause the timer on the work order card, and remove the work order from below the employee's name
|
||||
on the operator panel, click the header a second time.
|
||||
|
||||
Once the work order is completed, click the :guilabel:`Mark as Done` button at the bottom of the
|
||||
work order card, which causes the card to fade away. If the timer is still active, it stops once the
|
||||
card disappears completely.
|
||||
|
||||
View work order duration
|
||||
========================
|
||||
|
||||
To view the duration of a work order, navigate to :menuselection:`Manufacturing app --> Operations
|
||||
--> Manufacturing Orders`, and select an |MO|.
|
||||
|
||||
To view and select |MOs| that have been completed and marked as *Done*, remove the :guilabel:`To Do`
|
||||
filter from the :guilabel:`Search...` bar, by clicking on the :guilabel:`X (close)` button on the
|
||||
right side of the filter.
|
||||
|
||||
On the page for the |MO|, click on the :guilabel:`Work Orders` tab to see a list of all work orders
|
||||
included in the |MO|. The time it took to complete each work order is displayed in the
|
||||
:guilabel:`Real Duration` column of the tab.
|
||||
|
||||
The *Real Duration* represents the total time spent working on the work order by all workers who
|
||||
worked on it. It includes time tracked in the *Shop Floor* module, as well as time tracked on the
|
||||
:guilabel:`Work Orders` tab of the |MO| itself.
|
||||
|
After Width: | Height: | Size: 3.3 KiB |
|
After Width: | Height: | Size: 7.3 KiB |
|
After Width: | Height: | Size: 4.5 KiB |
|
After Width: | Height: | Size: 5.7 KiB |
BIN
content/applications/marketing/email_marketing/ab-test-tab.png
Normal file
|
After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 7.5 KiB |
|
Before Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 8.6 KiB |
|
Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 40 KiB |
BIN
content/applications/marketing/email_marketing/calendar-view.png
Normal file
|
After Width: | Height: | Size: 22 KiB |
BIN
content/applications/marketing/email_marketing/campaign-form.png
Normal file
|
After Width: | Height: | Size: 10 KiB |
|
After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 3.0 KiB |
|
After Width: | Height: | Size: 7.8 KiB |
|
Before Width: | Height: | Size: 16 KiB |
|
After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 20 KiB |
|
After Width: | Height: | Size: 38 KiB |
|
Before Width: | Height: | Size: 9.1 KiB After Width: | Height: | Size: 4.3 KiB |
|
After Width: | Height: | Size: 10 KiB |
|
Before Width: | Height: | Size: 7.9 KiB After Width: | Height: | Size: 5.6 KiB |
|
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 6.8 KiB |
|
Before Width: | Height: | Size: 8.0 KiB After Width: | Height: | Size: 4.8 KiB |
BIN
content/applications/marketing/email_marketing/kanban-view.png
Normal file
|
After Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 24 KiB |
|
Before Width: | Height: | Size: 24 KiB |
|
After Width: | Height: | Size: 51 KiB |
|
Before Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 9.1 KiB |
|
After Width: | Height: | Size: 6.7 KiB |
|
After Width: | Height: | Size: 19 KiB |
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 26 KiB |
|
After Width: | Height: | Size: 23 KiB |
|
After Width: | Height: | Size: 7.3 KiB |
|
After Width: | Height: | Size: 16 KiB |
BIN
content/applications/marketing/email_marketing/send-popup.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 16 KiB |
|
After Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 8.1 KiB |
|
Before Width: | Height: | Size: 6.3 KiB After Width: | Height: | Size: 15 KiB |
BIN
content/applications/marketing/email_marketing/settings.png
Normal file
|
After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 20 KiB |
|
After Width: | Height: | Size: 12 KiB |
BIN
content/applications/marketing/email_marketing/test-popup.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 31 KiB |
|
|
@@ -20,7 +20,7 @@ with a :ref:`campaign template <marketing-automation/campaign-templates>`.
|
|||
|
||||
.. cards::
|
||||
|
||||
.. card:: Target an audience
|
||||
.. card:: Audience targeting
|
||||
:target: marketing_automation/target_audience
|
||||
|
||||
Configure the target audience for a campaign.
|
||||
|
|
@@ -148,7 +148,7 @@ The number of participants engaged in a running, or stopped, campaign are shown
|
|||
*Participants* smart button at the top of the campaign form.
|
||||
|
||||
.. seealso::
|
||||
:doc:`Target an audience <marketing_automation/target_audience>`
|
||||
:doc:`Audience targeting <marketing_automation/target_audience>`
|
||||
|
||||
Workflow
|
||||
========
|
||||
|
|
|
|||
|
|
@@ -1,123 +1,84 @@
|
|||
==================
|
||||
Target an audience
|
||||
Audience targeting
|
||||
==================
|
||||
|
||||
Delivering marketing campaigns to the right audience is paramount when trying to grow a business.
|
||||
The Odoo *Marketing Automation* application helps marketers to do just that by providing detailed
|
||||
filtering tools, which can be as simple (or as complex) as necessary, to reach the right customers
|
||||
at the right time.
|
||||
The :guilabel:`Target` and :guilabel:`Filter` fields on the campaign form, also referred to as the
|
||||
*domain*, contain the parameters used to define the target audience for the campaign's reach (i.e.,
|
||||
the unique contact records in the database, and imported list, etc.).
|
||||
|
||||
Configure target filters
|
||||
========================
|
||||
- :guilabel:`Target`: specifies the type of records available for use in the campaign, such as
|
||||
:guilabel:`Lead/Opportunity`, :guilabel:`Event Registration`, :guilabel:`Contact`, The assigned
|
||||
records model determines the fields that are available throughout the campaign, including the
|
||||
fields available in the :guilabel:`Filter` section, and in dynamic placeholders.
|
||||
- :guilabel:`Save as Favorite Filter`: saves the current :guilabel:`Filter` for future use with the
|
||||
current :guilabel:`Target` model, and can be managed from the :menuselection:`Marketing Automation
|
||||
app --> Configuration --> Favorite Filters` menu.
|
||||
- :guilabel:`Unicity based on`: specifies the :guilabel:`Target` model field where duplicates should
|
||||
be avoided. Traditionally, the :guilabel:`Email` field is used, but any available field can be
|
||||
used.
|
||||
- :guilabel:`Filter`: contains an interactive form with configurable logic to further refine the
|
||||
targeting parameters under the chosen :guilabel:`Target` model. See more details in the
|
||||
:ref:`marketing_automation/defining-filters` section.
|
||||
- :guilabel:`Include archived`: allows or disallows the inclusion of archived records in the target
|
||||
audience.
|
||||
|
||||
When configuring the target filters on a marketing campaign, there are some options that have an
|
||||
:guilabel:`> (arrow)` icon beside them. The :guilabel:`> (arrow)` icon signifies that the particular
|
||||
filter has more refined parameters within it that can be customized.
|
||||
.. tip::
|
||||
A :guilabel:`Responsible` user can be assigned to the campaign by activating
|
||||
:ref:`developer-mode`.
|
||||
|
||||
.. image:: target_audience/marketing-filters.png
|
||||
.. note::
|
||||
Each activity in a campaign's workflow can target a subset of the target audience; see the
|
||||
:doc:`workflow_activities` documentation for more information.
|
||||
|
||||
.. _marketing_automation/defining-filters:
|
||||
|
||||
Defining filters
|
||||
================
|
||||
|
||||
The default campaign :guilabel:`Filter` configuration is set to :guilabel:`Match all records`,
|
||||
indicating that the campaign is targeting **all** records of the :guilabel:`Target` model.
|
||||
|
||||
To refine the :guilabel:`Filter` rules of a campaign, click the :guilabel:`➕ Add condition` button
|
||||
to reveal a new row with configurable rule parameters. See the :ref:`Search, filter, and group
|
||||
records <search/custom-filters>` documentation for more information on how to create filter rules.
|
||||
|
||||
.. image:: target_audience/domain-filters.png
|
||||
:align: center
|
||||
:alt: The drop-down filter menu in the Marketing Automation application.
|
||||
:alt: A new filter rule row on the campaign form Filters.
|
||||
|
||||
Filters can be extended by adding *branches* and *nodes*. A *node* adds another filtering parameter
|
||||
to a group of targeting conditions (e.g. a new line), and a *branch* creates a narrowly refined
|
||||
cluster of parameters, allowing filters to be grouped with :guilabel:`ANY` or :guilabel:`ALL`
|
||||
statements.
|
||||
At the bottom of the filter rules is a :guilabel:`# record(s)` button, which indicates the total
|
||||
number of records targeted by this domain. Select the :guilabel:`# record(s)` button to open a
|
||||
:guilabel:`Selected records` pop-up window, in which the targeted records can be viewed.
|
||||
|
||||
Every time a new branch is created, there are two options:
|
||||
.. tip::
|
||||
Activate :ref:`developer-mode` to reveal each field's technical name and data type, as well as
|
||||
the :guilabel:`# Code editor` text area below the filter rules, to view and edit the domain
|
||||
manually.
|
||||
|
||||
- Either the records can match :guilabel:`ALL` criteria for the upcoming rules (creating an AND
|
||||
statement where *all* criteria must match).
|
||||
- Or, the records can match :guilabel:`ANY` criteria for the upcoming rules (creating an OR
|
||||
statement where *only one* of the criteria must match).
|
||||
.. example::
|
||||
To target all leads and opportunities from the *CRM* app that are in the *New* stage, and have an
|
||||
expected revenue greater than $1,000, the following should be entered:
|
||||
|
||||
To change between these two options, simply click the drop-down arrow icon in the green box and
|
||||
select :guilabel:`ANY` or :guilabel:`ALL`.
|
||||
- :guilabel:`Target`: `Lead/Opportunity`
|
||||
- :guilabel:`Unicity based on`: `Email (Lead/Opportunity)`
|
||||
- :guilabel:`Filter`: :guilabel:`Match` :guilabel:`all 🔽 (down arrow)` :guilabel:`of the
|
||||
following rules:`
|
||||
|
||||
To add a node, click on the :guilabel:`➕ (plus sign)` icon, and to add another branch click on the
|
||||
:guilabel:`⋯ (ellipses)` icon. To exclude a node or a branch, click on :guilabel:`✖ (delete)` icon
|
||||
to delete it.
|
||||
#. :guilabel:`Stage` :guilabel:`is in` :guilabel:`New`
|
||||
#. :guilabel:`Expected Revenue` :guilabel:`>` `1,000`
|
||||
#. :guilabel:`any 🔽 (down arrow)` :guilabel:`of:`
|
||||
|
||||
.. image:: target_audience/marketing-filter-nodes.png
|
||||
:align: center
|
||||
:alt: The drop-down filter menu in the Marketing Automation application.
|
||||
- :guilabel:`Type` :guilabel:`=` :guilabel:`Lead`
|
||||
- :guilabel:`Type` :guilabel:`=` :guilabel:`Opportunity`
|
||||
|
||||
Use cases
|
||||
=========
|
||||
With the above configuration, the campaign targets :guilabel:`157 record(s)`.
|
||||
|
||||
The following scenarios outline different combinations of filters a marketing campaign might
|
||||
commonly use.
|
||||
.. image:: target_audience/filter-scenario-one.png
|
||||
:align: center
|
||||
:alt: A domain configuration in a Marketing Automation campaign.
|
||||
|
||||
Scenario #1: Narrow target down to new opportunities in the pipeline
|
||||
--------------------------------------------------------------------
|
||||
|
||||
While in *Edit mode* on a campaign template form (by clicking the :guilabel:`Edit` button), select
|
||||
the :guilabel:`Target` field, and click :guilabel:`Search More` from the drop-down menu. Then,
|
||||
search for :guilabel:`Lead/Opportunity`, and select it.
|
||||
|
||||
Next, click :guilabel:`Add Filter` in the :guilabel:`Filter` field. Then, click on the default
|
||||
:guilabel:`ID` filter option in the first portion of the filter equation. Doing so reveals a
|
||||
drop-down menu full of filter options. From this drop-down, scroll down (or search for)
|
||||
:guilabel:`Type`.
|
||||
|
||||
Keep the second portion of the filter equation on the default :guilabel:`🟰 (equal sign)` icon.
|
||||
|
||||
Next, change the third (and final) portion of the filter equation from :guilabel:`Lead` to
|
||||
:guilabel:`Opportunity`. The number of :guilabel:`Records` that fit this specific filter equation
|
||||
changes as the equation is customized.
|
||||
|
||||
Add another node to this filter by clicking the :guilabel:`➕ (plus sign)` icon to the right of the
|
||||
equation.
|
||||
|
||||
With "new" opportunities being the target of this filter, the second node will focus on *only*
|
||||
locating opportunities that are in the :guilabel:`New` stage of the pipeline. To do that, select
|
||||
the default :guilabel:`ID` from the first portion of the second filter equation, and scroll down (or
|
||||
search for) :guilabel:`Stage` from the field drop-down menu.
|
||||
|
||||
Once again, leave the second portion of the filter equation on :guilabel:`🟰 (equal sign)` icon.
|
||||
|
||||
Lastly, highlight the default value in the third (and final) portion of the second filter equation,
|
||||
and type in `New`. With that in place, Odoo only targets opportunities that are in the "New" stage
|
||||
of the pipeline.
|
||||
|
||||
.. image:: target_audience/filters-opportunities.png
|
||||
:align: center
|
||||
:alt: A standard scenario using filters in the Odoo Marketing Automation app.
|
||||
|
||||
Scenario #2: Narrow down target to event attendees who purchased a specific ticket
|
||||
----------------------------------------------------------------------------------
|
||||
|
||||
While in *Edit mode* on a campaign template form (by clicking the :guilabel:`Edit` button), select
|
||||
the :guilabel:`Target` field, and click :guilabel:`Search More` from the drop-down menu. Then,
|
||||
scroll down (or search for) :guilabel:`Event`, and select it.
|
||||
|
||||
Next, click :guilabel:`Add Filter` in the :guilabel:`Filter` field. Click on the default
|
||||
:guilabel:`ID` filter option in the first portion of the filter equation. Doing so reveals a
|
||||
drop-down menu full of filter options. From this drop-down, scroll down (or search for)
|
||||
:guilabel:`Event`.
|
||||
|
||||
Click the default :guilabel:`🟰 (equal sign)` icon in the second portion of the filter equation. This
|
||||
reveals a drop-down menu. From this drop-down menu, select :guilabel:`contains`.
|
||||
|
||||
In the third (and final) empty portion of the filter equation, type in the name of the event(s) that
|
||||
Odoo should consider for this campaign filter.
|
||||
|
||||
Then, add another node to this filter by clicking the :guilabel:`➕ (plus sign)` icon to the right of
|
||||
the equation.
|
||||
|
||||
The second node will focus on targeting this campaign to attendees who purchase a specific type of
|
||||
ticket to the aforementioned event(s) mentioned in the first filter equation.
|
||||
|
||||
To do that, select the default :guilabel:`ID` from the first portion of the second filter equation,
|
||||
and scroll down (or search for) :guilabel:`Event Ticket` from the field drop-down menu. Then, in
|
||||
that same drop-down menu, select :guilabel:`Name`.
|
||||
|
||||
Once again, click the default :guilabel:`🟰 (equal sign)` icon in the second portion of the filter
|
||||
equation, and select :guilabel:`contains`.
|
||||
|
||||
Lastly, in the third (and final) portion of the second filter equation, which is blank, type in the
|
||||
name of the ticket type that should be used for the filter. In this case, :guilabel:`Standard` is
|
||||
the name of the event ticket type for this sample filter.
|
||||
|
||||
.. image:: target_audience/filters-event-ticket.png
|
||||
:align: center
|
||||
:alt: An event ticket filter in the Odoo Marketing Automation application.
|
||||
.. seealso::
|
||||
- :ref:`Domain developer documentation <reference/orm/domains>`
|
||||
- :doc:`workflow_activities`
|
||||
- :doc:`testing_running`
|
||||
- :doc:`understanding_metrics`
|
||||
|
|
|
|||
|
After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 44 KiB |
|
Before Width: | Height: | Size: 13 KiB |
|
Before Width: | Height: | Size: 9.1 KiB |
|
Before Width: | Height: | Size: 14 KiB |
|
Before Width: | Height: | Size: 10 KiB |
|
|
@@ -9,3 +9,4 @@ Organize the pipeline
|
|||
|
||||
pipeline/lost_opportunities
|
||||
pipeline/multi_sales_team
|
||||
pipeline/merge_similar
|
||||
|
|
|
|||
115
content/applications/sales/crm/pipeline/merge_similar.rst
Normal file
|
|
@@ -0,0 +1,115 @@
|
|||
=====================================
|
||||
Merge similar leads and opportunities
|
||||
=====================================
|
||||
|
||||
Odoo automatically detects similar *leads* and *opportunities* within the *CRM* app. Identifying
|
||||
these duplicated records allows them to be merged without losing any information in the process.
|
||||
Not only does this help keep the *pipeline* organized, but it also prevents customers from being
|
||||
contacted by more than one salesperson.
|
||||
|
||||
.. note::
|
||||
When merging opportunities, no information is lost. Data from the other opportunity is logged in
|
||||
the chatter, and the information fields, for reference.
|
||||
|
||||
Identify similar leads and opportunities
|
||||
========================================
|
||||
|
||||
Similar leads and opportunities are identified by comparing the *email address* and *phone number*
|
||||
of the associated contact. If a similar lead/opportunity is found, a *Similar Leads* smart button
|
||||
appears at the top of the lead (or opportunity) record.
|
||||
|
||||
.. image:: merge_similar/similar-smart-button.png
|
||||
:align: center
|
||||
:alt: An opportunity record with emphasis on the Similar Leads smart button.
|
||||
|
||||
Comparing similar leads and opportunities
|
||||
-----------------------------------------
|
||||
|
||||
To compare the details of similar leads/opportunities, navigate to :menuselection:`CRM app -->
|
||||
Pipeline` or :menuselection:`CRM app --> Leads`. Open a lead or opportunity, and click the
|
||||
Doing so opens a Kanban view that only displays similar leads/opportunities. Click on a card to view
|
||||
the details for the lead/opportunity, and confirm if they should be merged.
|
||||
|
||||
Merging similar leads and opportunities
|
||||
=======================================
|
||||
|
||||
.. important::
|
||||
When merging, Odoo gives priority to whichever lead/opportunity was created in the system first,
|
||||
merging the information into the first created lead/opportunity. However, if a lead and an
|
||||
opportunity are being merged, the resulting record is referred to as an opportunity, regardless
|
||||
of which record was created first.
|
||||
|
||||
After confirming that the leads/opportunities should be merged, return to the Kanban view using the
|
||||
breadcrumb link, or by clicking the :guilabel:`Similar Leads` smart button. Click the :guilabel:`≣
|
||||
(view list)` icon to change to list view.
|
||||
|
||||
Check the box on the left of the page for the leads/opportunities to be merged. Then, click the
|
||||
:guilabel:`⚙️ Actions` icon at the top of the page, to reveal a drop-down menu. From that drop-down
|
||||
menu, select the :guilabel:`Merge` option to merge the selected opportunities or leads.
|
||||
|
||||
When :guilabel:`Merge` is selected from the :guilabel:`⚙️ Actions` drop-down menu, a
|
||||
:guilabel:`Merge` pop-up modal appears. In that pop-up modal, under the :guilabel:`Assign
|
||||
opportunities to` heading, select a :guilabel:`Salesperson` and :guilabel:`Sales Team` from the
|
||||
appropriate drop-down menus.
|
||||
|
||||
Below those fields, the leads/opportunities to merge are listed, along with their related
|
||||
information. To merge those selected leads/opportunities, click :guilabel:`Merge`.
|
||||
|
||||
.. image:: merge_similar/select-merge.png
|
||||
:align: center
|
||||
:alt: List of similar leads and opportunities selected for merge in the CRM app.
|
||||
|
||||
.. danger::
|
||||
Merging is an irreversible action. Do **not** merge leads/opportunities unless absolutely certain
|
||||
they should be combined.
|
||||
|
||||
When leads/opportunities should not be merged
|
||||
=============================================
|
||||
|
||||
There may be instances where a similar lead or opportunity is identified, but should *not* be
|
||||
merged. These circumstances vary, based on the processes of the sales team and organization. Some
|
||||
potential scenarios are listed below.
|
||||
|
||||
Lost leads
|
||||
----------
|
||||
|
||||
If a lead/opportunity has been marked as :doc:`lost <lost_opportunities>`, it can still be merged
|
||||
with an active lead or opportunity. The resulting lead/opportunity is marked active, and added to
|
||||
the pipeline.
|
||||
|
||||
Different contact within an organization
|
||||
----------------------------------------
|
||||
|
||||
Leads/opportunities from the same organization, but with different points of contact, may not have
|
||||
the same needs. In this case, it is beneficial to *not* merge these records, though assigning the
|
||||
same salesperson, or sales team, can prevent duplicated work and miscommunication.
|
||||
|
||||
Existing duplicates with more than one salesperson
|
||||
--------------------------------------------------
|
||||
|
||||
If more than one lead/opportunity exists in the database, there may be multiple salespeople assigned
|
||||
to them, who are actively working on them independently. While these leads/opportunities may need
|
||||
to be managed separately, it is recommended that any affected salespeople be tagged in an internal
|
||||
note for visibility.
|
||||
|
||||
Contact information is similar but not exact
|
||||
--------------------------------------------
|
||||
|
||||
Similar leads and opportunities are identified by comparing the email addresses and phone numbers of
|
||||
the associated contacts. However, if the email address is *similar*, but not *exact*, they may need
|
||||
to remain independent.
|
||||
|
||||
.. example::
|
||||
Three different leads were added to the pipeline and assigned to different salespeople. They
|
||||
were identified as *Similar Leads* due to the email addresses of the contacts.
|
||||
|
||||
Two of the leads appear to come from the same individual, `Robin`, and have identical email
|
||||
addresses. These leads should be merged.
|
||||
|
||||
The third lead has the same email domain, but the address is different, as is the contact name.
|
||||
While this lead is most likely from the same organization, it is from a different contact, and
|
||||
should **not** be merged.
|
||||
|
||||
.. image:: merge_similar/contact-info-example.png
|
||||
:align: center
|
||||
:alt: List of similar leads with emphasis on the contact information in the CRM app.
|
||||
|
After Width: | Height: | Size: 19 KiB |
|
After Width: | Height: | Size: 25 KiB |
|
After Width: | Height: | Size: 22 KiB |