
closes odoo/documentation#7796 Signed-off-by: Zachary Straub (zst) <zst@odoo.com> Co-authored-by: larm-odoo <121518652+larm-odoo@users.noreply.github.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>
304 lines
14 KiB
ReStructuredText
304 lines
14 KiB
ReStructuredText
====================
|
|
After-Sales services
|
|
====================
|
|
|
|
*After-Sales* services can be configured in the *Helpdesk* application for individual teams. Once
|
|
enabled, users can :ref:`issue refunds <helpdesk/refunds>`, :ref:`generate coupons
|
|
<helpdesk/coupons>`, :ref:`process returns <helpdesk/returns>`, and :ref:`schedule repairs
|
|
<helpdesk/repairs>` or :ref:`field service interventions <helpdesk/field>` directly from a ticket.
|
|
|
|
Set up after-sales services
|
|
===========================
|
|
|
|
Start by enabling the after-sales services on a specific *Helpdesk* team, by going to
|
|
:menuselection:`Helpdesk app --> Configuration --> Helpdesk Teams` and click on the team the
|
|
services should be applied to. Then, scroll to the :guilabel:`After-Sales` section on the team's
|
|
settings page, and choose which of the following options to enable:
|
|
|
|
- :guilabel:`Refunds`: issues credit notes to refund a customer, or adjust the remaining amount due.
|
|
- :guilabel:`Coupons`: offers discounts and free products through an existing coupon program.
|
|
- :guilabel:`Returns`: initiates a product return from a customer through a reverse transfer.
|
|
- :guilabel:`Repairs`: creates repair orders for broken or faulty products.
|
|
- :guilabel:`Field Service`: plans onsite intervention through the *Field Service* application.
|
|
|
|
.. figure:: after_sales/after-sales-enable.png
|
|
:align: center
|
|
|
|
The services that are enabled can vary based on the type of support a team provides.
|
|
|
|
.. danger::
|
|
Since all the after-sales services in Odoo require integration with other applications, enabling
|
|
any of them may result in the installation of additional modules or applications. Installing a
|
|
new application on a One-App-Free database triggers a 15-day trial. At the end of the trial, if a
|
|
paid subscription has not been added to the database, it will no longer be accessible.
|
|
|
|
.. _helpdesk/refunds:
|
|
|
|
Issue refund with credit note
|
|
=============================
|
|
|
|
A *credit note* is a document issued to a customer informing them that they have been credited a
|
|
certain amount of money. They can be used to provide a full refund to a customer, or to adjust any
|
|
remaining amount due. While they are usually created through the *Accounting* or *Invoicing*
|
|
applications, they can be created through a *Helpdesk* ticket, as well.
|
|
|
|
.. important::
|
|
Invoices **must** be posted before a credit note can be generated.
|
|
|
|
To create a credit note, navigate to a ticket on the :menuselection:`Helpdesk app`, and click the
|
|
:guilabel:`Refund` button in the top-left corner of the ticket form. This opens a
|
|
:guilabel:`Refund` pop-up window.
|
|
|
|
.. image:: after_sales/after-sales-refund-details.png
|
|
:align: center
|
|
:alt: View of a refund creation page.
|
|
|
|
Fill out the fields with the necessary information:
|
|
|
|
- :guilabel:`Sales Order`: if a sales order was referenced on the original ticket, it automatically
|
|
populates in this field.
|
|
- :guilabel:`Product`: the product the ticket is about. If an item is selected in this field, only
|
|
the sales orders, deliveries, and invoices including this product can be selected.
|
|
- :guilabel:`Lot/Serial Number`: this field is **only** visible if the :guilabel:`Product` selected
|
|
has associated lot or serial numbers.
|
|
- :guilabel:`Invoices to Refund`: this field is **required**. If no invoices are available in the
|
|
drop-down, it indicates this customer currently has no posted invoices, or the
|
|
:guilabel:`Product` has no related invoices.
|
|
- :guilabel:`Reason displayed on Credit Note`: this field automatically populates with the ticket
|
|
number, though it can be edited with additional information.
|
|
- :guilabel:`Journal`: the accounting journal where the credit note should be posted. After an
|
|
invoice is selected, this field defaults to the journal listed on the original invoice, though it
|
|
can be changed, if necessary.
|
|
- :guilabel:`Reversal date`: when this field is clicked, use the pop-up calendar that appears to
|
|
select a date for the credit note invoice. This field is **required**.
|
|
|
|
After the necessary fields are filled in, click :guilabel:`Reverse` or :guilabel:`Reverse and Create
|
|
Invoice`.
|
|
|
|
:guilabel:`Reverse` creates a credit note in a draft state that can be edited before it is posted.
|
|
This option can be used to provide a partial refund.
|
|
|
|
:guilabel:`Reverse and Create Invoice` creates a credit note that is automatically posted as well as
|
|
an invoice in a draft state. The invoice contains the same information as the original invoice,
|
|
though this information can be altered.
|
|
|
|
Once the credit note has been posted, a :guilabel:`Credit Notes` smart button is added to the
|
|
*Helpdesk* ticket.
|
|
|
|
.. image:: after_sales/after-sales-credit-note-smart-button.png
|
|
:align: center
|
|
:alt: View of smart buttons on a ticket focusing on the credit note button.
|
|
|
|
.. seealso::
|
|
:doc:`../../../finance/accounting/customer_invoices/credit_notes`
|
|
|
|
.. _helpdesk/coupons:
|
|
|
|
Generate coupons from a ticket
|
|
==============================
|
|
|
|
Coupons can be used to alter the price of products or orders. Conditional rules define the usage
|
|
constraints of a coupon. *Coupon Programs* are configured in the *Sales*, *Point of Sale*, or
|
|
*Website* applications.
|
|
|
|
.. important::
|
|
The *eCommerce* module **must** be installed to create coupon codes from the *Website*.
|
|
|
|
To generate a coupon, open a *Helpdesk* ticket and click on the :guilabel:`Coupon` button in the
|
|
top-left corner. Select an option from the :guilabel:`Coupon Program` drop-down menu in the
|
|
:guilabel:`Generate a Coupon` pop-up window that appears.
|
|
|
|
.. image:: after_sales/after-sales-generate-coupon.png
|
|
:align: center
|
|
:alt: View of a coupon generation window.
|
|
|
|
.. note::
|
|
To create a new :guilabel:`Coupon Program`, navigate to :menuselection:`Sales app --> Products
|
|
--> Discount & Loyalty` and click :guilabel:`New`. To make the program available to share with
|
|
*Helpdesk* customers, the :guilabel:`Program Type` **must** be set to :guilabel:`Coupons`. This
|
|
generates single-use coupon codes that grant immediate access to rewards and discounts.
|
|
|
|
Coupon programs can also be created in the *Point of Sale* application or *Website* application.
|
|
Refer to :doc:`discount and loyalty programs
|
|
<../../../sales/sales/products_prices/loyalty_discount>` for more information.
|
|
|
|
Click on the :guilabel:`Valid Until` field, and use the pop-up calendar to select an expiration date
|
|
for this coupon code. If this field is left blank, the code does **not** expire.
|
|
|
|
Click :guilabel:`Send by Email` to compose an email to send to the customer with the coupon code.
|
|
|
|
.. note::
|
|
When emailing a coupon code, **all** the followers of the ticket are added as recipients to the
|
|
email. Additional recipients can be added to the email as well, in the :guilabel:`Recipients`
|
|
field of the :guilabel:`Compose Email` pop-up window. If an expiration date was selected for the
|
|
code, it is included in the message template.
|
|
|
|
.. image:: after_sales/after-sales-coupon-email.png
|
|
:align: center
|
|
:alt: View of an email draft window with coupon code.
|
|
|
|
Click :guilabel:`Get Share Link` to generate a link to send directly to the customer. Doing so opens
|
|
a :guilabel:`Share Coupons` pop-up window. Click the :guilabel:`Copy` button next to the
|
|
:guilabel:`Share Link` field and paste the results to any communication with the customer. When the
|
|
customer uses the link, the code is automatically applied to their cart.
|
|
|
|
After a :guilabel:`Coupon Code` has been generated, a :guilabel:`Coupons` smart button is added to
|
|
the top of the ticket; click the smart button to view the coupon code, expiration date, and
|
|
additional information.
|
|
|
|
.. image:: after_sales/after-sales-coupon-smart-button.png
|
|
:align: center
|
|
:alt: View of the smart buttons on a ticket focusing on the coupon button.
|
|
|
|
.. seealso::
|
|
- `Coupons <https://www.youtube.com/watch?v=KW5cZHg10jQ>`_
|
|
- :doc:`../../../sales/sales/products_prices/loyalty_discount`
|
|
|
|
.. _helpdesk/returns:
|
|
|
|
Facilitate a product return with a reverse transfer
|
|
===================================================
|
|
|
|
Returns are completed through *reverse transfers*, which generate new warehouse operations for the
|
|
returning products. Click the :guilabel:`Return` button in the top-left corner of a ticket to open
|
|
the :guilabel:`Reverse Transfer` pop-up window.
|
|
|
|
.. image:: after_sales/after-sales-return-button.png
|
|
:align: center
|
|
:alt: View of a Helpdesk ticket with the return button highlighted.
|
|
|
|
.. important::
|
|
The :guilabel:`Return` button **only** appears on a ticket if the customer has a recorded
|
|
delivery in the database.
|
|
|
|
Select a :guilabel:`Sales Order` or :guilabel:`Delivery to Return` to identify the products that
|
|
need to be returned.
|
|
|
|
By default, the quantity matches the validated quantity from the delivery order. Update the
|
|
:guilabel:`Quantity` field, if necessary. To remove a line, click the :guilabel:`🗑️ (trash can)`
|
|
icon.
|
|
|
|
Select a :guilabel:`Return Location` where the items should be directed after the return is
|
|
completed.
|
|
|
|
.. image:: after_sales/after-sales-reverse-transfer.png
|
|
:align: center
|
|
:alt: View of a reverse transfer creation page.
|
|
|
|
Click :guilabel:`Return` to confirm the return. This generates a new warehouse operation for the
|
|
incoming returned products.
|
|
|
|
Use the breadcrumbs to return to the helpdesk ticket. A new :guilabel:`Return` smart button can now
|
|
be accessed at the top of the ticket.
|
|
|
|
.. image:: after_sales/after-sales-return-smart-button.png
|
|
:align: center
|
|
:alt: View of the return smart button on a helpdesk ticket.
|
|
|
|
.. seealso::
|
|
:doc:`../../../sales/sales/products_prices/returns`
|
|
|
|
.. _helpdesk/repairs:
|
|
|
|
Send products for repair from a ticket
|
|
======================================
|
|
|
|
If the ticket is related to an issue with a faulty or broken product, a *repair order* can be
|
|
created from the *Helpdesk* ticket, and managed through the *Repairs* application.
|
|
|
|
To create a new repair order, open a :menuselection:`Helpdesk` ticket and click on the
|
|
:guilabel:`Repair` button in the top-left corner. This opens a :guilabel:`Repair Reference` form.
|
|
|
|
.. image:: after_sales/after-sales-repair-reference.png
|
|
:align: center
|
|
:alt: View of a repair reference page.
|
|
|
|
Fill out the fields with the necessary information:
|
|
|
|
- :guilabel:`Customer`: this field carries over from the ticket, though a new contact can been
|
|
selected from the drop-down menu.
|
|
- :guilabel:`Product to Repair`: if a product was specified in the :guilabel:`Product` field on the
|
|
ticket, it is added to this field automatically. If not, click into the field to select a product
|
|
from the drop-down menu.
|
|
- :guilabel:`Lot/Serial`: this field is **only** visible if the products being repaired are
|
|
tracked, via lot or serial numbers.
|
|
- :guilabel:`Return`: return order from which the product to be repaired comes from.
|
|
- :guilabel:`Under Warranty`: if this box is checked, the sale price for all products from the
|
|
repair order are set to zero.
|
|
- :guilabel:`Scheduled Date`: this field defaults to the current date. To select a new date, click
|
|
into the field and select a date using the drop-down calendar.
|
|
- :guilabel:`Responsible`: assign a user from the drop-down menu to manage the repair.
|
|
- :guilabel:`Tags`: click into this field to assign an existing tag or create a new one. Multiple
|
|
tags can be assigned.
|
|
|
|
If parts are required for the repair, they can be added in the :guilabel:`Parts` tab. Additional
|
|
information for the internal repair team can be added to the :guilabel:`Repair Notes` tab.
|
|
|
|
Once the form is complete, click :guilabel:`Confirm Repair`. To create, edit, and send a quote for
|
|
this repair, click :guilabel:`Create Quotation`.
|
|
|
|
A :guilabel:`Repairs` smart button is then added to the ticket, linking to the repair order.
|
|
|
|
.. image:: after_sales/after-sales-repair-smart-button.png
|
|
:align: center
|
|
:alt: View of smart buttons focusing on repair button.
|
|
|
|
.. tip::
|
|
Once a user creates a repair order from a *Helpdesk* ticket, they can access it through the
|
|
ticket's :guilabel:`Repair` smart button, or from a link in the chatter, even if they do not have
|
|
access rights to the *Repair* application.
|
|
|
|
.. _helpdesk/field:
|
|
|
|
Create field service task from a ticket
|
|
=======================================
|
|
|
|
On-site interventions can be planned from a ticket and managed through the *Field Service*
|
|
application. Customers with :doc:`portal access <../../../general/users/portal>` are able to track
|
|
the progress of a *Field Service* task just as they would a *Helpdesk* ticket.
|
|
|
|
.. tip::
|
|
To change the default *Field Service* project for the team, go to :menuselection:`Helpdesk app
|
|
--> Configuration --> Helpdesk Teams` to select a :guilabel:`Team`. Scroll to the
|
|
:guilabel:`After-Sales` section, and choose a project under :guilabel:`Field Service`.
|
|
|
|
To create a new *Field Service* task, navigate to a :menuselection:`Helpdesk` ticket. Click
|
|
:guilabel:`Plan Intervention` to open the :guilabel:`Create a Field Service task` pop-up window.
|
|
|
|
.. image:: after_sales/after-sales-field-service-create.png
|
|
:align: center
|
|
:alt: View of a Field Service task creation page.
|
|
|
|
Confirm or update the task :guilabel:`Title`.
|
|
|
|
The :guilabel:`Project` field on the :guilabel:`Create a Field Service task` pop-up window defaults
|
|
to the same *Field Service* project that was identified on the team's settings page. To change the
|
|
project for this specific task, select one from the :guilabel:`Project` field.
|
|
|
|
If applicable, select a :guilabel:`Worksheet Template` from the drop-down menu.
|
|
|
|
.. note::
|
|
*Field Service Worksheets* are reports that detail the work completed during an on-site task.
|
|
When work is completed, worksheets are signed by the customer to confirm the job is done and the
|
|
customer is satisfied.
|
|
|
|
If the *Field Service* project assigned to the *Helpdesk* team has worksheets enabled, and has a
|
|
default template assigned, that template automatically appears in the :guilabel:`Worksheet
|
|
Template` drop-down field. Even so, the field can be edited, and another template can be
|
|
selected.
|
|
|
|
If the *Field Service* project does **not** have worksheets enabled, the :guilabel:`Worksheet
|
|
Template` field does not appear on the :guilabel:`Create a Field Service task` pop-up window.
|
|
|
|
Click :guilabel:`Create Task` or :guilabel:`Create & View Task`.
|
|
|
|
After the task is created, a :guilabel:`Tasks` smart button is added to the ticket, linking the
|
|
:guilabel:`Field Service` task to the ticket.
|
|
|
|
.. image:: after_sales/after-sales-field-service-smart-button.png
|
|
:align: center
|
|
:alt: View of ticket smart buttons focused on task.
|
|
|
|
.. seealso::
|
|
`Field Service <https://www.odoo.com/slides/slide/advanced-settings-862?fullscreen=1>`_
|