# After-Sales services *After-Sales* services can be configured in the *Helpdesk* application for individual teams. Once enabled, users can {ref}`issue refunds `, {ref}`generate coupons `, {ref}`process returns `, and {ref}`schedule repairs ` or {ref}`field service interventions ` 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) :::