[IMP] productivity: microsoft calendar rewrite

closes odoo/documentation#8780

Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
This commit is contained in:
tiku-odoo 2024-04-16 16:36:42 -04:00
parent c98b6a8717
commit 065f242993
6 changed files with 115 additions and 45 deletions

View File

@ -2,76 +2,142 @@
Outlook Calendar synchronization Outlook Calendar synchronization
================================ ================================
Synchronizing a user's Outlook Calendar with Odoo is useful for keeping track of their tasks and Synchronizing a user's *Outlook Calendar* with Odoo is useful for keeping track of tasks and
appointments across all related applications. appointments across all related applications.
.. seealso:: .. seealso::
- :doc:`/applications/general/users/azure` - :doc:`../../general/users/azure`
- :doc:`/applications/general/email_communication/azure_oauth` - :doc:`../../general/email_communication/azure_oauth`
Register the application with Microsoft Azure Microsoft Azure setup
============================================= =====================
To sync the Outlook Calendar with Odoo's Calendar, a Microsoft Azure account is needed. Creating an To sync the *Outlook Calendar* with Odoo's *Calendar*, a Microsoft *Azure* account is required.
account is free for users who have never tried or paid for Azure. For more information, `click here Creating an account is free for users who have never tried, or paid for, *Azure*. For more
information, view the account options on the `Azure website
<https://azure.microsoft.com/en-us/free/?WT.mc_id=A261C142F>`_. <https://azure.microsoft.com/en-us/free/?WT.mc_id=A261C142F>`_.
Refer to `Microsoft's documentation <https://docs.microsoft.com/en-us/azure/active-directory/ Refer to `Microsoft's documentation <https://docs.microsoft.com/en-us/azure/active-directory/
develop/quickstart-create-new-tenant>`_ on how to set up an Microsoft Entra ID (formally called develop/quickstart-create-new-tenant>`_ on how to set up a Microsoft *Entra ID* (formally called
*Microsoft Azure Active Directory (Azure AD)*), which is a representation of an organization to Microsoft *Azure Active Directory (Azure AD)*). This is an API console to manage and register
manage and register apps. Microsoft applications.
Then, `Register an Application <https://docs.microsoft.com/en-us/azure/active-directory/develop/ Existing Microsoft *Entra ID* users should log in at the `Microsoft Azure developer portal
quickstart-register-app>`_, choosing the appropriate :guilabel:`Supported account type`. Users who <https://portal.azure.com/#home>`_. Next, select :guilabel:`View` under the section labeled
wish to connect their Outlook calendar to Odoo should select the :guilabel:`Accounts in any :guilabel:`Manage Microsoft Entra ID`.
organizational directory (Any Microsoft Entra ID directory - Multitenant) and personal Microsoft
accounts (e.g. Skype, Xbox)` option for :guilabel:`Supported account types`.
When configuring the :guilabel:`Redirect URI`, choose :guilabel:`Web` and copy the Odoo database Register application
URI (URL) followed by `/microsoft_account/authentication`. --------------------
After logging in with the Microsoft *Entra ID*, `register an application
<https://docs.microsoft.com/en-us/azure/active-directory/develop/quickstart-register-app>`_.
To create an application, click :guilabel:`+ Add` in the top menu. From the resulting drop-down
menu, select :guilabel:`App Registration`.
.. image:: outlook/app-register.png
:align: center
:alt: Microsoft Azure management page with + Add and App Registration menu highlighted.
Enter a unique :guilabel:`Name` for the connected application.
Choosing the appropriate :guilabel:`Supported account type` is essential, or else the connected
application will not work. Users who wish to connect their *Outlook Calendar* to Odoo should select
the :guilabel:`Accounts in any organizational directory (Any Microsoft Entra ID directory -
Multitenant) and personal Microsoft accounts (e.g. Skype, Xbox)` option for :guilabel:`Supported
account types`.
When configuring the :guilabel:`Redirect URI`, choose the :guilabel:`Web` option from the first
drop-down menu. Then, enter the Odoo database URI (URL) followed by
`/microsoft_account/authentication`.
.. example:: .. example::
Enter `https://www.companyname.odoo.com/microsoft_account/authentication` for the Enter `https://yourdbname.odoo.com/microsoft_account/authentication` for the :guilabel:`Redirect
:guilabel:`Redirect URI`. URI`. Replace `yourdbname.odoo.com` with the :abbr:`URL (Uniform Resource Locator)`.
.. tip::
Ensure the database's :abbr:`URL (Uniform Resource Locator)` (domain) used in the URI is the
exact same domain as the one configured on the `web.base.url` system parameter.
Access the `web.base.url` by activating :ref:`developer mode <developer-mode>`, and navigating to
:menuselection:`Settings app --> Technical header menu --> Parameters section --> System
Parameters`. Then, select it from the :guilabel:`Key` list on the :guilabel:`System Parameters`
page.
.. image:: outlook/azure-register-application.png .. image:: outlook/azure-register-application.png
:align: center :align: center
:alt: The "Supported account type" and "Redirect URI" settings in the Microsoft Entra ID portal. :alt: The "Supported account type" and "Redirect URI" settings in the Microsoft Entra ID portal.
For more information on the restrictions and limitations of URIs, `check this page <https://docs. For more information on the restrictions and limitations of URIs, check Microsoft's `Redirect URI
microsoft.com/en-us/azure/active-directory/develop/reply-url>`_. (reply URL) restrictions and limitations
<https://docs.microsoft.com/en-us/azure/active-directory/develop/reply-url>`_ page.
Regarding the application credentials, the user *must* add a client secret, which allows Odoo to Finally, on the application registration page, click :guilabel:`Register` button to complete the
authenticate itself, requiring no interaction from the user's side. :guilabel:`Certificates` are application registration. The :guilabel:`Application (client) ID` is produced. Copy this value, as
optional. it is needed later, in the :ref:`outlook_calendar/odoo_setup`.
To do add a client secret, click :guilabel:`Add a certificate or secret` and then click .. image:: outlook/app-client-id.png
:guilabel:`New client secret`. Next, type a :guilabel:`Description` and select when the client :align: center
secret :guilabel:`Expires`. :alt: Application client ID highlighted in the essentials section of the newly created
application.
Since resetting the synchronization can be tricky, Odoo recommends setting the maximum allowed Create client secret
expiration date for the client secret (24 months), so there is no need to re-synchronize soon. --------------------
Finally, click :guilabel:`Add` to generate the client secret (:guilabel:`Secret ID`).
The second credential needed to complete the synchronization of the Microsoft *Outlook Calendar* is
the *Client Secret*. The user **must** add a client secret, as this allows Odoo to authenticate
itself, requiring no interaction from the user's side. *Certificates* are optional.
To add a client secret, click :menuselection:`Certificates & secrets` in the left menu. Then click
:guilabel:`+ New client secret` to create the client secret.
.. image:: outlook/client-secret.png
:align: center
:alt: New client secret page with certificates and secrets menu and new client secret option
highlighted.
Next, type a :guilabel:`Description`, and select when the client secret :guilabel:`Expires`.
Available options include: :guilabel:`90 days (3 months)`, :guilabel:`365 days (12 months)`,
:guilabel:`545 days (18 months)`, :guilabel:`730 days (24 months)` or :guilabel:`Custom`. The
:guilabel:`Custom` option allows the administrator to set a :guilabel:`Start` and :guilabel:`End`
date.
Finally, click :guilabel:`Add` to :guilabel:`Add a client secret`.
.. tip::
Since resetting the synchronization can be tricky, Odoo recommends setting the maximum allowed
expiration date for the client secret (24 months or custom), so there is no need to
re-synchronize soon.
Copy the :guilabel:`Value` for use in the next section.
.. warning::
Client secret values cannot be viewed, except immediately after creation. Be sure to save the
secret when created *before* leaving the page.
.. _outlook_calendar/odoo_setup:
Configuration in Odoo Configuration in Odoo
===================== =====================
In the Odoo database, go to :menuselection:`Settings --> General Settings --> Integrations` and In the Odoo database, go to :menuselection:`Settings app --> Integrations section`, and tick the
activate the :guilabel:`Outlook Calendar` setting. checkbox beside the :guilabel:`Outlook Calendar` setting. Remember to click :guilabel:`Save` to
implement the changes.
.. image:: outlook/outlook-calendar-setting.png .. image:: outlook/outlook-calendar-setting.png
:align: center :align: center
:alt: The "Outlook Calendar" setting activated in Odoo. :alt: The "Outlook Calendar" setting activated in Odoo.
From the Microsoft Azure portal, under the :guilabel:`Overview` section of the application, copy From the Microsoft *Azure* portal, under the :guilabel:`Overview` section of the application, copy
the :guilabel:`Application (Client) ID`, and paste it into the :guilabel:`Client ID` field in Odoo. the :guilabel:`Application (Client) ID`, if it has not already been copied, and paste it into the
:guilabel:`Client ID` field in Odoo.
.. image:: outlook/client-id.png .. image:: outlook/client-id.png
:align: center :align: center
:alt: The "Client ID" in the Microsoft Azure portal. :alt: The "Client ID" in the Microsoft Azure portal.
In the Microsoft Azure portal, under the :guilabel:`Certificates & secrets` section, copy the Copy the previously-acquired :guilabel:`Value` (Client Secret Value), and paste it into the
:guilabel:`Client Secret Value` and paste it into the :guilabel:`Client Secret` field in Odoo. :guilabel:`Client Secret` field in Odoo.
.. image:: outlook/client-secret-value.png .. image:: outlook/client-secret-value.png
:align: center :align: center
@ -115,26 +181,30 @@ Sync with Outlook
Sync Odoo Calendar and Outlook Sync Odoo Calendar and Outlook
------------------------------ ------------------------------
In the Odoo database, go to the :guilabel:`Calendar` module and click the :guilabel:`Outlook` sync In the Odoo database, open to the *Calendar* module, and click the :guilabel:`Outlook` sync button
button. The page will redirect to a Microsoft login page, and the user is asked to log in to their on the right-side of the page, beneath the monthly calendar.
account, if they are not already, and grant the required permissions.
.. image:: outlook/outlook-sync-button.png .. image:: outlook/outlook-sync-button.png
:align: center :align: center
:alt: The "Outlook" sync button in Odoo Calendar. :alt: The "Outlook" sync button in Odoo Calendar.
The synchronization is a two-way process, meaning that events are reconciled in both accounts The synchronization is a two-way process, meaning that events are reconciled in both accounts
(Outlook and Odoo). (*Outlook* and Odoo). The page redirects to a Microsoft login page, and the user is asked to log in
to their account, if they are not already. Finally, grant the required permissions by clicking
:guilabel:`Accept`.
.. image:: outlook/accept-terms.png
:align: center
:alt: Authentication process on Microsoft Outlook OAuth page.
.. note:: .. note::
All users that want to use the synchronization simply need to :ref:`sync their calendar with All users that want to use the synchronization simply need to :ref:`sync their calendar with
Outlook <outlook/sync>`. The configuration of Microsoft's Azure account is only done once, as Outlook <outlook/sync>`. The configuration of Microsoft's *Azure* account is only done once, as
Microsoft Entra ID tenants' Client IDs and Client Secrets are unique, and represent an Microsoft *Entra ID* tenants' client IDs and client secrets are unique, and help the user manage
organization that helps the user to manage a specific instance of Microsoft cloud services for a specific instance of Microsoft cloud services for internal and external users.
their internal and external users.
.. seealso:: .. seealso::
- :doc:`/applications/general/integrations/mail_plugins/outlook` - :doc:`../../general/integrations/mail_plugins/outlook`
- :doc:`google` - :doc:`google`
Troubleshoot sync Troubleshoot sync

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB