<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.innovaphone.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Pablo.montiel</id>
	<title>innovaphone wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.innovaphone.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Pablo.montiel"/>
	<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Special:Contributions/Pablo.montiel"/>
	<updated>2026-05-09T05:44:37Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.42.3</generator>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Howto:Gcalendar_-_Wecom_-_Partner_App&amp;diff=78974</id>
		<title>Howto:Gcalendar - Wecom - Partner App</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Howto:Gcalendar_-_Wecom_-_Partner_App&amp;diff=78974"/>
		<updated>2026-03-02T13:38:59Z</updated>

		<summary type="html">&lt;p&gt;Pablo.montiel: /* Users App */ Notification badge for ongoing meetings section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FIXME|reason=Work in progress, still incomplete}}&lt;br /&gt;
[[Image:Logo 2 Wecom.png||200px|right]]&lt;br /&gt;
&lt;br /&gt;
== Product Name ==&lt;br /&gt;
[[File:Gcalendar icone.png|none|thumb|Gcalendar Icon]]&lt;br /&gt;
[[File:Gcalendar icone admin.png|none|thumb|Gcalendar Admin Icon]]&lt;br /&gt;
Wecom [https://wecom.com.br/ Gcalendar]&lt;br /&gt;
&lt;br /&gt;
== Certification Status ==&lt;br /&gt;
&amp;lt;!--Do not remove comment. Will be added by innovaphone upon document check &amp;amp; app availablity on app store.--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Space dedicated to Gcalendar certification information.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Category ==&lt;br /&gt;
&amp;lt;!--Do not change this section and do not remove comments. Will be set by Innovaphone upon document check.--&amp;gt;&lt;br /&gt;
[[Category:Partner_Apps|{{PAGENAME}}]]&lt;br /&gt;
[[Category:3rdParty CTI and integrations|{{PAGENAME}}]]&lt;br /&gt;
{{Category:3rdParty CTI and integrations}}&lt;br /&gt;
&lt;br /&gt;
== Vendor ==&lt;br /&gt;
[[Image:Logo 2 Wecom.png|150px]]&lt;br /&gt;
&lt;br /&gt;
Wecom are integrators, maintainers, and distributors of unified communications systems.&lt;br /&gt;
Aimed at the corporate market, our focus is on promoting digital transformation for the businesses we advise, presenting the best mobility and collaboration tools available on the market. We are partners with leading brands and distributors in Brazil. With a solid portfolio of clients in a wide range of segments, our activities include consulting, project development, implementation and maintenance of communication systems, with extensive experience in collaboration technologies and advanced technical staff.&lt;br /&gt;
&lt;br /&gt;
[https://wecom.com.br/sobre-nos/ Wecom -About us]&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&#039;&#039;&#039;Gcalendar&#039;&#039;&#039; is a Partner App developed by &#039;&#039;&#039;Wecom&#039;&#039;&#039; to integrate Google Calendar events with the Innovaphone presence system.&lt;br /&gt;
&lt;br /&gt;
The app operates through two components:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Users App&#039;&#039;&#039; – Where the users initiate their account linking process via Google login.&lt;br /&gt;
* &#039;&#039;&#039;Admin App&#039;&#039;&#039; – Allows configuration of the integration with editable fields for Google Client ID and Client Secret, along with a dedicated OAuth authorization URL.&lt;br /&gt;
&lt;br /&gt;
This setup enables real-time status synchronization and supports four languages: Portuguese, English, Spanish, and German.&lt;br /&gt;
&lt;br /&gt;
== Functions ==&lt;br /&gt;
This section provides an overview of each core part of the &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; application. It highlights what actions can be performed, and how to navigate through the available features. Additionally, this section provides step-by-step explanations for each functionality.&lt;br /&gt;
&lt;br /&gt;
=== Users App ===&lt;br /&gt;
The &#039;&#039;&#039;Users App&#039;&#039;&#039; is the interface used by users to link their Google Calendar account to the Innovaphone presence system. It focuses only on enabling the connection between the user and their calendar through Google authentication.&lt;br /&gt;
[[File:Gcalendar user app interface detail.png|none|thumb|404x404px|Users app interface with google account pop-up]]&lt;br /&gt;
&lt;br /&gt;
==== Connecting with Google account ====&lt;br /&gt;
&lt;br /&gt;
# Open the &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; Users App.&lt;br /&gt;
# Click the &#039;&#039;&#039;Connect&#039;&#039;&#039; button.&lt;br /&gt;
# A Google login popup will appear.&lt;br /&gt;
#* This popup allows users to choose or log into a Google account.&lt;br /&gt;
# After selecting an account, the integration process will begin automatically.&lt;br /&gt;
#* Once completed, the account will be linked to the Innovaphone system.&lt;br /&gt;
[[File:Gcallendar Connect Button.png|none|thumb|Connect button]]&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⇒ &#039;&#039;&#039;Note:&#039;&#039;&#039; Before starting the connection process, ensure you&#039;re already logged into the correct Google account in your browser. This helps avoid selecting the wrong account and ensures the integration is completed with the intended calendar.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Viewing Upcoming Meetings ====&lt;br /&gt;
&lt;br /&gt;
On the main screen, users can see a list of their upcoming scheduled meetings.  &lt;br /&gt;
Each meeting is displayed as a card containing:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Title&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Start time&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:Gcalendar Upcoming Meetings.jpg|none|thumb|392x392px|Upcoming meetings list with active meeting]]&lt;br /&gt;
&lt;br /&gt;
When a meeting card is clicked, Gcalendar redirects the user based on how the event was created:&lt;br /&gt;
&lt;br /&gt;
* If the event does &#039;&#039;&#039;not&#039;&#039;&#039; include a Google Meet link, the user is taken to the event details page in Google Calendar.&lt;br /&gt;
* If the event includes an associated &#039;&#039;&#039;Google Meet&#039;&#039;&#039; link, the user is redirected directly to the online meeting.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⇒ This behavior allows users to quickly join virtual meetings while still providing access to full event details when no meeting link is available.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Creating a New Meeting ====&lt;br /&gt;
&lt;br /&gt;
To schedule a new meeting:&lt;br /&gt;
# Click the &#039;&#039;&#039;+&#039;&#039;&#039; button on the main screen.&lt;br /&gt;
# A creation modal will open with the following fields:&lt;br /&gt;
#* &#039;&#039;&#039;Summary&#039;&#039;&#039; – The title of the meeting.&lt;br /&gt;
#* &#039;&#039;&#039;Description&#039;&#039;&#039; – Details or agenda of the meeting.&lt;br /&gt;
#* &#039;&#039;&#039;Location&#039;&#039;&#039; – Where the meeting will occur (physical address or online).&lt;br /&gt;
#* &#039;&#039;&#039;Start time&#039;&#039;&#039; – When the meeting begins.&lt;br /&gt;
#* &#039;&#039;&#039;End time&#039;&#039;&#039; – When the meeting ends.&lt;br /&gt;
#* &#039;&#039;&#039;Time zone&#039;&#039;&#039; – The time zone for the meeting.&lt;br /&gt;
#* &#039;&#039;&#039;Attendees&#039;&#039;&#039; – Email addresses of participants who should receive an invitation.&lt;br /&gt;
#* &#039;&#039;&#039;Add Google Meet&#039;&#039;&#039; – When checked, a Google Meet link is automatically generated and included in the event.&lt;br /&gt;
&lt;br /&gt;
After filling in the required information:&lt;br /&gt;
* Click &#039;&#039;&#039;Save&#039;&#039;&#039; to create the meeting.&lt;br /&gt;
* Click &#039;&#039;&#039;Cancel&#039;&#039;&#039; to close the modal without saving any changes.&lt;br /&gt;
[[File:Gcalendar Create Meeting Modal.jpg|none|thumb|420x420px|Meeting creation modal]]&lt;br /&gt;
&lt;br /&gt;
==== Disconnecting from Google account ====&lt;br /&gt;
&lt;br /&gt;
# Open the &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; Users App.&lt;br /&gt;
# If a Google account is already connected, the &#039;&#039;&#039;Connect&#039;&#039;&#039; button will be replaced by a &#039;&#039;&#039;Disconnect&#039;&#039;&#039; button.&lt;br /&gt;
# Click the &#039;&#039;&#039;Disconnect&#039;&#039;&#039; button to unlink your current Google Calendar account from the Innovaphone presence system.&lt;br /&gt;
# Once disconnected, presence synchronization will be disabled for that user.&lt;br /&gt;
[[File:Gcallendar Disconnect Button Dtl.png|none|thumb|392x392px|Disconnect button]]&lt;br /&gt;
&lt;br /&gt;
==== Meeting-based Presence Synchronization ====&lt;br /&gt;
&lt;br /&gt;
When a meeting is active in the user’s Google Calendar, Gcalendar automatically updates the user’s Innovaphone presence to reflect that meeting.&lt;br /&gt;
[[File:Status and Status Name.png|none|thumb|392x392px|User&#039;s status and status name change when meeting is happening]]&lt;br /&gt;
&lt;br /&gt;
# While the meeting is in progress, the user’s presence status is set to &#039;&#039;&#039;DND (Do Not Disturb)&#039;&#039;&#039;.&lt;br /&gt;
# At the same time, the user’s &#039;&#039;&#039;status text&#039;&#039;&#039; is updated to the &#039;&#039;&#039;meeting title&#039;&#039;&#039;.&lt;br /&gt;
# Once the meeting ends, Gcalendar restores the user’s presence status and status text to the &#039;&#039;&#039;previous values&#039;&#039;&#039; that were set before the meeting started.&lt;br /&gt;
[[File:Status change while meeting occurs.png|none|thumb|392x392px|DND status change while meeting occurs]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⇒ This behavior ensures that colleagues can immediately see when a user is busy in a meeting, while preserving the user’s original presence settings after the meeting finishes.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Active Meeting Notification Badge ====&lt;br /&gt;
&lt;br /&gt;
When one or more meetings are currently in progress, the Gcalendar app displays a notification badge on its icon.&lt;br /&gt;
[[File:Gmeet notification badge.png|none|thumb|392x392px|Notification badge for ongoing meetings]]&lt;br /&gt;
&lt;br /&gt;
* The badge shows the &#039;&#039;&#039;number of active meetings&#039;&#039;&#039; occurring at that moment.&lt;br /&gt;
* This allows users to quickly identify when they are in one or multiple ongoing meetings.&lt;br /&gt;
* The badge automatically updates in real time as meetings start or end.&lt;br /&gt;
* When no meetings are active, the notification badge is not displayed.&lt;br /&gt;
&lt;br /&gt;
=== Admin App ===&lt;br /&gt;
The &#039;&#039;&#039;Admin App&#039;&#039;&#039; provides configuration options required to authorize and manage the Google integration. It is intended for system administrators and enables control over OAuth credentials used for user authentication.&lt;br /&gt;
[[File:Gcallendar Admin App.png|none|thumb|453x453px|Admin app interface]]&lt;br /&gt;
&lt;br /&gt;
==== Updating Google OAuth Credentials ====&lt;br /&gt;
To enable or update the integration between Gcalendar and Google Calendar, you’ll need to provide the correct &#039;&#039;&#039;Client ID&#039;&#039;&#039; and &#039;&#039;&#039;Client Secret&#039;&#039;&#039; obtained from your Google Cloud project.&lt;br /&gt;
&lt;br /&gt;
# Open the &#039;&#039;&#039;Gcalendar Admin App&#039;&#039;&#039;.&lt;br /&gt;
# Locate the fields labeled &#039;&#039;&#039;Google Client ID&#039;&#039;&#039; and &#039;&#039;&#039;Client Secret&#039;&#039;&#039;.&lt;br /&gt;
# Paste the values copied from your Google OAuth Credentials into the respective fields.&lt;br /&gt;
# Click the &#039;&#039;&#039;Update&#039;&#039;&#039; button next to each field to save the changes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⇒ &#039;&#039;&#039;Notes:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Ensure both values are correctly copied and properly formatted.&lt;br /&gt;
* Incorrect credentials will prevent users from authenticating.&lt;br /&gt;
* The Client Secret is sensitive—never share or expose it publicly.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
[[File:Gcallendar Google Client ID Update.png|none|thumb|519x519px|Google Client ID input and update button]]&lt;br /&gt;
[[File:Gcallendar Client Secret Update.png|none|thumb|519x519px|Client Secret input and update button]]&lt;br /&gt;
&lt;br /&gt;
===Multi-PBX ready===&lt;br /&gt;
&amp;lt;!-- Mandatory topic. --&amp;gt; &lt;br /&gt;
&amp;lt;!-- Give test-prooved statement about product usability in Multi-PBX-systems / Master-Slave --&amp;gt;&lt;br /&gt;
&amp;lt;!-- I.e. can the application be operated towards slave-pbxes, by slave-users, special configuration steps, special requirements, ...  --&amp;gt;&lt;br /&gt;
&amp;lt;!-- If applicable, provide hints about required configuration steps below in the chapter Configuration --&amp;gt; &lt;br /&gt;
&lt;br /&gt;
===Cloud ready===&lt;br /&gt;
&amp;lt;!-- Mandatory topic. --&amp;gt; &lt;br /&gt;
&amp;lt;!-- Give test-prooved statement about product usability in Cloud-environments / Hosted PBXes --&amp;gt;&lt;br /&gt;
&amp;lt;!-- I.e. can the application be operated via NAT-boundaries, special configuration steps, special requirements, ...  --&amp;gt;&lt;br /&gt;
&amp;lt;!-- If applicable, provide hints about required configuration steps below in the chapter Configuration --&amp;gt; &lt;br /&gt;
&lt;br /&gt;
===Supported languages===&lt;br /&gt;
&amp;lt;!-- Mandatory topic. --&amp;gt; &lt;br /&gt;
&amp;lt;!-- List the translated languages which the application provides. Comma-separated is sufficient --&amp;gt;&lt;br /&gt;
Portuguese, English, Spanish, German&lt;br /&gt;
&lt;br /&gt;
== Licensing ==&lt;br /&gt;
The &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; application is licensed via the Innovaphone Pricelist.&lt;br /&gt;
&lt;br /&gt;
Currently, it is not yet listed on the official Innovaphone Partner App Licenses page, but it is expected to be included in future updates.&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;License type:&#039;&#039;&#039; Innovaphone Pricelist&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;License model:&#039;&#039;&#039; One license per user&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Listed at:&#039;&#039;&#039; https://www.innovaphone.com/en/services/licenses/partner-apps.html?app=Gcalendar&amp;amp;type=license#gcalendar&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
Before installing and using Gcalendar, ensure your environment meets the following requirements:&lt;br /&gt;
&lt;br /&gt;
==== System Requirements ====&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Innovaphone firmware:&#039;&#039;&#039; Version &amp;lt;code&amp;gt;14r1&amp;lt;/code&amp;gt; or later&lt;br /&gt;
* &#039;&#039;&#039;App platform:&#039;&#039;&#039; Innovaphone &#039;&#039;&#039;myApps&#039;&#039;&#039; system with &#039;&#039;&#039;App Platform&#039;&#039;&#039; active&lt;br /&gt;
* &#039;&#039;&#039;PBX Manager:&#039;&#039;&#039; Required to register and configure the Users and Admin Apps&lt;br /&gt;
&lt;br /&gt;
==== OAuth Setup ====&lt;br /&gt;
&lt;br /&gt;
* A &#039;&#039;&#039;Google Cloud Project&#039;&#039;&#039; with valid &#039;&#039;&#039;OAuth 2.0 credentials&#039;&#039;&#039; (Client ID and Client Secret)&lt;br /&gt;
* The following URIs must be configured in the Google project:&lt;br /&gt;
** &#039;&#039;&#039;Authorized JavaScript origins:&#039;&#039;&#039; &amp;lt;code&amp;gt;https://app_platform&amp;lt;/code&amp;gt;&lt;br /&gt;
** &#039;&#039;&#039;Authorized redirect URI:&#039;&#039;&#039; &amp;lt;code&amp;gt;https://app_platform/domain/app_name/newToken&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Versions ==&lt;br /&gt;
The &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; application follows the release versioning aligned with the Innovaphone platform.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Initial release version:&#039;&#039;&#039; &amp;lt;code&amp;gt;14r1&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Latest available version:&#039;&#039;&#039; &amp;lt;code&amp;gt;2004 sr0&amp;lt;/code&amp;gt; (as of February 23, 2026)&lt;br /&gt;
* &#039;&#039;&#039;Build number:&#039;&#039;&#039;&amp;lt;code&amp;gt;14A1149 dvl&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Supported architectures:&#039;&#039;&#039; &amp;lt;code&amp;gt;arm&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;x86_64&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;arm64&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⇒ New versions are published and made available through the Wecom App Store.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
=== Google OAuth Setup (Admin Only) ===&lt;br /&gt;
To enable account linking between the Innovaphone presence system and Google Calendar, administrators must configure OAuth 2.0 credentials using the Google Cloud Platform beforehand.&lt;br /&gt;
&lt;br /&gt;
# Go to [https://console.cloud.google.com/ Google Cloud Console].&lt;br /&gt;
# Select or create a &#039;&#039;&#039;Google Cloud Project&#039;&#039;&#039;.&amp;lt;blockquote&amp;gt;◇ This project will host the credentials used by Gcalendar to access the Google Calendar API. We recommend creating a dedicated project for better control and security.&amp;lt;/blockquote&amp;gt;[[File:Google Cloud Select-Create Project.png|none|thumb|425x425px|Google Cloud Console welcome page with select project button outlined (here the project is already selected)]]&amp;lt;blockquote&amp;gt;Clicking the &#039;&#039;&#039;&amp;quot;Select Project&amp;quot;&#039;&#039;&#039; button will open a &#039;&#039;&#039;modal&#039;&#039;&#039; where you can choose or create a project.&amp;lt;/blockquote&amp;gt;[[File:Google Cloud Select Project If Selected.png|none|thumb|353x353px|Project selection modal]]&amp;lt;blockquote&amp;gt;If a project already exists, click on its name from the list to open it. If not, click &#039;&#039;&#039;&amp;quot;New Project&amp;quot;&#039;&#039;&#039; in the top-right corner to create one.&amp;lt;/blockquote&amp;gt;[[File:Google Cloud New Project Page.png|none|thumb|440x440px|New project creation page]]&lt;br /&gt;
# In the top-left corner, click the &#039;&#039;&#039;hamburger menu icon&#039;&#039;&#039; (☰) to expand the left navigation menu.&lt;br /&gt;
#* Before continuing to the OAuth configuration, you need to make sure the Google Calendar API is enabled.&lt;br /&gt;
# From the sidebar, go to &#039;&#039;&#039;APIs &amp;amp; Services &amp;gt; Enabled APIs &amp;amp; services&#039;&#039;&#039;.[[File:Google Cloud Sidebar API Services.png|none|thumb|450x450px|Opening the APIs &amp;amp; Services section to enable the Calendar API]]&lt;br /&gt;
# At the top of the page, click &#039;&#039;&#039;+ Enable APIs and services&#039;&#039;&#039;.&amp;lt;blockquote&amp;gt;Once enabled, it will appear in the list of active APIs under &#039;&#039;&#039;Enabled APIs &amp;amp; Services&#039;&#039;&#039;.If the Google Calendar API is already enabled, you may skip the steps below and proceed directly to the OAuth configuration.&amp;lt;/blockquote&amp;gt;[[File:Google Cloud Enable APIs Services.jpg|none|thumb|450x450px|Enabling API button and viewing the enabled Google Calendar API]]&lt;br /&gt;
# In the API Library, search for: &amp;lt;code&amp;gt;calendar&amp;lt;/code&amp;gt;.&lt;br /&gt;
#* From the results, click on &#039;&#039;&#039;Google Calendar API&#039;&#039;&#039;.[[File:Google Clou APIs Google Calendar Search.jpg|none|thumb|450x450px|Searching for the Google Calendar API in the API Library]]&lt;br /&gt;
# On the API page, click the blue &#039;&#039;&#039;Enable&#039;&#039;&#039; button to activate it.[[File:Google Cloud Enabling Google Calendar.jpg|none|thumb|450x450px|Enabling the Google Calendar API]]&lt;br /&gt;
# Now click the &#039;&#039;&#039;hamburger menu icon&#039;&#039;&#039; (☰) again to return to the sidebar.&lt;br /&gt;
# Navigate to &#039;&#039;&#039;API &amp;amp; Services &amp;gt; OAuth consent screen&#039;&#039;&#039;.[[File:Google Cloud Left Menu API Outlined.png|none|thumb|482x482px|Left menu: &#039;&#039;&#039;APIs &amp;amp; service -&amp;gt; OAuth consent screen&#039;&#039;&#039;]]&lt;br /&gt;
#* If it&#039;s your first time, configure the consent screen with basic app details (organization name, app name, email, etc.).&lt;br /&gt;
#* Once configured, you&#039;ll be redirected to the &#039;&#039;&#039;Google Auth Platform / Overview&#039;&#039;&#039; page.&lt;br /&gt;
# Click &#039;&#039;&#039;Clients&#039;&#039;&#039; in the left menu and then click &amp;quot;&#039;&#039;&#039;+ Create client&amp;quot;&#039;&#039;&#039;.[[File:Google Cloud new client.jpg|none|thumb|525x525px|Creating client option in Clients page]]&lt;br /&gt;
# Choose &#039;&#039;&#039;Application Type: Web Application&#039;&#039;&#039;.&lt;br /&gt;
# Enter a recognizable &#039;&#039;&#039;name&#039;&#039;&#039; (e.g., &#039;&#039;Gcalendar Integration&#039;&#039;).&lt;br /&gt;
# Add the following values:&lt;br /&gt;
#* &#039;&#039;&#039;Authorized JavaScript origins&#039;&#039;&#039;&lt;br /&gt;
#** &amp;lt;code&amp;gt;https://app_platform&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &#039;&#039;&#039;Authorized redirect URIs&#039;&#039;&#039;&lt;br /&gt;
#** &amp;lt;code&amp;gt;https://app_platform/domain/app_name/newToken&amp;lt;/code&amp;gt;[[File:Google Cloud Create OAuth Client ID.jpg|none|thumb|411x411px|Create OAuth client ID inputs]]&lt;br /&gt;
# After creation, copy the generated:&lt;br /&gt;
#* &#039;&#039;&#039;Client ID&#039;&#039;&#039;&lt;br /&gt;
#* &#039;&#039;&#039;Client Secret&#039;&#039;&#039;[[File:Google Cloud Client ID Client Secret.jpg|none|thumb|434x434px|Client credentials available after creating]]&lt;br /&gt;
# Open the &#039;&#039;&#039;Gcalendar Admin App&#039;&#039;&#039; and insert the values in the respective fields and click &#039;&#039;&#039;Update&#039;&#039;&#039; (see [[#Updating Google OAuth Credentials|Update Google OAuth Credentials]] section above).&amp;lt;blockquote&amp;gt;▷ This links the Google authentication flow to the presence system, allowing users to authorize their calendars.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
# On the left menu, go to &#039;&#039;&#039;Data Access&#039;&#039;&#039; under the &#039;&#039;&#039;Google Auth Platform&#039;&#039;&#039; section.&amp;lt;blockquote&amp;gt;◇ This section lists the sensitive scopes (permissions) your app is requesting during OAuth authorization. These are required for accessing user calendars.&amp;lt;/blockquote&amp;gt;[[File:Google Cloud Add or Remove Scopes.png|none|thumb|510x510px|Click &amp;quot;Add or remove scopes&amp;quot; to open the scope selection menu]]&lt;br /&gt;
# Click the blue &#039;&#039;&#039;Add or remove scopes&#039;&#039;&#039; button.&amp;lt;blockquote&amp;gt;◇ A sidebar will open listing all available scopes from enabled APIs. You can search and select the necessary calendar-related scopes for your application.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
# In the sidebar that appears, search for and select the following calendar scopes:&lt;br /&gt;
#* &amp;lt;code&amp;gt;../auth/calendar.events&amp;lt;/code&amp;gt; – View and edit calendar events.&lt;br /&gt;
#* &amp;lt;code&amp;gt;../auth/calendar.events.owned&amp;lt;/code&amp;gt; – Modify events on owned calendars.[[File:Google Cloud Data Access Scopes Correct.png|none|thumb|400x400px|Data Access section showing added calendar scopes]]&amp;lt;blockquote&amp;gt;▷ These scopes must be added to your app for Google to allow access to calendar data through the API. Make sure they match the level of access your app requires.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
Follow the steps below to install the &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; application in your Innovaphone environment.&lt;br /&gt;
&lt;br /&gt;
=== Option 1: Installing via AP Manager App Store (Recommended) ===&lt;br /&gt;
You can install &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; directly through the &#039;&#039;&#039;App Platform Manager&#039;&#039;&#039; (AP Manager) by accessing the App Store:&lt;br /&gt;
&lt;br /&gt;
# Open the &#039;&#039;&#039;AP Manager&#039;&#039;&#039;.&lt;br /&gt;
# Click the yellow &#039;&#039;&#039;App Store&#039;&#039;&#039; button in the top-right corner.&lt;br /&gt;
# Search for &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; in the list.&lt;br /&gt;
# Select the latest version and confirm the download.&lt;br /&gt;
# The app will be automatically installed and ready to configure.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;🛈 This is the easiest and fastest way to deploy the app.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
[[File:Innovaphone MyApps Lab AppStore Button in AP Manager.png|none|thumb|436x436px|AppStore Button in AP Manager outlined]]&lt;br /&gt;
[[File:AP Manager Appstore Interface.png|none|thumb|436x436px|AP Manager Appstore interface]]&lt;br /&gt;
&lt;br /&gt;
=== Option 2: Manual Installation via Upload ===&lt;br /&gt;
If the app is not yet listed in the App Store, follow the steps below:&lt;br /&gt;
&lt;br /&gt;
==== Step 1: Download the App Package ====&lt;br /&gt;
&lt;br /&gt;
# Visit the official Wecom myApps Downloads Portal.&lt;br /&gt;
# Find the &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; app.&lt;br /&gt;
# Download the latest available version compatible with your system architecture.&lt;br /&gt;
[[File:Gcalendar myapps wecom appstore.png|none|thumb|418x418px|Gcalendar on MyApps&#039; Wecom&#039;s App Store]]&lt;br /&gt;
&lt;br /&gt;
==== Step 2: Upload to AP Manager ====&lt;br /&gt;
&lt;br /&gt;
# In &#039;&#039;&#039;AP Manager&#039;&#039;&#039;, click &#039;&#039;&#039;App upload&#039;&#039;&#039; (top right).&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;.app&amp;lt;/code&amp;gt; package you downloaded from the portal.&lt;br /&gt;
# After successful upload, the app will appear in your list and show as &#039;&#039;&#039;Running&#039;&#039;&#039;.&lt;br /&gt;
[[File:App Upload Button on MyApps AP Manager.png|none|thumb|485x485px|App Upload button on AP Manager outlined]]&lt;br /&gt;
[[File:Gcallendar on AP Manager Innovaphone.jpg|none|thumb|490x490px|Gcalendar on AP Manager]]&lt;br /&gt;
&lt;br /&gt;
=== Step 3: Add Application Instance ===&lt;br /&gt;
&lt;br /&gt;
# After uploading the app, click the yellow &#039;&#039;&#039;+ Add&#039;&#039;&#039; button to create an instance of the application.&lt;br /&gt;
# Fill in the required fields:&lt;br /&gt;
#* &#039;&#039;&#039;Name:&#039;&#039;&#039; A recognizable name for the instance.&lt;br /&gt;
#* &#039;&#039;&#039;Domain:&#039;&#039;&#039; The domain for the PBX.&lt;br /&gt;
#* &#039;&#039;&#039;Password:&#039;&#039;&#039; A secure admin password for the app instance.&lt;br /&gt;
#* &#039;&#039;&#039;Webserver path:&#039;&#039;&#039; Optional path (or leave blank).&lt;br /&gt;
#* &#039;&#039;&#039;Database host:&#039;&#039;&#039; Leave empty for local DB or specify IP/DNS if external.&lt;br /&gt;
#* &#039;&#039;&#039;Database name&#039;&#039;&#039; and &#039;&#039;&#039;Database user&#039;&#039;&#039;: Use consistent values for your environment.&lt;br /&gt;
#* &#039;&#039;&#039;Database password:&#039;&#039;&#039; Corresponding DB password.&lt;br /&gt;
# When all values are filled, click &#039;&#039;&#039;Save&#039;&#039;&#039;.&lt;br /&gt;
[[File:AP Manager Gcalendar App Instance Creation Example.png|none|thumb|440x440px|Example of instance creation screen in AP Manager]]&lt;br /&gt;
&lt;br /&gt;
=== Final Step: Registering the App in PBX Manager ===&lt;br /&gt;
&lt;br /&gt;
# Open the &#039;&#039;&#039;PBX Manager&#039;&#039;&#039;.&lt;br /&gt;
# Go to the &#039;&#039;&#039;Apps&#039;&#039;&#039; section.&lt;br /&gt;
# Click &#039;&#039;&#039;Add App&#039;&#039;&#039; and register:&lt;br /&gt;
#* A &#039;&#039;&#039;Users App&#039;&#039;&#039;&lt;br /&gt;
#* An &#039;&#039;&#039;Admin App&#039;&#039;&#039;&lt;br /&gt;
# Assign access rights as needed.&lt;br /&gt;
[[File:PBX Manager Add an App flow - part 1.png|none|thumb|440x440px|PBX Manager Add an App select the app]]&lt;br /&gt;
[[File:Gcallendar PBX Manager Add an App flow - part 2.png|none|thumb|440x440px|PBX Manager Add an App configurations]]&lt;br /&gt;
[[File:Gcallendar on PBX Manager Innovaphone.jpg|none|thumb|441x441px|Gcalendar on PBX Manager configured]]&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⇒ After registration, both apps will appear in MyApps and are ready for use.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Copyright ==&lt;br /&gt;
Copyright information.&lt;br /&gt;
&lt;br /&gt;
== Contact ==&lt;br /&gt;
{|&lt;br /&gt;
| Wecom PORTO ALEGRE - RS&lt;br /&gt;
|-&lt;br /&gt;
| Av. Carlos Gomes, 466 / 401&lt;br /&gt;
|-&lt;br /&gt;
| Boa Vista - CEP 90480-000&lt;br /&gt;
|-&lt;br /&gt;
| Wecom FLORIANÓPOLIS - SC&lt;br /&gt;
|-&lt;br /&gt;
| SC 401, 8600 - Room 7 Corporate Park - Block 2&lt;br /&gt;
|-&lt;br /&gt;
| Santo Antônio de Lisboa - CEP 88050-001&lt;br /&gt;
|-&lt;br /&gt;
| Tel: +55 48 3112.6200&lt;br /&gt;
|-&lt;br /&gt;
| Mail: [mailto:marketing@wecom.com.br marketing@wecom.com.br]&lt;br /&gt;
|-&lt;br /&gt;
| Support: [mailto:dev@wecom.com.br dev@wecom.com.br]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
For any questions please refer to [https://wecom.com.br/fale-conosco/ our contact page.]&lt;/div&gt;</summary>
		<author><name>Pablo.montiel</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=File:Gmeet_notification_badge.png&amp;diff=78973</id>
		<title>File:Gmeet notification badge.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=File:Gmeet_notification_badge.png&amp;diff=78973"/>
		<updated>2026-03-02T13:37:35Z</updated>

		<summary type="html">&lt;p&gt;Pablo.montiel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Gmeet notification badge&lt;/div&gt;</summary>
		<author><name>Pablo.montiel</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Howto:Gcalendar_-_Wecom_-_Partner_App&amp;diff=78971</id>
		<title>Howto:Gcalendar - Wecom - Partner App</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Howto:Gcalendar_-_Wecom_-_Partner_App&amp;diff=78971"/>
		<updated>2026-03-02T13:12:27Z</updated>

		<summary type="html">&lt;p&gt;Pablo.montiel: /* Viewing Upcoming Meetings */ minor fix on order of image&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FIXME|reason=Work in progress, still incomplete}}&lt;br /&gt;
[[Image:Logo 2 Wecom.png||200px|right]]&lt;br /&gt;
&lt;br /&gt;
== Product Name ==&lt;br /&gt;
[[File:Gcalendar icone.png|none|thumb|Gcalendar Icon]]&lt;br /&gt;
[[File:Gcalendar icone admin.png|none|thumb|Gcalendar Admin Icon]]&lt;br /&gt;
Wecom [https://wecom.com.br/ Gcalendar]&lt;br /&gt;
&lt;br /&gt;
== Certification Status ==&lt;br /&gt;
&amp;lt;!--Do not remove comment. Will be added by innovaphone upon document check &amp;amp; app availablity on app store.--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Space dedicated to Gcalendar certification information.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Category ==&lt;br /&gt;
&amp;lt;!--Do not change this section and do not remove comments. Will be set by Innovaphone upon document check.--&amp;gt;&lt;br /&gt;
[[Category:Partner_Apps|{{PAGENAME}}]]&lt;br /&gt;
[[Category:3rdParty CTI and integrations|{{PAGENAME}}]]&lt;br /&gt;
{{Category:3rdParty CTI and integrations}}&lt;br /&gt;
&lt;br /&gt;
== Vendor ==&lt;br /&gt;
[[Image:Logo 2 Wecom.png|150px]]&lt;br /&gt;
&lt;br /&gt;
Wecom are integrators, maintainers, and distributors of unified communications systems.&lt;br /&gt;
Aimed at the corporate market, our focus is on promoting digital transformation for the businesses we advise, presenting the best mobility and collaboration tools available on the market. We are partners with leading brands and distributors in Brazil. With a solid portfolio of clients in a wide range of segments, our activities include consulting, project development, implementation and maintenance of communication systems, with extensive experience in collaboration technologies and advanced technical staff.&lt;br /&gt;
&lt;br /&gt;
[https://wecom.com.br/sobre-nos/ Wecom -About us]&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&#039;&#039;&#039;Gcalendar&#039;&#039;&#039; is a Partner App developed by &#039;&#039;&#039;Wecom&#039;&#039;&#039; to integrate Google Calendar events with the Innovaphone presence system.&lt;br /&gt;
&lt;br /&gt;
The app operates through two components:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Users App&#039;&#039;&#039; – Where the users initiate their account linking process via Google login.&lt;br /&gt;
* &#039;&#039;&#039;Admin App&#039;&#039;&#039; – Allows configuration of the integration with editable fields for Google Client ID and Client Secret, along with a dedicated OAuth authorization URL.&lt;br /&gt;
&lt;br /&gt;
This setup enables real-time status synchronization and supports four languages: Portuguese, English, Spanish, and German.&lt;br /&gt;
&lt;br /&gt;
== Functions ==&lt;br /&gt;
This section provides an overview of each core part of the &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; application. It highlights what actions can be performed, and how to navigate through the available features. Additionally, this section provides step-by-step explanations for each functionality.&lt;br /&gt;
&lt;br /&gt;
=== Users App ===&lt;br /&gt;
The &#039;&#039;&#039;Users App&#039;&#039;&#039; is the interface used by users to link their Google Calendar account to the Innovaphone presence system. It focuses only on enabling the connection between the user and their calendar through Google authentication.&lt;br /&gt;
[[File:Gcalendar user app interface detail.png|none|thumb|404x404px|Users app interface with google account pop-up]]&lt;br /&gt;
&lt;br /&gt;
==== Connecting with Google account ====&lt;br /&gt;
&lt;br /&gt;
# Open the &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; Users App.&lt;br /&gt;
# Click the &#039;&#039;&#039;Connect&#039;&#039;&#039; button.&lt;br /&gt;
# A Google login popup will appear.&lt;br /&gt;
#* This popup allows users to choose or log into a Google account.&lt;br /&gt;
# After selecting an account, the integration process will begin automatically.&lt;br /&gt;
#* Once completed, the account will be linked to the Innovaphone system.&lt;br /&gt;
[[File:Gcallendar Connect Button.png|none|thumb|Connect button]]&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⇒ &#039;&#039;&#039;Note:&#039;&#039;&#039; Before starting the connection process, ensure you&#039;re already logged into the correct Google account in your browser. This helps avoid selecting the wrong account and ensures the integration is completed with the intended calendar.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Viewing Upcoming Meetings ====&lt;br /&gt;
&lt;br /&gt;
On the main screen, users can see a list of their upcoming scheduled meetings.  &lt;br /&gt;
Each meeting is displayed as a card containing:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Title&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Start time&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:Gcalendar Upcoming Meetings.jpg|none|thumb|392x392px|Upcoming meetings list with active meeting]]&lt;br /&gt;
&lt;br /&gt;
When a meeting card is clicked, Gcalendar redirects the user based on how the event was created:&lt;br /&gt;
&lt;br /&gt;
* If the event does &#039;&#039;&#039;not&#039;&#039;&#039; include a Google Meet link, the user is taken to the event details page in Google Calendar.&lt;br /&gt;
* If the event includes an associated &#039;&#039;&#039;Google Meet&#039;&#039;&#039; link, the user is redirected directly to the online meeting.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⇒ This behavior allows users to quickly join virtual meetings while still providing access to full event details when no meeting link is available.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Creating a New Meeting ====&lt;br /&gt;
&lt;br /&gt;
To schedule a new meeting:&lt;br /&gt;
# Click the &#039;&#039;&#039;+&#039;&#039;&#039; button on the main screen.&lt;br /&gt;
# A creation modal will open with the following fields:&lt;br /&gt;
#* &#039;&#039;&#039;Summary&#039;&#039;&#039; – The title of the meeting.&lt;br /&gt;
#* &#039;&#039;&#039;Description&#039;&#039;&#039; – Details or agenda of the meeting.&lt;br /&gt;
#* &#039;&#039;&#039;Location&#039;&#039;&#039; – Where the meeting will occur (physical address or online).&lt;br /&gt;
#* &#039;&#039;&#039;Start time&#039;&#039;&#039; – When the meeting begins.&lt;br /&gt;
#* &#039;&#039;&#039;End time&#039;&#039;&#039; – When the meeting ends.&lt;br /&gt;
#* &#039;&#039;&#039;Time zone&#039;&#039;&#039; – The time zone for the meeting.&lt;br /&gt;
#* &#039;&#039;&#039;Attendees&#039;&#039;&#039; – Email addresses of participants who should receive an invitation.&lt;br /&gt;
#* &#039;&#039;&#039;Add Google Meet&#039;&#039;&#039; – When checked, a Google Meet link is automatically generated and included in the event.&lt;br /&gt;
&lt;br /&gt;
After filling in the required information:&lt;br /&gt;
* Click &#039;&#039;&#039;Save&#039;&#039;&#039; to create the meeting.&lt;br /&gt;
* Click &#039;&#039;&#039;Cancel&#039;&#039;&#039; to close the modal without saving any changes.&lt;br /&gt;
[[File:Gcalendar Create Meeting Modal.jpg|none|thumb|420x420px|Meeting creation modal]]&lt;br /&gt;
&lt;br /&gt;
==== Disconnecting from Google account ====&lt;br /&gt;
&lt;br /&gt;
# Open the &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; Users App.&lt;br /&gt;
# If a Google account is already connected, the &#039;&#039;&#039;Connect&#039;&#039;&#039; button will be replaced by a &#039;&#039;&#039;Disconnect&#039;&#039;&#039; button.&lt;br /&gt;
# Click the &#039;&#039;&#039;Disconnect&#039;&#039;&#039; button to unlink your current Google Calendar account from the Innovaphone presence system.&lt;br /&gt;
# Once disconnected, presence synchronization will be disabled for that user.&lt;br /&gt;
[[File:Gcallendar Disconnect Button Dtl.png|none|thumb|392x392px|Disconnect button]]&lt;br /&gt;
&lt;br /&gt;
==== Meeting-based Presence Synchronization ====&lt;br /&gt;
&lt;br /&gt;
When a meeting is active in the user’s Google Calendar, Gcalendar automatically updates the user’s Innovaphone presence to reflect that meeting.&lt;br /&gt;
[[File:Status and Status Name.png|none|thumb|392x392px|User&#039;s status and status name change when meeting is happening]]&lt;br /&gt;
&lt;br /&gt;
# While the meeting is in progress, the user’s presence status is set to &#039;&#039;&#039;DND (Do Not Disturb)&#039;&#039;&#039;.&lt;br /&gt;
# At the same time, the user’s &#039;&#039;&#039;status text&#039;&#039;&#039; is updated to the &#039;&#039;&#039;meeting title&#039;&#039;&#039;.&lt;br /&gt;
# Once the meeting ends, Gcalendar restores the user’s presence status and status text to the &#039;&#039;&#039;previous values&#039;&#039;&#039; that were set before the meeting started.&lt;br /&gt;
[[File:Status change while meeting occurs.png|none|thumb|392x392px|DND status change while meeting occurs]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⇒ This behavior ensures that colleagues can immediately see when a user is busy in a meeting, while preserving the user’s original presence settings after the meeting finishes.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Admin App ===&lt;br /&gt;
The &#039;&#039;&#039;Admin App&#039;&#039;&#039; provides configuration options required to authorize and manage the Google integration. It is intended for system administrators and enables control over OAuth credentials used for user authentication.&lt;br /&gt;
[[File:Gcallendar Admin App.png|none|thumb|453x453px|Admin app interface]]&lt;br /&gt;
&lt;br /&gt;
==== Updating Google OAuth Credentials ====&lt;br /&gt;
To enable or update the integration between Gcalendar and Google Calendar, you’ll need to provide the correct &#039;&#039;&#039;Client ID&#039;&#039;&#039; and &#039;&#039;&#039;Client Secret&#039;&#039;&#039; obtained from your Google Cloud project.&lt;br /&gt;
&lt;br /&gt;
# Open the &#039;&#039;&#039;Gcalendar Admin App&#039;&#039;&#039;.&lt;br /&gt;
# Locate the fields labeled &#039;&#039;&#039;Google Client ID&#039;&#039;&#039; and &#039;&#039;&#039;Client Secret&#039;&#039;&#039;.&lt;br /&gt;
# Paste the values copied from your Google OAuth Credentials into the respective fields.&lt;br /&gt;
# Click the &#039;&#039;&#039;Update&#039;&#039;&#039; button next to each field to save the changes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⇒ &#039;&#039;&#039;Notes:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Ensure both values are correctly copied and properly formatted.&lt;br /&gt;
* Incorrect credentials will prevent users from authenticating.&lt;br /&gt;
* The Client Secret is sensitive—never share or expose it publicly.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
[[File:Gcallendar Google Client ID Update.png|none|thumb|519x519px|Google Client ID input and update button]]&lt;br /&gt;
[[File:Gcallendar Client Secret Update.png|none|thumb|519x519px|Client Secret input and update button]]&lt;br /&gt;
&lt;br /&gt;
===Multi-PBX ready===&lt;br /&gt;
&amp;lt;!-- Mandatory topic. --&amp;gt; &lt;br /&gt;
&amp;lt;!-- Give test-prooved statement about product usability in Multi-PBX-systems / Master-Slave --&amp;gt;&lt;br /&gt;
&amp;lt;!-- I.e. can the application be operated towards slave-pbxes, by slave-users, special configuration steps, special requirements, ...  --&amp;gt;&lt;br /&gt;
&amp;lt;!-- If applicable, provide hints about required configuration steps below in the chapter Configuration --&amp;gt; &lt;br /&gt;
&lt;br /&gt;
===Cloud ready===&lt;br /&gt;
&amp;lt;!-- Mandatory topic. --&amp;gt; &lt;br /&gt;
&amp;lt;!-- Give test-prooved statement about product usability in Cloud-environments / Hosted PBXes --&amp;gt;&lt;br /&gt;
&amp;lt;!-- I.e. can the application be operated via NAT-boundaries, special configuration steps, special requirements, ...  --&amp;gt;&lt;br /&gt;
&amp;lt;!-- If applicable, provide hints about required configuration steps below in the chapter Configuration --&amp;gt; &lt;br /&gt;
&lt;br /&gt;
===Supported languages===&lt;br /&gt;
&amp;lt;!-- Mandatory topic. --&amp;gt; &lt;br /&gt;
&amp;lt;!-- List the translated languages which the application provides. Comma-separated is sufficient --&amp;gt;&lt;br /&gt;
Portuguese, English, Spanish, German&lt;br /&gt;
&lt;br /&gt;
== Licensing ==&lt;br /&gt;
The &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; application is licensed via the Innovaphone Pricelist.&lt;br /&gt;
&lt;br /&gt;
Currently, it is not yet listed on the official Innovaphone Partner App Licenses page, but it is expected to be included in future updates.&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;License type:&#039;&#039;&#039; Innovaphone Pricelist&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;License model:&#039;&#039;&#039; One license per user&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Listed at:&#039;&#039;&#039; https://www.innovaphone.com/en/services/licenses/partner-apps.html?app=Gcalendar&amp;amp;type=license#gcalendar&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
Before installing and using Gcalendar, ensure your environment meets the following requirements:&lt;br /&gt;
&lt;br /&gt;
==== System Requirements ====&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Innovaphone firmware:&#039;&#039;&#039; Version &amp;lt;code&amp;gt;14r1&amp;lt;/code&amp;gt; or later&lt;br /&gt;
* &#039;&#039;&#039;App platform:&#039;&#039;&#039; Innovaphone &#039;&#039;&#039;myApps&#039;&#039;&#039; system with &#039;&#039;&#039;App Platform&#039;&#039;&#039; active&lt;br /&gt;
* &#039;&#039;&#039;PBX Manager:&#039;&#039;&#039; Required to register and configure the Users and Admin Apps&lt;br /&gt;
&lt;br /&gt;
==== OAuth Setup ====&lt;br /&gt;
&lt;br /&gt;
* A &#039;&#039;&#039;Google Cloud Project&#039;&#039;&#039; with valid &#039;&#039;&#039;OAuth 2.0 credentials&#039;&#039;&#039; (Client ID and Client Secret)&lt;br /&gt;
* The following URIs must be configured in the Google project:&lt;br /&gt;
** &#039;&#039;&#039;Authorized JavaScript origins:&#039;&#039;&#039; &amp;lt;code&amp;gt;https://app_platform&amp;lt;/code&amp;gt;&lt;br /&gt;
** &#039;&#039;&#039;Authorized redirect URI:&#039;&#039;&#039; &amp;lt;code&amp;gt;https://app_platform/domain/app_name/newToken&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Versions ==&lt;br /&gt;
The &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; application follows the release versioning aligned with the Innovaphone platform.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Initial release version:&#039;&#039;&#039; &amp;lt;code&amp;gt;14r1&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Latest available version:&#039;&#039;&#039; &amp;lt;code&amp;gt;2004 sr0&amp;lt;/code&amp;gt; (as of February 23, 2026)&lt;br /&gt;
* &#039;&#039;&#039;Build number:&#039;&#039;&#039;&amp;lt;code&amp;gt;14A1149 dvl&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Supported architectures:&#039;&#039;&#039; &amp;lt;code&amp;gt;arm&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;x86_64&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;arm64&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⇒ New versions are published and made available through the Wecom App Store.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
=== Google OAuth Setup (Admin Only) ===&lt;br /&gt;
To enable account linking between the Innovaphone presence system and Google Calendar, administrators must configure OAuth 2.0 credentials using the Google Cloud Platform beforehand.&lt;br /&gt;
&lt;br /&gt;
# Go to [https://console.cloud.google.com/ Google Cloud Console].&lt;br /&gt;
# Select or create a &#039;&#039;&#039;Google Cloud Project&#039;&#039;&#039;.&amp;lt;blockquote&amp;gt;◇ This project will host the credentials used by Gcalendar to access the Google Calendar API. We recommend creating a dedicated project for better control and security.&amp;lt;/blockquote&amp;gt;[[File:Google Cloud Select-Create Project.png|none|thumb|425x425px|Google Cloud Console welcome page with select project button outlined (here the project is already selected)]]&amp;lt;blockquote&amp;gt;Clicking the &#039;&#039;&#039;&amp;quot;Select Project&amp;quot;&#039;&#039;&#039; button will open a &#039;&#039;&#039;modal&#039;&#039;&#039; where you can choose or create a project.&amp;lt;/blockquote&amp;gt;[[File:Google Cloud Select Project If Selected.png|none|thumb|353x353px|Project selection modal]]&amp;lt;blockquote&amp;gt;If a project already exists, click on its name from the list to open it. If not, click &#039;&#039;&#039;&amp;quot;New Project&amp;quot;&#039;&#039;&#039; in the top-right corner to create one.&amp;lt;/blockquote&amp;gt;[[File:Google Cloud New Project Page.png|none|thumb|440x440px|New project creation page]]&lt;br /&gt;
# In the top-left corner, click the &#039;&#039;&#039;hamburger menu icon&#039;&#039;&#039; (☰) to expand the left navigation menu.&lt;br /&gt;
#* Before continuing to the OAuth configuration, you need to make sure the Google Calendar API is enabled.&lt;br /&gt;
# From the sidebar, go to &#039;&#039;&#039;APIs &amp;amp; Services &amp;gt; Enabled APIs &amp;amp; services&#039;&#039;&#039;.[[File:Google Cloud Sidebar API Services.png|none|thumb|450x450px|Opening the APIs &amp;amp; Services section to enable the Calendar API]]&lt;br /&gt;
# At the top of the page, click &#039;&#039;&#039;+ Enable APIs and services&#039;&#039;&#039;.&amp;lt;blockquote&amp;gt;Once enabled, it will appear in the list of active APIs under &#039;&#039;&#039;Enabled APIs &amp;amp; Services&#039;&#039;&#039;.If the Google Calendar API is already enabled, you may skip the steps below and proceed directly to the OAuth configuration.&amp;lt;/blockquote&amp;gt;[[File:Google Cloud Enable APIs Services.jpg|none|thumb|450x450px|Enabling API button and viewing the enabled Google Calendar API]]&lt;br /&gt;
# In the API Library, search for: &amp;lt;code&amp;gt;calendar&amp;lt;/code&amp;gt;.&lt;br /&gt;
#* From the results, click on &#039;&#039;&#039;Google Calendar API&#039;&#039;&#039;.[[File:Google Clou APIs Google Calendar Search.jpg|none|thumb|450x450px|Searching for the Google Calendar API in the API Library]]&lt;br /&gt;
# On the API page, click the blue &#039;&#039;&#039;Enable&#039;&#039;&#039; button to activate it.[[File:Google Cloud Enabling Google Calendar.jpg|none|thumb|450x450px|Enabling the Google Calendar API]]&lt;br /&gt;
# Now click the &#039;&#039;&#039;hamburger menu icon&#039;&#039;&#039; (☰) again to return to the sidebar.&lt;br /&gt;
# Navigate to &#039;&#039;&#039;API &amp;amp; Services &amp;gt; OAuth consent screen&#039;&#039;&#039;.[[File:Google Cloud Left Menu API Outlined.png|none|thumb|482x482px|Left menu: &#039;&#039;&#039;APIs &amp;amp; service -&amp;gt; OAuth consent screen&#039;&#039;&#039;]]&lt;br /&gt;
#* If it&#039;s your first time, configure the consent screen with basic app details (organization name, app name, email, etc.).&lt;br /&gt;
#* Once configured, you&#039;ll be redirected to the &#039;&#039;&#039;Google Auth Platform / Overview&#039;&#039;&#039; page.&lt;br /&gt;
# Click &#039;&#039;&#039;Clients&#039;&#039;&#039; in the left menu and then click &amp;quot;&#039;&#039;&#039;+ Create client&amp;quot;&#039;&#039;&#039;.[[File:Google Cloud new client.jpg|none|thumb|525x525px|Creating client option in Clients page]]&lt;br /&gt;
# Choose &#039;&#039;&#039;Application Type: Web Application&#039;&#039;&#039;.&lt;br /&gt;
# Enter a recognizable &#039;&#039;&#039;name&#039;&#039;&#039; (e.g., &#039;&#039;Gcalendar Integration&#039;&#039;).&lt;br /&gt;
# Add the following values:&lt;br /&gt;
#* &#039;&#039;&#039;Authorized JavaScript origins&#039;&#039;&#039;&lt;br /&gt;
#** &amp;lt;code&amp;gt;https://app_platform&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &#039;&#039;&#039;Authorized redirect URIs&#039;&#039;&#039;&lt;br /&gt;
#** &amp;lt;code&amp;gt;https://app_platform/domain/app_name/newToken&amp;lt;/code&amp;gt;[[File:Google Cloud Create OAuth Client ID.jpg|none|thumb|411x411px|Create OAuth client ID inputs]]&lt;br /&gt;
# After creation, copy the generated:&lt;br /&gt;
#* &#039;&#039;&#039;Client ID&#039;&#039;&#039;&lt;br /&gt;
#* &#039;&#039;&#039;Client Secret&#039;&#039;&#039;[[File:Google Cloud Client ID Client Secret.jpg|none|thumb|434x434px|Client credentials available after creating]]&lt;br /&gt;
# Open the &#039;&#039;&#039;Gcalendar Admin App&#039;&#039;&#039; and insert the values in the respective fields and click &#039;&#039;&#039;Update&#039;&#039;&#039; (see [[#Updating Google OAuth Credentials|Update Google OAuth Credentials]] section above).&amp;lt;blockquote&amp;gt;▷ This links the Google authentication flow to the presence system, allowing users to authorize their calendars.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
# On the left menu, go to &#039;&#039;&#039;Data Access&#039;&#039;&#039; under the &#039;&#039;&#039;Google Auth Platform&#039;&#039;&#039; section.&amp;lt;blockquote&amp;gt;◇ This section lists the sensitive scopes (permissions) your app is requesting during OAuth authorization. These are required for accessing user calendars.&amp;lt;/blockquote&amp;gt;[[File:Google Cloud Add or Remove Scopes.png|none|thumb|510x510px|Click &amp;quot;Add or remove scopes&amp;quot; to open the scope selection menu]]&lt;br /&gt;
# Click the blue &#039;&#039;&#039;Add or remove scopes&#039;&#039;&#039; button.&amp;lt;blockquote&amp;gt;◇ A sidebar will open listing all available scopes from enabled APIs. You can search and select the necessary calendar-related scopes for your application.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
# In the sidebar that appears, search for and select the following calendar scopes:&lt;br /&gt;
#* &amp;lt;code&amp;gt;../auth/calendar.events&amp;lt;/code&amp;gt; – View and edit calendar events.&lt;br /&gt;
#* &amp;lt;code&amp;gt;../auth/calendar.events.owned&amp;lt;/code&amp;gt; – Modify events on owned calendars.[[File:Google Cloud Data Access Scopes Correct.png|none|thumb|400x400px|Data Access section showing added calendar scopes]]&amp;lt;blockquote&amp;gt;▷ These scopes must be added to your app for Google to allow access to calendar data through the API. Make sure they match the level of access your app requires.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
Follow the steps below to install the &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; application in your Innovaphone environment.&lt;br /&gt;
&lt;br /&gt;
=== Option 1: Installing via AP Manager App Store (Recommended) ===&lt;br /&gt;
You can install &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; directly through the &#039;&#039;&#039;App Platform Manager&#039;&#039;&#039; (AP Manager) by accessing the App Store:&lt;br /&gt;
&lt;br /&gt;
# Open the &#039;&#039;&#039;AP Manager&#039;&#039;&#039;.&lt;br /&gt;
# Click the yellow &#039;&#039;&#039;App Store&#039;&#039;&#039; button in the top-right corner.&lt;br /&gt;
# Search for &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; in the list.&lt;br /&gt;
# Select the latest version and confirm the download.&lt;br /&gt;
# The app will be automatically installed and ready to configure.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;🛈 This is the easiest and fastest way to deploy the app.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
[[File:Innovaphone MyApps Lab AppStore Button in AP Manager.png|none|thumb|436x436px|AppStore Button in AP Manager outlined]]&lt;br /&gt;
[[File:AP Manager Appstore Interface.png|none|thumb|436x436px|AP Manager Appstore interface]]&lt;br /&gt;
&lt;br /&gt;
=== Option 2: Manual Installation via Upload ===&lt;br /&gt;
If the app is not yet listed in the App Store, follow the steps below:&lt;br /&gt;
&lt;br /&gt;
==== Step 1: Download the App Package ====&lt;br /&gt;
&lt;br /&gt;
# Visit the official Wecom myApps Downloads Portal.&lt;br /&gt;
# Find the &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; app.&lt;br /&gt;
# Download the latest available version compatible with your system architecture.&lt;br /&gt;
[[File:Gcalendar myapps wecom appstore.png|none|thumb|418x418px|Gcalendar on MyApps&#039; Wecom&#039;s App Store]]&lt;br /&gt;
&lt;br /&gt;
==== Step 2: Upload to AP Manager ====&lt;br /&gt;
&lt;br /&gt;
# In &#039;&#039;&#039;AP Manager&#039;&#039;&#039;, click &#039;&#039;&#039;App upload&#039;&#039;&#039; (top right).&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;.app&amp;lt;/code&amp;gt; package you downloaded from the portal.&lt;br /&gt;
# After successful upload, the app will appear in your list and show as &#039;&#039;&#039;Running&#039;&#039;&#039;.&lt;br /&gt;
[[File:App Upload Button on MyApps AP Manager.png|none|thumb|485x485px|App Upload button on AP Manager outlined]]&lt;br /&gt;
[[File:Gcallendar on AP Manager Innovaphone.jpg|none|thumb|490x490px|Gcalendar on AP Manager]]&lt;br /&gt;
&lt;br /&gt;
=== Step 3: Add Application Instance ===&lt;br /&gt;
&lt;br /&gt;
# After uploading the app, click the yellow &#039;&#039;&#039;+ Add&#039;&#039;&#039; button to create an instance of the application.&lt;br /&gt;
# Fill in the required fields:&lt;br /&gt;
#* &#039;&#039;&#039;Name:&#039;&#039;&#039; A recognizable name for the instance.&lt;br /&gt;
#* &#039;&#039;&#039;Domain:&#039;&#039;&#039; The domain for the PBX.&lt;br /&gt;
#* &#039;&#039;&#039;Password:&#039;&#039;&#039; A secure admin password for the app instance.&lt;br /&gt;
#* &#039;&#039;&#039;Webserver path:&#039;&#039;&#039; Optional path (or leave blank).&lt;br /&gt;
#* &#039;&#039;&#039;Database host:&#039;&#039;&#039; Leave empty for local DB or specify IP/DNS if external.&lt;br /&gt;
#* &#039;&#039;&#039;Database name&#039;&#039;&#039; and &#039;&#039;&#039;Database user&#039;&#039;&#039;: Use consistent values for your environment.&lt;br /&gt;
#* &#039;&#039;&#039;Database password:&#039;&#039;&#039; Corresponding DB password.&lt;br /&gt;
# When all values are filled, click &#039;&#039;&#039;Save&#039;&#039;&#039;.&lt;br /&gt;
[[File:AP Manager Gcalendar App Instance Creation Example.png|none|thumb|440x440px|Example of instance creation screen in AP Manager]]&lt;br /&gt;
&lt;br /&gt;
=== Final Step: Registering the App in PBX Manager ===&lt;br /&gt;
&lt;br /&gt;
# Open the &#039;&#039;&#039;PBX Manager&#039;&#039;&#039;.&lt;br /&gt;
# Go to the &#039;&#039;&#039;Apps&#039;&#039;&#039; section.&lt;br /&gt;
# Click &#039;&#039;&#039;Add App&#039;&#039;&#039; and register:&lt;br /&gt;
#* A &#039;&#039;&#039;Users App&#039;&#039;&#039;&lt;br /&gt;
#* An &#039;&#039;&#039;Admin App&#039;&#039;&#039;&lt;br /&gt;
# Assign access rights as needed.&lt;br /&gt;
[[File:PBX Manager Add an App flow - part 1.png|none|thumb|440x440px|PBX Manager Add an App select the app]]&lt;br /&gt;
[[File:Gcallendar PBX Manager Add an App flow - part 2.png|none|thumb|440x440px|PBX Manager Add an App configurations]]&lt;br /&gt;
[[File:Gcallendar on PBX Manager Innovaphone.jpg|none|thumb|441x441px|Gcalendar on PBX Manager configured]]&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⇒ After registration, both apps will appear in MyApps and are ready for use.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Copyright ==&lt;br /&gt;
Copyright information.&lt;br /&gt;
&lt;br /&gt;
== Contact ==&lt;br /&gt;
{|&lt;br /&gt;
| Wecom PORTO ALEGRE - RS&lt;br /&gt;
|-&lt;br /&gt;
| Av. Carlos Gomes, 466 / 401&lt;br /&gt;
|-&lt;br /&gt;
| Boa Vista - CEP 90480-000&lt;br /&gt;
|-&lt;br /&gt;
| Wecom FLORIANÓPOLIS - SC&lt;br /&gt;
|-&lt;br /&gt;
| SC 401, 8600 - Room 7 Corporate Park - Block 2&lt;br /&gt;
|-&lt;br /&gt;
| Santo Antônio de Lisboa - CEP 88050-001&lt;br /&gt;
|-&lt;br /&gt;
| Tel: +55 48 3112.6200&lt;br /&gt;
|-&lt;br /&gt;
| Mail: [mailto:marketing@wecom.com.br marketing@wecom.com.br]&lt;br /&gt;
|-&lt;br /&gt;
| Support: [mailto:dev@wecom.com.br dev@wecom.com.br]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
For any questions please refer to [https://wecom.com.br/fale-conosco/ our contact page.]&lt;/div&gt;</summary>
		<author><name>Pablo.montiel</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Howto:Gcalendar_-_Wecom_-_Partner_App&amp;diff=78970</id>
		<title>Howto:Gcalendar - Wecom - Partner App</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Howto:Gcalendar_-_Wecom_-_Partner_App&amp;diff=78970"/>
		<updated>2026-03-02T13:11:27Z</updated>

		<summary type="html">&lt;p&gt;Pablo.montiel: /* Viewing Upcoming Meetings */ Improved description of meetings creation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FIXME|reason=Work in progress, still incomplete}}&lt;br /&gt;
[[Image:Logo 2 Wecom.png||200px|right]]&lt;br /&gt;
&lt;br /&gt;
== Product Name ==&lt;br /&gt;
[[File:Gcalendar icone.png|none|thumb|Gcalendar Icon]]&lt;br /&gt;
[[File:Gcalendar icone admin.png|none|thumb|Gcalendar Admin Icon]]&lt;br /&gt;
Wecom [https://wecom.com.br/ Gcalendar]&lt;br /&gt;
&lt;br /&gt;
== Certification Status ==&lt;br /&gt;
&amp;lt;!--Do not remove comment. Will be added by innovaphone upon document check &amp;amp; app availablity on app store.--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Space dedicated to Gcalendar certification information.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Category ==&lt;br /&gt;
&amp;lt;!--Do not change this section and do not remove comments. Will be set by Innovaphone upon document check.--&amp;gt;&lt;br /&gt;
[[Category:Partner_Apps|{{PAGENAME}}]]&lt;br /&gt;
[[Category:3rdParty CTI and integrations|{{PAGENAME}}]]&lt;br /&gt;
{{Category:3rdParty CTI and integrations}}&lt;br /&gt;
&lt;br /&gt;
== Vendor ==&lt;br /&gt;
[[Image:Logo 2 Wecom.png|150px]]&lt;br /&gt;
&lt;br /&gt;
Wecom are integrators, maintainers, and distributors of unified communications systems.&lt;br /&gt;
Aimed at the corporate market, our focus is on promoting digital transformation for the businesses we advise, presenting the best mobility and collaboration tools available on the market. We are partners with leading brands and distributors in Brazil. With a solid portfolio of clients in a wide range of segments, our activities include consulting, project development, implementation and maintenance of communication systems, with extensive experience in collaboration technologies and advanced technical staff.&lt;br /&gt;
&lt;br /&gt;
[https://wecom.com.br/sobre-nos/ Wecom -About us]&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&#039;&#039;&#039;Gcalendar&#039;&#039;&#039; is a Partner App developed by &#039;&#039;&#039;Wecom&#039;&#039;&#039; to integrate Google Calendar events with the Innovaphone presence system.&lt;br /&gt;
&lt;br /&gt;
The app operates through two components:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Users App&#039;&#039;&#039; – Where the users initiate their account linking process via Google login.&lt;br /&gt;
* &#039;&#039;&#039;Admin App&#039;&#039;&#039; – Allows configuration of the integration with editable fields for Google Client ID and Client Secret, along with a dedicated OAuth authorization URL.&lt;br /&gt;
&lt;br /&gt;
This setup enables real-time status synchronization and supports four languages: Portuguese, English, Spanish, and German.&lt;br /&gt;
&lt;br /&gt;
== Functions ==&lt;br /&gt;
This section provides an overview of each core part of the &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; application. It highlights what actions can be performed, and how to navigate through the available features. Additionally, this section provides step-by-step explanations for each functionality.&lt;br /&gt;
&lt;br /&gt;
=== Users App ===&lt;br /&gt;
The &#039;&#039;&#039;Users App&#039;&#039;&#039; is the interface used by users to link their Google Calendar account to the Innovaphone presence system. It focuses only on enabling the connection between the user and their calendar through Google authentication.&lt;br /&gt;
[[File:Gcalendar user app interface detail.png|none|thumb|404x404px|Users app interface with google account pop-up]]&lt;br /&gt;
&lt;br /&gt;
==== Connecting with Google account ====&lt;br /&gt;
&lt;br /&gt;
# Open the &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; Users App.&lt;br /&gt;
# Click the &#039;&#039;&#039;Connect&#039;&#039;&#039; button.&lt;br /&gt;
# A Google login popup will appear.&lt;br /&gt;
#* This popup allows users to choose or log into a Google account.&lt;br /&gt;
# After selecting an account, the integration process will begin automatically.&lt;br /&gt;
#* Once completed, the account will be linked to the Innovaphone system.&lt;br /&gt;
[[File:Gcallendar Connect Button.png|none|thumb|Connect button]]&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⇒ &#039;&#039;&#039;Note:&#039;&#039;&#039; Before starting the connection process, ensure you&#039;re already logged into the correct Google account in your browser. This helps avoid selecting the wrong account and ensures the integration is completed with the intended calendar.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Viewing Upcoming Meetings ====&lt;br /&gt;
&lt;br /&gt;
On the main screen, users can see a list of their upcoming scheduled meetings.  &lt;br /&gt;
Each meeting is displayed as a card containing:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Title&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Start time&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When a meeting card is clicked, Gcalendar redirects the user based on how the event was created:&lt;br /&gt;
&lt;br /&gt;
* If the event does &#039;&#039;&#039;not&#039;&#039;&#039; include a Google Meet link, the user is taken to the event details page in Google Calendar.&lt;br /&gt;
* If the event includes an associated &#039;&#039;&#039;Google Meet&#039;&#039;&#039; link, the user is redirected directly to the online meeting.&lt;br /&gt;
[[File:Gcalendar Upcoming Meetings.jpg|none|thumb|392x392px|Upcoming meetings list with active meeting]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⇒ This behavior allows users to quickly join virtual meetings while still providing access to full event details when no meeting link is available.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Creating a New Meeting ====&lt;br /&gt;
&lt;br /&gt;
To schedule a new meeting:&lt;br /&gt;
# Click the &#039;&#039;&#039;+&#039;&#039;&#039; button on the main screen.&lt;br /&gt;
# A creation modal will open with the following fields:&lt;br /&gt;
#* &#039;&#039;&#039;Summary&#039;&#039;&#039; – The title of the meeting.&lt;br /&gt;
#* &#039;&#039;&#039;Description&#039;&#039;&#039; – Details or agenda of the meeting.&lt;br /&gt;
#* &#039;&#039;&#039;Location&#039;&#039;&#039; – Where the meeting will occur (physical address or online).&lt;br /&gt;
#* &#039;&#039;&#039;Start time&#039;&#039;&#039; – When the meeting begins.&lt;br /&gt;
#* &#039;&#039;&#039;End time&#039;&#039;&#039; – When the meeting ends.&lt;br /&gt;
#* &#039;&#039;&#039;Time zone&#039;&#039;&#039; – The time zone for the meeting.&lt;br /&gt;
#* &#039;&#039;&#039;Attendees&#039;&#039;&#039; – Email addresses of participants who should receive an invitation.&lt;br /&gt;
#* &#039;&#039;&#039;Add Google Meet&#039;&#039;&#039; – When checked, a Google Meet link is automatically generated and included in the event.&lt;br /&gt;
&lt;br /&gt;
After filling in the required information:&lt;br /&gt;
* Click &#039;&#039;&#039;Save&#039;&#039;&#039; to create the meeting.&lt;br /&gt;
* Click &#039;&#039;&#039;Cancel&#039;&#039;&#039; to close the modal without saving any changes.&lt;br /&gt;
[[File:Gcalendar Create Meeting Modal.jpg|none|thumb|420x420px|Meeting creation modal]]&lt;br /&gt;
&lt;br /&gt;
==== Disconnecting from Google account ====&lt;br /&gt;
&lt;br /&gt;
# Open the &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; Users App.&lt;br /&gt;
# If a Google account is already connected, the &#039;&#039;&#039;Connect&#039;&#039;&#039; button will be replaced by a &#039;&#039;&#039;Disconnect&#039;&#039;&#039; button.&lt;br /&gt;
# Click the &#039;&#039;&#039;Disconnect&#039;&#039;&#039; button to unlink your current Google Calendar account from the Innovaphone presence system.&lt;br /&gt;
# Once disconnected, presence synchronization will be disabled for that user.&lt;br /&gt;
[[File:Gcallendar Disconnect Button Dtl.png|none|thumb|392x392px|Disconnect button]]&lt;br /&gt;
&lt;br /&gt;
==== Meeting-based Presence Synchronization ====&lt;br /&gt;
&lt;br /&gt;
When a meeting is active in the user’s Google Calendar, Gcalendar automatically updates the user’s Innovaphone presence to reflect that meeting.&lt;br /&gt;
[[File:Status and Status Name.png|none|thumb|392x392px|User&#039;s status and status name change when meeting is happening]]&lt;br /&gt;
&lt;br /&gt;
# While the meeting is in progress, the user’s presence status is set to &#039;&#039;&#039;DND (Do Not Disturb)&#039;&#039;&#039;.&lt;br /&gt;
# At the same time, the user’s &#039;&#039;&#039;status text&#039;&#039;&#039; is updated to the &#039;&#039;&#039;meeting title&#039;&#039;&#039;.&lt;br /&gt;
# Once the meeting ends, Gcalendar restores the user’s presence status and status text to the &#039;&#039;&#039;previous values&#039;&#039;&#039; that were set before the meeting started.&lt;br /&gt;
[[File:Status change while meeting occurs.png|none|thumb|392x392px|DND status change while meeting occurs]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⇒ This behavior ensures that colleagues can immediately see when a user is busy in a meeting, while preserving the user’s original presence settings after the meeting finishes.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Admin App ===&lt;br /&gt;
The &#039;&#039;&#039;Admin App&#039;&#039;&#039; provides configuration options required to authorize and manage the Google integration. It is intended for system administrators and enables control over OAuth credentials used for user authentication.&lt;br /&gt;
[[File:Gcallendar Admin App.png|none|thumb|453x453px|Admin app interface]]&lt;br /&gt;
&lt;br /&gt;
==== Updating Google OAuth Credentials ====&lt;br /&gt;
To enable or update the integration between Gcalendar and Google Calendar, you’ll need to provide the correct &#039;&#039;&#039;Client ID&#039;&#039;&#039; and &#039;&#039;&#039;Client Secret&#039;&#039;&#039; obtained from your Google Cloud project.&lt;br /&gt;
&lt;br /&gt;
# Open the &#039;&#039;&#039;Gcalendar Admin App&#039;&#039;&#039;.&lt;br /&gt;
# Locate the fields labeled &#039;&#039;&#039;Google Client ID&#039;&#039;&#039; and &#039;&#039;&#039;Client Secret&#039;&#039;&#039;.&lt;br /&gt;
# Paste the values copied from your Google OAuth Credentials into the respective fields.&lt;br /&gt;
# Click the &#039;&#039;&#039;Update&#039;&#039;&#039; button next to each field to save the changes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⇒ &#039;&#039;&#039;Notes:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Ensure both values are correctly copied and properly formatted.&lt;br /&gt;
* Incorrect credentials will prevent users from authenticating.&lt;br /&gt;
* The Client Secret is sensitive—never share or expose it publicly.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
[[File:Gcallendar Google Client ID Update.png|none|thumb|519x519px|Google Client ID input and update button]]&lt;br /&gt;
[[File:Gcallendar Client Secret Update.png|none|thumb|519x519px|Client Secret input and update button]]&lt;br /&gt;
&lt;br /&gt;
===Multi-PBX ready===&lt;br /&gt;
&amp;lt;!-- Mandatory topic. --&amp;gt; &lt;br /&gt;
&amp;lt;!-- Give test-prooved statement about product usability in Multi-PBX-systems / Master-Slave --&amp;gt;&lt;br /&gt;
&amp;lt;!-- I.e. can the application be operated towards slave-pbxes, by slave-users, special configuration steps, special requirements, ...  --&amp;gt;&lt;br /&gt;
&amp;lt;!-- If applicable, provide hints about required configuration steps below in the chapter Configuration --&amp;gt; &lt;br /&gt;
&lt;br /&gt;
===Cloud ready===&lt;br /&gt;
&amp;lt;!-- Mandatory topic. --&amp;gt; &lt;br /&gt;
&amp;lt;!-- Give test-prooved statement about product usability in Cloud-environments / Hosted PBXes --&amp;gt;&lt;br /&gt;
&amp;lt;!-- I.e. can the application be operated via NAT-boundaries, special configuration steps, special requirements, ...  --&amp;gt;&lt;br /&gt;
&amp;lt;!-- If applicable, provide hints about required configuration steps below in the chapter Configuration --&amp;gt; &lt;br /&gt;
&lt;br /&gt;
===Supported languages===&lt;br /&gt;
&amp;lt;!-- Mandatory topic. --&amp;gt; &lt;br /&gt;
&amp;lt;!-- List the translated languages which the application provides. Comma-separated is sufficient --&amp;gt;&lt;br /&gt;
Portuguese, English, Spanish, German&lt;br /&gt;
&lt;br /&gt;
== Licensing ==&lt;br /&gt;
The &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; application is licensed via the Innovaphone Pricelist.&lt;br /&gt;
&lt;br /&gt;
Currently, it is not yet listed on the official Innovaphone Partner App Licenses page, but it is expected to be included in future updates.&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;License type:&#039;&#039;&#039; Innovaphone Pricelist&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;License model:&#039;&#039;&#039; One license per user&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Listed at:&#039;&#039;&#039; https://www.innovaphone.com/en/services/licenses/partner-apps.html?app=Gcalendar&amp;amp;type=license#gcalendar&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
Before installing and using Gcalendar, ensure your environment meets the following requirements:&lt;br /&gt;
&lt;br /&gt;
==== System Requirements ====&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Innovaphone firmware:&#039;&#039;&#039; Version &amp;lt;code&amp;gt;14r1&amp;lt;/code&amp;gt; or later&lt;br /&gt;
* &#039;&#039;&#039;App platform:&#039;&#039;&#039; Innovaphone &#039;&#039;&#039;myApps&#039;&#039;&#039; system with &#039;&#039;&#039;App Platform&#039;&#039;&#039; active&lt;br /&gt;
* &#039;&#039;&#039;PBX Manager:&#039;&#039;&#039; Required to register and configure the Users and Admin Apps&lt;br /&gt;
&lt;br /&gt;
==== OAuth Setup ====&lt;br /&gt;
&lt;br /&gt;
* A &#039;&#039;&#039;Google Cloud Project&#039;&#039;&#039; with valid &#039;&#039;&#039;OAuth 2.0 credentials&#039;&#039;&#039; (Client ID and Client Secret)&lt;br /&gt;
* The following URIs must be configured in the Google project:&lt;br /&gt;
** &#039;&#039;&#039;Authorized JavaScript origins:&#039;&#039;&#039; &amp;lt;code&amp;gt;https://app_platform&amp;lt;/code&amp;gt;&lt;br /&gt;
** &#039;&#039;&#039;Authorized redirect URI:&#039;&#039;&#039; &amp;lt;code&amp;gt;https://app_platform/domain/app_name/newToken&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Versions ==&lt;br /&gt;
The &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; application follows the release versioning aligned with the Innovaphone platform.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Initial release version:&#039;&#039;&#039; &amp;lt;code&amp;gt;14r1&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Latest available version:&#039;&#039;&#039; &amp;lt;code&amp;gt;2004 sr0&amp;lt;/code&amp;gt; (as of February 23, 2026)&lt;br /&gt;
* &#039;&#039;&#039;Build number:&#039;&#039;&#039;&amp;lt;code&amp;gt;14A1149 dvl&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Supported architectures:&#039;&#039;&#039; &amp;lt;code&amp;gt;arm&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;x86_64&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;arm64&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⇒ New versions are published and made available through the Wecom App Store.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
=== Google OAuth Setup (Admin Only) ===&lt;br /&gt;
To enable account linking between the Innovaphone presence system and Google Calendar, administrators must configure OAuth 2.0 credentials using the Google Cloud Platform beforehand.&lt;br /&gt;
&lt;br /&gt;
# Go to [https://console.cloud.google.com/ Google Cloud Console].&lt;br /&gt;
# Select or create a &#039;&#039;&#039;Google Cloud Project&#039;&#039;&#039;.&amp;lt;blockquote&amp;gt;◇ This project will host the credentials used by Gcalendar to access the Google Calendar API. We recommend creating a dedicated project for better control and security.&amp;lt;/blockquote&amp;gt;[[File:Google Cloud Select-Create Project.png|none|thumb|425x425px|Google Cloud Console welcome page with select project button outlined (here the project is already selected)]]&amp;lt;blockquote&amp;gt;Clicking the &#039;&#039;&#039;&amp;quot;Select Project&amp;quot;&#039;&#039;&#039; button will open a &#039;&#039;&#039;modal&#039;&#039;&#039; where you can choose or create a project.&amp;lt;/blockquote&amp;gt;[[File:Google Cloud Select Project If Selected.png|none|thumb|353x353px|Project selection modal]]&amp;lt;blockquote&amp;gt;If a project already exists, click on its name from the list to open it. If not, click &#039;&#039;&#039;&amp;quot;New Project&amp;quot;&#039;&#039;&#039; in the top-right corner to create one.&amp;lt;/blockquote&amp;gt;[[File:Google Cloud New Project Page.png|none|thumb|440x440px|New project creation page]]&lt;br /&gt;
# In the top-left corner, click the &#039;&#039;&#039;hamburger menu icon&#039;&#039;&#039; (☰) to expand the left navigation menu.&lt;br /&gt;
#* Before continuing to the OAuth configuration, you need to make sure the Google Calendar API is enabled.&lt;br /&gt;
# From the sidebar, go to &#039;&#039;&#039;APIs &amp;amp; Services &amp;gt; Enabled APIs &amp;amp; services&#039;&#039;&#039;.[[File:Google Cloud Sidebar API Services.png|none|thumb|450x450px|Opening the APIs &amp;amp; Services section to enable the Calendar API]]&lt;br /&gt;
# At the top of the page, click &#039;&#039;&#039;+ Enable APIs and services&#039;&#039;&#039;.&amp;lt;blockquote&amp;gt;Once enabled, it will appear in the list of active APIs under &#039;&#039;&#039;Enabled APIs &amp;amp; Services&#039;&#039;&#039;.If the Google Calendar API is already enabled, you may skip the steps below and proceed directly to the OAuth configuration.&amp;lt;/blockquote&amp;gt;[[File:Google Cloud Enable APIs Services.jpg|none|thumb|450x450px|Enabling API button and viewing the enabled Google Calendar API]]&lt;br /&gt;
# In the API Library, search for: &amp;lt;code&amp;gt;calendar&amp;lt;/code&amp;gt;.&lt;br /&gt;
#* From the results, click on &#039;&#039;&#039;Google Calendar API&#039;&#039;&#039;.[[File:Google Clou APIs Google Calendar Search.jpg|none|thumb|450x450px|Searching for the Google Calendar API in the API Library]]&lt;br /&gt;
# On the API page, click the blue &#039;&#039;&#039;Enable&#039;&#039;&#039; button to activate it.[[File:Google Cloud Enabling Google Calendar.jpg|none|thumb|450x450px|Enabling the Google Calendar API]]&lt;br /&gt;
# Now click the &#039;&#039;&#039;hamburger menu icon&#039;&#039;&#039; (☰) again to return to the sidebar.&lt;br /&gt;
# Navigate to &#039;&#039;&#039;API &amp;amp; Services &amp;gt; OAuth consent screen&#039;&#039;&#039;.[[File:Google Cloud Left Menu API Outlined.png|none|thumb|482x482px|Left menu: &#039;&#039;&#039;APIs &amp;amp; service -&amp;gt; OAuth consent screen&#039;&#039;&#039;]]&lt;br /&gt;
#* If it&#039;s your first time, configure the consent screen with basic app details (organization name, app name, email, etc.).&lt;br /&gt;
#* Once configured, you&#039;ll be redirected to the &#039;&#039;&#039;Google Auth Platform / Overview&#039;&#039;&#039; page.&lt;br /&gt;
# Click &#039;&#039;&#039;Clients&#039;&#039;&#039; in the left menu and then click &amp;quot;&#039;&#039;&#039;+ Create client&amp;quot;&#039;&#039;&#039;.[[File:Google Cloud new client.jpg|none|thumb|525x525px|Creating client option in Clients page]]&lt;br /&gt;
# Choose &#039;&#039;&#039;Application Type: Web Application&#039;&#039;&#039;.&lt;br /&gt;
# Enter a recognizable &#039;&#039;&#039;name&#039;&#039;&#039; (e.g., &#039;&#039;Gcalendar Integration&#039;&#039;).&lt;br /&gt;
# Add the following values:&lt;br /&gt;
#* &#039;&#039;&#039;Authorized JavaScript origins&#039;&#039;&#039;&lt;br /&gt;
#** &amp;lt;code&amp;gt;https://app_platform&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &#039;&#039;&#039;Authorized redirect URIs&#039;&#039;&#039;&lt;br /&gt;
#** &amp;lt;code&amp;gt;https://app_platform/domain/app_name/newToken&amp;lt;/code&amp;gt;[[File:Google Cloud Create OAuth Client ID.jpg|none|thumb|411x411px|Create OAuth client ID inputs]]&lt;br /&gt;
# After creation, copy the generated:&lt;br /&gt;
#* &#039;&#039;&#039;Client ID&#039;&#039;&#039;&lt;br /&gt;
#* &#039;&#039;&#039;Client Secret&#039;&#039;&#039;[[File:Google Cloud Client ID Client Secret.jpg|none|thumb|434x434px|Client credentials available after creating]]&lt;br /&gt;
# Open the &#039;&#039;&#039;Gcalendar Admin App&#039;&#039;&#039; and insert the values in the respective fields and click &#039;&#039;&#039;Update&#039;&#039;&#039; (see [[#Updating Google OAuth Credentials|Update Google OAuth Credentials]] section above).&amp;lt;blockquote&amp;gt;▷ This links the Google authentication flow to the presence system, allowing users to authorize their calendars.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
# On the left menu, go to &#039;&#039;&#039;Data Access&#039;&#039;&#039; under the &#039;&#039;&#039;Google Auth Platform&#039;&#039;&#039; section.&amp;lt;blockquote&amp;gt;◇ This section lists the sensitive scopes (permissions) your app is requesting during OAuth authorization. These are required for accessing user calendars.&amp;lt;/blockquote&amp;gt;[[File:Google Cloud Add or Remove Scopes.png|none|thumb|510x510px|Click &amp;quot;Add or remove scopes&amp;quot; to open the scope selection menu]]&lt;br /&gt;
# Click the blue &#039;&#039;&#039;Add or remove scopes&#039;&#039;&#039; button.&amp;lt;blockquote&amp;gt;◇ A sidebar will open listing all available scopes from enabled APIs. You can search and select the necessary calendar-related scopes for your application.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
# In the sidebar that appears, search for and select the following calendar scopes:&lt;br /&gt;
#* &amp;lt;code&amp;gt;../auth/calendar.events&amp;lt;/code&amp;gt; – View and edit calendar events.&lt;br /&gt;
#* &amp;lt;code&amp;gt;../auth/calendar.events.owned&amp;lt;/code&amp;gt; – Modify events on owned calendars.[[File:Google Cloud Data Access Scopes Correct.png|none|thumb|400x400px|Data Access section showing added calendar scopes]]&amp;lt;blockquote&amp;gt;▷ These scopes must be added to your app for Google to allow access to calendar data through the API. Make sure they match the level of access your app requires.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
Follow the steps below to install the &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; application in your Innovaphone environment.&lt;br /&gt;
&lt;br /&gt;
=== Option 1: Installing via AP Manager App Store (Recommended) ===&lt;br /&gt;
You can install &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; directly through the &#039;&#039;&#039;App Platform Manager&#039;&#039;&#039; (AP Manager) by accessing the App Store:&lt;br /&gt;
&lt;br /&gt;
# Open the &#039;&#039;&#039;AP Manager&#039;&#039;&#039;.&lt;br /&gt;
# Click the yellow &#039;&#039;&#039;App Store&#039;&#039;&#039; button in the top-right corner.&lt;br /&gt;
# Search for &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; in the list.&lt;br /&gt;
# Select the latest version and confirm the download.&lt;br /&gt;
# The app will be automatically installed and ready to configure.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;🛈 This is the easiest and fastest way to deploy the app.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
[[File:Innovaphone MyApps Lab AppStore Button in AP Manager.png|none|thumb|436x436px|AppStore Button in AP Manager outlined]]&lt;br /&gt;
[[File:AP Manager Appstore Interface.png|none|thumb|436x436px|AP Manager Appstore interface]]&lt;br /&gt;
&lt;br /&gt;
=== Option 2: Manual Installation via Upload ===&lt;br /&gt;
If the app is not yet listed in the App Store, follow the steps below:&lt;br /&gt;
&lt;br /&gt;
==== Step 1: Download the App Package ====&lt;br /&gt;
&lt;br /&gt;
# Visit the official Wecom myApps Downloads Portal.&lt;br /&gt;
# Find the &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; app.&lt;br /&gt;
# Download the latest available version compatible with your system architecture.&lt;br /&gt;
[[File:Gcalendar myapps wecom appstore.png|none|thumb|418x418px|Gcalendar on MyApps&#039; Wecom&#039;s App Store]]&lt;br /&gt;
&lt;br /&gt;
==== Step 2: Upload to AP Manager ====&lt;br /&gt;
&lt;br /&gt;
# In &#039;&#039;&#039;AP Manager&#039;&#039;&#039;, click &#039;&#039;&#039;App upload&#039;&#039;&#039; (top right).&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;.app&amp;lt;/code&amp;gt; package you downloaded from the portal.&lt;br /&gt;
# After successful upload, the app will appear in your list and show as &#039;&#039;&#039;Running&#039;&#039;&#039;.&lt;br /&gt;
[[File:App Upload Button on MyApps AP Manager.png|none|thumb|485x485px|App Upload button on AP Manager outlined]]&lt;br /&gt;
[[File:Gcallendar on AP Manager Innovaphone.jpg|none|thumb|490x490px|Gcalendar on AP Manager]]&lt;br /&gt;
&lt;br /&gt;
=== Step 3: Add Application Instance ===&lt;br /&gt;
&lt;br /&gt;
# After uploading the app, click the yellow &#039;&#039;&#039;+ Add&#039;&#039;&#039; button to create an instance of the application.&lt;br /&gt;
# Fill in the required fields:&lt;br /&gt;
#* &#039;&#039;&#039;Name:&#039;&#039;&#039; A recognizable name for the instance.&lt;br /&gt;
#* &#039;&#039;&#039;Domain:&#039;&#039;&#039; The domain for the PBX.&lt;br /&gt;
#* &#039;&#039;&#039;Password:&#039;&#039;&#039; A secure admin password for the app instance.&lt;br /&gt;
#* &#039;&#039;&#039;Webserver path:&#039;&#039;&#039; Optional path (or leave blank).&lt;br /&gt;
#* &#039;&#039;&#039;Database host:&#039;&#039;&#039; Leave empty for local DB or specify IP/DNS if external.&lt;br /&gt;
#* &#039;&#039;&#039;Database name&#039;&#039;&#039; and &#039;&#039;&#039;Database user&#039;&#039;&#039;: Use consistent values for your environment.&lt;br /&gt;
#* &#039;&#039;&#039;Database password:&#039;&#039;&#039; Corresponding DB password.&lt;br /&gt;
# When all values are filled, click &#039;&#039;&#039;Save&#039;&#039;&#039;.&lt;br /&gt;
[[File:AP Manager Gcalendar App Instance Creation Example.png|none|thumb|440x440px|Example of instance creation screen in AP Manager]]&lt;br /&gt;
&lt;br /&gt;
=== Final Step: Registering the App in PBX Manager ===&lt;br /&gt;
&lt;br /&gt;
# Open the &#039;&#039;&#039;PBX Manager&#039;&#039;&#039;.&lt;br /&gt;
# Go to the &#039;&#039;&#039;Apps&#039;&#039;&#039; section.&lt;br /&gt;
# Click &#039;&#039;&#039;Add App&#039;&#039;&#039; and register:&lt;br /&gt;
#* A &#039;&#039;&#039;Users App&#039;&#039;&#039;&lt;br /&gt;
#* An &#039;&#039;&#039;Admin App&#039;&#039;&#039;&lt;br /&gt;
# Assign access rights as needed.&lt;br /&gt;
[[File:PBX Manager Add an App flow - part 1.png|none|thumb|440x440px|PBX Manager Add an App select the app]]&lt;br /&gt;
[[File:Gcallendar PBX Manager Add an App flow - part 2.png|none|thumb|440x440px|PBX Manager Add an App configurations]]&lt;br /&gt;
[[File:Gcallendar on PBX Manager Innovaphone.jpg|none|thumb|441x441px|Gcalendar on PBX Manager configured]]&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⇒ After registration, both apps will appear in MyApps and are ready for use.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Copyright ==&lt;br /&gt;
Copyright information.&lt;br /&gt;
&lt;br /&gt;
== Contact ==&lt;br /&gt;
{|&lt;br /&gt;
| Wecom PORTO ALEGRE - RS&lt;br /&gt;
|-&lt;br /&gt;
| Av. Carlos Gomes, 466 / 401&lt;br /&gt;
|-&lt;br /&gt;
| Boa Vista - CEP 90480-000&lt;br /&gt;
|-&lt;br /&gt;
| Wecom FLORIANÓPOLIS - SC&lt;br /&gt;
|-&lt;br /&gt;
| SC 401, 8600 - Room 7 Corporate Park - Block 2&lt;br /&gt;
|-&lt;br /&gt;
| Santo Antônio de Lisboa - CEP 88050-001&lt;br /&gt;
|-&lt;br /&gt;
| Tel: +55 48 3112.6200&lt;br /&gt;
|-&lt;br /&gt;
| Mail: [mailto:marketing@wecom.com.br marketing@wecom.com.br]&lt;br /&gt;
|-&lt;br /&gt;
| Support: [mailto:dev@wecom.com.br dev@wecom.com.br]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
For any questions please refer to [https://wecom.com.br/fale-conosco/ our contact page.]&lt;/div&gt;</summary>
		<author><name>Pablo.montiel</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Howto:Gcalendar_-_Wecom_-_Partner_App&amp;diff=78967</id>
		<title>Howto:Gcalendar - Wecom - Partner App</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Howto:Gcalendar_-_Wecom_-_Partner_App&amp;diff=78967"/>
		<updated>2026-03-01T23:44:27Z</updated>

		<summary type="html">&lt;p&gt;Pablo.montiel: /* Versions */ Version and build info change&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FIXME|reason=Work in progress, still incomplete}}&lt;br /&gt;
[[Image:Logo 2 Wecom.png||200px|right]]&lt;br /&gt;
&lt;br /&gt;
== Product Name ==&lt;br /&gt;
[[File:Gcalendar icone.png|none|thumb|Gcalendar Icon]]&lt;br /&gt;
[[File:Gcalendar icone admin.png|none|thumb|Gcalendar Admin Icon]]&lt;br /&gt;
Wecom [https://wecom.com.br/ Gcalendar]&lt;br /&gt;
&lt;br /&gt;
== Certification Status ==&lt;br /&gt;
&amp;lt;!--Do not remove comment. Will be added by innovaphone upon document check &amp;amp; app availablity on app store.--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Space dedicated to Gcalendar certification information.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Category ==&lt;br /&gt;
&amp;lt;!--Do not change this section and do not remove comments. Will be set by Innovaphone upon document check.--&amp;gt;&lt;br /&gt;
[[Category:Partner_Apps|{{PAGENAME}}]]&lt;br /&gt;
[[Category:3rdParty CTI and integrations|{{PAGENAME}}]]&lt;br /&gt;
{{Category:3rdParty CTI and integrations}}&lt;br /&gt;
&lt;br /&gt;
== Vendor ==&lt;br /&gt;
[[Image:Logo 2 Wecom.png|150px]]&lt;br /&gt;
&lt;br /&gt;
Wecom are integrators, maintainers, and distributors of unified communications systems.&lt;br /&gt;
Aimed at the corporate market, our focus is on promoting digital transformation for the businesses we advise, presenting the best mobility and collaboration tools available on the market. We are partners with leading brands and distributors in Brazil. With a solid portfolio of clients in a wide range of segments, our activities include consulting, project development, implementation and maintenance of communication systems, with extensive experience in collaboration technologies and advanced technical staff.&lt;br /&gt;
&lt;br /&gt;
[https://wecom.com.br/sobre-nos/ Wecom -About us]&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&#039;&#039;&#039;Gcalendar&#039;&#039;&#039; is a Partner App developed by &#039;&#039;&#039;Wecom&#039;&#039;&#039; to integrate Google Calendar events with the Innovaphone presence system.&lt;br /&gt;
&lt;br /&gt;
The app operates through two components:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Users App&#039;&#039;&#039; – Where the users initiate their account linking process via Google login.&lt;br /&gt;
* &#039;&#039;&#039;Admin App&#039;&#039;&#039; – Allows configuration of the integration with editable fields for Google Client ID and Client Secret, along with a dedicated OAuth authorization URL.&lt;br /&gt;
&lt;br /&gt;
This setup enables real-time status synchronization and supports four languages: Portuguese, English, Spanish, and German.&lt;br /&gt;
&lt;br /&gt;
== Functions ==&lt;br /&gt;
This section provides an overview of each core part of the &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; application. It highlights what actions can be performed, and how to navigate through the available features. Additionally, this section provides step-by-step explanations for each functionality.&lt;br /&gt;
&lt;br /&gt;
=== Users App ===&lt;br /&gt;
The &#039;&#039;&#039;Users App&#039;&#039;&#039; is the interface used by users to link their Google Calendar account to the Innovaphone presence system. It focuses only on enabling the connection between the user and their calendar through Google authentication.&lt;br /&gt;
[[File:Gcalendar user app interface detail.png|none|thumb|404x404px|Users app interface with google account pop-up]]&lt;br /&gt;
&lt;br /&gt;
==== Connecting with Google account ====&lt;br /&gt;
&lt;br /&gt;
# Open the &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; Users App.&lt;br /&gt;
# Click the &#039;&#039;&#039;Connect&#039;&#039;&#039; button.&lt;br /&gt;
# A Google login popup will appear.&lt;br /&gt;
#* This popup allows users to choose or log into a Google account.&lt;br /&gt;
# After selecting an account, the integration process will begin automatically.&lt;br /&gt;
#* Once completed, the account will be linked to the Innovaphone system.&lt;br /&gt;
[[File:Gcallendar Connect Button.png|none|thumb|Connect button]]&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⇒ &#039;&#039;&#039;Note:&#039;&#039;&#039; Before starting the connection process, ensure you&#039;re already logged into the correct Google account in your browser. This helps avoid selecting the wrong account and ensures the integration is completed with the intended calendar.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Viewing Upcoming Meetings ====&lt;br /&gt;
&lt;br /&gt;
On the main screen, users can see a list of their upcoming scheduled meetings.  &lt;br /&gt;
Each meeting is displayed as a card containing:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Title&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Start time&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
By clicking on a meeting card, the user is redirected to the corresponding event inside their Google Calendar.&lt;br /&gt;
[[File:Gcalendar Upcoming Meetings.jpg|none|thumb|392x392px|Upcoming meetings list with active meeting]]&lt;br /&gt;
&lt;br /&gt;
==== Creating a New Meeting ====&lt;br /&gt;
&lt;br /&gt;
To schedule a new meeting:&lt;br /&gt;
# Click the &#039;&#039;&#039;+&#039;&#039;&#039; button on the main screen.&lt;br /&gt;
# A creation modal will open with the following fields:&lt;br /&gt;
#* &#039;&#039;&#039;Summary&#039;&#039;&#039; – The title of the meeting.&lt;br /&gt;
#* &#039;&#039;&#039;Description&#039;&#039;&#039; – Details or agenda of the meeting.&lt;br /&gt;
#* &#039;&#039;&#039;Location&#039;&#039;&#039; – Where the meeting will occur (physical address or online).&lt;br /&gt;
#* &#039;&#039;&#039;Start time&#039;&#039;&#039; – When the meeting begins.&lt;br /&gt;
#* &#039;&#039;&#039;End time&#039;&#039;&#039; – When the meeting ends.&lt;br /&gt;
#* &#039;&#039;&#039;Time zone&#039;&#039;&#039; – The time zone for the meeting.&lt;br /&gt;
#* &#039;&#039;&#039;Attendees&#039;&#039;&#039; – Email addresses of participants who should receive an invitation.&lt;br /&gt;
#* &#039;&#039;&#039;Add Google Meet&#039;&#039;&#039; – When checked, a Google Meet link is automatically generated and included in the event.&lt;br /&gt;
&lt;br /&gt;
After filling in the required information:&lt;br /&gt;
* Click &#039;&#039;&#039;Save&#039;&#039;&#039; to create the meeting.&lt;br /&gt;
* Click &#039;&#039;&#039;Cancel&#039;&#039;&#039; to close the modal without saving any changes.&lt;br /&gt;
[[File:Gcalendar Create Meeting Modal.jpg|none|thumb|420x420px|Meeting creation modal]]&lt;br /&gt;
&lt;br /&gt;
==== Disconnecting from Google account ====&lt;br /&gt;
&lt;br /&gt;
# Open the &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; Users App.&lt;br /&gt;
# If a Google account is already connected, the &#039;&#039;&#039;Connect&#039;&#039;&#039; button will be replaced by a &#039;&#039;&#039;Disconnect&#039;&#039;&#039; button.&lt;br /&gt;
# Click the &#039;&#039;&#039;Disconnect&#039;&#039;&#039; button to unlink your current Google Calendar account from the Innovaphone presence system.&lt;br /&gt;
# Once disconnected, presence synchronization will be disabled for that user.&lt;br /&gt;
[[File:Gcallendar Disconnect Button Dtl.png|none|thumb|392x392px|Disconnect button]]&lt;br /&gt;
&lt;br /&gt;
==== Meeting-based Presence Synchronization ====&lt;br /&gt;
&lt;br /&gt;
When a meeting is active in the user’s Google Calendar, Gcalendar automatically updates the user’s Innovaphone presence to reflect that meeting.&lt;br /&gt;
[[File:Status and Status Name.png|none|thumb|392x392px|User&#039;s status and status name change when meeting is happening]]&lt;br /&gt;
&lt;br /&gt;
# While the meeting is in progress, the user’s presence status is set to &#039;&#039;&#039;DND (Do Not Disturb)&#039;&#039;&#039;.&lt;br /&gt;
# At the same time, the user’s &#039;&#039;&#039;status text&#039;&#039;&#039; is updated to the &#039;&#039;&#039;meeting title&#039;&#039;&#039;.&lt;br /&gt;
# Once the meeting ends, Gcalendar restores the user’s presence status and status text to the &#039;&#039;&#039;previous values&#039;&#039;&#039; that were set before the meeting started.&lt;br /&gt;
[[File:Status change while meeting occurs.png|none|thumb|392x392px|DND status change while meeting occurs]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⇒ This behavior ensures that colleagues can immediately see when a user is busy in a meeting, while preserving the user’s original presence settings after the meeting finishes.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Admin App ===&lt;br /&gt;
The &#039;&#039;&#039;Admin App&#039;&#039;&#039; provides configuration options required to authorize and manage the Google integration. It is intended for system administrators and enables control over OAuth credentials used for user authentication.&lt;br /&gt;
[[File:Gcallendar Admin App.png|none|thumb|453x453px|Admin app interface]]&lt;br /&gt;
&lt;br /&gt;
==== Updating Google OAuth Credentials ====&lt;br /&gt;
To enable or update the integration between Gcalendar and Google Calendar, you’ll need to provide the correct &#039;&#039;&#039;Client ID&#039;&#039;&#039; and &#039;&#039;&#039;Client Secret&#039;&#039;&#039; obtained from your Google Cloud project.&lt;br /&gt;
&lt;br /&gt;
# Open the &#039;&#039;&#039;Gcalendar Admin App&#039;&#039;&#039;.&lt;br /&gt;
# Locate the fields labeled &#039;&#039;&#039;Google Client ID&#039;&#039;&#039; and &#039;&#039;&#039;Client Secret&#039;&#039;&#039;.&lt;br /&gt;
# Paste the values copied from your Google OAuth Credentials into the respective fields.&lt;br /&gt;
# Click the &#039;&#039;&#039;Update&#039;&#039;&#039; button next to each field to save the changes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⇒ &#039;&#039;&#039;Notes:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Ensure both values are correctly copied and properly formatted.&lt;br /&gt;
* Incorrect credentials will prevent users from authenticating.&lt;br /&gt;
* The Client Secret is sensitive—never share or expose it publicly.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
[[File:Gcallendar Google Client ID Update.png|none|thumb|519x519px|Google Client ID input and update button]]&lt;br /&gt;
[[File:Gcallendar Client Secret Update.png|none|thumb|519x519px|Client Secret input and update button]]&lt;br /&gt;
&lt;br /&gt;
===Multi-PBX ready===&lt;br /&gt;
&amp;lt;!-- Mandatory topic. --&amp;gt; &lt;br /&gt;
&amp;lt;!-- Give test-prooved statement about product usability in Multi-PBX-systems / Master-Slave --&amp;gt;&lt;br /&gt;
&amp;lt;!-- I.e. can the application be operated towards slave-pbxes, by slave-users, special configuration steps, special requirements, ...  --&amp;gt;&lt;br /&gt;
&amp;lt;!-- If applicable, provide hints about required configuration steps below in the chapter Configuration --&amp;gt; &lt;br /&gt;
&lt;br /&gt;
===Cloud ready===&lt;br /&gt;
&amp;lt;!-- Mandatory topic. --&amp;gt; &lt;br /&gt;
&amp;lt;!-- Give test-prooved statement about product usability in Cloud-environments / Hosted PBXes --&amp;gt;&lt;br /&gt;
&amp;lt;!-- I.e. can the application be operated via NAT-boundaries, special configuration steps, special requirements, ...  --&amp;gt;&lt;br /&gt;
&amp;lt;!-- If applicable, provide hints about required configuration steps below in the chapter Configuration --&amp;gt; &lt;br /&gt;
&lt;br /&gt;
===Supported languages===&lt;br /&gt;
&amp;lt;!-- Mandatory topic. --&amp;gt; &lt;br /&gt;
&amp;lt;!-- List the translated languages which the application provides. Comma-separated is sufficient --&amp;gt;&lt;br /&gt;
Portuguese, English, Spanish, German&lt;br /&gt;
&lt;br /&gt;
== Licensing ==&lt;br /&gt;
The &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; application is licensed via the Innovaphone Pricelist.&lt;br /&gt;
&lt;br /&gt;
Currently, it is not yet listed on the official Innovaphone Partner App Licenses page, but it is expected to be included in future updates.&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;License type:&#039;&#039;&#039; Innovaphone Pricelist&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;License model:&#039;&#039;&#039; One license per user&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Listed at:&#039;&#039;&#039; https://www.innovaphone.com/en/services/licenses/partner-apps.html?app=Gcalendar&amp;amp;type=license#gcalendar&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
Before installing and using Gcalendar, ensure your environment meets the following requirements:&lt;br /&gt;
&lt;br /&gt;
==== System Requirements ====&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Innovaphone firmware:&#039;&#039;&#039; Version &amp;lt;code&amp;gt;14r1&amp;lt;/code&amp;gt; or later&lt;br /&gt;
* &#039;&#039;&#039;App platform:&#039;&#039;&#039; Innovaphone &#039;&#039;&#039;myApps&#039;&#039;&#039; system with &#039;&#039;&#039;App Platform&#039;&#039;&#039; active&lt;br /&gt;
* &#039;&#039;&#039;PBX Manager:&#039;&#039;&#039; Required to register and configure the Users and Admin Apps&lt;br /&gt;
&lt;br /&gt;
==== OAuth Setup ====&lt;br /&gt;
&lt;br /&gt;
* A &#039;&#039;&#039;Google Cloud Project&#039;&#039;&#039; with valid &#039;&#039;&#039;OAuth 2.0 credentials&#039;&#039;&#039; (Client ID and Client Secret)&lt;br /&gt;
* The following URIs must be configured in the Google project:&lt;br /&gt;
** &#039;&#039;&#039;Authorized JavaScript origins:&#039;&#039;&#039; &amp;lt;code&amp;gt;https://app_platform&amp;lt;/code&amp;gt;&lt;br /&gt;
** &#039;&#039;&#039;Authorized redirect URI:&#039;&#039;&#039; &amp;lt;code&amp;gt;https://app_platform/domain/app_name/newToken&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Versions ==&lt;br /&gt;
The &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; application follows the release versioning aligned with the Innovaphone platform.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Initial release version:&#039;&#039;&#039; &amp;lt;code&amp;gt;14r1&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Latest available version:&#039;&#039;&#039; &amp;lt;code&amp;gt;2004 sr0&amp;lt;/code&amp;gt; (as of February 23, 2026)&lt;br /&gt;
* &#039;&#039;&#039;Build number:&#039;&#039;&#039;&amp;lt;code&amp;gt;14A1149 dvl&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Supported architectures:&#039;&#039;&#039; &amp;lt;code&amp;gt;arm&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;x86_64&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;arm64&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⇒ New versions are published and made available through the Wecom App Store.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
=== Google OAuth Setup (Admin Only) ===&lt;br /&gt;
To enable account linking between the Innovaphone presence system and Google Calendar, administrators must configure OAuth 2.0 credentials using the Google Cloud Platform beforehand.&lt;br /&gt;
&lt;br /&gt;
# Go to [https://console.cloud.google.com/ Google Cloud Console].&lt;br /&gt;
# Select or create a &#039;&#039;&#039;Google Cloud Project&#039;&#039;&#039;.&amp;lt;blockquote&amp;gt;◇ This project will host the credentials used by Gcalendar to access the Google Calendar API. We recommend creating a dedicated project for better control and security.&amp;lt;/blockquote&amp;gt;[[File:Google Cloud Select-Create Project.png|none|thumb|425x425px|Google Cloud Console welcome page with select project button outlined (here the project is already selected)]]&amp;lt;blockquote&amp;gt;Clicking the &#039;&#039;&#039;&amp;quot;Select Project&amp;quot;&#039;&#039;&#039; button will open a &#039;&#039;&#039;modal&#039;&#039;&#039; where you can choose or create a project.&amp;lt;/blockquote&amp;gt;[[File:Google Cloud Select Project If Selected.png|none|thumb|353x353px|Project selection modal]]&amp;lt;blockquote&amp;gt;If a project already exists, click on its name from the list to open it. If not, click &#039;&#039;&#039;&amp;quot;New Project&amp;quot;&#039;&#039;&#039; in the top-right corner to create one.&amp;lt;/blockquote&amp;gt;[[File:Google Cloud New Project Page.png|none|thumb|440x440px|New project creation page]]&lt;br /&gt;
# In the top-left corner, click the &#039;&#039;&#039;hamburger menu icon&#039;&#039;&#039; (☰) to expand the left navigation menu.&lt;br /&gt;
#* Before continuing to the OAuth configuration, you need to make sure the Google Calendar API is enabled.&lt;br /&gt;
# From the sidebar, go to &#039;&#039;&#039;APIs &amp;amp; Services &amp;gt; Enabled APIs &amp;amp; services&#039;&#039;&#039;.[[File:Google Cloud Sidebar API Services.png|none|thumb|450x450px|Opening the APIs &amp;amp; Services section to enable the Calendar API]]&lt;br /&gt;
# At the top of the page, click &#039;&#039;&#039;+ Enable APIs and services&#039;&#039;&#039;.&amp;lt;blockquote&amp;gt;Once enabled, it will appear in the list of active APIs under &#039;&#039;&#039;Enabled APIs &amp;amp; Services&#039;&#039;&#039;.If the Google Calendar API is already enabled, you may skip the steps below and proceed directly to the OAuth configuration.&amp;lt;/blockquote&amp;gt;[[File:Google Cloud Enable APIs Services.jpg|none|thumb|450x450px|Enabling API button and viewing the enabled Google Calendar API]]&lt;br /&gt;
# In the API Library, search for: &amp;lt;code&amp;gt;calendar&amp;lt;/code&amp;gt;.&lt;br /&gt;
#* From the results, click on &#039;&#039;&#039;Google Calendar API&#039;&#039;&#039;.[[File:Google Clou APIs Google Calendar Search.jpg|none|thumb|450x450px|Searching for the Google Calendar API in the API Library]]&lt;br /&gt;
# On the API page, click the blue &#039;&#039;&#039;Enable&#039;&#039;&#039; button to activate it.[[File:Google Cloud Enabling Google Calendar.jpg|none|thumb|450x450px|Enabling the Google Calendar API]]&lt;br /&gt;
# Now click the &#039;&#039;&#039;hamburger menu icon&#039;&#039;&#039; (☰) again to return to the sidebar.&lt;br /&gt;
# Navigate to &#039;&#039;&#039;API &amp;amp; Services &amp;gt; OAuth consent screen&#039;&#039;&#039;.[[File:Google Cloud Left Menu API Outlined.png|none|thumb|482x482px|Left menu: &#039;&#039;&#039;APIs &amp;amp; service -&amp;gt; OAuth consent screen&#039;&#039;&#039;]]&lt;br /&gt;
#* If it&#039;s your first time, configure the consent screen with basic app details (organization name, app name, email, etc.).&lt;br /&gt;
#* Once configured, you&#039;ll be redirected to the &#039;&#039;&#039;Google Auth Platform / Overview&#039;&#039;&#039; page.&lt;br /&gt;
# Click &#039;&#039;&#039;Clients&#039;&#039;&#039; in the left menu and then click &amp;quot;&#039;&#039;&#039;+ Create client&amp;quot;&#039;&#039;&#039;.[[File:Google Cloud new client.jpg|none|thumb|525x525px|Creating client option in Clients page]]&lt;br /&gt;
# Choose &#039;&#039;&#039;Application Type: Web Application&#039;&#039;&#039;.&lt;br /&gt;
# Enter a recognizable &#039;&#039;&#039;name&#039;&#039;&#039; (e.g., &#039;&#039;Gcalendar Integration&#039;&#039;).&lt;br /&gt;
# Add the following values:&lt;br /&gt;
#* &#039;&#039;&#039;Authorized JavaScript origins&#039;&#039;&#039;&lt;br /&gt;
#** &amp;lt;code&amp;gt;https://app_platform&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &#039;&#039;&#039;Authorized redirect URIs&#039;&#039;&#039;&lt;br /&gt;
#** &amp;lt;code&amp;gt;https://app_platform/domain/app_name/newToken&amp;lt;/code&amp;gt;[[File:Google Cloud Create OAuth Client ID.jpg|none|thumb|411x411px|Create OAuth client ID inputs]]&lt;br /&gt;
# After creation, copy the generated:&lt;br /&gt;
#* &#039;&#039;&#039;Client ID&#039;&#039;&#039;&lt;br /&gt;
#* &#039;&#039;&#039;Client Secret&#039;&#039;&#039;[[File:Google Cloud Client ID Client Secret.jpg|none|thumb|434x434px|Client credentials available after creating]]&lt;br /&gt;
# Open the &#039;&#039;&#039;Gcalendar Admin App&#039;&#039;&#039; and insert the values in the respective fields and click &#039;&#039;&#039;Update&#039;&#039;&#039; (see [[#Updating Google OAuth Credentials|Update Google OAuth Credentials]] section above).&amp;lt;blockquote&amp;gt;▷ This links the Google authentication flow to the presence system, allowing users to authorize their calendars.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
# On the left menu, go to &#039;&#039;&#039;Data Access&#039;&#039;&#039; under the &#039;&#039;&#039;Google Auth Platform&#039;&#039;&#039; section.&amp;lt;blockquote&amp;gt;◇ This section lists the sensitive scopes (permissions) your app is requesting during OAuth authorization. These are required for accessing user calendars.&amp;lt;/blockquote&amp;gt;[[File:Google Cloud Add or Remove Scopes.png|none|thumb|510x510px|Click &amp;quot;Add or remove scopes&amp;quot; to open the scope selection menu]]&lt;br /&gt;
# Click the blue &#039;&#039;&#039;Add or remove scopes&#039;&#039;&#039; button.&amp;lt;blockquote&amp;gt;◇ A sidebar will open listing all available scopes from enabled APIs. You can search and select the necessary calendar-related scopes for your application.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
# In the sidebar that appears, search for and select the following calendar scopes:&lt;br /&gt;
#* &amp;lt;code&amp;gt;../auth/calendar.events&amp;lt;/code&amp;gt; – View and edit calendar events.&lt;br /&gt;
#* &amp;lt;code&amp;gt;../auth/calendar.events.owned&amp;lt;/code&amp;gt; – Modify events on owned calendars.[[File:Google Cloud Data Access Scopes Correct.png|none|thumb|400x400px|Data Access section showing added calendar scopes]]&amp;lt;blockquote&amp;gt;▷ These scopes must be added to your app for Google to allow access to calendar data through the API. Make sure they match the level of access your app requires.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
Follow the steps below to install the &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; application in your Innovaphone environment.&lt;br /&gt;
&lt;br /&gt;
=== Option 1: Installing via AP Manager App Store (Recommended) ===&lt;br /&gt;
You can install &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; directly through the &#039;&#039;&#039;App Platform Manager&#039;&#039;&#039; (AP Manager) by accessing the App Store:&lt;br /&gt;
&lt;br /&gt;
# Open the &#039;&#039;&#039;AP Manager&#039;&#039;&#039;.&lt;br /&gt;
# Click the yellow &#039;&#039;&#039;App Store&#039;&#039;&#039; button in the top-right corner.&lt;br /&gt;
# Search for &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; in the list.&lt;br /&gt;
# Select the latest version and confirm the download.&lt;br /&gt;
# The app will be automatically installed and ready to configure.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;🛈 This is the easiest and fastest way to deploy the app.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
[[File:Innovaphone MyApps Lab AppStore Button in AP Manager.png|none|thumb|436x436px|AppStore Button in AP Manager outlined]]&lt;br /&gt;
[[File:AP Manager Appstore Interface.png|none|thumb|436x436px|AP Manager Appstore interface]]&lt;br /&gt;
&lt;br /&gt;
=== Option 2: Manual Installation via Upload ===&lt;br /&gt;
If the app is not yet listed in the App Store, follow the steps below:&lt;br /&gt;
&lt;br /&gt;
==== Step 1: Download the App Package ====&lt;br /&gt;
&lt;br /&gt;
# Visit the official Wecom myApps Downloads Portal.&lt;br /&gt;
# Find the &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; app.&lt;br /&gt;
# Download the latest available version compatible with your system architecture.&lt;br /&gt;
[[File:Gcalendar myapps wecom appstore.png|none|thumb|418x418px|Gcalendar on MyApps&#039; Wecom&#039;s App Store]]&lt;br /&gt;
&lt;br /&gt;
==== Step 2: Upload to AP Manager ====&lt;br /&gt;
&lt;br /&gt;
# In &#039;&#039;&#039;AP Manager&#039;&#039;&#039;, click &#039;&#039;&#039;App upload&#039;&#039;&#039; (top right).&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;.app&amp;lt;/code&amp;gt; package you downloaded from the portal.&lt;br /&gt;
# After successful upload, the app will appear in your list and show as &#039;&#039;&#039;Running&#039;&#039;&#039;.&lt;br /&gt;
[[File:App Upload Button on MyApps AP Manager.png|none|thumb|485x485px|App Upload button on AP Manager outlined]]&lt;br /&gt;
[[File:Gcallendar on AP Manager Innovaphone.jpg|none|thumb|490x490px|Gcalendar on AP Manager]]&lt;br /&gt;
&lt;br /&gt;
=== Step 3: Add Application Instance ===&lt;br /&gt;
&lt;br /&gt;
# After uploading the app, click the yellow &#039;&#039;&#039;+ Add&#039;&#039;&#039; button to create an instance of the application.&lt;br /&gt;
# Fill in the required fields:&lt;br /&gt;
#* &#039;&#039;&#039;Name:&#039;&#039;&#039; A recognizable name for the instance.&lt;br /&gt;
#* &#039;&#039;&#039;Domain:&#039;&#039;&#039; The domain for the PBX.&lt;br /&gt;
#* &#039;&#039;&#039;Password:&#039;&#039;&#039; A secure admin password for the app instance.&lt;br /&gt;
#* &#039;&#039;&#039;Webserver path:&#039;&#039;&#039; Optional path (or leave blank).&lt;br /&gt;
#* &#039;&#039;&#039;Database host:&#039;&#039;&#039; Leave empty for local DB or specify IP/DNS if external.&lt;br /&gt;
#* &#039;&#039;&#039;Database name&#039;&#039;&#039; and &#039;&#039;&#039;Database user&#039;&#039;&#039;: Use consistent values for your environment.&lt;br /&gt;
#* &#039;&#039;&#039;Database password:&#039;&#039;&#039; Corresponding DB password.&lt;br /&gt;
# When all values are filled, click &#039;&#039;&#039;Save&#039;&#039;&#039;.&lt;br /&gt;
[[File:AP Manager Gcalendar App Instance Creation Example.png|none|thumb|440x440px|Example of instance creation screen in AP Manager]]&lt;br /&gt;
&lt;br /&gt;
=== Final Step: Registering the App in PBX Manager ===&lt;br /&gt;
&lt;br /&gt;
# Open the &#039;&#039;&#039;PBX Manager&#039;&#039;&#039;.&lt;br /&gt;
# Go to the &#039;&#039;&#039;Apps&#039;&#039;&#039; section.&lt;br /&gt;
# Click &#039;&#039;&#039;Add App&#039;&#039;&#039; and register:&lt;br /&gt;
#* A &#039;&#039;&#039;Users App&#039;&#039;&#039;&lt;br /&gt;
#* An &#039;&#039;&#039;Admin App&#039;&#039;&#039;&lt;br /&gt;
# Assign access rights as needed.&lt;br /&gt;
[[File:PBX Manager Add an App flow - part 1.png|none|thumb|440x440px|PBX Manager Add an App select the app]]&lt;br /&gt;
[[File:Gcallendar PBX Manager Add an App flow - part 2.png|none|thumb|440x440px|PBX Manager Add an App configurations]]&lt;br /&gt;
[[File:Gcallendar on PBX Manager Innovaphone.jpg|none|thumb|441x441px|Gcalendar on PBX Manager configured]]&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⇒ After registration, both apps will appear in MyApps and are ready for use.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Copyright ==&lt;br /&gt;
Copyright information.&lt;br /&gt;
&lt;br /&gt;
== Contact ==&lt;br /&gt;
{|&lt;br /&gt;
| Wecom PORTO ALEGRE - RS&lt;br /&gt;
|-&lt;br /&gt;
| Av. Carlos Gomes, 466 / 401&lt;br /&gt;
|-&lt;br /&gt;
| Boa Vista - CEP 90480-000&lt;br /&gt;
|-&lt;br /&gt;
| Wecom FLORIANÓPOLIS - SC&lt;br /&gt;
|-&lt;br /&gt;
| SC 401, 8600 - Room 7 Corporate Park - Block 2&lt;br /&gt;
|-&lt;br /&gt;
| Santo Antônio de Lisboa - CEP 88050-001&lt;br /&gt;
|-&lt;br /&gt;
| Tel: +55 48 3112.6200&lt;br /&gt;
|-&lt;br /&gt;
| Mail: [mailto:marketing@wecom.com.br marketing@wecom.com.br]&lt;br /&gt;
|-&lt;br /&gt;
| Support: [mailto:dev@wecom.com.br dev@wecom.com.br]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
For any questions please refer to [https://wecom.com.br/fale-conosco/ our contact page.]&lt;/div&gt;</summary>
		<author><name>Pablo.montiel</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Howto:Gcalendar_-_Wecom_-_Partner_App&amp;diff=78966</id>
		<title>Howto:Gcalendar - Wecom - Partner App</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Howto:Gcalendar_-_Wecom_-_Partner_App&amp;diff=78966"/>
		<updated>2026-03-01T23:35:10Z</updated>

		<summary type="html">&lt;p&gt;Pablo.montiel: /* Contact */ contact emails change&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FIXME|reason=Work in progress, still incomplete}}&lt;br /&gt;
[[Image:Logo 2 Wecom.png||200px|right]]&lt;br /&gt;
&lt;br /&gt;
== Product Name ==&lt;br /&gt;
[[File:Gcalendar icone.png|none|thumb|Gcalendar Icon]]&lt;br /&gt;
[[File:Gcalendar icone admin.png|none|thumb|Gcalendar Admin Icon]]&lt;br /&gt;
Wecom [https://wecom.com.br/ Gcalendar]&lt;br /&gt;
&lt;br /&gt;
== Certification Status ==&lt;br /&gt;
&amp;lt;!--Do not remove comment. Will be added by innovaphone upon document check &amp;amp; app availablity on app store.--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Space dedicated to Gcalendar certification information.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Category ==&lt;br /&gt;
&amp;lt;!--Do not change this section and do not remove comments. Will be set by Innovaphone upon document check.--&amp;gt;&lt;br /&gt;
[[Category:Partner_Apps|{{PAGENAME}}]]&lt;br /&gt;
[[Category:3rdParty CTI and integrations|{{PAGENAME}}]]&lt;br /&gt;
{{Category:3rdParty CTI and integrations}}&lt;br /&gt;
&lt;br /&gt;
== Vendor ==&lt;br /&gt;
[[Image:Logo 2 Wecom.png|150px]]&lt;br /&gt;
&lt;br /&gt;
Wecom are integrators, maintainers, and distributors of unified communications systems.&lt;br /&gt;
Aimed at the corporate market, our focus is on promoting digital transformation for the businesses we advise, presenting the best mobility and collaboration tools available on the market. We are partners with leading brands and distributors in Brazil. With a solid portfolio of clients in a wide range of segments, our activities include consulting, project development, implementation and maintenance of communication systems, with extensive experience in collaboration technologies and advanced technical staff.&lt;br /&gt;
&lt;br /&gt;
[https://wecom.com.br/sobre-nos/ Wecom -About us]&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&#039;&#039;&#039;Gcalendar&#039;&#039;&#039; is a Partner App developed by &#039;&#039;&#039;Wecom&#039;&#039;&#039; to integrate Google Calendar events with the Innovaphone presence system.&lt;br /&gt;
&lt;br /&gt;
The app operates through two components:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Users App&#039;&#039;&#039; – Where the users initiate their account linking process via Google login.&lt;br /&gt;
* &#039;&#039;&#039;Admin App&#039;&#039;&#039; – Allows configuration of the integration with editable fields for Google Client ID and Client Secret, along with a dedicated OAuth authorization URL.&lt;br /&gt;
&lt;br /&gt;
This setup enables real-time status synchronization and supports four languages: Portuguese, English, Spanish, and German.&lt;br /&gt;
&lt;br /&gt;
== Functions ==&lt;br /&gt;
This section provides an overview of each core part of the &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; application. It highlights what actions can be performed, and how to navigate through the available features. Additionally, this section provides step-by-step explanations for each functionality.&lt;br /&gt;
&lt;br /&gt;
=== Users App ===&lt;br /&gt;
The &#039;&#039;&#039;Users App&#039;&#039;&#039; is the interface used by users to link their Google Calendar account to the Innovaphone presence system. It focuses only on enabling the connection between the user and their calendar through Google authentication.&lt;br /&gt;
[[File:Gcalendar user app interface detail.png|none|thumb|404x404px|Users app interface with google account pop-up]]&lt;br /&gt;
&lt;br /&gt;
==== Connecting with Google account ====&lt;br /&gt;
&lt;br /&gt;
# Open the &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; Users App.&lt;br /&gt;
# Click the &#039;&#039;&#039;Connect&#039;&#039;&#039; button.&lt;br /&gt;
# A Google login popup will appear.&lt;br /&gt;
#* This popup allows users to choose or log into a Google account.&lt;br /&gt;
# After selecting an account, the integration process will begin automatically.&lt;br /&gt;
#* Once completed, the account will be linked to the Innovaphone system.&lt;br /&gt;
[[File:Gcallendar Connect Button.png|none|thumb|Connect button]]&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⇒ &#039;&#039;&#039;Note:&#039;&#039;&#039; Before starting the connection process, ensure you&#039;re already logged into the correct Google account in your browser. This helps avoid selecting the wrong account and ensures the integration is completed with the intended calendar.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Viewing Upcoming Meetings ====&lt;br /&gt;
&lt;br /&gt;
On the main screen, users can see a list of their upcoming scheduled meetings.  &lt;br /&gt;
Each meeting is displayed as a card containing:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Title&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Start time&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
By clicking on a meeting card, the user is redirected to the corresponding event inside their Google Calendar.&lt;br /&gt;
[[File:Gcalendar Upcoming Meetings.jpg|none|thumb|392x392px|Upcoming meetings list with active meeting]]&lt;br /&gt;
&lt;br /&gt;
==== Creating a New Meeting ====&lt;br /&gt;
&lt;br /&gt;
To schedule a new meeting:&lt;br /&gt;
# Click the &#039;&#039;&#039;+&#039;&#039;&#039; button on the main screen.&lt;br /&gt;
# A creation modal will open with the following fields:&lt;br /&gt;
#* &#039;&#039;&#039;Summary&#039;&#039;&#039; – The title of the meeting.&lt;br /&gt;
#* &#039;&#039;&#039;Description&#039;&#039;&#039; – Details or agenda of the meeting.&lt;br /&gt;
#* &#039;&#039;&#039;Location&#039;&#039;&#039; – Where the meeting will occur (physical address or online).&lt;br /&gt;
#* &#039;&#039;&#039;Start time&#039;&#039;&#039; – When the meeting begins.&lt;br /&gt;
#* &#039;&#039;&#039;End time&#039;&#039;&#039; – When the meeting ends.&lt;br /&gt;
#* &#039;&#039;&#039;Time zone&#039;&#039;&#039; – The time zone for the meeting.&lt;br /&gt;
#* &#039;&#039;&#039;Attendees&#039;&#039;&#039; – Email addresses of participants who should receive an invitation.&lt;br /&gt;
#* &#039;&#039;&#039;Add Google Meet&#039;&#039;&#039; – When checked, a Google Meet link is automatically generated and included in the event.&lt;br /&gt;
&lt;br /&gt;
After filling in the required information:&lt;br /&gt;
* Click &#039;&#039;&#039;Save&#039;&#039;&#039; to create the meeting.&lt;br /&gt;
* Click &#039;&#039;&#039;Cancel&#039;&#039;&#039; to close the modal without saving any changes.&lt;br /&gt;
[[File:Gcalendar Create Meeting Modal.jpg|none|thumb|420x420px|Meeting creation modal]]&lt;br /&gt;
&lt;br /&gt;
==== Disconnecting from Google account ====&lt;br /&gt;
&lt;br /&gt;
# Open the &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; Users App.&lt;br /&gt;
# If a Google account is already connected, the &#039;&#039;&#039;Connect&#039;&#039;&#039; button will be replaced by a &#039;&#039;&#039;Disconnect&#039;&#039;&#039; button.&lt;br /&gt;
# Click the &#039;&#039;&#039;Disconnect&#039;&#039;&#039; button to unlink your current Google Calendar account from the Innovaphone presence system.&lt;br /&gt;
# Once disconnected, presence synchronization will be disabled for that user.&lt;br /&gt;
[[File:Gcallendar Disconnect Button Dtl.png|none|thumb|392x392px|Disconnect button]]&lt;br /&gt;
&lt;br /&gt;
==== Meeting-based Presence Synchronization ====&lt;br /&gt;
&lt;br /&gt;
When a meeting is active in the user’s Google Calendar, Gcalendar automatically updates the user’s Innovaphone presence to reflect that meeting.&lt;br /&gt;
[[File:Status and Status Name.png|none|thumb|392x392px|User&#039;s status and status name change when meeting is happening]]&lt;br /&gt;
&lt;br /&gt;
# While the meeting is in progress, the user’s presence status is set to &#039;&#039;&#039;DND (Do Not Disturb)&#039;&#039;&#039;.&lt;br /&gt;
# At the same time, the user’s &#039;&#039;&#039;status text&#039;&#039;&#039; is updated to the &#039;&#039;&#039;meeting title&#039;&#039;&#039;.&lt;br /&gt;
# Once the meeting ends, Gcalendar restores the user’s presence status and status text to the &#039;&#039;&#039;previous values&#039;&#039;&#039; that were set before the meeting started.&lt;br /&gt;
[[File:Status change while meeting occurs.png|none|thumb|392x392px|DND status change while meeting occurs]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⇒ This behavior ensures that colleagues can immediately see when a user is busy in a meeting, while preserving the user’s original presence settings after the meeting finishes.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Admin App ===&lt;br /&gt;
The &#039;&#039;&#039;Admin App&#039;&#039;&#039; provides configuration options required to authorize and manage the Google integration. It is intended for system administrators and enables control over OAuth credentials used for user authentication.&lt;br /&gt;
[[File:Gcallendar Admin App.png|none|thumb|453x453px|Admin app interface]]&lt;br /&gt;
&lt;br /&gt;
==== Updating Google OAuth Credentials ====&lt;br /&gt;
To enable or update the integration between Gcalendar and Google Calendar, you’ll need to provide the correct &#039;&#039;&#039;Client ID&#039;&#039;&#039; and &#039;&#039;&#039;Client Secret&#039;&#039;&#039; obtained from your Google Cloud project.&lt;br /&gt;
&lt;br /&gt;
# Open the &#039;&#039;&#039;Gcalendar Admin App&#039;&#039;&#039;.&lt;br /&gt;
# Locate the fields labeled &#039;&#039;&#039;Google Client ID&#039;&#039;&#039; and &#039;&#039;&#039;Client Secret&#039;&#039;&#039;.&lt;br /&gt;
# Paste the values copied from your Google OAuth Credentials into the respective fields.&lt;br /&gt;
# Click the &#039;&#039;&#039;Update&#039;&#039;&#039; button next to each field to save the changes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⇒ &#039;&#039;&#039;Notes:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Ensure both values are correctly copied and properly formatted.&lt;br /&gt;
* Incorrect credentials will prevent users from authenticating.&lt;br /&gt;
* The Client Secret is sensitive—never share or expose it publicly.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
[[File:Gcallendar Google Client ID Update.png|none|thumb|519x519px|Google Client ID input and update button]]&lt;br /&gt;
[[File:Gcallendar Client Secret Update.png|none|thumb|519x519px|Client Secret input and update button]]&lt;br /&gt;
&lt;br /&gt;
===Multi-PBX ready===&lt;br /&gt;
&amp;lt;!-- Mandatory topic. --&amp;gt; &lt;br /&gt;
&amp;lt;!-- Give test-prooved statement about product usability in Multi-PBX-systems / Master-Slave --&amp;gt;&lt;br /&gt;
&amp;lt;!-- I.e. can the application be operated towards slave-pbxes, by slave-users, special configuration steps, special requirements, ...  --&amp;gt;&lt;br /&gt;
&amp;lt;!-- If applicable, provide hints about required configuration steps below in the chapter Configuration --&amp;gt; &lt;br /&gt;
&lt;br /&gt;
===Cloud ready===&lt;br /&gt;
&amp;lt;!-- Mandatory topic. --&amp;gt; &lt;br /&gt;
&amp;lt;!-- Give test-prooved statement about product usability in Cloud-environments / Hosted PBXes --&amp;gt;&lt;br /&gt;
&amp;lt;!-- I.e. can the application be operated via NAT-boundaries, special configuration steps, special requirements, ...  --&amp;gt;&lt;br /&gt;
&amp;lt;!-- If applicable, provide hints about required configuration steps below in the chapter Configuration --&amp;gt; &lt;br /&gt;
&lt;br /&gt;
===Supported languages===&lt;br /&gt;
&amp;lt;!-- Mandatory topic. --&amp;gt; &lt;br /&gt;
&amp;lt;!-- List the translated languages which the application provides. Comma-separated is sufficient --&amp;gt;&lt;br /&gt;
Portuguese, English, Spanish, German&lt;br /&gt;
&lt;br /&gt;
== Licensing ==&lt;br /&gt;
The &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; application is licensed via the Innovaphone Pricelist.&lt;br /&gt;
&lt;br /&gt;
Currently, it is not yet listed on the official Innovaphone Partner App Licenses page, but it is expected to be included in future updates.&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;License type:&#039;&#039;&#039; Innovaphone Pricelist&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;License model:&#039;&#039;&#039; One license per user&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Listed at:&#039;&#039;&#039; https://www.innovaphone.com/en/services/licenses/partner-apps.html?app=Gcalendar&amp;amp;type=license#gcalendar&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
Before installing and using Gcalendar, ensure your environment meets the following requirements:&lt;br /&gt;
&lt;br /&gt;
==== System Requirements ====&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Innovaphone firmware:&#039;&#039;&#039; Version &amp;lt;code&amp;gt;14r1&amp;lt;/code&amp;gt; or later&lt;br /&gt;
* &#039;&#039;&#039;App platform:&#039;&#039;&#039; Innovaphone &#039;&#039;&#039;myApps&#039;&#039;&#039; system with &#039;&#039;&#039;App Platform&#039;&#039;&#039; active&lt;br /&gt;
* &#039;&#039;&#039;PBX Manager:&#039;&#039;&#039; Required to register and configure the Users and Admin Apps&lt;br /&gt;
&lt;br /&gt;
==== OAuth Setup ====&lt;br /&gt;
&lt;br /&gt;
* A &#039;&#039;&#039;Google Cloud Project&#039;&#039;&#039; with valid &#039;&#039;&#039;OAuth 2.0 credentials&#039;&#039;&#039; (Client ID and Client Secret)&lt;br /&gt;
* The following URIs must be configured in the Google project:&lt;br /&gt;
** &#039;&#039;&#039;Authorized JavaScript origins:&#039;&#039;&#039; &amp;lt;code&amp;gt;https://app_platform&amp;lt;/code&amp;gt;&lt;br /&gt;
** &#039;&#039;&#039;Authorized redirect URI:&#039;&#039;&#039; &amp;lt;code&amp;gt;https://app_platform/domain/app_name/newToken&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Versions ==&lt;br /&gt;
The &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; application follows the release versioning aligned with the Innovaphone platform.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Initial release version:&#039;&#039;&#039; &amp;lt;code&amp;gt;14r1&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Latest available version:&#039;&#039;&#039; &amp;lt;code&amp;gt;2002 final&amp;lt;/code&amp;gt; (as of June 17, 2025)&lt;br /&gt;
* &#039;&#039;&#039;Build number:&#039;&#039;&#039;&amp;lt;code&amp;gt;14A1149 dvl&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Supported architectures:&#039;&#039;&#039; &amp;lt;code&amp;gt;arm&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;x86_64&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;arm64&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⇒ New versions are published and made available through the Wecom App Store.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
=== Google OAuth Setup (Admin Only) ===&lt;br /&gt;
To enable account linking between the Innovaphone presence system and Google Calendar, administrators must configure OAuth 2.0 credentials using the Google Cloud Platform beforehand.&lt;br /&gt;
&lt;br /&gt;
# Go to [https://console.cloud.google.com/ Google Cloud Console].&lt;br /&gt;
# Select or create a &#039;&#039;&#039;Google Cloud Project&#039;&#039;&#039;.&amp;lt;blockquote&amp;gt;◇ This project will host the credentials used by Gcalendar to access the Google Calendar API. We recommend creating a dedicated project for better control and security.&amp;lt;/blockquote&amp;gt;[[File:Google Cloud Select-Create Project.png|none|thumb|425x425px|Google Cloud Console welcome page with select project button outlined (here the project is already selected)]]&amp;lt;blockquote&amp;gt;Clicking the &#039;&#039;&#039;&amp;quot;Select Project&amp;quot;&#039;&#039;&#039; button will open a &#039;&#039;&#039;modal&#039;&#039;&#039; where you can choose or create a project.&amp;lt;/blockquote&amp;gt;[[File:Google Cloud Select Project If Selected.png|none|thumb|353x353px|Project selection modal]]&amp;lt;blockquote&amp;gt;If a project already exists, click on its name from the list to open it. If not, click &#039;&#039;&#039;&amp;quot;New Project&amp;quot;&#039;&#039;&#039; in the top-right corner to create one.&amp;lt;/blockquote&amp;gt;[[File:Google Cloud New Project Page.png|none|thumb|440x440px|New project creation page]]&lt;br /&gt;
# In the top-left corner, click the &#039;&#039;&#039;hamburger menu icon&#039;&#039;&#039; (☰) to expand the left navigation menu.&lt;br /&gt;
#* Before continuing to the OAuth configuration, you need to make sure the Google Calendar API is enabled.&lt;br /&gt;
# From the sidebar, go to &#039;&#039;&#039;APIs &amp;amp; Services &amp;gt; Enabled APIs &amp;amp; services&#039;&#039;&#039;.[[File:Google Cloud Sidebar API Services.png|none|thumb|450x450px|Opening the APIs &amp;amp; Services section to enable the Calendar API]]&lt;br /&gt;
# At the top of the page, click &#039;&#039;&#039;+ Enable APIs and services&#039;&#039;&#039;.&amp;lt;blockquote&amp;gt;Once enabled, it will appear in the list of active APIs under &#039;&#039;&#039;Enabled APIs &amp;amp; Services&#039;&#039;&#039;.If the Google Calendar API is already enabled, you may skip the steps below and proceed directly to the OAuth configuration.&amp;lt;/blockquote&amp;gt;[[File:Google Cloud Enable APIs Services.jpg|none|thumb|450x450px|Enabling API button and viewing the enabled Google Calendar API]]&lt;br /&gt;
# In the API Library, search for: &amp;lt;code&amp;gt;calendar&amp;lt;/code&amp;gt;.&lt;br /&gt;
#* From the results, click on &#039;&#039;&#039;Google Calendar API&#039;&#039;&#039;.[[File:Google Clou APIs Google Calendar Search.jpg|none|thumb|450x450px|Searching for the Google Calendar API in the API Library]]&lt;br /&gt;
# On the API page, click the blue &#039;&#039;&#039;Enable&#039;&#039;&#039; button to activate it.[[File:Google Cloud Enabling Google Calendar.jpg|none|thumb|450x450px|Enabling the Google Calendar API]]&lt;br /&gt;
# Now click the &#039;&#039;&#039;hamburger menu icon&#039;&#039;&#039; (☰) again to return to the sidebar.&lt;br /&gt;
# Navigate to &#039;&#039;&#039;API &amp;amp; Services &amp;gt; OAuth consent screen&#039;&#039;&#039;.[[File:Google Cloud Left Menu API Outlined.png|none|thumb|482x482px|Left menu: &#039;&#039;&#039;APIs &amp;amp; service -&amp;gt; OAuth consent screen&#039;&#039;&#039;]]&lt;br /&gt;
#* If it&#039;s your first time, configure the consent screen with basic app details (organization name, app name, email, etc.).&lt;br /&gt;
#* Once configured, you&#039;ll be redirected to the &#039;&#039;&#039;Google Auth Platform / Overview&#039;&#039;&#039; page.&lt;br /&gt;
# Click &#039;&#039;&#039;Clients&#039;&#039;&#039; in the left menu and then click &amp;quot;&#039;&#039;&#039;+ Create client&amp;quot;&#039;&#039;&#039;.[[File:Google Cloud new client.jpg|none|thumb|525x525px|Creating client option in Clients page]]&lt;br /&gt;
# Choose &#039;&#039;&#039;Application Type: Web Application&#039;&#039;&#039;.&lt;br /&gt;
# Enter a recognizable &#039;&#039;&#039;name&#039;&#039;&#039; (e.g., &#039;&#039;Gcalendar Integration&#039;&#039;).&lt;br /&gt;
# Add the following values:&lt;br /&gt;
#* &#039;&#039;&#039;Authorized JavaScript origins&#039;&#039;&#039;&lt;br /&gt;
#** &amp;lt;code&amp;gt;https://app_platform&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &#039;&#039;&#039;Authorized redirect URIs&#039;&#039;&#039;&lt;br /&gt;
#** &amp;lt;code&amp;gt;https://app_platform/domain/app_name/newToken&amp;lt;/code&amp;gt;[[File:Google Cloud Create OAuth Client ID.jpg|none|thumb|411x411px|Create OAuth client ID inputs]]&lt;br /&gt;
# After creation, copy the generated:&lt;br /&gt;
#* &#039;&#039;&#039;Client ID&#039;&#039;&#039;&lt;br /&gt;
#* &#039;&#039;&#039;Client Secret&#039;&#039;&#039;[[File:Google Cloud Client ID Client Secret.jpg|none|thumb|434x434px|Client credentials available after creating]]&lt;br /&gt;
# Open the &#039;&#039;&#039;Gcalendar Admin App&#039;&#039;&#039; and insert the values in the respective fields and click &#039;&#039;&#039;Update&#039;&#039;&#039; (see [[#Updating Google OAuth Credentials|Update Google OAuth Credentials]] section above).&amp;lt;blockquote&amp;gt;▷ This links the Google authentication flow to the presence system, allowing users to authorize their calendars.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
# On the left menu, go to &#039;&#039;&#039;Data Access&#039;&#039;&#039; under the &#039;&#039;&#039;Google Auth Platform&#039;&#039;&#039; section.&amp;lt;blockquote&amp;gt;◇ This section lists the sensitive scopes (permissions) your app is requesting during OAuth authorization. These are required for accessing user calendars.&amp;lt;/blockquote&amp;gt;[[File:Google Cloud Add or Remove Scopes.png|none|thumb|510x510px|Click &amp;quot;Add or remove scopes&amp;quot; to open the scope selection menu]]&lt;br /&gt;
# Click the blue &#039;&#039;&#039;Add or remove scopes&#039;&#039;&#039; button.&amp;lt;blockquote&amp;gt;◇ A sidebar will open listing all available scopes from enabled APIs. You can search and select the necessary calendar-related scopes for your application.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
# In the sidebar that appears, search for and select the following calendar scopes:&lt;br /&gt;
#* &amp;lt;code&amp;gt;../auth/calendar.events&amp;lt;/code&amp;gt; – View and edit calendar events.&lt;br /&gt;
#* &amp;lt;code&amp;gt;../auth/calendar.events.owned&amp;lt;/code&amp;gt; – Modify events on owned calendars.[[File:Google Cloud Data Access Scopes Correct.png|none|thumb|400x400px|Data Access section showing added calendar scopes]]&amp;lt;blockquote&amp;gt;▷ These scopes must be added to your app for Google to allow access to calendar data through the API. Make sure they match the level of access your app requires.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
Follow the steps below to install the &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; application in your Innovaphone environment.&lt;br /&gt;
&lt;br /&gt;
=== Option 1: Installing via AP Manager App Store (Recommended) ===&lt;br /&gt;
You can install &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; directly through the &#039;&#039;&#039;App Platform Manager&#039;&#039;&#039; (AP Manager) by accessing the App Store:&lt;br /&gt;
&lt;br /&gt;
# Open the &#039;&#039;&#039;AP Manager&#039;&#039;&#039;.&lt;br /&gt;
# Click the yellow &#039;&#039;&#039;App Store&#039;&#039;&#039; button in the top-right corner.&lt;br /&gt;
# Search for &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; in the list.&lt;br /&gt;
# Select the latest version and confirm the download.&lt;br /&gt;
# The app will be automatically installed and ready to configure.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;🛈 This is the easiest and fastest way to deploy the app.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
[[File:Innovaphone MyApps Lab AppStore Button in AP Manager.png|none|thumb|436x436px|AppStore Button in AP Manager outlined]]&lt;br /&gt;
[[File:AP Manager Appstore Interface.png|none|thumb|436x436px|AP Manager Appstore interface]]&lt;br /&gt;
&lt;br /&gt;
=== Option 2: Manual Installation via Upload ===&lt;br /&gt;
If the app is not yet listed in the App Store, follow the steps below:&lt;br /&gt;
&lt;br /&gt;
==== Step 1: Download the App Package ====&lt;br /&gt;
&lt;br /&gt;
# Visit the official Wecom myApps Downloads Portal.&lt;br /&gt;
# Find the &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; app.&lt;br /&gt;
# Download the latest available version compatible with your system architecture.&lt;br /&gt;
[[File:Gcalendar myapps wecom appstore.png|none|thumb|418x418px|Gcalendar on MyApps&#039; Wecom&#039;s App Store]]&lt;br /&gt;
&lt;br /&gt;
==== Step 2: Upload to AP Manager ====&lt;br /&gt;
&lt;br /&gt;
# In &#039;&#039;&#039;AP Manager&#039;&#039;&#039;, click &#039;&#039;&#039;App upload&#039;&#039;&#039; (top right).&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;.app&amp;lt;/code&amp;gt; package you downloaded from the portal.&lt;br /&gt;
# After successful upload, the app will appear in your list and show as &#039;&#039;&#039;Running&#039;&#039;&#039;.&lt;br /&gt;
[[File:App Upload Button on MyApps AP Manager.png|none|thumb|485x485px|App Upload button on AP Manager outlined]]&lt;br /&gt;
[[File:Gcallendar on AP Manager Innovaphone.jpg|none|thumb|490x490px|Gcalendar on AP Manager]]&lt;br /&gt;
&lt;br /&gt;
=== Step 3: Add Application Instance ===&lt;br /&gt;
&lt;br /&gt;
# After uploading the app, click the yellow &#039;&#039;&#039;+ Add&#039;&#039;&#039; button to create an instance of the application.&lt;br /&gt;
# Fill in the required fields:&lt;br /&gt;
#* &#039;&#039;&#039;Name:&#039;&#039;&#039; A recognizable name for the instance.&lt;br /&gt;
#* &#039;&#039;&#039;Domain:&#039;&#039;&#039; The domain for the PBX.&lt;br /&gt;
#* &#039;&#039;&#039;Password:&#039;&#039;&#039; A secure admin password for the app instance.&lt;br /&gt;
#* &#039;&#039;&#039;Webserver path:&#039;&#039;&#039; Optional path (or leave blank).&lt;br /&gt;
#* &#039;&#039;&#039;Database host:&#039;&#039;&#039; Leave empty for local DB or specify IP/DNS if external.&lt;br /&gt;
#* &#039;&#039;&#039;Database name&#039;&#039;&#039; and &#039;&#039;&#039;Database user&#039;&#039;&#039;: Use consistent values for your environment.&lt;br /&gt;
#* &#039;&#039;&#039;Database password:&#039;&#039;&#039; Corresponding DB password.&lt;br /&gt;
# When all values are filled, click &#039;&#039;&#039;Save&#039;&#039;&#039;.&lt;br /&gt;
[[File:AP Manager Gcalendar App Instance Creation Example.png|none|thumb|440x440px|Example of instance creation screen in AP Manager]]&lt;br /&gt;
&lt;br /&gt;
=== Final Step: Registering the App in PBX Manager ===&lt;br /&gt;
&lt;br /&gt;
# Open the &#039;&#039;&#039;PBX Manager&#039;&#039;&#039;.&lt;br /&gt;
# Go to the &#039;&#039;&#039;Apps&#039;&#039;&#039; section.&lt;br /&gt;
# Click &#039;&#039;&#039;Add App&#039;&#039;&#039; and register:&lt;br /&gt;
#* A &#039;&#039;&#039;Users App&#039;&#039;&#039;&lt;br /&gt;
#* An &#039;&#039;&#039;Admin App&#039;&#039;&#039;&lt;br /&gt;
# Assign access rights as needed.&lt;br /&gt;
[[File:PBX Manager Add an App flow - part 1.png|none|thumb|440x440px|PBX Manager Add an App select the app]]&lt;br /&gt;
[[File:Gcallendar PBX Manager Add an App flow - part 2.png|none|thumb|440x440px|PBX Manager Add an App configurations]]&lt;br /&gt;
[[File:Gcallendar on PBX Manager Innovaphone.jpg|none|thumb|441x441px|Gcalendar on PBX Manager configured]]&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⇒ After registration, both apps will appear in MyApps and are ready for use.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Copyright ==&lt;br /&gt;
Copyright information.&lt;br /&gt;
&lt;br /&gt;
== Contact ==&lt;br /&gt;
{|&lt;br /&gt;
| Wecom PORTO ALEGRE - RS&lt;br /&gt;
|-&lt;br /&gt;
| Av. Carlos Gomes, 466 / 401&lt;br /&gt;
|-&lt;br /&gt;
| Boa Vista - CEP 90480-000&lt;br /&gt;
|-&lt;br /&gt;
| Wecom FLORIANÓPOLIS - SC&lt;br /&gt;
|-&lt;br /&gt;
| SC 401, 8600 - Room 7 Corporate Park - Block 2&lt;br /&gt;
|-&lt;br /&gt;
| Santo Antônio de Lisboa - CEP 88050-001&lt;br /&gt;
|-&lt;br /&gt;
| Tel: +55 48 3112.6200&lt;br /&gt;
|-&lt;br /&gt;
| Mail: [mailto:marketing@wecom.com.br marketing@wecom.com.br]&lt;br /&gt;
|-&lt;br /&gt;
| Support: [mailto:dev@wecom.com.br dev@wecom.com.br]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
For any questions please refer to [https://wecom.com.br/fale-conosco/ our contact page.]&lt;/div&gt;</summary>
		<author><name>Pablo.montiel</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Howto:Gcalendar_-_Wecom_-_Partner_App&amp;diff=78965</id>
		<title>Howto:Gcalendar - Wecom - Partner App</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Howto:Gcalendar_-_Wecom_-_Partner_App&amp;diff=78965"/>
		<updated>2026-03-01T23:32:50Z</updated>

		<summary type="html">&lt;p&gt;Pablo.montiel: /* Functions */ Add the status and status text change to the function section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FIXME|reason=Work in progress, still incomplete}}&lt;br /&gt;
[[Image:Logo 2 Wecom.png||200px|right]]&lt;br /&gt;
&lt;br /&gt;
== Product Name ==&lt;br /&gt;
[[File:Gcalendar icone.png|none|thumb|Gcalendar Icon]]&lt;br /&gt;
[[File:Gcalendar icone admin.png|none|thumb|Gcalendar Admin Icon]]&lt;br /&gt;
Wecom [https://wecom.com.br/ Gcalendar]&lt;br /&gt;
&lt;br /&gt;
== Certification Status ==&lt;br /&gt;
&amp;lt;!--Do not remove comment. Will be added by innovaphone upon document check &amp;amp; app availablity on app store.--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Space dedicated to Gcalendar certification information.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Category ==&lt;br /&gt;
&amp;lt;!--Do not change this section and do not remove comments. Will be set by Innovaphone upon document check.--&amp;gt;&lt;br /&gt;
[[Category:Partner_Apps|{{PAGENAME}}]]&lt;br /&gt;
[[Category:3rdParty CTI and integrations|{{PAGENAME}}]]&lt;br /&gt;
{{Category:3rdParty CTI and integrations}}&lt;br /&gt;
&lt;br /&gt;
== Vendor ==&lt;br /&gt;
[[Image:Logo 2 Wecom.png|150px]]&lt;br /&gt;
&lt;br /&gt;
Wecom are integrators, maintainers, and distributors of unified communications systems.&lt;br /&gt;
Aimed at the corporate market, our focus is on promoting digital transformation for the businesses we advise, presenting the best mobility and collaboration tools available on the market. We are partners with leading brands and distributors in Brazil. With a solid portfolio of clients in a wide range of segments, our activities include consulting, project development, implementation and maintenance of communication systems, with extensive experience in collaboration technologies and advanced technical staff.&lt;br /&gt;
&lt;br /&gt;
[https://wecom.com.br/sobre-nos/ Wecom -About us]&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&#039;&#039;&#039;Gcalendar&#039;&#039;&#039; is a Partner App developed by &#039;&#039;&#039;Wecom&#039;&#039;&#039; to integrate Google Calendar events with the Innovaphone presence system.&lt;br /&gt;
&lt;br /&gt;
The app operates through two components:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Users App&#039;&#039;&#039; – Where the users initiate their account linking process via Google login.&lt;br /&gt;
* &#039;&#039;&#039;Admin App&#039;&#039;&#039; – Allows configuration of the integration with editable fields for Google Client ID and Client Secret, along with a dedicated OAuth authorization URL.&lt;br /&gt;
&lt;br /&gt;
This setup enables real-time status synchronization and supports four languages: Portuguese, English, Spanish, and German.&lt;br /&gt;
&lt;br /&gt;
== Functions ==&lt;br /&gt;
This section provides an overview of each core part of the &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; application. It highlights what actions can be performed, and how to navigate through the available features. Additionally, this section provides step-by-step explanations for each functionality.&lt;br /&gt;
&lt;br /&gt;
=== Users App ===&lt;br /&gt;
The &#039;&#039;&#039;Users App&#039;&#039;&#039; is the interface used by users to link their Google Calendar account to the Innovaphone presence system. It focuses only on enabling the connection between the user and their calendar through Google authentication.&lt;br /&gt;
[[File:Gcalendar user app interface detail.png|none|thumb|404x404px|Users app interface with google account pop-up]]&lt;br /&gt;
&lt;br /&gt;
==== Connecting with Google account ====&lt;br /&gt;
&lt;br /&gt;
# Open the &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; Users App.&lt;br /&gt;
# Click the &#039;&#039;&#039;Connect&#039;&#039;&#039; button.&lt;br /&gt;
# A Google login popup will appear.&lt;br /&gt;
#* This popup allows users to choose or log into a Google account.&lt;br /&gt;
# After selecting an account, the integration process will begin automatically.&lt;br /&gt;
#* Once completed, the account will be linked to the Innovaphone system.&lt;br /&gt;
[[File:Gcallendar Connect Button.png|none|thumb|Connect button]]&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⇒ &#039;&#039;&#039;Note:&#039;&#039;&#039; Before starting the connection process, ensure you&#039;re already logged into the correct Google account in your browser. This helps avoid selecting the wrong account and ensures the integration is completed with the intended calendar.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Viewing Upcoming Meetings ====&lt;br /&gt;
&lt;br /&gt;
On the main screen, users can see a list of their upcoming scheduled meetings.  &lt;br /&gt;
Each meeting is displayed as a card containing:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Title&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Start time&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
By clicking on a meeting card, the user is redirected to the corresponding event inside their Google Calendar.&lt;br /&gt;
[[File:Gcalendar Upcoming Meetings.jpg|none|thumb|392x392px|Upcoming meetings list with active meeting]]&lt;br /&gt;
&lt;br /&gt;
==== Creating a New Meeting ====&lt;br /&gt;
&lt;br /&gt;
To schedule a new meeting:&lt;br /&gt;
# Click the &#039;&#039;&#039;+&#039;&#039;&#039; button on the main screen.&lt;br /&gt;
# A creation modal will open with the following fields:&lt;br /&gt;
#* &#039;&#039;&#039;Summary&#039;&#039;&#039; – The title of the meeting.&lt;br /&gt;
#* &#039;&#039;&#039;Description&#039;&#039;&#039; – Details or agenda of the meeting.&lt;br /&gt;
#* &#039;&#039;&#039;Location&#039;&#039;&#039; – Where the meeting will occur (physical address or online).&lt;br /&gt;
#* &#039;&#039;&#039;Start time&#039;&#039;&#039; – When the meeting begins.&lt;br /&gt;
#* &#039;&#039;&#039;End time&#039;&#039;&#039; – When the meeting ends.&lt;br /&gt;
#* &#039;&#039;&#039;Time zone&#039;&#039;&#039; – The time zone for the meeting.&lt;br /&gt;
#* &#039;&#039;&#039;Attendees&#039;&#039;&#039; – Email addresses of participants who should receive an invitation.&lt;br /&gt;
#* &#039;&#039;&#039;Add Google Meet&#039;&#039;&#039; – When checked, a Google Meet link is automatically generated and included in the event.&lt;br /&gt;
&lt;br /&gt;
After filling in the required information:&lt;br /&gt;
* Click &#039;&#039;&#039;Save&#039;&#039;&#039; to create the meeting.&lt;br /&gt;
* Click &#039;&#039;&#039;Cancel&#039;&#039;&#039; to close the modal without saving any changes.&lt;br /&gt;
[[File:Gcalendar Create Meeting Modal.jpg|none|thumb|420x420px|Meeting creation modal]]&lt;br /&gt;
&lt;br /&gt;
==== Disconnecting from Google account ====&lt;br /&gt;
&lt;br /&gt;
# Open the &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; Users App.&lt;br /&gt;
# If a Google account is already connected, the &#039;&#039;&#039;Connect&#039;&#039;&#039; button will be replaced by a &#039;&#039;&#039;Disconnect&#039;&#039;&#039; button.&lt;br /&gt;
# Click the &#039;&#039;&#039;Disconnect&#039;&#039;&#039; button to unlink your current Google Calendar account from the Innovaphone presence system.&lt;br /&gt;
# Once disconnected, presence synchronization will be disabled for that user.&lt;br /&gt;
[[File:Gcallendar Disconnect Button Dtl.png|none|thumb|392x392px|Disconnect button]]&lt;br /&gt;
&lt;br /&gt;
==== Meeting-based Presence Synchronization ====&lt;br /&gt;
&lt;br /&gt;
When a meeting is active in the user’s Google Calendar, Gcalendar automatically updates the user’s Innovaphone presence to reflect that meeting.&lt;br /&gt;
[[File:Status and Status Name.png|none|thumb|392x392px|User&#039;s status and status name change when meeting is happening]]&lt;br /&gt;
&lt;br /&gt;
# While the meeting is in progress, the user’s presence status is set to &#039;&#039;&#039;DND (Do Not Disturb)&#039;&#039;&#039;.&lt;br /&gt;
# At the same time, the user’s &#039;&#039;&#039;status text&#039;&#039;&#039; is updated to the &#039;&#039;&#039;meeting title&#039;&#039;&#039;.&lt;br /&gt;
# Once the meeting ends, Gcalendar restores the user’s presence status and status text to the &#039;&#039;&#039;previous values&#039;&#039;&#039; that were set before the meeting started.&lt;br /&gt;
[[File:Status change while meeting occurs.png|none|thumb|392x392px|DND status change while meeting occurs]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⇒ This behavior ensures that colleagues can immediately see when a user is busy in a meeting, while preserving the user’s original presence settings after the meeting finishes.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Admin App ===&lt;br /&gt;
The &#039;&#039;&#039;Admin App&#039;&#039;&#039; provides configuration options required to authorize and manage the Google integration. It is intended for system administrators and enables control over OAuth credentials used for user authentication.&lt;br /&gt;
[[File:Gcallendar Admin App.png|none|thumb|453x453px|Admin app interface]]&lt;br /&gt;
&lt;br /&gt;
==== Updating Google OAuth Credentials ====&lt;br /&gt;
To enable or update the integration between Gcalendar and Google Calendar, you’ll need to provide the correct &#039;&#039;&#039;Client ID&#039;&#039;&#039; and &#039;&#039;&#039;Client Secret&#039;&#039;&#039; obtained from your Google Cloud project.&lt;br /&gt;
&lt;br /&gt;
# Open the &#039;&#039;&#039;Gcalendar Admin App&#039;&#039;&#039;.&lt;br /&gt;
# Locate the fields labeled &#039;&#039;&#039;Google Client ID&#039;&#039;&#039; and &#039;&#039;&#039;Client Secret&#039;&#039;&#039;.&lt;br /&gt;
# Paste the values copied from your Google OAuth Credentials into the respective fields.&lt;br /&gt;
# Click the &#039;&#039;&#039;Update&#039;&#039;&#039; button next to each field to save the changes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⇒ &#039;&#039;&#039;Notes:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Ensure both values are correctly copied and properly formatted.&lt;br /&gt;
* Incorrect credentials will prevent users from authenticating.&lt;br /&gt;
* The Client Secret is sensitive—never share or expose it publicly.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
[[File:Gcallendar Google Client ID Update.png|none|thumb|519x519px|Google Client ID input and update button]]&lt;br /&gt;
[[File:Gcallendar Client Secret Update.png|none|thumb|519x519px|Client Secret input and update button]]&lt;br /&gt;
&lt;br /&gt;
===Multi-PBX ready===&lt;br /&gt;
&amp;lt;!-- Mandatory topic. --&amp;gt; &lt;br /&gt;
&amp;lt;!-- Give test-prooved statement about product usability in Multi-PBX-systems / Master-Slave --&amp;gt;&lt;br /&gt;
&amp;lt;!-- I.e. can the application be operated towards slave-pbxes, by slave-users, special configuration steps, special requirements, ...  --&amp;gt;&lt;br /&gt;
&amp;lt;!-- If applicable, provide hints about required configuration steps below in the chapter Configuration --&amp;gt; &lt;br /&gt;
&lt;br /&gt;
===Cloud ready===&lt;br /&gt;
&amp;lt;!-- Mandatory topic. --&amp;gt; &lt;br /&gt;
&amp;lt;!-- Give test-prooved statement about product usability in Cloud-environments / Hosted PBXes --&amp;gt;&lt;br /&gt;
&amp;lt;!-- I.e. can the application be operated via NAT-boundaries, special configuration steps, special requirements, ...  --&amp;gt;&lt;br /&gt;
&amp;lt;!-- If applicable, provide hints about required configuration steps below in the chapter Configuration --&amp;gt; &lt;br /&gt;
&lt;br /&gt;
===Supported languages===&lt;br /&gt;
&amp;lt;!-- Mandatory topic. --&amp;gt; &lt;br /&gt;
&amp;lt;!-- List the translated languages which the application provides. Comma-separated is sufficient --&amp;gt;&lt;br /&gt;
Portuguese, English, Spanish, German&lt;br /&gt;
&lt;br /&gt;
== Licensing ==&lt;br /&gt;
The &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; application is licensed via the Innovaphone Pricelist.&lt;br /&gt;
&lt;br /&gt;
Currently, it is not yet listed on the official Innovaphone Partner App Licenses page, but it is expected to be included in future updates.&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;License type:&#039;&#039;&#039; Innovaphone Pricelist&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;License model:&#039;&#039;&#039; One license per user&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Listed at:&#039;&#039;&#039; https://www.innovaphone.com/en/services/licenses/partner-apps.html?app=Gcalendar&amp;amp;type=license#gcalendar&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
Before installing and using Gcalendar, ensure your environment meets the following requirements:&lt;br /&gt;
&lt;br /&gt;
==== System Requirements ====&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Innovaphone firmware:&#039;&#039;&#039; Version &amp;lt;code&amp;gt;14r1&amp;lt;/code&amp;gt; or later&lt;br /&gt;
* &#039;&#039;&#039;App platform:&#039;&#039;&#039; Innovaphone &#039;&#039;&#039;myApps&#039;&#039;&#039; system with &#039;&#039;&#039;App Platform&#039;&#039;&#039; active&lt;br /&gt;
* &#039;&#039;&#039;PBX Manager:&#039;&#039;&#039; Required to register and configure the Users and Admin Apps&lt;br /&gt;
&lt;br /&gt;
==== OAuth Setup ====&lt;br /&gt;
&lt;br /&gt;
* A &#039;&#039;&#039;Google Cloud Project&#039;&#039;&#039; with valid &#039;&#039;&#039;OAuth 2.0 credentials&#039;&#039;&#039; (Client ID and Client Secret)&lt;br /&gt;
* The following URIs must be configured in the Google project:&lt;br /&gt;
** &#039;&#039;&#039;Authorized JavaScript origins:&#039;&#039;&#039; &amp;lt;code&amp;gt;https://app_platform&amp;lt;/code&amp;gt;&lt;br /&gt;
** &#039;&#039;&#039;Authorized redirect URI:&#039;&#039;&#039; &amp;lt;code&amp;gt;https://app_platform/domain/app_name/newToken&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Versions ==&lt;br /&gt;
The &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; application follows the release versioning aligned with the Innovaphone platform.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Initial release version:&#039;&#039;&#039; &amp;lt;code&amp;gt;14r1&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Latest available version:&#039;&#039;&#039; &amp;lt;code&amp;gt;2002 final&amp;lt;/code&amp;gt; (as of June 17, 2025)&lt;br /&gt;
* &#039;&#039;&#039;Build number:&#039;&#039;&#039;&amp;lt;code&amp;gt;14A1149 dvl&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Supported architectures:&#039;&#039;&#039; &amp;lt;code&amp;gt;arm&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;x86_64&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;arm64&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⇒ New versions are published and made available through the Wecom App Store.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
=== Google OAuth Setup (Admin Only) ===&lt;br /&gt;
To enable account linking between the Innovaphone presence system and Google Calendar, administrators must configure OAuth 2.0 credentials using the Google Cloud Platform beforehand.&lt;br /&gt;
&lt;br /&gt;
# Go to [https://console.cloud.google.com/ Google Cloud Console].&lt;br /&gt;
# Select or create a &#039;&#039;&#039;Google Cloud Project&#039;&#039;&#039;.&amp;lt;blockquote&amp;gt;◇ This project will host the credentials used by Gcalendar to access the Google Calendar API. We recommend creating a dedicated project for better control and security.&amp;lt;/blockquote&amp;gt;[[File:Google Cloud Select-Create Project.png|none|thumb|425x425px|Google Cloud Console welcome page with select project button outlined (here the project is already selected)]]&amp;lt;blockquote&amp;gt;Clicking the &#039;&#039;&#039;&amp;quot;Select Project&amp;quot;&#039;&#039;&#039; button will open a &#039;&#039;&#039;modal&#039;&#039;&#039; where you can choose or create a project.&amp;lt;/blockquote&amp;gt;[[File:Google Cloud Select Project If Selected.png|none|thumb|353x353px|Project selection modal]]&amp;lt;blockquote&amp;gt;If a project already exists, click on its name from the list to open it. If not, click &#039;&#039;&#039;&amp;quot;New Project&amp;quot;&#039;&#039;&#039; in the top-right corner to create one.&amp;lt;/blockquote&amp;gt;[[File:Google Cloud New Project Page.png|none|thumb|440x440px|New project creation page]]&lt;br /&gt;
# In the top-left corner, click the &#039;&#039;&#039;hamburger menu icon&#039;&#039;&#039; (☰) to expand the left navigation menu.&lt;br /&gt;
#* Before continuing to the OAuth configuration, you need to make sure the Google Calendar API is enabled.&lt;br /&gt;
# From the sidebar, go to &#039;&#039;&#039;APIs &amp;amp; Services &amp;gt; Enabled APIs &amp;amp; services&#039;&#039;&#039;.[[File:Google Cloud Sidebar API Services.png|none|thumb|450x450px|Opening the APIs &amp;amp; Services section to enable the Calendar API]]&lt;br /&gt;
# At the top of the page, click &#039;&#039;&#039;+ Enable APIs and services&#039;&#039;&#039;.&amp;lt;blockquote&amp;gt;Once enabled, it will appear in the list of active APIs under &#039;&#039;&#039;Enabled APIs &amp;amp; Services&#039;&#039;&#039;.If the Google Calendar API is already enabled, you may skip the steps below and proceed directly to the OAuth configuration.&amp;lt;/blockquote&amp;gt;[[File:Google Cloud Enable APIs Services.jpg|none|thumb|450x450px|Enabling API button and viewing the enabled Google Calendar API]]&lt;br /&gt;
# In the API Library, search for: &amp;lt;code&amp;gt;calendar&amp;lt;/code&amp;gt;.&lt;br /&gt;
#* From the results, click on &#039;&#039;&#039;Google Calendar API&#039;&#039;&#039;.[[File:Google Clou APIs Google Calendar Search.jpg|none|thumb|450x450px|Searching for the Google Calendar API in the API Library]]&lt;br /&gt;
# On the API page, click the blue &#039;&#039;&#039;Enable&#039;&#039;&#039; button to activate it.[[File:Google Cloud Enabling Google Calendar.jpg|none|thumb|450x450px|Enabling the Google Calendar API]]&lt;br /&gt;
# Now click the &#039;&#039;&#039;hamburger menu icon&#039;&#039;&#039; (☰) again to return to the sidebar.&lt;br /&gt;
# Navigate to &#039;&#039;&#039;API &amp;amp; Services &amp;gt; OAuth consent screen&#039;&#039;&#039;.[[File:Google Cloud Left Menu API Outlined.png|none|thumb|482x482px|Left menu: &#039;&#039;&#039;APIs &amp;amp; service -&amp;gt; OAuth consent screen&#039;&#039;&#039;]]&lt;br /&gt;
#* If it&#039;s your first time, configure the consent screen with basic app details (organization name, app name, email, etc.).&lt;br /&gt;
#* Once configured, you&#039;ll be redirected to the &#039;&#039;&#039;Google Auth Platform / Overview&#039;&#039;&#039; page.&lt;br /&gt;
# Click &#039;&#039;&#039;Clients&#039;&#039;&#039; in the left menu and then click &amp;quot;&#039;&#039;&#039;+ Create client&amp;quot;&#039;&#039;&#039;.[[File:Google Cloud new client.jpg|none|thumb|525x525px|Creating client option in Clients page]]&lt;br /&gt;
# Choose &#039;&#039;&#039;Application Type: Web Application&#039;&#039;&#039;.&lt;br /&gt;
# Enter a recognizable &#039;&#039;&#039;name&#039;&#039;&#039; (e.g., &#039;&#039;Gcalendar Integration&#039;&#039;).&lt;br /&gt;
# Add the following values:&lt;br /&gt;
#* &#039;&#039;&#039;Authorized JavaScript origins&#039;&#039;&#039;&lt;br /&gt;
#** &amp;lt;code&amp;gt;https://app_platform&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &#039;&#039;&#039;Authorized redirect URIs&#039;&#039;&#039;&lt;br /&gt;
#** &amp;lt;code&amp;gt;https://app_platform/domain/app_name/newToken&amp;lt;/code&amp;gt;[[File:Google Cloud Create OAuth Client ID.jpg|none|thumb|411x411px|Create OAuth client ID inputs]]&lt;br /&gt;
# After creation, copy the generated:&lt;br /&gt;
#* &#039;&#039;&#039;Client ID&#039;&#039;&#039;&lt;br /&gt;
#* &#039;&#039;&#039;Client Secret&#039;&#039;&#039;[[File:Google Cloud Client ID Client Secret.jpg|none|thumb|434x434px|Client credentials available after creating]]&lt;br /&gt;
# Open the &#039;&#039;&#039;Gcalendar Admin App&#039;&#039;&#039; and insert the values in the respective fields and click &#039;&#039;&#039;Update&#039;&#039;&#039; (see [[#Updating Google OAuth Credentials|Update Google OAuth Credentials]] section above).&amp;lt;blockquote&amp;gt;▷ This links the Google authentication flow to the presence system, allowing users to authorize their calendars.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
# On the left menu, go to &#039;&#039;&#039;Data Access&#039;&#039;&#039; under the &#039;&#039;&#039;Google Auth Platform&#039;&#039;&#039; section.&amp;lt;blockquote&amp;gt;◇ This section lists the sensitive scopes (permissions) your app is requesting during OAuth authorization. These are required for accessing user calendars.&amp;lt;/blockquote&amp;gt;[[File:Google Cloud Add or Remove Scopes.png|none|thumb|510x510px|Click &amp;quot;Add or remove scopes&amp;quot; to open the scope selection menu]]&lt;br /&gt;
# Click the blue &#039;&#039;&#039;Add or remove scopes&#039;&#039;&#039; button.&amp;lt;blockquote&amp;gt;◇ A sidebar will open listing all available scopes from enabled APIs. You can search and select the necessary calendar-related scopes for your application.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
# In the sidebar that appears, search for and select the following calendar scopes:&lt;br /&gt;
#* &amp;lt;code&amp;gt;../auth/calendar.events&amp;lt;/code&amp;gt; – View and edit calendar events.&lt;br /&gt;
#* &amp;lt;code&amp;gt;../auth/calendar.events.owned&amp;lt;/code&amp;gt; – Modify events on owned calendars.[[File:Google Cloud Data Access Scopes Correct.png|none|thumb|400x400px|Data Access section showing added calendar scopes]]&amp;lt;blockquote&amp;gt;▷ These scopes must be added to your app for Google to allow access to calendar data through the API. Make sure they match the level of access your app requires.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
Follow the steps below to install the &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; application in your Innovaphone environment.&lt;br /&gt;
&lt;br /&gt;
=== Option 1: Installing via AP Manager App Store (Recommended) ===&lt;br /&gt;
You can install &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; directly through the &#039;&#039;&#039;App Platform Manager&#039;&#039;&#039; (AP Manager) by accessing the App Store:&lt;br /&gt;
&lt;br /&gt;
# Open the &#039;&#039;&#039;AP Manager&#039;&#039;&#039;.&lt;br /&gt;
# Click the yellow &#039;&#039;&#039;App Store&#039;&#039;&#039; button in the top-right corner.&lt;br /&gt;
# Search for &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; in the list.&lt;br /&gt;
# Select the latest version and confirm the download.&lt;br /&gt;
# The app will be automatically installed and ready to configure.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;🛈 This is the easiest and fastest way to deploy the app.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
[[File:Innovaphone MyApps Lab AppStore Button in AP Manager.png|none|thumb|436x436px|AppStore Button in AP Manager outlined]]&lt;br /&gt;
[[File:AP Manager Appstore Interface.png|none|thumb|436x436px|AP Manager Appstore interface]]&lt;br /&gt;
&lt;br /&gt;
=== Option 2: Manual Installation via Upload ===&lt;br /&gt;
If the app is not yet listed in the App Store, follow the steps below:&lt;br /&gt;
&lt;br /&gt;
==== Step 1: Download the App Package ====&lt;br /&gt;
&lt;br /&gt;
# Visit the official Wecom myApps Downloads Portal.&lt;br /&gt;
# Find the &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; app.&lt;br /&gt;
# Download the latest available version compatible with your system architecture.&lt;br /&gt;
[[File:Gcalendar myapps wecom appstore.png|none|thumb|418x418px|Gcalendar on MyApps&#039; Wecom&#039;s App Store]]&lt;br /&gt;
&lt;br /&gt;
==== Step 2: Upload to AP Manager ====&lt;br /&gt;
&lt;br /&gt;
# In &#039;&#039;&#039;AP Manager&#039;&#039;&#039;, click &#039;&#039;&#039;App upload&#039;&#039;&#039; (top right).&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;.app&amp;lt;/code&amp;gt; package you downloaded from the portal.&lt;br /&gt;
# After successful upload, the app will appear in your list and show as &#039;&#039;&#039;Running&#039;&#039;&#039;.&lt;br /&gt;
[[File:App Upload Button on MyApps AP Manager.png|none|thumb|485x485px|App Upload button on AP Manager outlined]]&lt;br /&gt;
[[File:Gcallendar on AP Manager Innovaphone.jpg|none|thumb|490x490px|Gcalendar on AP Manager]]&lt;br /&gt;
&lt;br /&gt;
=== Step 3: Add Application Instance ===&lt;br /&gt;
&lt;br /&gt;
# After uploading the app, click the yellow &#039;&#039;&#039;+ Add&#039;&#039;&#039; button to create an instance of the application.&lt;br /&gt;
# Fill in the required fields:&lt;br /&gt;
#* &#039;&#039;&#039;Name:&#039;&#039;&#039; A recognizable name for the instance.&lt;br /&gt;
#* &#039;&#039;&#039;Domain:&#039;&#039;&#039; The domain for the PBX.&lt;br /&gt;
#* &#039;&#039;&#039;Password:&#039;&#039;&#039; A secure admin password for the app instance.&lt;br /&gt;
#* &#039;&#039;&#039;Webserver path:&#039;&#039;&#039; Optional path (or leave blank).&lt;br /&gt;
#* &#039;&#039;&#039;Database host:&#039;&#039;&#039; Leave empty for local DB or specify IP/DNS if external.&lt;br /&gt;
#* &#039;&#039;&#039;Database name&#039;&#039;&#039; and &#039;&#039;&#039;Database user&#039;&#039;&#039;: Use consistent values for your environment.&lt;br /&gt;
#* &#039;&#039;&#039;Database password:&#039;&#039;&#039; Corresponding DB password.&lt;br /&gt;
# When all values are filled, click &#039;&#039;&#039;Save&#039;&#039;&#039;.&lt;br /&gt;
[[File:AP Manager Gcalendar App Instance Creation Example.png|none|thumb|440x440px|Example of instance creation screen in AP Manager]]&lt;br /&gt;
&lt;br /&gt;
=== Final Step: Registering the App in PBX Manager ===&lt;br /&gt;
&lt;br /&gt;
# Open the &#039;&#039;&#039;PBX Manager&#039;&#039;&#039;.&lt;br /&gt;
# Go to the &#039;&#039;&#039;Apps&#039;&#039;&#039; section.&lt;br /&gt;
# Click &#039;&#039;&#039;Add App&#039;&#039;&#039; and register:&lt;br /&gt;
#* A &#039;&#039;&#039;Users App&#039;&#039;&#039;&lt;br /&gt;
#* An &#039;&#039;&#039;Admin App&#039;&#039;&#039;&lt;br /&gt;
# Assign access rights as needed.&lt;br /&gt;
[[File:PBX Manager Add an App flow - part 1.png|none|thumb|440x440px|PBX Manager Add an App select the app]]&lt;br /&gt;
[[File:Gcallendar PBX Manager Add an App flow - part 2.png|none|thumb|440x440px|PBX Manager Add an App configurations]]&lt;br /&gt;
[[File:Gcallendar on PBX Manager Innovaphone.jpg|none|thumb|441x441px|Gcalendar on PBX Manager configured]]&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⇒ After registration, both apps will appear in MyApps and are ready for use.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Copyright ==&lt;br /&gt;
Copyright information.&lt;br /&gt;
&lt;br /&gt;
== Contact ==&lt;br /&gt;
{|&lt;br /&gt;
| Wecom PORTO ALEGRE - RS&lt;br /&gt;
|-&lt;br /&gt;
| Av. Carlos Gomes, 466 / 401&lt;br /&gt;
|-&lt;br /&gt;
| Boa Vista - CEP 90480-000&lt;br /&gt;
|-&lt;br /&gt;
| Wecom FLORIANÓPOLIS - SC&lt;br /&gt;
|-&lt;br /&gt;
| SC 401, 8600 - Room 7 Corporate Park - Block 2&lt;br /&gt;
|-&lt;br /&gt;
| Santo Antônio de Lisboa - CEP 88050-001&lt;br /&gt;
|-&lt;br /&gt;
| Tel: +55 48 3112.6200&lt;br /&gt;
|-&lt;br /&gt;
| Mail: [mailto:comercial@wecom.com.br comercial@wecom.com.br]&lt;br /&gt;
|-&lt;br /&gt;
| Support: [mailto:suporte@wecom.com.br suporte@wecom.com.br]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
For any questions please refer to [https://wecom.com.br/fale-conosco/ our contact page.]&lt;/div&gt;</summary>
		<author><name>Pablo.montiel</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=File:Status_change_while_meeting_occurs.png&amp;diff=78964</id>
		<title>File:Status change while meeting occurs.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=File:Status_change_while_meeting_occurs.png&amp;diff=78964"/>
		<updated>2026-03-01T23:31:30Z</updated>

		<summary type="html">&lt;p&gt;Pablo.montiel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Status change while meeting occurs&lt;/div&gt;</summary>
		<author><name>Pablo.montiel</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=File:Status_and_Status_Name.png&amp;diff=78963</id>
		<title>File:Status and Status Name.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=File:Status_and_Status_Name.png&amp;diff=78963"/>
		<updated>2026-03-01T23:29:38Z</updated>

		<summary type="html">&lt;p&gt;Pablo.montiel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Status and Status Name&lt;/div&gt;</summary>
		<author><name>Pablo.montiel</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Howto:Gcalendar_-_Wecom_-_Partner_App&amp;diff=78962</id>
		<title>Howto:Gcalendar - Wecom - Partner App</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Howto:Gcalendar_-_Wecom_-_Partner_App&amp;diff=78962"/>
		<updated>2026-02-27T18:06:02Z</updated>

		<summary type="html">&lt;p&gt;Pablo.montiel: /* Viewing Upcoming Meetings */ Better explanation for image&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FIXME|reason=Work in progress, still incomplete}}&lt;br /&gt;
[[Image:Logo 2 Wecom.png||200px|right]]&lt;br /&gt;
&lt;br /&gt;
== Product Name ==&lt;br /&gt;
[[File:Gcalendar icone.png|none|thumb|Gcalendar Icon]]&lt;br /&gt;
[[File:Gcalendar icone admin.png|none|thumb|Gcalendar Admin Icon]]&lt;br /&gt;
Wecom [https://wecom.com.br/ Gcalendar]&lt;br /&gt;
&lt;br /&gt;
== Certification Status ==&lt;br /&gt;
&amp;lt;!--Do not remove comment. Will be added by innovaphone upon document check &amp;amp; app availablity on app store.--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Space dedicated to Gcalendar certification information.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Category ==&lt;br /&gt;
&amp;lt;!--Do not change this section and do not remove comments. Will be set by Innovaphone upon document check.--&amp;gt;&lt;br /&gt;
[[Category:Partner_Apps|{{PAGENAME}}]]&lt;br /&gt;
[[Category:3rdParty CTI and integrations|{{PAGENAME}}]]&lt;br /&gt;
{{Category:3rdParty CTI and integrations}}&lt;br /&gt;
&lt;br /&gt;
== Vendor ==&lt;br /&gt;
[[Image:Logo 2 Wecom.png|150px]]&lt;br /&gt;
&lt;br /&gt;
Wecom are integrators, maintainers, and distributors of unified communications systems.&lt;br /&gt;
Aimed at the corporate market, our focus is on promoting digital transformation for the businesses we advise, presenting the best mobility and collaboration tools available on the market. We are partners with leading brands and distributors in Brazil. With a solid portfolio of clients in a wide range of segments, our activities include consulting, project development, implementation and maintenance of communication systems, with extensive experience in collaboration technologies and advanced technical staff.&lt;br /&gt;
&lt;br /&gt;
[https://wecom.com.br/sobre-nos/ Wecom -About us]&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&#039;&#039;&#039;Gcalendar&#039;&#039;&#039; is a Partner App developed by &#039;&#039;&#039;Wecom&#039;&#039;&#039; to integrate Google Calendar events with the Innovaphone presence system.&lt;br /&gt;
&lt;br /&gt;
The app operates through two components:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Users App&#039;&#039;&#039; – Where the users initiate their account linking process via Google login.&lt;br /&gt;
* &#039;&#039;&#039;Admin App&#039;&#039;&#039; – Allows configuration of the integration with editable fields for Google Client ID and Client Secret, along with a dedicated OAuth authorization URL.&lt;br /&gt;
&lt;br /&gt;
This setup enables real-time status synchronization and supports four languages: Portuguese, English, Spanish, and German.&lt;br /&gt;
&lt;br /&gt;
== Functions ==&lt;br /&gt;
This section provides an overview of each core part of the &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; application. It highlights what actions can be performed, and how to navigate through the available features. Additionally, this section provides step-by-step explanations for each functionality.&lt;br /&gt;
&lt;br /&gt;
=== Users App ===&lt;br /&gt;
The &#039;&#039;&#039;Users App&#039;&#039;&#039; is the interface used by users to link their Google Calendar account to the Innovaphone presence system. It focuses only on enabling the connection between the user and their calendar through Google authentication.&lt;br /&gt;
[[File:Gcalendar user app interface detail.png|none|thumb|404x404px|Users app interface with google account pop-up]]&lt;br /&gt;
&lt;br /&gt;
==== Connecting with Google account ====&lt;br /&gt;
&lt;br /&gt;
# Open the &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; Users App.&lt;br /&gt;
# Click the &#039;&#039;&#039;Connect&#039;&#039;&#039; button.&lt;br /&gt;
# A Google login popup will appear.&lt;br /&gt;
#* This popup allows users to choose or log into a Google account.&lt;br /&gt;
# After selecting an account, the integration process will begin automatically.&lt;br /&gt;
#* Once completed, the account will be linked to the Innovaphone system.&lt;br /&gt;
[[File:Gcallendar Connect Button.png|none|thumb|Connect button]]&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⇒ &#039;&#039;&#039;Note:&#039;&#039;&#039; Before starting the connection process, ensure you&#039;re already logged into the correct Google account in your browser. This helps avoid selecting the wrong account and ensures the integration is completed with the intended calendar.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Viewing Upcoming Meetings ====&lt;br /&gt;
&lt;br /&gt;
On the main screen, users can see a list of their upcoming scheduled meetings.  &lt;br /&gt;
Each meeting is displayed as a card containing:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Title&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Start time&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
By clicking on a meeting card, the user is redirected to the corresponding event inside their Google Calendar.&lt;br /&gt;
[[File:Gcalendar Upcoming Meetings.jpg|none|thumb|392x392px|Upcoming meetings list with active meeting]]&lt;br /&gt;
&lt;br /&gt;
==== Creating a New Meeting ====&lt;br /&gt;
&lt;br /&gt;
To schedule a new meeting:&lt;br /&gt;
# Click the &#039;&#039;&#039;+&#039;&#039;&#039; button on the main screen.&lt;br /&gt;
# A creation modal will open with the following fields:&lt;br /&gt;
#* &#039;&#039;&#039;Summary&#039;&#039;&#039; – The title of the meeting.&lt;br /&gt;
#* &#039;&#039;&#039;Description&#039;&#039;&#039; – Details or agenda of the meeting.&lt;br /&gt;
#* &#039;&#039;&#039;Location&#039;&#039;&#039; – Where the meeting will occur (physical address or online).&lt;br /&gt;
#* &#039;&#039;&#039;Start time&#039;&#039;&#039; – When the meeting begins.&lt;br /&gt;
#* &#039;&#039;&#039;End time&#039;&#039;&#039; – When the meeting ends.&lt;br /&gt;
#* &#039;&#039;&#039;Time zone&#039;&#039;&#039; – The time zone for the meeting.&lt;br /&gt;
#* &#039;&#039;&#039;Attendees&#039;&#039;&#039; – Email addresses of participants who should receive an invitation.&lt;br /&gt;
#* &#039;&#039;&#039;Add Google Meet&#039;&#039;&#039; – When checked, a Google Meet link is automatically generated and included in the event.&lt;br /&gt;
&lt;br /&gt;
After filling in the required information:&lt;br /&gt;
* Click &#039;&#039;&#039;Save&#039;&#039;&#039; to create the meeting.&lt;br /&gt;
* Click &#039;&#039;&#039;Cancel&#039;&#039;&#039; to close the modal without saving any changes.&lt;br /&gt;
[[File:Gcalendar Create Meeting Modal.jpg|none|thumb|420x420px|Meeting creation modal]]&lt;br /&gt;
&lt;br /&gt;
==== Disconnecting from Google account ====&lt;br /&gt;
&lt;br /&gt;
# Open the &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; Users App.&lt;br /&gt;
# If a Google account is already connected, the &#039;&#039;&#039;Connect&#039;&#039;&#039; button will be replaced by a &#039;&#039;&#039;Disconnect&#039;&#039;&#039; button.&lt;br /&gt;
# Click the &#039;&#039;&#039;Disconnect&#039;&#039;&#039; button to unlink your current Google Calendar account from the Innovaphone presence system.&lt;br /&gt;
# Once disconnected, presence synchronization will be disabled for that user.&lt;br /&gt;
[[File:Gcallendar Disconnect Button Dtl.png|none|thumb|392x392px|Disconnect button]]&lt;br /&gt;
&lt;br /&gt;
=== Admin App ===&lt;br /&gt;
The &#039;&#039;&#039;Admin App&#039;&#039;&#039; provides configuration options required to authorize and manage the Google integration. It is intended for system administrators and enables control over OAuth credentials used for user authentication.&lt;br /&gt;
[[File:Gcallendar Admin App.png|none|thumb|453x453px|Admin app interface]]&lt;br /&gt;
&lt;br /&gt;
==== Updating Google OAuth Credentials ====&lt;br /&gt;
To enable or update the integration between Gcalendar and Google Calendar, you’ll need to provide the correct &#039;&#039;&#039;Client ID&#039;&#039;&#039; and &#039;&#039;&#039;Client Secret&#039;&#039;&#039; obtained from your Google Cloud project.&lt;br /&gt;
&lt;br /&gt;
# Open the &#039;&#039;&#039;Gcalendar Admin App&#039;&#039;&#039;.&lt;br /&gt;
# Locate the fields labeled &#039;&#039;&#039;Google Client ID&#039;&#039;&#039; and &#039;&#039;&#039;Client Secret&#039;&#039;&#039;.&lt;br /&gt;
# Paste the values copied from your Google OAuth Credentials into the respective fields.&lt;br /&gt;
# Click the &#039;&#039;&#039;Update&#039;&#039;&#039; button next to each field to save the changes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⇒ &#039;&#039;&#039;Notes:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Ensure both values are correctly copied and properly formatted.&lt;br /&gt;
* Incorrect credentials will prevent users from authenticating.&lt;br /&gt;
* The Client Secret is sensitive—never share or expose it publicly.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
[[File:Gcallendar Google Client ID Update.png|none|thumb|519x519px|Google Client ID input and update button]]&lt;br /&gt;
[[File:Gcallendar Client Secret Update.png|none|thumb|519x519px|Client Secret input and update button]]&lt;br /&gt;
&lt;br /&gt;
===Multi-PBX ready===&lt;br /&gt;
&amp;lt;!-- Mandatory topic. --&amp;gt; &lt;br /&gt;
&amp;lt;!-- Give test-prooved statement about product usability in Multi-PBX-systems / Master-Slave --&amp;gt;&lt;br /&gt;
&amp;lt;!-- I.e. can the application be operated towards slave-pbxes, by slave-users, special configuration steps, special requirements, ...  --&amp;gt;&lt;br /&gt;
&amp;lt;!-- If applicable, provide hints about required configuration steps below in the chapter Configuration --&amp;gt; &lt;br /&gt;
&lt;br /&gt;
===Cloud ready===&lt;br /&gt;
&amp;lt;!-- Mandatory topic. --&amp;gt; &lt;br /&gt;
&amp;lt;!-- Give test-prooved statement about product usability in Cloud-environments / Hosted PBXes --&amp;gt;&lt;br /&gt;
&amp;lt;!-- I.e. can the application be operated via NAT-boundaries, special configuration steps, special requirements, ...  --&amp;gt;&lt;br /&gt;
&amp;lt;!-- If applicable, provide hints about required configuration steps below in the chapter Configuration --&amp;gt; &lt;br /&gt;
&lt;br /&gt;
===Supported languages===&lt;br /&gt;
&amp;lt;!-- Mandatory topic. --&amp;gt; &lt;br /&gt;
&amp;lt;!-- List the translated languages which the application provides. Comma-separated is sufficient --&amp;gt;&lt;br /&gt;
Portuguese, English, Spanish, German&lt;br /&gt;
&lt;br /&gt;
== Licensing ==&lt;br /&gt;
The &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; application is licensed via the Innovaphone Pricelist.&lt;br /&gt;
&lt;br /&gt;
Currently, it is not yet listed on the official Innovaphone Partner App Licenses page, but it is expected to be included in future updates.&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;License type:&#039;&#039;&#039; Innovaphone Pricelist&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;License model:&#039;&#039;&#039; One license per user&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Listed at:&#039;&#039;&#039; https://www.innovaphone.com/en/services/licenses/partner-apps.html?app=Gcalendar&amp;amp;type=license#gcalendar&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
Before installing and using Gcalendar, ensure your environment meets the following requirements:&lt;br /&gt;
&lt;br /&gt;
==== System Requirements ====&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Innovaphone firmware:&#039;&#039;&#039; Version &amp;lt;code&amp;gt;14r1&amp;lt;/code&amp;gt; or later&lt;br /&gt;
* &#039;&#039;&#039;App platform:&#039;&#039;&#039; Innovaphone &#039;&#039;&#039;myApps&#039;&#039;&#039; system with &#039;&#039;&#039;App Platform&#039;&#039;&#039; active&lt;br /&gt;
* &#039;&#039;&#039;PBX Manager:&#039;&#039;&#039; Required to register and configure the Users and Admin Apps&lt;br /&gt;
&lt;br /&gt;
==== OAuth Setup ====&lt;br /&gt;
&lt;br /&gt;
* A &#039;&#039;&#039;Google Cloud Project&#039;&#039;&#039; with valid &#039;&#039;&#039;OAuth 2.0 credentials&#039;&#039;&#039; (Client ID and Client Secret)&lt;br /&gt;
* The following URIs must be configured in the Google project:&lt;br /&gt;
** &#039;&#039;&#039;Authorized JavaScript origins:&#039;&#039;&#039; &amp;lt;code&amp;gt;https://app_platform&amp;lt;/code&amp;gt;&lt;br /&gt;
** &#039;&#039;&#039;Authorized redirect URI:&#039;&#039;&#039; &amp;lt;code&amp;gt;https://app_platform/domain/app_name/newToken&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Versions ==&lt;br /&gt;
The &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; application follows the release versioning aligned with the Innovaphone platform.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Initial release version:&#039;&#039;&#039; &amp;lt;code&amp;gt;14r1&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Latest available version:&#039;&#039;&#039; &amp;lt;code&amp;gt;2002 final&amp;lt;/code&amp;gt; (as of June 17, 2025)&lt;br /&gt;
* &#039;&#039;&#039;Build number:&#039;&#039;&#039;&amp;lt;code&amp;gt;14A1149 dvl&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Supported architectures:&#039;&#039;&#039; &amp;lt;code&amp;gt;arm&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;x86_64&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;arm64&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⇒ New versions are published and made available through the Wecom App Store.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
=== Google OAuth Setup (Admin Only) ===&lt;br /&gt;
To enable account linking between the Innovaphone presence system and Google Calendar, administrators must configure OAuth 2.0 credentials using the Google Cloud Platform beforehand.&lt;br /&gt;
&lt;br /&gt;
# Go to [https://console.cloud.google.com/ Google Cloud Console].&lt;br /&gt;
# Select or create a &#039;&#039;&#039;Google Cloud Project&#039;&#039;&#039;.&amp;lt;blockquote&amp;gt;◇ This project will host the credentials used by Gcalendar to access the Google Calendar API. We recommend creating a dedicated project for better control and security.&amp;lt;/blockquote&amp;gt;[[File:Google Cloud Select-Create Project.png|none|thumb|425x425px|Google Cloud Console welcome page with select project button outlined (here the project is already selected)]]&amp;lt;blockquote&amp;gt;Clicking the &#039;&#039;&#039;&amp;quot;Select Project&amp;quot;&#039;&#039;&#039; button will open a &#039;&#039;&#039;modal&#039;&#039;&#039; where you can choose or create a project.&amp;lt;/blockquote&amp;gt;[[File:Google Cloud Select Project If Selected.png|none|thumb|353x353px|Project selection modal]]&amp;lt;blockquote&amp;gt;If a project already exists, click on its name from the list to open it. If not, click &#039;&#039;&#039;&amp;quot;New Project&amp;quot;&#039;&#039;&#039; in the top-right corner to create one.&amp;lt;/blockquote&amp;gt;[[File:Google Cloud New Project Page.png|none|thumb|440x440px|New project creation page]]&lt;br /&gt;
# In the top-left corner, click the &#039;&#039;&#039;hamburger menu icon&#039;&#039;&#039; (☰) to expand the left navigation menu.&lt;br /&gt;
#* Before continuing to the OAuth configuration, you need to make sure the Google Calendar API is enabled.&lt;br /&gt;
# From the sidebar, go to &#039;&#039;&#039;APIs &amp;amp; Services &amp;gt; Enabled APIs &amp;amp; services&#039;&#039;&#039;.[[File:Google Cloud Sidebar API Services.png|none|thumb|450x450px|Opening the APIs &amp;amp; Services section to enable the Calendar API]]&lt;br /&gt;
# At the top of the page, click &#039;&#039;&#039;+ Enable APIs and services&#039;&#039;&#039;.&amp;lt;blockquote&amp;gt;Once enabled, it will appear in the list of active APIs under &#039;&#039;&#039;Enabled APIs &amp;amp; Services&#039;&#039;&#039;.If the Google Calendar API is already enabled, you may skip the steps below and proceed directly to the OAuth configuration.&amp;lt;/blockquote&amp;gt;[[File:Google Cloud Enable APIs Services.jpg|none|thumb|450x450px|Enabling API button and viewing the enabled Google Calendar API]]&lt;br /&gt;
# In the API Library, search for: &amp;lt;code&amp;gt;calendar&amp;lt;/code&amp;gt;.&lt;br /&gt;
#* From the results, click on &#039;&#039;&#039;Google Calendar API&#039;&#039;&#039;.[[File:Google Clou APIs Google Calendar Search.jpg|none|thumb|450x450px|Searching for the Google Calendar API in the API Library]]&lt;br /&gt;
# On the API page, click the blue &#039;&#039;&#039;Enable&#039;&#039;&#039; button to activate it.[[File:Google Cloud Enabling Google Calendar.jpg|none|thumb|450x450px|Enabling the Google Calendar API]]&lt;br /&gt;
# Now click the &#039;&#039;&#039;hamburger menu icon&#039;&#039;&#039; (☰) again to return to the sidebar.&lt;br /&gt;
# Navigate to &#039;&#039;&#039;API &amp;amp; Services &amp;gt; OAuth consent screen&#039;&#039;&#039;.[[File:Google Cloud Left Menu API Outlined.png|none|thumb|482x482px|Left menu: &#039;&#039;&#039;APIs &amp;amp; service -&amp;gt; OAuth consent screen&#039;&#039;&#039;]]&lt;br /&gt;
#* If it&#039;s your first time, configure the consent screen with basic app details (organization name, app name, email, etc.).&lt;br /&gt;
#* Once configured, you&#039;ll be redirected to the &#039;&#039;&#039;Google Auth Platform / Overview&#039;&#039;&#039; page.&lt;br /&gt;
# Click &#039;&#039;&#039;Clients&#039;&#039;&#039; in the left menu and then click &amp;quot;&#039;&#039;&#039;+ Create client&amp;quot;&#039;&#039;&#039;.[[File:Google Cloud new client.jpg|none|thumb|525x525px|Creating client option in Clients page]]&lt;br /&gt;
# Choose &#039;&#039;&#039;Application Type: Web Application&#039;&#039;&#039;.&lt;br /&gt;
# Enter a recognizable &#039;&#039;&#039;name&#039;&#039;&#039; (e.g., &#039;&#039;Gcalendar Integration&#039;&#039;).&lt;br /&gt;
# Add the following values:&lt;br /&gt;
#* &#039;&#039;&#039;Authorized JavaScript origins&#039;&#039;&#039;&lt;br /&gt;
#** &amp;lt;code&amp;gt;https://app_platform&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &#039;&#039;&#039;Authorized redirect URIs&#039;&#039;&#039;&lt;br /&gt;
#** &amp;lt;code&amp;gt;https://app_platform/domain/app_name/newToken&amp;lt;/code&amp;gt;[[File:Google Cloud Create OAuth Client ID.jpg|none|thumb|411x411px|Create OAuth client ID inputs]]&lt;br /&gt;
# After creation, copy the generated:&lt;br /&gt;
#* &#039;&#039;&#039;Client ID&#039;&#039;&#039;&lt;br /&gt;
#* &#039;&#039;&#039;Client Secret&#039;&#039;&#039;[[File:Google Cloud Client ID Client Secret.jpg|none|thumb|434x434px|Client credentials available after creating]]&lt;br /&gt;
# Open the &#039;&#039;&#039;Gcalendar Admin App&#039;&#039;&#039; and insert the values in the respective fields and click &#039;&#039;&#039;Update&#039;&#039;&#039; (see [[#Updating Google OAuth Credentials|Update Google OAuth Credentials]] section above).&amp;lt;blockquote&amp;gt;▷ This links the Google authentication flow to the presence system, allowing users to authorize their calendars.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
# On the left menu, go to &#039;&#039;&#039;Data Access&#039;&#039;&#039; under the &#039;&#039;&#039;Google Auth Platform&#039;&#039;&#039; section.&amp;lt;blockquote&amp;gt;◇ This section lists the sensitive scopes (permissions) your app is requesting during OAuth authorization. These are required for accessing user calendars.&amp;lt;/blockquote&amp;gt;[[File:Google Cloud Add or Remove Scopes.png|none|thumb|510x510px|Click &amp;quot;Add or remove scopes&amp;quot; to open the scope selection menu]]&lt;br /&gt;
# Click the blue &#039;&#039;&#039;Add or remove scopes&#039;&#039;&#039; button.&amp;lt;blockquote&amp;gt;◇ A sidebar will open listing all available scopes from enabled APIs. You can search and select the necessary calendar-related scopes for your application.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
# In the sidebar that appears, search for and select the following calendar scopes:&lt;br /&gt;
#* &amp;lt;code&amp;gt;../auth/calendar.events&amp;lt;/code&amp;gt; – View and edit calendar events.&lt;br /&gt;
#* &amp;lt;code&amp;gt;../auth/calendar.events.owned&amp;lt;/code&amp;gt; – Modify events on owned calendars.[[File:Google Cloud Data Access Scopes Correct.png|none|thumb|400x400px|Data Access section showing added calendar scopes]]&amp;lt;blockquote&amp;gt;▷ These scopes must be added to your app for Google to allow access to calendar data through the API. Make sure they match the level of access your app requires.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
Follow the steps below to install the &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; application in your Innovaphone environment.&lt;br /&gt;
&lt;br /&gt;
=== Option 1: Installing via AP Manager App Store (Recommended) ===&lt;br /&gt;
You can install &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; directly through the &#039;&#039;&#039;App Platform Manager&#039;&#039;&#039; (AP Manager) by accessing the App Store:&lt;br /&gt;
&lt;br /&gt;
# Open the &#039;&#039;&#039;AP Manager&#039;&#039;&#039;.&lt;br /&gt;
# Click the yellow &#039;&#039;&#039;App Store&#039;&#039;&#039; button in the top-right corner.&lt;br /&gt;
# Search for &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; in the list.&lt;br /&gt;
# Select the latest version and confirm the download.&lt;br /&gt;
# The app will be automatically installed and ready to configure.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;🛈 This is the easiest and fastest way to deploy the app.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
[[File:Innovaphone MyApps Lab AppStore Button in AP Manager.png|none|thumb|436x436px|AppStore Button in AP Manager outlined]]&lt;br /&gt;
[[File:AP Manager Appstore Interface.png|none|thumb|436x436px|AP Manager Appstore interface]]&lt;br /&gt;
&lt;br /&gt;
=== Option 2: Manual Installation via Upload ===&lt;br /&gt;
If the app is not yet listed in the App Store, follow the steps below:&lt;br /&gt;
&lt;br /&gt;
==== Step 1: Download the App Package ====&lt;br /&gt;
&lt;br /&gt;
# Visit the official Wecom myApps Downloads Portal.&lt;br /&gt;
# Find the &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; app.&lt;br /&gt;
# Download the latest available version compatible with your system architecture.&lt;br /&gt;
[[File:Gcalendar myapps wecom appstore.png|none|thumb|418x418px|Gcalendar on MyApps&#039; Wecom&#039;s App Store]]&lt;br /&gt;
&lt;br /&gt;
==== Step 2: Upload to AP Manager ====&lt;br /&gt;
&lt;br /&gt;
# In &#039;&#039;&#039;AP Manager&#039;&#039;&#039;, click &#039;&#039;&#039;App upload&#039;&#039;&#039; (top right).&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;.app&amp;lt;/code&amp;gt; package you downloaded from the portal.&lt;br /&gt;
# After successful upload, the app will appear in your list and show as &#039;&#039;&#039;Running&#039;&#039;&#039;.&lt;br /&gt;
[[File:App Upload Button on MyApps AP Manager.png|none|thumb|485x485px|App Upload button on AP Manager outlined]]&lt;br /&gt;
[[File:Gcallendar on AP Manager Innovaphone.jpg|none|thumb|490x490px|Gcalendar on AP Manager]]&lt;br /&gt;
&lt;br /&gt;
=== Step 3: Add Application Instance ===&lt;br /&gt;
&lt;br /&gt;
# After uploading the app, click the yellow &#039;&#039;&#039;+ Add&#039;&#039;&#039; button to create an instance of the application.&lt;br /&gt;
# Fill in the required fields:&lt;br /&gt;
#* &#039;&#039;&#039;Name:&#039;&#039;&#039; A recognizable name for the instance.&lt;br /&gt;
#* &#039;&#039;&#039;Domain:&#039;&#039;&#039; The domain for the PBX.&lt;br /&gt;
#* &#039;&#039;&#039;Password:&#039;&#039;&#039; A secure admin password for the app instance.&lt;br /&gt;
#* &#039;&#039;&#039;Webserver path:&#039;&#039;&#039; Optional path (or leave blank).&lt;br /&gt;
#* &#039;&#039;&#039;Database host:&#039;&#039;&#039; Leave empty for local DB or specify IP/DNS if external.&lt;br /&gt;
#* &#039;&#039;&#039;Database name&#039;&#039;&#039; and &#039;&#039;&#039;Database user&#039;&#039;&#039;: Use consistent values for your environment.&lt;br /&gt;
#* &#039;&#039;&#039;Database password:&#039;&#039;&#039; Corresponding DB password.&lt;br /&gt;
# When all values are filled, click &#039;&#039;&#039;Save&#039;&#039;&#039;.&lt;br /&gt;
[[File:AP Manager Gcalendar App Instance Creation Example.png|none|thumb|440x440px|Example of instance creation screen in AP Manager]]&lt;br /&gt;
&lt;br /&gt;
=== Final Step: Registering the App in PBX Manager ===&lt;br /&gt;
&lt;br /&gt;
# Open the &#039;&#039;&#039;PBX Manager&#039;&#039;&#039;.&lt;br /&gt;
# Go to the &#039;&#039;&#039;Apps&#039;&#039;&#039; section.&lt;br /&gt;
# Click &#039;&#039;&#039;Add App&#039;&#039;&#039; and register:&lt;br /&gt;
#* A &#039;&#039;&#039;Users App&#039;&#039;&#039;&lt;br /&gt;
#* An &#039;&#039;&#039;Admin App&#039;&#039;&#039;&lt;br /&gt;
# Assign access rights as needed.&lt;br /&gt;
[[File:PBX Manager Add an App flow - part 1.png|none|thumb|440x440px|PBX Manager Add an App select the app]]&lt;br /&gt;
[[File:Gcallendar PBX Manager Add an App flow - part 2.png|none|thumb|440x440px|PBX Manager Add an App configurations]]&lt;br /&gt;
[[File:Gcallendar on PBX Manager Innovaphone.jpg|none|thumb|441x441px|Gcalendar on PBX Manager configured]]&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⇒ After registration, both apps will appear in MyApps and are ready for use.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Copyright ==&lt;br /&gt;
Copyright information.&lt;br /&gt;
&lt;br /&gt;
== Contact ==&lt;br /&gt;
{|&lt;br /&gt;
| Wecom PORTO ALEGRE - RS&lt;br /&gt;
|-&lt;br /&gt;
| Av. Carlos Gomes, 466 / 401&lt;br /&gt;
|-&lt;br /&gt;
| Boa Vista - CEP 90480-000&lt;br /&gt;
|-&lt;br /&gt;
| Wecom FLORIANÓPOLIS - SC&lt;br /&gt;
|-&lt;br /&gt;
| SC 401, 8600 - Room 7 Corporate Park - Block 2&lt;br /&gt;
|-&lt;br /&gt;
| Santo Antônio de Lisboa - CEP 88050-001&lt;br /&gt;
|-&lt;br /&gt;
| Tel: +55 48 3112.6200&lt;br /&gt;
|-&lt;br /&gt;
| Mail: [mailto:comercial@wecom.com.br comercial@wecom.com.br]&lt;br /&gt;
|-&lt;br /&gt;
| Support: [mailto:suporte@wecom.com.br suporte@wecom.com.br]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
For any questions please refer to [https://wecom.com.br/fale-conosco/ our contact page.]&lt;/div&gt;</summary>
		<author><name>Pablo.montiel</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Howto:Gcalendar_-_Wecom_-_Partner_App&amp;diff=78961</id>
		<title>Howto:Gcalendar - Wecom - Partner App</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Howto:Gcalendar_-_Wecom_-_Partner_App&amp;diff=78961"/>
		<updated>2026-02-27T17:44:55Z</updated>

		<summary type="html">&lt;p&gt;Pablo.montiel: /* Product Name */ Add Gcalendar admin icon&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FIXME|reason=Work in progress, still incomplete}}&lt;br /&gt;
[[Image:Logo 2 Wecom.png||200px|right]]&lt;br /&gt;
&lt;br /&gt;
== Product Name ==&lt;br /&gt;
[[File:Gcalendar icone.png|none|thumb|Gcalendar Icon]]&lt;br /&gt;
[[File:Gcalendar icone admin.png|none|thumb|Gcalendar Admin Icon]]&lt;br /&gt;
Wecom [https://wecom.com.br/ Gcalendar]&lt;br /&gt;
&lt;br /&gt;
== Certification Status ==&lt;br /&gt;
&amp;lt;!--Do not remove comment. Will be added by innovaphone upon document check &amp;amp; app availablity on app store.--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Space dedicated to Gcalendar certification information.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Category ==&lt;br /&gt;
&amp;lt;!--Do not change this section and do not remove comments. Will be set by Innovaphone upon document check.--&amp;gt;&lt;br /&gt;
[[Category:Partner_Apps|{{PAGENAME}}]]&lt;br /&gt;
[[Category:3rdParty CTI and integrations|{{PAGENAME}}]]&lt;br /&gt;
{{Category:3rdParty CTI and integrations}}&lt;br /&gt;
&lt;br /&gt;
== Vendor ==&lt;br /&gt;
[[Image:Logo 2 Wecom.png|150px]]&lt;br /&gt;
&lt;br /&gt;
Wecom are integrators, maintainers, and distributors of unified communications systems.&lt;br /&gt;
Aimed at the corporate market, our focus is on promoting digital transformation for the businesses we advise, presenting the best mobility and collaboration tools available on the market. We are partners with leading brands and distributors in Brazil. With a solid portfolio of clients in a wide range of segments, our activities include consulting, project development, implementation and maintenance of communication systems, with extensive experience in collaboration technologies and advanced technical staff.&lt;br /&gt;
&lt;br /&gt;
[https://wecom.com.br/sobre-nos/ Wecom -About us]&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&#039;&#039;&#039;Gcalendar&#039;&#039;&#039; is a Partner App developed by &#039;&#039;&#039;Wecom&#039;&#039;&#039; to integrate Google Calendar events with the Innovaphone presence system.&lt;br /&gt;
&lt;br /&gt;
The app operates through two components:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Users App&#039;&#039;&#039; – Where the users initiate their account linking process via Google login.&lt;br /&gt;
* &#039;&#039;&#039;Admin App&#039;&#039;&#039; – Allows configuration of the integration with editable fields for Google Client ID and Client Secret, along with a dedicated OAuth authorization URL.&lt;br /&gt;
&lt;br /&gt;
This setup enables real-time status synchronization and supports four languages: Portuguese, English, Spanish, and German.&lt;br /&gt;
&lt;br /&gt;
== Functions ==&lt;br /&gt;
This section provides an overview of each core part of the &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; application. It highlights what actions can be performed, and how to navigate through the available features. Additionally, this section provides step-by-step explanations for each functionality.&lt;br /&gt;
&lt;br /&gt;
=== Users App ===&lt;br /&gt;
The &#039;&#039;&#039;Users App&#039;&#039;&#039; is the interface used by users to link their Google Calendar account to the Innovaphone presence system. It focuses only on enabling the connection between the user and their calendar through Google authentication.&lt;br /&gt;
[[File:Gcalendar user app interface detail.png|none|thumb|404x404px|Users app interface with google account pop-up]]&lt;br /&gt;
&lt;br /&gt;
==== Connecting with Google account ====&lt;br /&gt;
&lt;br /&gt;
# Open the &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; Users App.&lt;br /&gt;
# Click the &#039;&#039;&#039;Connect&#039;&#039;&#039; button.&lt;br /&gt;
# A Google login popup will appear.&lt;br /&gt;
#* This popup allows users to choose or log into a Google account.&lt;br /&gt;
# After selecting an account, the integration process will begin automatically.&lt;br /&gt;
#* Once completed, the account will be linked to the Innovaphone system.&lt;br /&gt;
[[File:Gcallendar Connect Button.png|none|thumb|Connect button]]&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⇒ &#039;&#039;&#039;Note:&#039;&#039;&#039; Before starting the connection process, ensure you&#039;re already logged into the correct Google account in your browser. This helps avoid selecting the wrong account and ensures the integration is completed with the intended calendar.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Viewing Upcoming Meetings ====&lt;br /&gt;
&lt;br /&gt;
On the main screen, users can see a list of their upcoming scheduled meetings.  &lt;br /&gt;
Each meeting is displayed as a card containing:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Title&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Start time&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
By clicking on a meeting card, the user is redirected to the corresponding event inside their Google Calendar.&lt;br /&gt;
[[File:Gcalendar Upcoming Meetings.jpg|none|thumb|392x392px|Upcoming meetings list]]&lt;br /&gt;
&lt;br /&gt;
==== Creating a New Meeting ====&lt;br /&gt;
&lt;br /&gt;
To schedule a new meeting:&lt;br /&gt;
# Click the &#039;&#039;&#039;+&#039;&#039;&#039; button on the main screen.&lt;br /&gt;
# A creation modal will open with the following fields:&lt;br /&gt;
#* &#039;&#039;&#039;Summary&#039;&#039;&#039; – The title of the meeting.&lt;br /&gt;
#* &#039;&#039;&#039;Description&#039;&#039;&#039; – Details or agenda of the meeting.&lt;br /&gt;
#* &#039;&#039;&#039;Location&#039;&#039;&#039; – Where the meeting will occur (physical address or online).&lt;br /&gt;
#* &#039;&#039;&#039;Start time&#039;&#039;&#039; – When the meeting begins.&lt;br /&gt;
#* &#039;&#039;&#039;End time&#039;&#039;&#039; – When the meeting ends.&lt;br /&gt;
#* &#039;&#039;&#039;Time zone&#039;&#039;&#039; – The time zone for the meeting.&lt;br /&gt;
#* &#039;&#039;&#039;Attendees&#039;&#039;&#039; – Email addresses of participants who should receive an invitation.&lt;br /&gt;
#* &#039;&#039;&#039;Add Google Meet&#039;&#039;&#039; – When checked, a Google Meet link is automatically generated and included in the event.&lt;br /&gt;
&lt;br /&gt;
After filling in the required information:&lt;br /&gt;
* Click &#039;&#039;&#039;Save&#039;&#039;&#039; to create the meeting.&lt;br /&gt;
* Click &#039;&#039;&#039;Cancel&#039;&#039;&#039; to close the modal without saving any changes.&lt;br /&gt;
[[File:Gcalendar Create Meeting Modal.jpg|none|thumb|420x420px|Meeting creation modal]]&lt;br /&gt;
&lt;br /&gt;
==== Disconnecting from Google account ====&lt;br /&gt;
&lt;br /&gt;
# Open the &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; Users App.&lt;br /&gt;
# If a Google account is already connected, the &#039;&#039;&#039;Connect&#039;&#039;&#039; button will be replaced by a &#039;&#039;&#039;Disconnect&#039;&#039;&#039; button.&lt;br /&gt;
# Click the &#039;&#039;&#039;Disconnect&#039;&#039;&#039; button to unlink your current Google Calendar account from the Innovaphone presence system.&lt;br /&gt;
# Once disconnected, presence synchronization will be disabled for that user.&lt;br /&gt;
[[File:Gcallendar Disconnect Button Dtl.png|none|thumb|392x392px|Disconnect button]]&lt;br /&gt;
&lt;br /&gt;
=== Admin App ===&lt;br /&gt;
The &#039;&#039;&#039;Admin App&#039;&#039;&#039; provides configuration options required to authorize and manage the Google integration. It is intended for system administrators and enables control over OAuth credentials used for user authentication.&lt;br /&gt;
[[File:Gcallendar Admin App.png|none|thumb|453x453px|Admin app interface]]&lt;br /&gt;
&lt;br /&gt;
==== Updating Google OAuth Credentials ====&lt;br /&gt;
To enable or update the integration between Gcalendar and Google Calendar, you’ll need to provide the correct &#039;&#039;&#039;Client ID&#039;&#039;&#039; and &#039;&#039;&#039;Client Secret&#039;&#039;&#039; obtained from your Google Cloud project.&lt;br /&gt;
&lt;br /&gt;
# Open the &#039;&#039;&#039;Gcalendar Admin App&#039;&#039;&#039;.&lt;br /&gt;
# Locate the fields labeled &#039;&#039;&#039;Google Client ID&#039;&#039;&#039; and &#039;&#039;&#039;Client Secret&#039;&#039;&#039;.&lt;br /&gt;
# Paste the values copied from your Google OAuth Credentials into the respective fields.&lt;br /&gt;
# Click the &#039;&#039;&#039;Update&#039;&#039;&#039; button next to each field to save the changes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⇒ &#039;&#039;&#039;Notes:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Ensure both values are correctly copied and properly formatted.&lt;br /&gt;
* Incorrect credentials will prevent users from authenticating.&lt;br /&gt;
* The Client Secret is sensitive—never share or expose it publicly.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
[[File:Gcallendar Google Client ID Update.png|none|thumb|519x519px|Google Client ID input and update button]]&lt;br /&gt;
[[File:Gcallendar Client Secret Update.png|none|thumb|519x519px|Client Secret input and update button]]&lt;br /&gt;
&lt;br /&gt;
===Multi-PBX ready===&lt;br /&gt;
&amp;lt;!-- Mandatory topic. --&amp;gt; &lt;br /&gt;
&amp;lt;!-- Give test-prooved statement about product usability in Multi-PBX-systems / Master-Slave --&amp;gt;&lt;br /&gt;
&amp;lt;!-- I.e. can the application be operated towards slave-pbxes, by slave-users, special configuration steps, special requirements, ...  --&amp;gt;&lt;br /&gt;
&amp;lt;!-- If applicable, provide hints about required configuration steps below in the chapter Configuration --&amp;gt; &lt;br /&gt;
&lt;br /&gt;
===Cloud ready===&lt;br /&gt;
&amp;lt;!-- Mandatory topic. --&amp;gt; &lt;br /&gt;
&amp;lt;!-- Give test-prooved statement about product usability in Cloud-environments / Hosted PBXes --&amp;gt;&lt;br /&gt;
&amp;lt;!-- I.e. can the application be operated via NAT-boundaries, special configuration steps, special requirements, ...  --&amp;gt;&lt;br /&gt;
&amp;lt;!-- If applicable, provide hints about required configuration steps below in the chapter Configuration --&amp;gt; &lt;br /&gt;
&lt;br /&gt;
===Supported languages===&lt;br /&gt;
&amp;lt;!-- Mandatory topic. --&amp;gt; &lt;br /&gt;
&amp;lt;!-- List the translated languages which the application provides. Comma-separated is sufficient --&amp;gt;&lt;br /&gt;
Portuguese, English, Spanish, German&lt;br /&gt;
&lt;br /&gt;
== Licensing ==&lt;br /&gt;
The &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; application is licensed via the Innovaphone Pricelist.&lt;br /&gt;
&lt;br /&gt;
Currently, it is not yet listed on the official Innovaphone Partner App Licenses page, but it is expected to be included in future updates.&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;License type:&#039;&#039;&#039; Innovaphone Pricelist&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;License model:&#039;&#039;&#039; One license per user&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Listed at:&#039;&#039;&#039; https://www.innovaphone.com/en/services/licenses/partner-apps.html?app=Gcalendar&amp;amp;type=license#gcalendar&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
Before installing and using Gcalendar, ensure your environment meets the following requirements:&lt;br /&gt;
&lt;br /&gt;
==== System Requirements ====&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Innovaphone firmware:&#039;&#039;&#039; Version &amp;lt;code&amp;gt;14r1&amp;lt;/code&amp;gt; or later&lt;br /&gt;
* &#039;&#039;&#039;App platform:&#039;&#039;&#039; Innovaphone &#039;&#039;&#039;myApps&#039;&#039;&#039; system with &#039;&#039;&#039;App Platform&#039;&#039;&#039; active&lt;br /&gt;
* &#039;&#039;&#039;PBX Manager:&#039;&#039;&#039; Required to register and configure the Users and Admin Apps&lt;br /&gt;
&lt;br /&gt;
==== OAuth Setup ====&lt;br /&gt;
&lt;br /&gt;
* A &#039;&#039;&#039;Google Cloud Project&#039;&#039;&#039; with valid &#039;&#039;&#039;OAuth 2.0 credentials&#039;&#039;&#039; (Client ID and Client Secret)&lt;br /&gt;
* The following URIs must be configured in the Google project:&lt;br /&gt;
** &#039;&#039;&#039;Authorized JavaScript origins:&#039;&#039;&#039; &amp;lt;code&amp;gt;https://app_platform&amp;lt;/code&amp;gt;&lt;br /&gt;
** &#039;&#039;&#039;Authorized redirect URI:&#039;&#039;&#039; &amp;lt;code&amp;gt;https://app_platform/domain/app_name/newToken&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Versions ==&lt;br /&gt;
The &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; application follows the release versioning aligned with the Innovaphone platform.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Initial release version:&#039;&#039;&#039; &amp;lt;code&amp;gt;14r1&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Latest available version:&#039;&#039;&#039; &amp;lt;code&amp;gt;2002 final&amp;lt;/code&amp;gt; (as of June 17, 2025)&lt;br /&gt;
* &#039;&#039;&#039;Build number:&#039;&#039;&#039;&amp;lt;code&amp;gt;14A1149 dvl&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Supported architectures:&#039;&#039;&#039; &amp;lt;code&amp;gt;arm&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;x86_64&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;arm64&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⇒ New versions are published and made available through the Wecom App Store.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
=== Google OAuth Setup (Admin Only) ===&lt;br /&gt;
To enable account linking between the Innovaphone presence system and Google Calendar, administrators must configure OAuth 2.0 credentials using the Google Cloud Platform beforehand.&lt;br /&gt;
&lt;br /&gt;
# Go to [https://console.cloud.google.com/ Google Cloud Console].&lt;br /&gt;
# Select or create a &#039;&#039;&#039;Google Cloud Project&#039;&#039;&#039;.&amp;lt;blockquote&amp;gt;◇ This project will host the credentials used by Gcalendar to access the Google Calendar API. We recommend creating a dedicated project for better control and security.&amp;lt;/blockquote&amp;gt;[[File:Google Cloud Select-Create Project.png|none|thumb|425x425px|Google Cloud Console welcome page with select project button outlined (here the project is already selected)]]&amp;lt;blockquote&amp;gt;Clicking the &#039;&#039;&#039;&amp;quot;Select Project&amp;quot;&#039;&#039;&#039; button will open a &#039;&#039;&#039;modal&#039;&#039;&#039; where you can choose or create a project.&amp;lt;/blockquote&amp;gt;[[File:Google Cloud Select Project If Selected.png|none|thumb|353x353px|Project selection modal]]&amp;lt;blockquote&amp;gt;If a project already exists, click on its name from the list to open it. If not, click &#039;&#039;&#039;&amp;quot;New Project&amp;quot;&#039;&#039;&#039; in the top-right corner to create one.&amp;lt;/blockquote&amp;gt;[[File:Google Cloud New Project Page.png|none|thumb|440x440px|New project creation page]]&lt;br /&gt;
# In the top-left corner, click the &#039;&#039;&#039;hamburger menu icon&#039;&#039;&#039; (☰) to expand the left navigation menu.&lt;br /&gt;
#* Before continuing to the OAuth configuration, you need to make sure the Google Calendar API is enabled.&lt;br /&gt;
# From the sidebar, go to &#039;&#039;&#039;APIs &amp;amp; Services &amp;gt; Enabled APIs &amp;amp; services&#039;&#039;&#039;.[[File:Google Cloud Sidebar API Services.png|none|thumb|450x450px|Opening the APIs &amp;amp; Services section to enable the Calendar API]]&lt;br /&gt;
# At the top of the page, click &#039;&#039;&#039;+ Enable APIs and services&#039;&#039;&#039;.&amp;lt;blockquote&amp;gt;Once enabled, it will appear in the list of active APIs under &#039;&#039;&#039;Enabled APIs &amp;amp; Services&#039;&#039;&#039;.If the Google Calendar API is already enabled, you may skip the steps below and proceed directly to the OAuth configuration.&amp;lt;/blockquote&amp;gt;[[File:Google Cloud Enable APIs Services.jpg|none|thumb|450x450px|Enabling API button and viewing the enabled Google Calendar API]]&lt;br /&gt;
# In the API Library, search for: &amp;lt;code&amp;gt;calendar&amp;lt;/code&amp;gt;.&lt;br /&gt;
#* From the results, click on &#039;&#039;&#039;Google Calendar API&#039;&#039;&#039;.[[File:Google Clou APIs Google Calendar Search.jpg|none|thumb|450x450px|Searching for the Google Calendar API in the API Library]]&lt;br /&gt;
# On the API page, click the blue &#039;&#039;&#039;Enable&#039;&#039;&#039; button to activate it.[[File:Google Cloud Enabling Google Calendar.jpg|none|thumb|450x450px|Enabling the Google Calendar API]]&lt;br /&gt;
# Now click the &#039;&#039;&#039;hamburger menu icon&#039;&#039;&#039; (☰) again to return to the sidebar.&lt;br /&gt;
# Navigate to &#039;&#039;&#039;API &amp;amp; Services &amp;gt; OAuth consent screen&#039;&#039;&#039;.[[File:Google Cloud Left Menu API Outlined.png|none|thumb|482x482px|Left menu: &#039;&#039;&#039;APIs &amp;amp; service -&amp;gt; OAuth consent screen&#039;&#039;&#039;]]&lt;br /&gt;
#* If it&#039;s your first time, configure the consent screen with basic app details (organization name, app name, email, etc.).&lt;br /&gt;
#* Once configured, you&#039;ll be redirected to the &#039;&#039;&#039;Google Auth Platform / Overview&#039;&#039;&#039; page.&lt;br /&gt;
# Click &#039;&#039;&#039;Clients&#039;&#039;&#039; in the left menu and then click &amp;quot;&#039;&#039;&#039;+ Create client&amp;quot;&#039;&#039;&#039;.[[File:Google Cloud new client.jpg|none|thumb|525x525px|Creating client option in Clients page]]&lt;br /&gt;
# Choose &#039;&#039;&#039;Application Type: Web Application&#039;&#039;&#039;.&lt;br /&gt;
# Enter a recognizable &#039;&#039;&#039;name&#039;&#039;&#039; (e.g., &#039;&#039;Gcalendar Integration&#039;&#039;).&lt;br /&gt;
# Add the following values:&lt;br /&gt;
#* &#039;&#039;&#039;Authorized JavaScript origins&#039;&#039;&#039;&lt;br /&gt;
#** &amp;lt;code&amp;gt;https://app_platform&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &#039;&#039;&#039;Authorized redirect URIs&#039;&#039;&#039;&lt;br /&gt;
#** &amp;lt;code&amp;gt;https://app_platform/domain/app_name/newToken&amp;lt;/code&amp;gt;[[File:Google Cloud Create OAuth Client ID.jpg|none|thumb|411x411px|Create OAuth client ID inputs]]&lt;br /&gt;
# After creation, copy the generated:&lt;br /&gt;
#* &#039;&#039;&#039;Client ID&#039;&#039;&#039;&lt;br /&gt;
#* &#039;&#039;&#039;Client Secret&#039;&#039;&#039;[[File:Google Cloud Client ID Client Secret.jpg|none|thumb|434x434px|Client credentials available after creating]]&lt;br /&gt;
# Open the &#039;&#039;&#039;Gcalendar Admin App&#039;&#039;&#039; and insert the values in the respective fields and click &#039;&#039;&#039;Update&#039;&#039;&#039; (see [[#Updating Google OAuth Credentials|Update Google OAuth Credentials]] section above).&amp;lt;blockquote&amp;gt;▷ This links the Google authentication flow to the presence system, allowing users to authorize their calendars.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
# On the left menu, go to &#039;&#039;&#039;Data Access&#039;&#039;&#039; under the &#039;&#039;&#039;Google Auth Platform&#039;&#039;&#039; section.&amp;lt;blockquote&amp;gt;◇ This section lists the sensitive scopes (permissions) your app is requesting during OAuth authorization. These are required for accessing user calendars.&amp;lt;/blockquote&amp;gt;[[File:Google Cloud Add or Remove Scopes.png|none|thumb|510x510px|Click &amp;quot;Add or remove scopes&amp;quot; to open the scope selection menu]]&lt;br /&gt;
# Click the blue &#039;&#039;&#039;Add or remove scopes&#039;&#039;&#039; button.&amp;lt;blockquote&amp;gt;◇ A sidebar will open listing all available scopes from enabled APIs. You can search and select the necessary calendar-related scopes for your application.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
# In the sidebar that appears, search for and select the following calendar scopes:&lt;br /&gt;
#* &amp;lt;code&amp;gt;../auth/calendar.events&amp;lt;/code&amp;gt; – View and edit calendar events.&lt;br /&gt;
#* &amp;lt;code&amp;gt;../auth/calendar.events.owned&amp;lt;/code&amp;gt; – Modify events on owned calendars.[[File:Google Cloud Data Access Scopes Correct.png|none|thumb|400x400px|Data Access section showing added calendar scopes]]&amp;lt;blockquote&amp;gt;▷ These scopes must be added to your app for Google to allow access to calendar data through the API. Make sure they match the level of access your app requires.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
Follow the steps below to install the &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; application in your Innovaphone environment.&lt;br /&gt;
&lt;br /&gt;
=== Option 1: Installing via AP Manager App Store (Recommended) ===&lt;br /&gt;
You can install &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; directly through the &#039;&#039;&#039;App Platform Manager&#039;&#039;&#039; (AP Manager) by accessing the App Store:&lt;br /&gt;
&lt;br /&gt;
# Open the &#039;&#039;&#039;AP Manager&#039;&#039;&#039;.&lt;br /&gt;
# Click the yellow &#039;&#039;&#039;App Store&#039;&#039;&#039; button in the top-right corner.&lt;br /&gt;
# Search for &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; in the list.&lt;br /&gt;
# Select the latest version and confirm the download.&lt;br /&gt;
# The app will be automatically installed and ready to configure.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;🛈 This is the easiest and fastest way to deploy the app.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
[[File:Innovaphone MyApps Lab AppStore Button in AP Manager.png|none|thumb|436x436px|AppStore Button in AP Manager outlined]]&lt;br /&gt;
[[File:AP Manager Appstore Interface.png|none|thumb|436x436px|AP Manager Appstore interface]]&lt;br /&gt;
&lt;br /&gt;
=== Option 2: Manual Installation via Upload ===&lt;br /&gt;
If the app is not yet listed in the App Store, follow the steps below:&lt;br /&gt;
&lt;br /&gt;
==== Step 1: Download the App Package ====&lt;br /&gt;
&lt;br /&gt;
# Visit the official Wecom myApps Downloads Portal.&lt;br /&gt;
# Find the &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; app.&lt;br /&gt;
# Download the latest available version compatible with your system architecture.&lt;br /&gt;
[[File:Gcalendar myapps wecom appstore.png|none|thumb|418x418px|Gcalendar on MyApps&#039; Wecom&#039;s App Store]]&lt;br /&gt;
&lt;br /&gt;
==== Step 2: Upload to AP Manager ====&lt;br /&gt;
&lt;br /&gt;
# In &#039;&#039;&#039;AP Manager&#039;&#039;&#039;, click &#039;&#039;&#039;App upload&#039;&#039;&#039; (top right).&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;.app&amp;lt;/code&amp;gt; package you downloaded from the portal.&lt;br /&gt;
# After successful upload, the app will appear in your list and show as &#039;&#039;&#039;Running&#039;&#039;&#039;.&lt;br /&gt;
[[File:App Upload Button on MyApps AP Manager.png|none|thumb|485x485px|App Upload button on AP Manager outlined]]&lt;br /&gt;
[[File:Gcallendar on AP Manager Innovaphone.jpg|none|thumb|490x490px|Gcalendar on AP Manager]]&lt;br /&gt;
&lt;br /&gt;
=== Step 3: Add Application Instance ===&lt;br /&gt;
&lt;br /&gt;
# After uploading the app, click the yellow &#039;&#039;&#039;+ Add&#039;&#039;&#039; button to create an instance of the application.&lt;br /&gt;
# Fill in the required fields:&lt;br /&gt;
#* &#039;&#039;&#039;Name:&#039;&#039;&#039; A recognizable name for the instance.&lt;br /&gt;
#* &#039;&#039;&#039;Domain:&#039;&#039;&#039; The domain for the PBX.&lt;br /&gt;
#* &#039;&#039;&#039;Password:&#039;&#039;&#039; A secure admin password for the app instance.&lt;br /&gt;
#* &#039;&#039;&#039;Webserver path:&#039;&#039;&#039; Optional path (or leave blank).&lt;br /&gt;
#* &#039;&#039;&#039;Database host:&#039;&#039;&#039; Leave empty for local DB or specify IP/DNS if external.&lt;br /&gt;
#* &#039;&#039;&#039;Database name&#039;&#039;&#039; and &#039;&#039;&#039;Database user&#039;&#039;&#039;: Use consistent values for your environment.&lt;br /&gt;
#* &#039;&#039;&#039;Database password:&#039;&#039;&#039; Corresponding DB password.&lt;br /&gt;
# When all values are filled, click &#039;&#039;&#039;Save&#039;&#039;&#039;.&lt;br /&gt;
[[File:AP Manager Gcalendar App Instance Creation Example.png|none|thumb|440x440px|Example of instance creation screen in AP Manager]]&lt;br /&gt;
&lt;br /&gt;
=== Final Step: Registering the App in PBX Manager ===&lt;br /&gt;
&lt;br /&gt;
# Open the &#039;&#039;&#039;PBX Manager&#039;&#039;&#039;.&lt;br /&gt;
# Go to the &#039;&#039;&#039;Apps&#039;&#039;&#039; section.&lt;br /&gt;
# Click &#039;&#039;&#039;Add App&#039;&#039;&#039; and register:&lt;br /&gt;
#* A &#039;&#039;&#039;Users App&#039;&#039;&#039;&lt;br /&gt;
#* An &#039;&#039;&#039;Admin App&#039;&#039;&#039;&lt;br /&gt;
# Assign access rights as needed.&lt;br /&gt;
[[File:PBX Manager Add an App flow - part 1.png|none|thumb|440x440px|PBX Manager Add an App select the app]]&lt;br /&gt;
[[File:Gcallendar PBX Manager Add an App flow - part 2.png|none|thumb|440x440px|PBX Manager Add an App configurations]]&lt;br /&gt;
[[File:Gcallendar on PBX Manager Innovaphone.jpg|none|thumb|441x441px|Gcalendar on PBX Manager configured]]&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⇒ After registration, both apps will appear in MyApps and are ready for use.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Copyright ==&lt;br /&gt;
Copyright information.&lt;br /&gt;
&lt;br /&gt;
== Contact ==&lt;br /&gt;
{|&lt;br /&gt;
| Wecom PORTO ALEGRE - RS&lt;br /&gt;
|-&lt;br /&gt;
| Av. Carlos Gomes, 466 / 401&lt;br /&gt;
|-&lt;br /&gt;
| Boa Vista - CEP 90480-000&lt;br /&gt;
|-&lt;br /&gt;
| Wecom FLORIANÓPOLIS - SC&lt;br /&gt;
|-&lt;br /&gt;
| SC 401, 8600 - Room 7 Corporate Park - Block 2&lt;br /&gt;
|-&lt;br /&gt;
| Santo Antônio de Lisboa - CEP 88050-001&lt;br /&gt;
|-&lt;br /&gt;
| Tel: +55 48 3112.6200&lt;br /&gt;
|-&lt;br /&gt;
| Mail: [mailto:comercial@wecom.com.br comercial@wecom.com.br]&lt;br /&gt;
|-&lt;br /&gt;
| Support: [mailto:suporte@wecom.com.br suporte@wecom.com.br]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
For any questions please refer to [https://wecom.com.br/fale-conosco/ our contact page.]&lt;/div&gt;</summary>
		<author><name>Pablo.montiel</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=File:Gcalendar_icone_admin.png&amp;diff=78960</id>
		<title>File:Gcalendar icone admin.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=File:Gcalendar_icone_admin.png&amp;diff=78960"/>
		<updated>2026-02-27T17:42:45Z</updated>

		<summary type="html">&lt;p&gt;Pablo.montiel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Gcalendar icone admin&lt;/div&gt;</summary>
		<author><name>Pablo.montiel</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Howto:Gcalendar_-_Wecom_-_Partner_App&amp;diff=78959</id>
		<title>Howto:Gcalendar - Wecom - Partner App</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Howto:Gcalendar_-_Wecom_-_Partner_App&amp;diff=78959"/>
		<updated>2026-02-27T17:40:42Z</updated>

		<summary type="html">&lt;p&gt;Pablo.montiel: /* Product Name */  Altering Gcalendar icon&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FIXME|reason=Work in progress, still incomplete}}&lt;br /&gt;
[[Image:Logo 2 Wecom.png||200px|right]]&lt;br /&gt;
&lt;br /&gt;
== Product Name ==&lt;br /&gt;
[[File:Gcalendar icone.png|none|thumb|Gcalendar Icon]]&lt;br /&gt;
Wecom [https://wecom.com.br/ Gcalendar]&lt;br /&gt;
&lt;br /&gt;
== Certification Status ==&lt;br /&gt;
&amp;lt;!--Do not remove comment. Will be added by innovaphone upon document check &amp;amp; app availablity on app store.--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Space dedicated to Gcalendar certification information.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Category ==&lt;br /&gt;
&amp;lt;!--Do not change this section and do not remove comments. Will be set by Innovaphone upon document check.--&amp;gt;&lt;br /&gt;
[[Category:Partner_Apps|{{PAGENAME}}]]&lt;br /&gt;
[[Category:3rdParty CTI and integrations|{{PAGENAME}}]]&lt;br /&gt;
{{Category:3rdParty CTI and integrations}}&lt;br /&gt;
&lt;br /&gt;
== Vendor ==&lt;br /&gt;
[[Image:Logo 2 Wecom.png|150px]]&lt;br /&gt;
&lt;br /&gt;
Wecom are integrators, maintainers, and distributors of unified communications systems.&lt;br /&gt;
Aimed at the corporate market, our focus is on promoting digital transformation for the businesses we advise, presenting the best mobility and collaboration tools available on the market. We are partners with leading brands and distributors in Brazil. With a solid portfolio of clients in a wide range of segments, our activities include consulting, project development, implementation and maintenance of communication systems, with extensive experience in collaboration technologies and advanced technical staff.&lt;br /&gt;
&lt;br /&gt;
[https://wecom.com.br/sobre-nos/ Wecom -About us]&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&#039;&#039;&#039;Gcalendar&#039;&#039;&#039; is a Partner App developed by &#039;&#039;&#039;Wecom&#039;&#039;&#039; to integrate Google Calendar events with the Innovaphone presence system.&lt;br /&gt;
&lt;br /&gt;
The app operates through two components:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Users App&#039;&#039;&#039; – Where the users initiate their account linking process via Google login.&lt;br /&gt;
* &#039;&#039;&#039;Admin App&#039;&#039;&#039; – Allows configuration of the integration with editable fields for Google Client ID and Client Secret, along with a dedicated OAuth authorization URL.&lt;br /&gt;
&lt;br /&gt;
This setup enables real-time status synchronization and supports four languages: Portuguese, English, Spanish, and German.&lt;br /&gt;
&lt;br /&gt;
== Functions ==&lt;br /&gt;
This section provides an overview of each core part of the &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; application. It highlights what actions can be performed, and how to navigate through the available features. Additionally, this section provides step-by-step explanations for each functionality.&lt;br /&gt;
&lt;br /&gt;
=== Users App ===&lt;br /&gt;
The &#039;&#039;&#039;Users App&#039;&#039;&#039; is the interface used by users to link their Google Calendar account to the Innovaphone presence system. It focuses only on enabling the connection between the user and their calendar through Google authentication.&lt;br /&gt;
[[File:Gcalendar user app interface detail.png|none|thumb|404x404px|Users app interface with google account pop-up]]&lt;br /&gt;
&lt;br /&gt;
==== Connecting with Google account ====&lt;br /&gt;
&lt;br /&gt;
# Open the &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; Users App.&lt;br /&gt;
# Click the &#039;&#039;&#039;Connect&#039;&#039;&#039; button.&lt;br /&gt;
# A Google login popup will appear.&lt;br /&gt;
#* This popup allows users to choose or log into a Google account.&lt;br /&gt;
# After selecting an account, the integration process will begin automatically.&lt;br /&gt;
#* Once completed, the account will be linked to the Innovaphone system.&lt;br /&gt;
[[File:Gcallendar Connect Button.png|none|thumb|Connect button]]&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⇒ &#039;&#039;&#039;Note:&#039;&#039;&#039; Before starting the connection process, ensure you&#039;re already logged into the correct Google account in your browser. This helps avoid selecting the wrong account and ensures the integration is completed with the intended calendar.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Viewing Upcoming Meetings ====&lt;br /&gt;
&lt;br /&gt;
On the main screen, users can see a list of their upcoming scheduled meetings.  &lt;br /&gt;
Each meeting is displayed as a card containing:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Title&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Start time&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
By clicking on a meeting card, the user is redirected to the corresponding event inside their Google Calendar.&lt;br /&gt;
[[File:Gcalendar Upcoming Meetings.jpg|none|thumb|392x392px|Upcoming meetings list]]&lt;br /&gt;
&lt;br /&gt;
==== Creating a New Meeting ====&lt;br /&gt;
&lt;br /&gt;
To schedule a new meeting:&lt;br /&gt;
# Click the &#039;&#039;&#039;+&#039;&#039;&#039; button on the main screen.&lt;br /&gt;
# A creation modal will open with the following fields:&lt;br /&gt;
#* &#039;&#039;&#039;Summary&#039;&#039;&#039; – The title of the meeting.&lt;br /&gt;
#* &#039;&#039;&#039;Description&#039;&#039;&#039; – Details or agenda of the meeting.&lt;br /&gt;
#* &#039;&#039;&#039;Location&#039;&#039;&#039; – Where the meeting will occur (physical address or online).&lt;br /&gt;
#* &#039;&#039;&#039;Start time&#039;&#039;&#039; – When the meeting begins.&lt;br /&gt;
#* &#039;&#039;&#039;End time&#039;&#039;&#039; – When the meeting ends.&lt;br /&gt;
#* &#039;&#039;&#039;Time zone&#039;&#039;&#039; – The time zone for the meeting.&lt;br /&gt;
#* &#039;&#039;&#039;Attendees&#039;&#039;&#039; – Email addresses of participants who should receive an invitation.&lt;br /&gt;
#* &#039;&#039;&#039;Add Google Meet&#039;&#039;&#039; – When checked, a Google Meet link is automatically generated and included in the event.&lt;br /&gt;
&lt;br /&gt;
After filling in the required information:&lt;br /&gt;
* Click &#039;&#039;&#039;Save&#039;&#039;&#039; to create the meeting.&lt;br /&gt;
* Click &#039;&#039;&#039;Cancel&#039;&#039;&#039; to close the modal without saving any changes.&lt;br /&gt;
[[File:Gcalendar Create Meeting Modal.jpg|none|thumb|420x420px|Meeting creation modal]]&lt;br /&gt;
&lt;br /&gt;
==== Disconnecting from Google account ====&lt;br /&gt;
&lt;br /&gt;
# Open the &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; Users App.&lt;br /&gt;
# If a Google account is already connected, the &#039;&#039;&#039;Connect&#039;&#039;&#039; button will be replaced by a &#039;&#039;&#039;Disconnect&#039;&#039;&#039; button.&lt;br /&gt;
# Click the &#039;&#039;&#039;Disconnect&#039;&#039;&#039; button to unlink your current Google Calendar account from the Innovaphone presence system.&lt;br /&gt;
# Once disconnected, presence synchronization will be disabled for that user.&lt;br /&gt;
[[File:Gcallendar Disconnect Button Dtl.png|none|thumb|392x392px|Disconnect button]]&lt;br /&gt;
&lt;br /&gt;
=== Admin App ===&lt;br /&gt;
The &#039;&#039;&#039;Admin App&#039;&#039;&#039; provides configuration options required to authorize and manage the Google integration. It is intended for system administrators and enables control over OAuth credentials used for user authentication.&lt;br /&gt;
[[File:Gcallendar Admin App.png|none|thumb|453x453px|Admin app interface]]&lt;br /&gt;
&lt;br /&gt;
==== Updating Google OAuth Credentials ====&lt;br /&gt;
To enable or update the integration between Gcalendar and Google Calendar, you’ll need to provide the correct &#039;&#039;&#039;Client ID&#039;&#039;&#039; and &#039;&#039;&#039;Client Secret&#039;&#039;&#039; obtained from your Google Cloud project.&lt;br /&gt;
&lt;br /&gt;
# Open the &#039;&#039;&#039;Gcalendar Admin App&#039;&#039;&#039;.&lt;br /&gt;
# Locate the fields labeled &#039;&#039;&#039;Google Client ID&#039;&#039;&#039; and &#039;&#039;&#039;Client Secret&#039;&#039;&#039;.&lt;br /&gt;
# Paste the values copied from your Google OAuth Credentials into the respective fields.&lt;br /&gt;
# Click the &#039;&#039;&#039;Update&#039;&#039;&#039; button next to each field to save the changes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⇒ &#039;&#039;&#039;Notes:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Ensure both values are correctly copied and properly formatted.&lt;br /&gt;
* Incorrect credentials will prevent users from authenticating.&lt;br /&gt;
* The Client Secret is sensitive—never share or expose it publicly.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
[[File:Gcallendar Google Client ID Update.png|none|thumb|519x519px|Google Client ID input and update button]]&lt;br /&gt;
[[File:Gcallendar Client Secret Update.png|none|thumb|519x519px|Client Secret input and update button]]&lt;br /&gt;
&lt;br /&gt;
===Multi-PBX ready===&lt;br /&gt;
&amp;lt;!-- Mandatory topic. --&amp;gt; &lt;br /&gt;
&amp;lt;!-- Give test-prooved statement about product usability in Multi-PBX-systems / Master-Slave --&amp;gt;&lt;br /&gt;
&amp;lt;!-- I.e. can the application be operated towards slave-pbxes, by slave-users, special configuration steps, special requirements, ...  --&amp;gt;&lt;br /&gt;
&amp;lt;!-- If applicable, provide hints about required configuration steps below in the chapter Configuration --&amp;gt; &lt;br /&gt;
&lt;br /&gt;
===Cloud ready===&lt;br /&gt;
&amp;lt;!-- Mandatory topic. --&amp;gt; &lt;br /&gt;
&amp;lt;!-- Give test-prooved statement about product usability in Cloud-environments / Hosted PBXes --&amp;gt;&lt;br /&gt;
&amp;lt;!-- I.e. can the application be operated via NAT-boundaries, special configuration steps, special requirements, ...  --&amp;gt;&lt;br /&gt;
&amp;lt;!-- If applicable, provide hints about required configuration steps below in the chapter Configuration --&amp;gt; &lt;br /&gt;
&lt;br /&gt;
===Supported languages===&lt;br /&gt;
&amp;lt;!-- Mandatory topic. --&amp;gt; &lt;br /&gt;
&amp;lt;!-- List the translated languages which the application provides. Comma-separated is sufficient --&amp;gt;&lt;br /&gt;
Portuguese, English, Spanish, German&lt;br /&gt;
&lt;br /&gt;
== Licensing ==&lt;br /&gt;
The &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; application is licensed via the Innovaphone Pricelist.&lt;br /&gt;
&lt;br /&gt;
Currently, it is not yet listed on the official Innovaphone Partner App Licenses page, but it is expected to be included in future updates.&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;License type:&#039;&#039;&#039; Innovaphone Pricelist&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;License model:&#039;&#039;&#039; One license per user&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Listed at:&#039;&#039;&#039; https://www.innovaphone.com/en/services/licenses/partner-apps.html?app=Gcalendar&amp;amp;type=license#gcalendar&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
Before installing and using Gcalendar, ensure your environment meets the following requirements:&lt;br /&gt;
&lt;br /&gt;
==== System Requirements ====&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Innovaphone firmware:&#039;&#039;&#039; Version &amp;lt;code&amp;gt;14r1&amp;lt;/code&amp;gt; or later&lt;br /&gt;
* &#039;&#039;&#039;App platform:&#039;&#039;&#039; Innovaphone &#039;&#039;&#039;myApps&#039;&#039;&#039; system with &#039;&#039;&#039;App Platform&#039;&#039;&#039; active&lt;br /&gt;
* &#039;&#039;&#039;PBX Manager:&#039;&#039;&#039; Required to register and configure the Users and Admin Apps&lt;br /&gt;
&lt;br /&gt;
==== OAuth Setup ====&lt;br /&gt;
&lt;br /&gt;
* A &#039;&#039;&#039;Google Cloud Project&#039;&#039;&#039; with valid &#039;&#039;&#039;OAuth 2.0 credentials&#039;&#039;&#039; (Client ID and Client Secret)&lt;br /&gt;
* The following URIs must be configured in the Google project:&lt;br /&gt;
** &#039;&#039;&#039;Authorized JavaScript origins:&#039;&#039;&#039; &amp;lt;code&amp;gt;https://app_platform&amp;lt;/code&amp;gt;&lt;br /&gt;
** &#039;&#039;&#039;Authorized redirect URI:&#039;&#039;&#039; &amp;lt;code&amp;gt;https://app_platform/domain/app_name/newToken&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Versions ==&lt;br /&gt;
The &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; application follows the release versioning aligned with the Innovaphone platform.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Initial release version:&#039;&#039;&#039; &amp;lt;code&amp;gt;14r1&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Latest available version:&#039;&#039;&#039; &amp;lt;code&amp;gt;2002 final&amp;lt;/code&amp;gt; (as of June 17, 2025)&lt;br /&gt;
* &#039;&#039;&#039;Build number:&#039;&#039;&#039;&amp;lt;code&amp;gt;14A1149 dvl&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Supported architectures:&#039;&#039;&#039; &amp;lt;code&amp;gt;arm&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;x86_64&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;arm64&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⇒ New versions are published and made available through the Wecom App Store.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
=== Google OAuth Setup (Admin Only) ===&lt;br /&gt;
To enable account linking between the Innovaphone presence system and Google Calendar, administrators must configure OAuth 2.0 credentials using the Google Cloud Platform beforehand.&lt;br /&gt;
&lt;br /&gt;
# Go to [https://console.cloud.google.com/ Google Cloud Console].&lt;br /&gt;
# Select or create a &#039;&#039;&#039;Google Cloud Project&#039;&#039;&#039;.&amp;lt;blockquote&amp;gt;◇ This project will host the credentials used by Gcalendar to access the Google Calendar API. We recommend creating a dedicated project for better control and security.&amp;lt;/blockquote&amp;gt;[[File:Google Cloud Select-Create Project.png|none|thumb|425x425px|Google Cloud Console welcome page with select project button outlined (here the project is already selected)]]&amp;lt;blockquote&amp;gt;Clicking the &#039;&#039;&#039;&amp;quot;Select Project&amp;quot;&#039;&#039;&#039; button will open a &#039;&#039;&#039;modal&#039;&#039;&#039; where you can choose or create a project.&amp;lt;/blockquote&amp;gt;[[File:Google Cloud Select Project If Selected.png|none|thumb|353x353px|Project selection modal]]&amp;lt;blockquote&amp;gt;If a project already exists, click on its name from the list to open it. If not, click &#039;&#039;&#039;&amp;quot;New Project&amp;quot;&#039;&#039;&#039; in the top-right corner to create one.&amp;lt;/blockquote&amp;gt;[[File:Google Cloud New Project Page.png|none|thumb|440x440px|New project creation page]]&lt;br /&gt;
# In the top-left corner, click the &#039;&#039;&#039;hamburger menu icon&#039;&#039;&#039; (☰) to expand the left navigation menu.&lt;br /&gt;
#* Before continuing to the OAuth configuration, you need to make sure the Google Calendar API is enabled.&lt;br /&gt;
# From the sidebar, go to &#039;&#039;&#039;APIs &amp;amp; Services &amp;gt; Enabled APIs &amp;amp; services&#039;&#039;&#039;.[[File:Google Cloud Sidebar API Services.png|none|thumb|450x450px|Opening the APIs &amp;amp; Services section to enable the Calendar API]]&lt;br /&gt;
# At the top of the page, click &#039;&#039;&#039;+ Enable APIs and services&#039;&#039;&#039;.&amp;lt;blockquote&amp;gt;Once enabled, it will appear in the list of active APIs under &#039;&#039;&#039;Enabled APIs &amp;amp; Services&#039;&#039;&#039;.If the Google Calendar API is already enabled, you may skip the steps below and proceed directly to the OAuth configuration.&amp;lt;/blockquote&amp;gt;[[File:Google Cloud Enable APIs Services.jpg|none|thumb|450x450px|Enabling API button and viewing the enabled Google Calendar API]]&lt;br /&gt;
# In the API Library, search for: &amp;lt;code&amp;gt;calendar&amp;lt;/code&amp;gt;.&lt;br /&gt;
#* From the results, click on &#039;&#039;&#039;Google Calendar API&#039;&#039;&#039;.[[File:Google Clou APIs Google Calendar Search.jpg|none|thumb|450x450px|Searching for the Google Calendar API in the API Library]]&lt;br /&gt;
# On the API page, click the blue &#039;&#039;&#039;Enable&#039;&#039;&#039; button to activate it.[[File:Google Cloud Enabling Google Calendar.jpg|none|thumb|450x450px|Enabling the Google Calendar API]]&lt;br /&gt;
# Now click the &#039;&#039;&#039;hamburger menu icon&#039;&#039;&#039; (☰) again to return to the sidebar.&lt;br /&gt;
# Navigate to &#039;&#039;&#039;API &amp;amp; Services &amp;gt; OAuth consent screen&#039;&#039;&#039;.[[File:Google Cloud Left Menu API Outlined.png|none|thumb|482x482px|Left menu: &#039;&#039;&#039;APIs &amp;amp; service -&amp;gt; OAuth consent screen&#039;&#039;&#039;]]&lt;br /&gt;
#* If it&#039;s your first time, configure the consent screen with basic app details (organization name, app name, email, etc.).&lt;br /&gt;
#* Once configured, you&#039;ll be redirected to the &#039;&#039;&#039;Google Auth Platform / Overview&#039;&#039;&#039; page.&lt;br /&gt;
# Click &#039;&#039;&#039;Clients&#039;&#039;&#039; in the left menu and then click &amp;quot;&#039;&#039;&#039;+ Create client&amp;quot;&#039;&#039;&#039;.[[File:Google Cloud new client.jpg|none|thumb|525x525px|Creating client option in Clients page]]&lt;br /&gt;
# Choose &#039;&#039;&#039;Application Type: Web Application&#039;&#039;&#039;.&lt;br /&gt;
# Enter a recognizable &#039;&#039;&#039;name&#039;&#039;&#039; (e.g., &#039;&#039;Gcalendar Integration&#039;&#039;).&lt;br /&gt;
# Add the following values:&lt;br /&gt;
#* &#039;&#039;&#039;Authorized JavaScript origins&#039;&#039;&#039;&lt;br /&gt;
#** &amp;lt;code&amp;gt;https://app_platform&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &#039;&#039;&#039;Authorized redirect URIs&#039;&#039;&#039;&lt;br /&gt;
#** &amp;lt;code&amp;gt;https://app_platform/domain/app_name/newToken&amp;lt;/code&amp;gt;[[File:Google Cloud Create OAuth Client ID.jpg|none|thumb|411x411px|Create OAuth client ID inputs]]&lt;br /&gt;
# After creation, copy the generated:&lt;br /&gt;
#* &#039;&#039;&#039;Client ID&#039;&#039;&#039;&lt;br /&gt;
#* &#039;&#039;&#039;Client Secret&#039;&#039;&#039;[[File:Google Cloud Client ID Client Secret.jpg|none|thumb|434x434px|Client credentials available after creating]]&lt;br /&gt;
# Open the &#039;&#039;&#039;Gcalendar Admin App&#039;&#039;&#039; and insert the values in the respective fields and click &#039;&#039;&#039;Update&#039;&#039;&#039; (see [[#Updating Google OAuth Credentials|Update Google OAuth Credentials]] section above).&amp;lt;blockquote&amp;gt;▷ This links the Google authentication flow to the presence system, allowing users to authorize their calendars.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
# On the left menu, go to &#039;&#039;&#039;Data Access&#039;&#039;&#039; under the &#039;&#039;&#039;Google Auth Platform&#039;&#039;&#039; section.&amp;lt;blockquote&amp;gt;◇ This section lists the sensitive scopes (permissions) your app is requesting during OAuth authorization. These are required for accessing user calendars.&amp;lt;/blockquote&amp;gt;[[File:Google Cloud Add or Remove Scopes.png|none|thumb|510x510px|Click &amp;quot;Add or remove scopes&amp;quot; to open the scope selection menu]]&lt;br /&gt;
# Click the blue &#039;&#039;&#039;Add or remove scopes&#039;&#039;&#039; button.&amp;lt;blockquote&amp;gt;◇ A sidebar will open listing all available scopes from enabled APIs. You can search and select the necessary calendar-related scopes for your application.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
# In the sidebar that appears, search for and select the following calendar scopes:&lt;br /&gt;
#* &amp;lt;code&amp;gt;../auth/calendar.events&amp;lt;/code&amp;gt; – View and edit calendar events.&lt;br /&gt;
#* &amp;lt;code&amp;gt;../auth/calendar.events.owned&amp;lt;/code&amp;gt; – Modify events on owned calendars.[[File:Google Cloud Data Access Scopes Correct.png|none|thumb|400x400px|Data Access section showing added calendar scopes]]&amp;lt;blockquote&amp;gt;▷ These scopes must be added to your app for Google to allow access to calendar data through the API. Make sure they match the level of access your app requires.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
Follow the steps below to install the &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; application in your Innovaphone environment.&lt;br /&gt;
&lt;br /&gt;
=== Option 1: Installing via AP Manager App Store (Recommended) ===&lt;br /&gt;
You can install &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; directly through the &#039;&#039;&#039;App Platform Manager&#039;&#039;&#039; (AP Manager) by accessing the App Store:&lt;br /&gt;
&lt;br /&gt;
# Open the &#039;&#039;&#039;AP Manager&#039;&#039;&#039;.&lt;br /&gt;
# Click the yellow &#039;&#039;&#039;App Store&#039;&#039;&#039; button in the top-right corner.&lt;br /&gt;
# Search for &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; in the list.&lt;br /&gt;
# Select the latest version and confirm the download.&lt;br /&gt;
# The app will be automatically installed and ready to configure.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;🛈 This is the easiest and fastest way to deploy the app.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
[[File:Innovaphone MyApps Lab AppStore Button in AP Manager.png|none|thumb|436x436px|AppStore Button in AP Manager outlined]]&lt;br /&gt;
[[File:AP Manager Appstore Interface.png|none|thumb|436x436px|AP Manager Appstore interface]]&lt;br /&gt;
&lt;br /&gt;
=== Option 2: Manual Installation via Upload ===&lt;br /&gt;
If the app is not yet listed in the App Store, follow the steps below:&lt;br /&gt;
&lt;br /&gt;
==== Step 1: Download the App Package ====&lt;br /&gt;
&lt;br /&gt;
# Visit the official Wecom myApps Downloads Portal.&lt;br /&gt;
# Find the &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; app.&lt;br /&gt;
# Download the latest available version compatible with your system architecture.&lt;br /&gt;
[[File:Gcalendar myapps wecom appstore.png|none|thumb|418x418px|Gcalendar on MyApps&#039; Wecom&#039;s App Store]]&lt;br /&gt;
&lt;br /&gt;
==== Step 2: Upload to AP Manager ====&lt;br /&gt;
&lt;br /&gt;
# In &#039;&#039;&#039;AP Manager&#039;&#039;&#039;, click &#039;&#039;&#039;App upload&#039;&#039;&#039; (top right).&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;.app&amp;lt;/code&amp;gt; package you downloaded from the portal.&lt;br /&gt;
# After successful upload, the app will appear in your list and show as &#039;&#039;&#039;Running&#039;&#039;&#039;.&lt;br /&gt;
[[File:App Upload Button on MyApps AP Manager.png|none|thumb|485x485px|App Upload button on AP Manager outlined]]&lt;br /&gt;
[[File:Gcallendar on AP Manager Innovaphone.jpg|none|thumb|490x490px|Gcalendar on AP Manager]]&lt;br /&gt;
&lt;br /&gt;
=== Step 3: Add Application Instance ===&lt;br /&gt;
&lt;br /&gt;
# After uploading the app, click the yellow &#039;&#039;&#039;+ Add&#039;&#039;&#039; button to create an instance of the application.&lt;br /&gt;
# Fill in the required fields:&lt;br /&gt;
#* &#039;&#039;&#039;Name:&#039;&#039;&#039; A recognizable name for the instance.&lt;br /&gt;
#* &#039;&#039;&#039;Domain:&#039;&#039;&#039; The domain for the PBX.&lt;br /&gt;
#* &#039;&#039;&#039;Password:&#039;&#039;&#039; A secure admin password for the app instance.&lt;br /&gt;
#* &#039;&#039;&#039;Webserver path:&#039;&#039;&#039; Optional path (or leave blank).&lt;br /&gt;
#* &#039;&#039;&#039;Database host:&#039;&#039;&#039; Leave empty for local DB or specify IP/DNS if external.&lt;br /&gt;
#* &#039;&#039;&#039;Database name&#039;&#039;&#039; and &#039;&#039;&#039;Database user&#039;&#039;&#039;: Use consistent values for your environment.&lt;br /&gt;
#* &#039;&#039;&#039;Database password:&#039;&#039;&#039; Corresponding DB password.&lt;br /&gt;
# When all values are filled, click &#039;&#039;&#039;Save&#039;&#039;&#039;.&lt;br /&gt;
[[File:AP Manager Gcalendar App Instance Creation Example.png|none|thumb|440x440px|Example of instance creation screen in AP Manager]]&lt;br /&gt;
&lt;br /&gt;
=== Final Step: Registering the App in PBX Manager ===&lt;br /&gt;
&lt;br /&gt;
# Open the &#039;&#039;&#039;PBX Manager&#039;&#039;&#039;.&lt;br /&gt;
# Go to the &#039;&#039;&#039;Apps&#039;&#039;&#039; section.&lt;br /&gt;
# Click &#039;&#039;&#039;Add App&#039;&#039;&#039; and register:&lt;br /&gt;
#* A &#039;&#039;&#039;Users App&#039;&#039;&#039;&lt;br /&gt;
#* An &#039;&#039;&#039;Admin App&#039;&#039;&#039;&lt;br /&gt;
# Assign access rights as needed.&lt;br /&gt;
[[File:PBX Manager Add an App flow - part 1.png|none|thumb|440x440px|PBX Manager Add an App select the app]]&lt;br /&gt;
[[File:Gcallendar PBX Manager Add an App flow - part 2.png|none|thumb|440x440px|PBX Manager Add an App configurations]]&lt;br /&gt;
[[File:Gcallendar on PBX Manager Innovaphone.jpg|none|thumb|441x441px|Gcalendar on PBX Manager configured]]&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⇒ After registration, both apps will appear in MyApps and are ready for use.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Copyright ==&lt;br /&gt;
Copyright information.&lt;br /&gt;
&lt;br /&gt;
== Contact ==&lt;br /&gt;
{|&lt;br /&gt;
| Wecom PORTO ALEGRE - RS&lt;br /&gt;
|-&lt;br /&gt;
| Av. Carlos Gomes, 466 / 401&lt;br /&gt;
|-&lt;br /&gt;
| Boa Vista - CEP 90480-000&lt;br /&gt;
|-&lt;br /&gt;
| Wecom FLORIANÓPOLIS - SC&lt;br /&gt;
|-&lt;br /&gt;
| SC 401, 8600 - Room 7 Corporate Park - Block 2&lt;br /&gt;
|-&lt;br /&gt;
| Santo Antônio de Lisboa - CEP 88050-001&lt;br /&gt;
|-&lt;br /&gt;
| Tel: +55 48 3112.6200&lt;br /&gt;
|-&lt;br /&gt;
| Mail: [mailto:comercial@wecom.com.br comercial@wecom.com.br]&lt;br /&gt;
|-&lt;br /&gt;
| Support: [mailto:suporte@wecom.com.br suporte@wecom.com.br]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
For any questions please refer to [https://wecom.com.br/fale-conosco/ our contact page.]&lt;/div&gt;</summary>
		<author><name>Pablo.montiel</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=File:Gcalendar_icone.png&amp;diff=78958</id>
		<title>File:Gcalendar icone.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=File:Gcalendar_icone.png&amp;diff=78958"/>
		<updated>2026-02-27T17:39:35Z</updated>

		<summary type="html">&lt;p&gt;Pablo.montiel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Gcalendar icone&lt;/div&gt;</summary>
		<author><name>Pablo.montiel</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Howto:Gcalendar_-_Wecom_-_Partner_App&amp;diff=78617</id>
		<title>Howto:Gcalendar - Wecom - Partner App</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Howto:Gcalendar_-_Wecom_-_Partner_App&amp;diff=78617"/>
		<updated>2025-12-08T18:52:56Z</updated>

		<summary type="html">&lt;p&gt;Pablo.montiel: /* Users App */ image changes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FIXME|reason=Work in progress, still incomplete}}&lt;br /&gt;
[[Image:Logo 2 Wecom.png||200px|right]]&lt;br /&gt;
&lt;br /&gt;
== Product Name ==&lt;br /&gt;
[[Image:Wecom Gcallendar Icon.png|100px]]&lt;br /&gt;
Wecom [https://wecom.com.br/ Gcalendar]&lt;br /&gt;
&lt;br /&gt;
== Certification Status ==&lt;br /&gt;
&amp;lt;!--Do not remove comment. Will be added by innovaphone upon document check &amp;amp; app availablity on app store.--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Space dedicated to Gcalendar certification information.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Category ==&lt;br /&gt;
&amp;lt;!--Do not change this section and do not remove comments. Will be set by Innovaphone upon document check.--&amp;gt;&lt;br /&gt;
[[Category:Partner_Apps|{{PAGENAME}}]]&lt;br /&gt;
[[Category:3rdParty CTI and integrations|{{PAGENAME}}]]&lt;br /&gt;
{{Category:3rdParty CTI and integrations}}&lt;br /&gt;
&lt;br /&gt;
== Vendor ==&lt;br /&gt;
[[Image:Logo 2 Wecom.png|150px]]&lt;br /&gt;
&lt;br /&gt;
Wecom are integrators, maintainers, and distributors of unified communications systems.&lt;br /&gt;
Aimed at the corporate market, our focus is on promoting digital transformation for the businesses we advise, presenting the best mobility and collaboration tools available on the market. We are partners with leading brands and distributors in Brazil. With a solid portfolio of clients in a wide range of segments, our activities include consulting, project development, implementation and maintenance of communication systems, with extensive experience in collaboration technologies and advanced technical staff.&lt;br /&gt;
&lt;br /&gt;
[https://wecom.com.br/sobre-nos/ Wecom -About us]&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&#039;&#039;&#039;Gcalendar&#039;&#039;&#039; is a Partner App developed by &#039;&#039;&#039;Wecom&#039;&#039;&#039; to integrate Google Calendar events with the Innovaphone presence system.&lt;br /&gt;
&lt;br /&gt;
The app operates through two components:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Users App&#039;&#039;&#039; – Where the users initiate their account linking process via Google login.&lt;br /&gt;
* &#039;&#039;&#039;Admin App&#039;&#039;&#039; – Allows configuration of the integration with editable fields for Google Client ID and Client Secret, along with a dedicated OAuth authorization URL.&lt;br /&gt;
&lt;br /&gt;
This setup enables real-time status synchronization and supports four languages: Portuguese, English, Spanish, and German.&lt;br /&gt;
&lt;br /&gt;
== Functions ==&lt;br /&gt;
This section provides an overview of each core part of the &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; application. It highlights what actions can be performed, and how to navigate through the available features. Additionally, this section provides step-by-step explanations for each functionality.&lt;br /&gt;
&lt;br /&gt;
=== Users App ===&lt;br /&gt;
The &#039;&#039;&#039;Users App&#039;&#039;&#039; is the interface used by users to link their Google Calendar account to the Innovaphone presence system. It focuses only on enabling the connection between the user and their calendar through Google authentication.&lt;br /&gt;
[[File:Gcalendar user app interface detail.png|none|thumb|404x404px|Users app interface with google account pop-up]]&lt;br /&gt;
&lt;br /&gt;
==== Connecting with Google account ====&lt;br /&gt;
&lt;br /&gt;
# Open the &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; Users App.&lt;br /&gt;
# Click the &#039;&#039;&#039;Connect&#039;&#039;&#039; button.&lt;br /&gt;
# A Google login popup will appear.&lt;br /&gt;
#* This popup allows users to choose or log into a Google account.&lt;br /&gt;
# After selecting an account, the integration process will begin automatically.&lt;br /&gt;
#* Once completed, the account will be linked to the Innovaphone system.&lt;br /&gt;
[[File:Gcallendar Connect Button.png|none|thumb|Connect button]]&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⇒ &#039;&#039;&#039;Note:&#039;&#039;&#039; Before starting the connection process, ensure you&#039;re already logged into the correct Google account in your browser. This helps avoid selecting the wrong account and ensures the integration is completed with the intended calendar.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Viewing Upcoming Meetings ====&lt;br /&gt;
&lt;br /&gt;
On the main screen, users can see a list of their upcoming scheduled meetings.  &lt;br /&gt;
Each meeting is displayed as a card containing:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Title&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Start time&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
By clicking on a meeting card, the user is redirected to the corresponding event inside their Google Calendar.&lt;br /&gt;
[[File:Gcalendar Upcoming Meetings.jpg|none|thumb|392x392px|Upcoming meetings list]]&lt;br /&gt;
&lt;br /&gt;
==== Creating a New Meeting ====&lt;br /&gt;
&lt;br /&gt;
To schedule a new meeting:&lt;br /&gt;
# Click the &#039;&#039;&#039;+&#039;&#039;&#039; button on the main screen.&lt;br /&gt;
# A creation modal will open with the following fields:&lt;br /&gt;
#* &#039;&#039;&#039;Summary&#039;&#039;&#039; – The title of the meeting.&lt;br /&gt;
#* &#039;&#039;&#039;Description&#039;&#039;&#039; – Details or agenda of the meeting.&lt;br /&gt;
#* &#039;&#039;&#039;Location&#039;&#039;&#039; – Where the meeting will occur (physical address or online).&lt;br /&gt;
#* &#039;&#039;&#039;Start time&#039;&#039;&#039; – When the meeting begins.&lt;br /&gt;
#* &#039;&#039;&#039;End time&#039;&#039;&#039; – When the meeting ends.&lt;br /&gt;
#* &#039;&#039;&#039;Time zone&#039;&#039;&#039; – The time zone for the meeting.&lt;br /&gt;
#* &#039;&#039;&#039;Attendees&#039;&#039;&#039; – Email addresses of participants who should receive an invitation.&lt;br /&gt;
#* &#039;&#039;&#039;Add Google Meet&#039;&#039;&#039; – When checked, a Google Meet link is automatically generated and included in the event.&lt;br /&gt;
&lt;br /&gt;
After filling in the required information:&lt;br /&gt;
* Click &#039;&#039;&#039;Save&#039;&#039;&#039; to create the meeting.&lt;br /&gt;
* Click &#039;&#039;&#039;Cancel&#039;&#039;&#039; to close the modal without saving any changes.&lt;br /&gt;
[[File:Gcalendar Create Meeting Modal.jpg|none|thumb|420x420px|Meeting creation modal]]&lt;br /&gt;
&lt;br /&gt;
==== Disconnecting from Google account ====&lt;br /&gt;
&lt;br /&gt;
# Open the &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; Users App.&lt;br /&gt;
# If a Google account is already connected, the &#039;&#039;&#039;Connect&#039;&#039;&#039; button will be replaced by a &#039;&#039;&#039;Disconnect&#039;&#039;&#039; button.&lt;br /&gt;
# Click the &#039;&#039;&#039;Disconnect&#039;&#039;&#039; button to unlink your current Google Calendar account from the Innovaphone presence system.&lt;br /&gt;
# Once disconnected, presence synchronization will be disabled for that user.&lt;br /&gt;
[[File:Gcallendar Disconnect Button Dtl.png|none|thumb|392x392px|Disconnect button]]&lt;br /&gt;
&lt;br /&gt;
=== Admin App ===&lt;br /&gt;
The &#039;&#039;&#039;Admin App&#039;&#039;&#039; provides configuration options required to authorize and manage the Google integration. It is intended for system administrators and enables control over OAuth credentials used for user authentication.&lt;br /&gt;
[[File:Gcallendar Admin App.png|none|thumb|453x453px|Admin app interface]]&lt;br /&gt;
&lt;br /&gt;
==== Updating Google OAuth Credentials ====&lt;br /&gt;
To enable or update the integration between Gcalendar and Google Calendar, you’ll need to provide the correct &#039;&#039;&#039;Client ID&#039;&#039;&#039; and &#039;&#039;&#039;Client Secret&#039;&#039;&#039; obtained from your Google Cloud project.&lt;br /&gt;
&lt;br /&gt;
# Open the &#039;&#039;&#039;Gcalendar Admin App&#039;&#039;&#039;.&lt;br /&gt;
# Locate the fields labeled &#039;&#039;&#039;Google Client ID&#039;&#039;&#039; and &#039;&#039;&#039;Client Secret&#039;&#039;&#039;.&lt;br /&gt;
# Paste the values copied from your Google OAuth Credentials into the respective fields.&lt;br /&gt;
# Click the &#039;&#039;&#039;Update&#039;&#039;&#039; button next to each field to save the changes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⇒ &#039;&#039;&#039;Notes:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Ensure both values are correctly copied and properly formatted.&lt;br /&gt;
* Incorrect credentials will prevent users from authenticating.&lt;br /&gt;
* The Client Secret is sensitive—never share or expose it publicly.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
[[File:Gcallendar Google Client ID Update.png|none|thumb|519x519px|Google Client ID input and update button]]&lt;br /&gt;
[[File:Gcallendar Client Secret Update.png|none|thumb|519x519px|Client Secret input and update button]]&lt;br /&gt;
&lt;br /&gt;
===Multi-PBX ready===&lt;br /&gt;
&amp;lt;!-- Mandatory topic. --&amp;gt; &lt;br /&gt;
&amp;lt;!-- Give test-prooved statement about product usability in Multi-PBX-systems / Master-Slave --&amp;gt;&lt;br /&gt;
&amp;lt;!-- I.e. can the application be operated towards slave-pbxes, by slave-users, special configuration steps, special requirements, ...  --&amp;gt;&lt;br /&gt;
&amp;lt;!-- If applicable, provide hints about required configuration steps below in the chapter Configuration --&amp;gt; &lt;br /&gt;
&lt;br /&gt;
===Cloud ready===&lt;br /&gt;
&amp;lt;!-- Mandatory topic. --&amp;gt; &lt;br /&gt;
&amp;lt;!-- Give test-prooved statement about product usability in Cloud-environments / Hosted PBXes --&amp;gt;&lt;br /&gt;
&amp;lt;!-- I.e. can the application be operated via NAT-boundaries, special configuration steps, special requirements, ...  --&amp;gt;&lt;br /&gt;
&amp;lt;!-- If applicable, provide hints about required configuration steps below in the chapter Configuration --&amp;gt; &lt;br /&gt;
&lt;br /&gt;
===Supported languages===&lt;br /&gt;
&amp;lt;!-- Mandatory topic. --&amp;gt; &lt;br /&gt;
&amp;lt;!-- List the translated languages which the application provides. Comma-separated is sufficient --&amp;gt;&lt;br /&gt;
Portuguese, English, Spanish, German&lt;br /&gt;
&lt;br /&gt;
== Licensing ==&lt;br /&gt;
The &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; application is licensed via the Innovaphone Pricelist.&lt;br /&gt;
&lt;br /&gt;
Currently, it is not yet listed on the official Innovaphone Partner App Licenses page, but it is expected to be included in future updates.&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;License type:&#039;&#039;&#039; Innovaphone Pricelist&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;License model:&#039;&#039;&#039; One license per user&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Listed at:&#039;&#039;&#039; https://www.innovaphone.com/en/services/licenses/partner-apps.html?app=Gcalendar&amp;amp;type=license#gcalendar&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
Before installing and using Gcalendar, ensure your environment meets the following requirements:&lt;br /&gt;
&lt;br /&gt;
==== System Requirements ====&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Innovaphone firmware:&#039;&#039;&#039; Version &amp;lt;code&amp;gt;14r1&amp;lt;/code&amp;gt; or later&lt;br /&gt;
* &#039;&#039;&#039;App platform:&#039;&#039;&#039; Innovaphone &#039;&#039;&#039;myApps&#039;&#039;&#039; system with &#039;&#039;&#039;App Platform&#039;&#039;&#039; active&lt;br /&gt;
* &#039;&#039;&#039;PBX Manager:&#039;&#039;&#039; Required to register and configure the Users and Admin Apps&lt;br /&gt;
&lt;br /&gt;
==== OAuth Setup ====&lt;br /&gt;
&lt;br /&gt;
* A &#039;&#039;&#039;Google Cloud Project&#039;&#039;&#039; with valid &#039;&#039;&#039;OAuth 2.0 credentials&#039;&#039;&#039; (Client ID and Client Secret)&lt;br /&gt;
* The following URIs must be configured in the Google project:&lt;br /&gt;
** &#039;&#039;&#039;Authorized JavaScript origins:&#039;&#039;&#039; &amp;lt;code&amp;gt;https://app_platform&amp;lt;/code&amp;gt;&lt;br /&gt;
** &#039;&#039;&#039;Authorized redirect URI:&#039;&#039;&#039; &amp;lt;code&amp;gt;https://app_platform/domain/app_name/newToken&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Versions ==&lt;br /&gt;
The &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; application follows the release versioning aligned with the Innovaphone platform.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Initial release version:&#039;&#039;&#039; &amp;lt;code&amp;gt;14r1&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Latest available version:&#039;&#039;&#039; &amp;lt;code&amp;gt;2002 final&amp;lt;/code&amp;gt; (as of June 17, 2025)&lt;br /&gt;
* &#039;&#039;&#039;Build number:&#039;&#039;&#039;&amp;lt;code&amp;gt;14A1149 dvl&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Supported architectures:&#039;&#039;&#039; &amp;lt;code&amp;gt;arm&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;x86_64&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;arm64&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⇒ New versions are published and made available through the Wecom App Store.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
=== Google OAuth Setup (Admin Only) ===&lt;br /&gt;
To enable account linking between the Innovaphone presence system and Google Calendar, administrators must configure OAuth 2.0 credentials using the Google Cloud Platform beforehand.&lt;br /&gt;
&lt;br /&gt;
# Go to [https://console.cloud.google.com/ Google Cloud Console].&lt;br /&gt;
# Select or create a &#039;&#039;&#039;Google Cloud Project&#039;&#039;&#039;.&amp;lt;blockquote&amp;gt;◇ This project will host the credentials used by Gcalendar to access the Google Calendar API. We recommend creating a dedicated project for better control and security.&amp;lt;/blockquote&amp;gt;[[File:Google Cloud Select-Create Project.png|none|thumb|425x425px|Google Cloud Console welcome page with select project button outlined (here the project is already selected)]]&amp;lt;blockquote&amp;gt;Clicking the &#039;&#039;&#039;&amp;quot;Select Project&amp;quot;&#039;&#039;&#039; button will open a &#039;&#039;&#039;modal&#039;&#039;&#039; where you can choose or create a project.&amp;lt;/blockquote&amp;gt;[[File:Google Cloud Select Project If Selected.png|none|thumb|353x353px|Project selection modal]]&amp;lt;blockquote&amp;gt;If a project already exists, click on its name from the list to open it. If not, click &#039;&#039;&#039;&amp;quot;New Project&amp;quot;&#039;&#039;&#039; in the top-right corner to create one.&amp;lt;/blockquote&amp;gt;[[File:Google Cloud New Project Page.png|none|thumb|440x440px|New project creation page]]&lt;br /&gt;
# In the top-left corner, click the &#039;&#039;&#039;hamburger menu icon&#039;&#039;&#039; (☰) to expand the left navigation menu.&lt;br /&gt;
#* Before continuing to the OAuth configuration, you need to make sure the Google Calendar API is enabled.&lt;br /&gt;
# From the sidebar, go to &#039;&#039;&#039;APIs &amp;amp; Services &amp;gt; Enabled APIs &amp;amp; services&#039;&#039;&#039;.[[File:Google Cloud Sidebar API Services.png|none|thumb|450x450px|Opening the APIs &amp;amp; Services section to enable the Calendar API]]&lt;br /&gt;
# At the top of the page, click &#039;&#039;&#039;+ Enable APIs and services&#039;&#039;&#039;.&amp;lt;blockquote&amp;gt;Once enabled, it will appear in the list of active APIs under &#039;&#039;&#039;Enabled APIs &amp;amp; Services&#039;&#039;&#039;.If the Google Calendar API is already enabled, you may skip the steps below and proceed directly to the OAuth configuration.&amp;lt;/blockquote&amp;gt;[[File:Google Cloud Enable APIs Services.jpg|none|thumb|450x450px|Enabling API button and viewing the enabled Google Calendar API]]&lt;br /&gt;
# In the API Library, search for: &amp;lt;code&amp;gt;calendar&amp;lt;/code&amp;gt;.&lt;br /&gt;
#* From the results, click on &#039;&#039;&#039;Google Calendar API&#039;&#039;&#039;.[[File:Google Clou APIs Google Calendar Search.jpg|none|thumb|450x450px|Searching for the Google Calendar API in the API Library]]&lt;br /&gt;
# On the API page, click the blue &#039;&#039;&#039;Enable&#039;&#039;&#039; button to activate it.[[File:Google Cloud Enabling Google Calendar.jpg|none|thumb|450x450px|Enabling the Google Calendar API]]&lt;br /&gt;
# Now click the &#039;&#039;&#039;hamburger menu icon&#039;&#039;&#039; (☰) again to return to the sidebar.&lt;br /&gt;
# Navigate to &#039;&#039;&#039;API &amp;amp; Services &amp;gt; OAuth consent screen&#039;&#039;&#039;.[[File:Google Cloud Left Menu API Outlined.png|none|thumb|482x482px|Left menu: &#039;&#039;&#039;APIs &amp;amp; service -&amp;gt; OAuth consent screen&#039;&#039;&#039;]]&lt;br /&gt;
#* If it&#039;s your first time, configure the consent screen with basic app details (organization name, app name, email, etc.).&lt;br /&gt;
#* Once configured, you&#039;ll be redirected to the &#039;&#039;&#039;Google Auth Platform / Overview&#039;&#039;&#039; page.&lt;br /&gt;
# Click &#039;&#039;&#039;Clients&#039;&#039;&#039; in the left menu and then click &amp;quot;&#039;&#039;&#039;+ Create client&amp;quot;&#039;&#039;&#039;.[[File:Google Cloud new client.jpg|none|thumb|525x525px|Creating client option in Clients page]]&lt;br /&gt;
# Choose &#039;&#039;&#039;Application Type: Web Application&#039;&#039;&#039;.&lt;br /&gt;
# Enter a recognizable &#039;&#039;&#039;name&#039;&#039;&#039; (e.g., &#039;&#039;Gcalendar Integration&#039;&#039;).&lt;br /&gt;
# Add the following values:&lt;br /&gt;
#* &#039;&#039;&#039;Authorized JavaScript origins&#039;&#039;&#039;&lt;br /&gt;
#** &amp;lt;code&amp;gt;https://app_platform&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &#039;&#039;&#039;Authorized redirect URIs&#039;&#039;&#039;&lt;br /&gt;
#** &amp;lt;code&amp;gt;https://app_platform/domain/app_name/newToken&amp;lt;/code&amp;gt;[[File:Google Cloud Create OAuth Client ID.jpg|none|thumb|411x411px|Create OAuth client ID inputs]]&lt;br /&gt;
# After creation, copy the generated:&lt;br /&gt;
#* &#039;&#039;&#039;Client ID&#039;&#039;&#039;&lt;br /&gt;
#* &#039;&#039;&#039;Client Secret&#039;&#039;&#039;[[File:Google Cloud Client ID Client Secret.jpg|none|thumb|434x434px|Client credentials available after creating]]&lt;br /&gt;
# Open the &#039;&#039;&#039;Gcalendar Admin App&#039;&#039;&#039; and insert the values in the respective fields and click &#039;&#039;&#039;Update&#039;&#039;&#039; (see [[#Updating Google OAuth Credentials|Update Google OAuth Credentials]] section above).&amp;lt;blockquote&amp;gt;▷ This links the Google authentication flow to the presence system, allowing users to authorize their calendars.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
# On the left menu, go to &#039;&#039;&#039;Data Access&#039;&#039;&#039; under the &#039;&#039;&#039;Google Auth Platform&#039;&#039;&#039; section.&amp;lt;blockquote&amp;gt;◇ This section lists the sensitive scopes (permissions) your app is requesting during OAuth authorization. These are required for accessing user calendars.&amp;lt;/blockquote&amp;gt;[[File:Google Cloud Add or Remove Scopes.png|none|thumb|510x510px|Click &amp;quot;Add or remove scopes&amp;quot; to open the scope selection menu]]&lt;br /&gt;
# Click the blue &#039;&#039;&#039;Add or remove scopes&#039;&#039;&#039; button.&amp;lt;blockquote&amp;gt;◇ A sidebar will open listing all available scopes from enabled APIs. You can search and select the necessary calendar-related scopes for your application.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
# In the sidebar that appears, search for and select the following calendar scopes:&lt;br /&gt;
#* &amp;lt;code&amp;gt;../auth/calendar.events&amp;lt;/code&amp;gt; – View and edit calendar events.&lt;br /&gt;
#* &amp;lt;code&amp;gt;../auth/calendar.events.owned&amp;lt;/code&amp;gt; – Modify events on owned calendars.[[File:Google Cloud Data Access Scopes Correct.png|none|thumb|400x400px|Data Access section showing added calendar scopes]]&amp;lt;blockquote&amp;gt;▷ These scopes must be added to your app for Google to allow access to calendar data through the API. Make sure they match the level of access your app requires.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
Follow the steps below to install the &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; application in your Innovaphone environment.&lt;br /&gt;
&lt;br /&gt;
=== Option 1: Installing via AP Manager App Store (Recommended) ===&lt;br /&gt;
You can install &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; directly through the &#039;&#039;&#039;App Platform Manager&#039;&#039;&#039; (AP Manager) by accessing the App Store:&lt;br /&gt;
&lt;br /&gt;
# Open the &#039;&#039;&#039;AP Manager&#039;&#039;&#039;.&lt;br /&gt;
# Click the yellow &#039;&#039;&#039;App Store&#039;&#039;&#039; button in the top-right corner.&lt;br /&gt;
# Search for &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; in the list.&lt;br /&gt;
# Select the latest version and confirm the download.&lt;br /&gt;
# The app will be automatically installed and ready to configure.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;🛈 This is the easiest and fastest way to deploy the app.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
[[File:Innovaphone MyApps Lab AppStore Button in AP Manager.png|none|thumb|436x436px|AppStore Button in AP Manager outlined]]&lt;br /&gt;
[[File:AP Manager Appstore Interface.png|none|thumb|436x436px|AP Manager Appstore interface]]&lt;br /&gt;
&lt;br /&gt;
=== Option 2: Manual Installation via Upload ===&lt;br /&gt;
If the app is not yet listed in the App Store, follow the steps below:&lt;br /&gt;
&lt;br /&gt;
==== Step 1: Download the App Package ====&lt;br /&gt;
&lt;br /&gt;
# Visit the official Wecom myApps Downloads Portal.&lt;br /&gt;
# Find the &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; app.&lt;br /&gt;
# Download the latest available version compatible with your system architecture.&lt;br /&gt;
[[File:Gcalendar myapps wecom appstore.png|none|thumb|418x418px|Gcalendar on MyApps&#039; Wecom&#039;s App Store]]&lt;br /&gt;
&lt;br /&gt;
==== Step 2: Upload to AP Manager ====&lt;br /&gt;
&lt;br /&gt;
# In &#039;&#039;&#039;AP Manager&#039;&#039;&#039;, click &#039;&#039;&#039;App upload&#039;&#039;&#039; (top right).&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;.app&amp;lt;/code&amp;gt; package you downloaded from the portal.&lt;br /&gt;
# After successful upload, the app will appear in your list and show as &#039;&#039;&#039;Running&#039;&#039;&#039;.&lt;br /&gt;
[[File:App Upload Button on MyApps AP Manager.png|none|thumb|485x485px|App Upload button on AP Manager outlined]]&lt;br /&gt;
[[File:Gcallendar on AP Manager Innovaphone.jpg|none|thumb|490x490px|Gcalendar on AP Manager]]&lt;br /&gt;
&lt;br /&gt;
=== Step 3: Add Application Instance ===&lt;br /&gt;
&lt;br /&gt;
# After uploading the app, click the yellow &#039;&#039;&#039;+ Add&#039;&#039;&#039; button to create an instance of the application.&lt;br /&gt;
# Fill in the required fields:&lt;br /&gt;
#* &#039;&#039;&#039;Name:&#039;&#039;&#039; A recognizable name for the instance.&lt;br /&gt;
#* &#039;&#039;&#039;Domain:&#039;&#039;&#039; The domain for the PBX.&lt;br /&gt;
#* &#039;&#039;&#039;Password:&#039;&#039;&#039; A secure admin password for the app instance.&lt;br /&gt;
#* &#039;&#039;&#039;Webserver path:&#039;&#039;&#039; Optional path (or leave blank).&lt;br /&gt;
#* &#039;&#039;&#039;Database host:&#039;&#039;&#039; Leave empty for local DB or specify IP/DNS if external.&lt;br /&gt;
#* &#039;&#039;&#039;Database name&#039;&#039;&#039; and &#039;&#039;&#039;Database user&#039;&#039;&#039;: Use consistent values for your environment.&lt;br /&gt;
#* &#039;&#039;&#039;Database password:&#039;&#039;&#039; Corresponding DB password.&lt;br /&gt;
# When all values are filled, click &#039;&#039;&#039;Save&#039;&#039;&#039;.&lt;br /&gt;
[[File:AP Manager Gcalendar App Instance Creation Example.png|none|thumb|440x440px|Example of instance creation screen in AP Manager]]&lt;br /&gt;
&lt;br /&gt;
=== Final Step: Registering the App in PBX Manager ===&lt;br /&gt;
&lt;br /&gt;
# Open the &#039;&#039;&#039;PBX Manager&#039;&#039;&#039;.&lt;br /&gt;
# Go to the &#039;&#039;&#039;Apps&#039;&#039;&#039; section.&lt;br /&gt;
# Click &#039;&#039;&#039;Add App&#039;&#039;&#039; and register:&lt;br /&gt;
#* A &#039;&#039;&#039;Users App&#039;&#039;&#039;&lt;br /&gt;
#* An &#039;&#039;&#039;Admin App&#039;&#039;&#039;&lt;br /&gt;
# Assign access rights as needed.&lt;br /&gt;
[[File:PBX Manager Add an App flow - part 1.png|none|thumb|440x440px|PBX Manager Add an App select the app]]&lt;br /&gt;
[[File:Gcallendar PBX Manager Add an App flow - part 2.png|none|thumb|440x440px|PBX Manager Add an App configurations]]&lt;br /&gt;
[[File:Gcallendar on PBX Manager Innovaphone.jpg|none|thumb|441x441px|Gcalendar on PBX Manager configured]]&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⇒ After registration, both apps will appear in MyApps and are ready for use.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Copyright ==&lt;br /&gt;
Copyright information.&lt;br /&gt;
&lt;br /&gt;
== Contact ==&lt;br /&gt;
{|&lt;br /&gt;
| Wecom PORTO ALEGRE - RS&lt;br /&gt;
|-&lt;br /&gt;
| Av. Carlos Gomes, 466 / 401&lt;br /&gt;
|-&lt;br /&gt;
| Boa Vista - CEP 90480-000&lt;br /&gt;
|-&lt;br /&gt;
| Wecom FLORIANÓPOLIS - SC&lt;br /&gt;
|-&lt;br /&gt;
| SC 401, 8600 - Room 7 Corporate Park - Block 2&lt;br /&gt;
|-&lt;br /&gt;
| Santo Antônio de Lisboa - CEP 88050-001&lt;br /&gt;
|-&lt;br /&gt;
| Tel: +55 48 3112.6200&lt;br /&gt;
|-&lt;br /&gt;
| Mail: [mailto:comercial@wecom.com.br comercial@wecom.com.br]&lt;br /&gt;
|-&lt;br /&gt;
| Support: [mailto:suporte@wecom.com.br suporte@wecom.com.br]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
For any questions please refer to [https://wecom.com.br/fale-conosco/ our contact page.]&lt;/div&gt;</summary>
		<author><name>Pablo.montiel</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=File:Gcallendar_Disconnect_Button_Dtl.png&amp;diff=78616</id>
		<title>File:Gcallendar Disconnect Button Dtl.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=File:Gcallendar_Disconnect_Button_Dtl.png&amp;diff=78616"/>
		<updated>2025-12-08T18:52:31Z</updated>

		<summary type="html">&lt;p&gt;Pablo.montiel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Gcallendar Disconnect Button Dtl&lt;/div&gt;</summary>
		<author><name>Pablo.montiel</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=File:Gcalendar_user_app_interface_detail.png&amp;diff=78615</id>
		<title>File:Gcalendar user app interface detail.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=File:Gcalendar_user_app_interface_detail.png&amp;diff=78615"/>
		<updated>2025-12-08T18:51:21Z</updated>

		<summary type="html">&lt;p&gt;Pablo.montiel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Gcalendar user app interface detail&lt;/div&gt;</summary>
		<author><name>Pablo.montiel</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Howto:Gcalendar_-_Wecom_-_Partner_App&amp;diff=78507</id>
		<title>Howto:Gcalendar - Wecom - Partner App</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Howto:Gcalendar_-_Wecom_-_Partner_App&amp;diff=78507"/>
		<updated>2025-11-18T17:11:47Z</updated>

		<summary type="html">&lt;p&gt;Pablo.montiel: /* Creating a New Meeting */ bold fix&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FIXME|reason=Work in progress, still incomplete}}&lt;br /&gt;
[[Image:Logo 2 Wecom.png||200px|right]]&lt;br /&gt;
&lt;br /&gt;
== Product Name ==&lt;br /&gt;
[[Image:Wecom Gcallendar Icon.png|100px]]&lt;br /&gt;
Wecom [https://wecom.com.br/ Gcalendar]&lt;br /&gt;
&lt;br /&gt;
== Certification Status ==&lt;br /&gt;
&amp;lt;!--Do not remove comment. Will be added by innovaphone upon document check &amp;amp; app availablity on app store.--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Space dedicated to Gcalendar certification information.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Category ==&lt;br /&gt;
&amp;lt;!--Do not change this section and do not remove comments. Will be set by Innovaphone upon document check.--&amp;gt;&lt;br /&gt;
[[Category:Partner_Apps|{{PAGENAME}}]]&lt;br /&gt;
[[Category:3rdParty CTI and integrations|{{PAGENAME}}]]&lt;br /&gt;
{{Category:3rdParty CTI and integrations}}&lt;br /&gt;
&lt;br /&gt;
== Vendor ==&lt;br /&gt;
[[Image:Logo 2 Wecom.png|150px]]&lt;br /&gt;
&lt;br /&gt;
Wecom are integrators, maintainers, and distributors of unified communications systems.&lt;br /&gt;
Aimed at the corporate market, our focus is on promoting digital transformation for the businesses we advise, presenting the best mobility and collaboration tools available on the market. We are partners with leading brands and distributors in Brazil. With a solid portfolio of clients in a wide range of segments, our activities include consulting, project development, implementation and maintenance of communication systems, with extensive experience in collaboration technologies and advanced technical staff.&lt;br /&gt;
&lt;br /&gt;
[https://wecom.com.br/sobre-nos/ Wecom -About us]&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&#039;&#039;&#039;Gcalendar&#039;&#039;&#039; is a Partner App developed by &#039;&#039;&#039;Wecom&#039;&#039;&#039; to integrate Google Calendar events with the Innovaphone presence system.&lt;br /&gt;
&lt;br /&gt;
The app operates through two components:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Users App&#039;&#039;&#039; – Where the users initiate their account linking process via Google login.&lt;br /&gt;
* &#039;&#039;&#039;Admin App&#039;&#039;&#039; – Allows configuration of the integration with editable fields for Google Client ID and Client Secret, along with a dedicated OAuth authorization URL.&lt;br /&gt;
&lt;br /&gt;
This setup enables real-time status synchronization and supports four languages: Portuguese, English, Spanish, and German.&lt;br /&gt;
&lt;br /&gt;
== Functions ==&lt;br /&gt;
This section provides an overview of each core part of the &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; application. It highlights what actions can be performed, and how to navigate through the available features. Additionally, this section provides step-by-step explanations for each functionality.&lt;br /&gt;
&lt;br /&gt;
=== Users App ===&lt;br /&gt;
The &#039;&#039;&#039;Users App&#039;&#039;&#039; is the interface used by users to link their Google Calendar account to the Innovaphone presence system. It focuses only on enabling the connection between the user and their calendar through Google authentication.&lt;br /&gt;
[[File:Gcallendar Users App Interface.png|none|thumb|404x404px|Users app interface with google account pop-up]]&lt;br /&gt;
&lt;br /&gt;
==== Connecting with Google account ====&lt;br /&gt;
&lt;br /&gt;
# Open the &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; Users App.&lt;br /&gt;
# Click the &#039;&#039;&#039;Connect&#039;&#039;&#039; button.&lt;br /&gt;
# A Google login popup will appear.&lt;br /&gt;
#* This popup allows users to choose or log into a Google account.&lt;br /&gt;
# After selecting an account, the integration process will begin automatically.&lt;br /&gt;
#* Once completed, the account will be linked to the Innovaphone system.&lt;br /&gt;
[[File:Gcallendar Connect Button.png|none|thumb|Connect button]]&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⇒ &#039;&#039;&#039;Note:&#039;&#039;&#039; Before starting the connection process, ensure you&#039;re already logged into the correct Google account in your browser. This helps avoid selecting the wrong account and ensures the integration is completed with the intended calendar.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Viewing Upcoming Meetings ====&lt;br /&gt;
&lt;br /&gt;
On the main screen, users can see a list of their upcoming scheduled meetings.  &lt;br /&gt;
Each meeting is displayed as a card containing:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Title&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Start time&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
By clicking on a meeting card, the user is redirected to the corresponding event inside their Google Calendar.&lt;br /&gt;
[[File:Gcalendar Upcoming Meetings.jpg|none|thumb|392x392px|Upcoming meetings list]]&lt;br /&gt;
&lt;br /&gt;
==== Creating a New Meeting ====&lt;br /&gt;
&lt;br /&gt;
To schedule a new meeting:&lt;br /&gt;
# Click the &#039;&#039;&#039;+&#039;&#039;&#039; button on the main screen.&lt;br /&gt;
# A creation modal will open with the following fields:&lt;br /&gt;
#* &#039;&#039;&#039;Summary&#039;&#039;&#039; – The title of the meeting.&lt;br /&gt;
#* &#039;&#039;&#039;Description&#039;&#039;&#039; – Details or agenda of the meeting.&lt;br /&gt;
#* &#039;&#039;&#039;Location&#039;&#039;&#039; – Where the meeting will occur (physical address or online).&lt;br /&gt;
#* &#039;&#039;&#039;Start time&#039;&#039;&#039; – When the meeting begins.&lt;br /&gt;
#* &#039;&#039;&#039;End time&#039;&#039;&#039; – When the meeting ends.&lt;br /&gt;
#* &#039;&#039;&#039;Time zone&#039;&#039;&#039; – The time zone for the meeting.&lt;br /&gt;
#* &#039;&#039;&#039;Attendees&#039;&#039;&#039; – Email addresses of participants who should receive an invitation.&lt;br /&gt;
#* &#039;&#039;&#039;Add Google Meet&#039;&#039;&#039; – When checked, a Google Meet link is automatically generated and included in the event.&lt;br /&gt;
&lt;br /&gt;
After filling in the required information:&lt;br /&gt;
* Click &#039;&#039;&#039;Save&#039;&#039;&#039; to create the meeting.&lt;br /&gt;
* Click &#039;&#039;&#039;Cancel&#039;&#039;&#039; to close the modal without saving any changes.&lt;br /&gt;
[[File:Gcalendar Create Meeting Modal.jpg|none|thumb|420x420px|Meeting creation modal]]&lt;br /&gt;
&lt;br /&gt;
==== Disconnecting from Google account ====&lt;br /&gt;
&lt;br /&gt;
# Open the &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; Users App.&lt;br /&gt;
# If a Google account is already connected, the &#039;&#039;&#039;Connect&#039;&#039;&#039; button will be replaced by a &#039;&#039;&#039;Disconnect&#039;&#039;&#039; button.&lt;br /&gt;
# Click the &#039;&#039;&#039;Disconnect&#039;&#039;&#039; button to unlink your current Google Calendar account from the Innovaphone presence system.&lt;br /&gt;
# Once disconnected, presence synchronization will be disabled for that user.&lt;br /&gt;
[[File:Gcallendar Disconnect Button.png|none|thumb|392x392px|Disconnect button]]&lt;br /&gt;
&lt;br /&gt;
=== Admin App ===&lt;br /&gt;
The &#039;&#039;&#039;Admin App&#039;&#039;&#039; provides configuration options required to authorize and manage the Google integration. It is intended for system administrators and enables control over OAuth credentials used for user authentication.&lt;br /&gt;
[[File:Gcallendar Admin App.png|none|thumb|453x453px|Admin app interface]]&lt;br /&gt;
&lt;br /&gt;
==== Updating Google OAuth Credentials ====&lt;br /&gt;
To enable or update the integration between Gcalendar and Google Calendar, you’ll need to provide the correct &#039;&#039;&#039;Client ID&#039;&#039;&#039; and &#039;&#039;&#039;Client Secret&#039;&#039;&#039; obtained from your Google Cloud project.&lt;br /&gt;
&lt;br /&gt;
# Open the &#039;&#039;&#039;Gcalendar Admin App&#039;&#039;&#039;.&lt;br /&gt;
# Locate the fields labeled &#039;&#039;&#039;Google Client ID&#039;&#039;&#039; and &#039;&#039;&#039;Client Secret&#039;&#039;&#039;.&lt;br /&gt;
# Paste the values copied from your Google OAuth Credentials into the respective fields.&lt;br /&gt;
# Click the &#039;&#039;&#039;Update&#039;&#039;&#039; button next to each field to save the changes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⇒ &#039;&#039;&#039;Notes:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Ensure both values are correctly copied and properly formatted.&lt;br /&gt;
* Incorrect credentials will prevent users from authenticating.&lt;br /&gt;
* The Client Secret is sensitive—never share or expose it publicly.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
[[File:Gcallendar Google Client ID Update.png|none|thumb|519x519px|Google Client ID input and update button]]&lt;br /&gt;
[[File:Gcallendar Client Secret Update.png|none|thumb|519x519px|Client Secret input and update button]]&lt;br /&gt;
&lt;br /&gt;
===Multi-PBX ready===&lt;br /&gt;
&amp;lt;!-- Mandatory topic. --&amp;gt; &lt;br /&gt;
&amp;lt;!-- Give test-prooved statement about product usability in Multi-PBX-systems / Master-Slave --&amp;gt;&lt;br /&gt;
&amp;lt;!-- I.e. can the application be operated towards slave-pbxes, by slave-users, special configuration steps, special requirements, ...  --&amp;gt;&lt;br /&gt;
&amp;lt;!-- If applicable, provide hints about required configuration steps below in the chapter Configuration --&amp;gt; &lt;br /&gt;
&lt;br /&gt;
===Cloud ready===&lt;br /&gt;
&amp;lt;!-- Mandatory topic. --&amp;gt; &lt;br /&gt;
&amp;lt;!-- Give test-prooved statement about product usability in Cloud-environments / Hosted PBXes --&amp;gt;&lt;br /&gt;
&amp;lt;!-- I.e. can the application be operated via NAT-boundaries, special configuration steps, special requirements, ...  --&amp;gt;&lt;br /&gt;
&amp;lt;!-- If applicable, provide hints about required configuration steps below in the chapter Configuration --&amp;gt; &lt;br /&gt;
&lt;br /&gt;
===Supported languages===&lt;br /&gt;
&amp;lt;!-- Mandatory topic. --&amp;gt; &lt;br /&gt;
&amp;lt;!-- List the translated languages which the application provides. Comma-separated is sufficient --&amp;gt;&lt;br /&gt;
Portuguese, English, Spanish, German&lt;br /&gt;
&lt;br /&gt;
== Licensing ==&lt;br /&gt;
The &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; application is licensed via the Innovaphone Pricelist.&lt;br /&gt;
&lt;br /&gt;
Currently, it is not yet listed on the official Innovaphone Partner App Licenses page, but it is expected to be included in future updates.&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;License type:&#039;&#039;&#039; Innovaphone Pricelist&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;License model:&#039;&#039;&#039; One license per user&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Listed at:&#039;&#039;&#039; https://www.innovaphone.com/en/services/licenses/partner-apps.html?app=Gcalendar&amp;amp;type=license#gcalendar&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
Before installing and using Gcalendar, ensure your environment meets the following requirements:&lt;br /&gt;
&lt;br /&gt;
==== System Requirements ====&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Innovaphone firmware:&#039;&#039;&#039; Version &amp;lt;code&amp;gt;14r1&amp;lt;/code&amp;gt; or later&lt;br /&gt;
* &#039;&#039;&#039;App platform:&#039;&#039;&#039; Innovaphone &#039;&#039;&#039;myApps&#039;&#039;&#039; system with &#039;&#039;&#039;App Platform&#039;&#039;&#039; active&lt;br /&gt;
* &#039;&#039;&#039;PBX Manager:&#039;&#039;&#039; Required to register and configure the Users and Admin Apps&lt;br /&gt;
&lt;br /&gt;
==== OAuth Setup ====&lt;br /&gt;
&lt;br /&gt;
* A &#039;&#039;&#039;Google Cloud Project&#039;&#039;&#039; with valid &#039;&#039;&#039;OAuth 2.0 credentials&#039;&#039;&#039; (Client ID and Client Secret)&lt;br /&gt;
* The following URIs must be configured in the Google project:&lt;br /&gt;
** &#039;&#039;&#039;Authorized JavaScript origins:&#039;&#039;&#039; &amp;lt;code&amp;gt;https://app_platform&amp;lt;/code&amp;gt;&lt;br /&gt;
** &#039;&#039;&#039;Authorized redirect URI:&#039;&#039;&#039; &amp;lt;code&amp;gt;https://app_platform/domain/app_name/newToken&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Versions ==&lt;br /&gt;
The &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; application follows the release versioning aligned with the Innovaphone platform.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Initial release version:&#039;&#039;&#039; &amp;lt;code&amp;gt;14r1&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Latest available version:&#039;&#039;&#039; &amp;lt;code&amp;gt;2002 final&amp;lt;/code&amp;gt; (as of June 17, 2025)&lt;br /&gt;
* &#039;&#039;&#039;Build number:&#039;&#039;&#039;&amp;lt;code&amp;gt;14A1149 dvl&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Supported architectures:&#039;&#039;&#039; &amp;lt;code&amp;gt;arm&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;x86_64&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;arm64&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⇒ New versions are published and made available through the Wecom App Store.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
=== Google OAuth Setup (Admin Only) ===&lt;br /&gt;
To enable account linking between the Innovaphone presence system and Google Calendar, administrators must configure OAuth 2.0 credentials using the Google Cloud Platform beforehand.&lt;br /&gt;
&lt;br /&gt;
# Go to [https://console.cloud.google.com/ Google Cloud Console].&lt;br /&gt;
# Select or create a &#039;&#039;&#039;Google Cloud Project&#039;&#039;&#039;.&amp;lt;blockquote&amp;gt;◇ This project will host the credentials used by Gcalendar to access the Google Calendar API. We recommend creating a dedicated project for better control and security.&amp;lt;/blockquote&amp;gt;[[File:Google Cloud Select-Create Project.png|none|thumb|425x425px|Google Cloud Console welcome page with select project button outlined (here the project is already selected)]]&amp;lt;blockquote&amp;gt;Clicking the &#039;&#039;&#039;&amp;quot;Select Project&amp;quot;&#039;&#039;&#039; button will open a &#039;&#039;&#039;modal&#039;&#039;&#039; where you can choose or create a project.&amp;lt;/blockquote&amp;gt;[[File:Google Cloud Select Project If Selected.png|none|thumb|353x353px|Project selection modal]]&amp;lt;blockquote&amp;gt;If a project already exists, click on its name from the list to open it. If not, click &#039;&#039;&#039;&amp;quot;New Project&amp;quot;&#039;&#039;&#039; in the top-right corner to create one.&amp;lt;/blockquote&amp;gt;[[File:Google Cloud New Project Page.png|none|thumb|440x440px|New project creation page]]&lt;br /&gt;
# In the top-left corner, click the &#039;&#039;&#039;hamburger menu icon&#039;&#039;&#039; (☰) to expand the left navigation menu.&lt;br /&gt;
#* Before continuing to the OAuth configuration, you need to make sure the Google Calendar API is enabled.&lt;br /&gt;
# From the sidebar, go to &#039;&#039;&#039;APIs &amp;amp; Services &amp;gt; Enabled APIs &amp;amp; services&#039;&#039;&#039;.[[File:Google Cloud Sidebar API Services.png|none|thumb|450x450px|Opening the APIs &amp;amp; Services section to enable the Calendar API]]&lt;br /&gt;
# At the top of the page, click &#039;&#039;&#039;+ Enable APIs and services&#039;&#039;&#039;.&amp;lt;blockquote&amp;gt;Once enabled, it will appear in the list of active APIs under &#039;&#039;&#039;Enabled APIs &amp;amp; Services&#039;&#039;&#039;.If the Google Calendar API is already enabled, you may skip the steps below and proceed directly to the OAuth configuration.&amp;lt;/blockquote&amp;gt;[[File:Google Cloud Enable APIs Services.jpg|none|thumb|450x450px|Enabling API button and viewing the enabled Google Calendar API]]&lt;br /&gt;
# In the API Library, search for: &amp;lt;code&amp;gt;calendar&amp;lt;/code&amp;gt;.&lt;br /&gt;
#* From the results, click on &#039;&#039;&#039;Google Calendar API&#039;&#039;&#039;.[[File:Google Clou APIs Google Calendar Search.jpg|none|thumb|450x450px|Searching for the Google Calendar API in the API Library]]&lt;br /&gt;
# On the API page, click the blue &#039;&#039;&#039;Enable&#039;&#039;&#039; button to activate it.[[File:Google Cloud Enabling Google Calendar.jpg|none|thumb|450x450px|Enabling the Google Calendar API]]&lt;br /&gt;
# Now click the &#039;&#039;&#039;hamburger menu icon&#039;&#039;&#039; (☰) again to return to the sidebar.&lt;br /&gt;
# Navigate to &#039;&#039;&#039;API &amp;amp; Services &amp;gt; OAuth consent screen&#039;&#039;&#039;.[[File:Google Cloud Left Menu API Outlined.png|none|thumb|482x482px|Left menu: &#039;&#039;&#039;APIs &amp;amp; service -&amp;gt; OAuth consent screen&#039;&#039;&#039;]]&lt;br /&gt;
#* If it&#039;s your first time, configure the consent screen with basic app details (organization name, app name, email, etc.).&lt;br /&gt;
#* Once configured, you&#039;ll be redirected to the &#039;&#039;&#039;Google Auth Platform / Overview&#039;&#039;&#039; page.&lt;br /&gt;
# Click &#039;&#039;&#039;Clients&#039;&#039;&#039; in the left menu and then click &amp;quot;&#039;&#039;&#039;+ Create client&amp;quot;&#039;&#039;&#039;.[[File:Google Cloud new client.jpg|none|thumb|525x525px|Creating client option in Clients page]]&lt;br /&gt;
# Choose &#039;&#039;&#039;Application Type: Web Application&#039;&#039;&#039;.&lt;br /&gt;
# Enter a recognizable &#039;&#039;&#039;name&#039;&#039;&#039; (e.g., &#039;&#039;Gcalendar Integration&#039;&#039;).&lt;br /&gt;
# Add the following values:&lt;br /&gt;
#* &#039;&#039;&#039;Authorized JavaScript origins&#039;&#039;&#039;&lt;br /&gt;
#** &amp;lt;code&amp;gt;https://app_platform&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &#039;&#039;&#039;Authorized redirect URIs&#039;&#039;&#039;&lt;br /&gt;
#** &amp;lt;code&amp;gt;https://app_platform/domain/app_name/newToken&amp;lt;/code&amp;gt;[[File:Google Cloud Create OAuth Client ID.jpg|none|thumb|411x411px|Create OAuth client ID inputs]]&lt;br /&gt;
# After creation, copy the generated:&lt;br /&gt;
#* &#039;&#039;&#039;Client ID&#039;&#039;&#039;&lt;br /&gt;
#* &#039;&#039;&#039;Client Secret&#039;&#039;&#039;[[File:Google Cloud Client ID Client Secret.jpg|none|thumb|434x434px|Client credentials available after creating]]&lt;br /&gt;
# Open the &#039;&#039;&#039;Gcalendar Admin App&#039;&#039;&#039; and insert the values in the respective fields and click &#039;&#039;&#039;Update&#039;&#039;&#039; (see [[#Updating Google OAuth Credentials|Update Google OAuth Credentials]] section above).&amp;lt;blockquote&amp;gt;▷ This links the Google authentication flow to the presence system, allowing users to authorize their calendars.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
# On the left menu, go to &#039;&#039;&#039;Data Access&#039;&#039;&#039; under the &#039;&#039;&#039;Google Auth Platform&#039;&#039;&#039; section.&amp;lt;blockquote&amp;gt;◇ This section lists the sensitive scopes (permissions) your app is requesting during OAuth authorization. These are required for accessing user calendars.&amp;lt;/blockquote&amp;gt;[[File:Google Cloud Add or Remove Scopes.png|none|thumb|510x510px|Click &amp;quot;Add or remove scopes&amp;quot; to open the scope selection menu]]&lt;br /&gt;
# Click the blue &#039;&#039;&#039;Add or remove scopes&#039;&#039;&#039; button.&amp;lt;blockquote&amp;gt;◇ A sidebar will open listing all available scopes from enabled APIs. You can search and select the necessary calendar-related scopes for your application.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
# In the sidebar that appears, search for and select the following calendar scopes:&lt;br /&gt;
#* &amp;lt;code&amp;gt;../auth/calendar.events&amp;lt;/code&amp;gt; – View and edit calendar events.&lt;br /&gt;
#* &amp;lt;code&amp;gt;../auth/calendar.events.owned&amp;lt;/code&amp;gt; – Modify events on owned calendars.[[File:Google Cloud Data Access Scopes Correct.png|none|thumb|400x400px|Data Access section showing added calendar scopes]]&amp;lt;blockquote&amp;gt;▷ These scopes must be added to your app for Google to allow access to calendar data through the API. Make sure they match the level of access your app requires.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
Follow the steps below to install the &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; application in your Innovaphone environment.&lt;br /&gt;
&lt;br /&gt;
=== Option 1: Installing via AP Manager App Store (Recommended) ===&lt;br /&gt;
You can install &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; directly through the &#039;&#039;&#039;App Platform Manager&#039;&#039;&#039; (AP Manager) by accessing the App Store:&lt;br /&gt;
&lt;br /&gt;
# Open the &#039;&#039;&#039;AP Manager&#039;&#039;&#039;.&lt;br /&gt;
# Click the yellow &#039;&#039;&#039;App Store&#039;&#039;&#039; button in the top-right corner.&lt;br /&gt;
# Search for &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; in the list.&lt;br /&gt;
# Select the latest version and confirm the download.&lt;br /&gt;
# The app will be automatically installed and ready to configure.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;🛈 This is the easiest and fastest way to deploy the app.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
[[File:Innovaphone MyApps Lab AppStore Button in AP Manager.png|none|thumb|436x436px|AppStore Button in AP Manager outlined]]&lt;br /&gt;
[[File:AP Manager Appstore Interface.png|none|thumb|436x436px|AP Manager Appstore interface]]&lt;br /&gt;
&lt;br /&gt;
=== Option 2: Manual Installation via Upload ===&lt;br /&gt;
If the app is not yet listed in the App Store, follow the steps below:&lt;br /&gt;
&lt;br /&gt;
==== Step 1: Download the App Package ====&lt;br /&gt;
&lt;br /&gt;
# Visit the official Wecom myApps Downloads Portal.&lt;br /&gt;
# Find the &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; app.&lt;br /&gt;
# Download the latest available version compatible with your system architecture.&lt;br /&gt;
[[File:Gcalendar myapps wecom appstore.png|none|thumb|418x418px|Gcalendar on MyApps&#039; Wecom&#039;s App Store]]&lt;br /&gt;
&lt;br /&gt;
==== Step 2: Upload to AP Manager ====&lt;br /&gt;
&lt;br /&gt;
# In &#039;&#039;&#039;AP Manager&#039;&#039;&#039;, click &#039;&#039;&#039;App upload&#039;&#039;&#039; (top right).&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;.app&amp;lt;/code&amp;gt; package you downloaded from the portal.&lt;br /&gt;
# After successful upload, the app will appear in your list and show as &#039;&#039;&#039;Running&#039;&#039;&#039;.&lt;br /&gt;
[[File:App Upload Button on MyApps AP Manager.png|none|thumb|485x485px|App Upload button on AP Manager outlined]]&lt;br /&gt;
[[File:Gcallendar on AP Manager Innovaphone.jpg|none|thumb|490x490px|Gcalendar on AP Manager]]&lt;br /&gt;
&lt;br /&gt;
=== Step 3: Add Application Instance ===&lt;br /&gt;
&lt;br /&gt;
# After uploading the app, click the yellow &#039;&#039;&#039;+ Add&#039;&#039;&#039; button to create an instance of the application.&lt;br /&gt;
# Fill in the required fields:&lt;br /&gt;
#* &#039;&#039;&#039;Name:&#039;&#039;&#039; A recognizable name for the instance.&lt;br /&gt;
#* &#039;&#039;&#039;Domain:&#039;&#039;&#039; The domain for the PBX.&lt;br /&gt;
#* &#039;&#039;&#039;Password:&#039;&#039;&#039; A secure admin password for the app instance.&lt;br /&gt;
#* &#039;&#039;&#039;Webserver path:&#039;&#039;&#039; Optional path (or leave blank).&lt;br /&gt;
#* &#039;&#039;&#039;Database host:&#039;&#039;&#039; Leave empty for local DB or specify IP/DNS if external.&lt;br /&gt;
#* &#039;&#039;&#039;Database name&#039;&#039;&#039; and &#039;&#039;&#039;Database user&#039;&#039;&#039;: Use consistent values for your environment.&lt;br /&gt;
#* &#039;&#039;&#039;Database password:&#039;&#039;&#039; Corresponding DB password.&lt;br /&gt;
# When all values are filled, click &#039;&#039;&#039;Save&#039;&#039;&#039;.&lt;br /&gt;
[[File:AP Manager Gcalendar App Instance Creation Example.png|none|thumb|440x440px|Example of instance creation screen in AP Manager]]&lt;br /&gt;
&lt;br /&gt;
=== Final Step: Registering the App in PBX Manager ===&lt;br /&gt;
&lt;br /&gt;
# Open the &#039;&#039;&#039;PBX Manager&#039;&#039;&#039;.&lt;br /&gt;
# Go to the &#039;&#039;&#039;Apps&#039;&#039;&#039; section.&lt;br /&gt;
# Click &#039;&#039;&#039;Add App&#039;&#039;&#039; and register:&lt;br /&gt;
#* A &#039;&#039;&#039;Users App&#039;&#039;&#039;&lt;br /&gt;
#* An &#039;&#039;&#039;Admin App&#039;&#039;&#039;&lt;br /&gt;
# Assign access rights as needed.&lt;br /&gt;
[[File:PBX Manager Add an App flow - part 1.png|none|thumb|440x440px|PBX Manager Add an App select the app]]&lt;br /&gt;
[[File:Gcallendar PBX Manager Add an App flow - part 2.png|none|thumb|440x440px|PBX Manager Add an App configurations]]&lt;br /&gt;
[[File:Gcallendar on PBX Manager Innovaphone.jpg|none|thumb|441x441px|Gcalendar on PBX Manager configured]]&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⇒ After registration, both apps will appear in MyApps and are ready for use.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Copyright ==&lt;br /&gt;
Copyright information.&lt;br /&gt;
&lt;br /&gt;
== Contact ==&lt;br /&gt;
{|&lt;br /&gt;
| Wecom PORTO ALEGRE - RS&lt;br /&gt;
|-&lt;br /&gt;
| Av. Carlos Gomes, 466 / 401&lt;br /&gt;
|-&lt;br /&gt;
| Boa Vista - CEP 90480-000&lt;br /&gt;
|-&lt;br /&gt;
| Wecom FLORIANÓPOLIS - SC&lt;br /&gt;
|-&lt;br /&gt;
| SC 401, 8600 - Room 7 Corporate Park - Block 2&lt;br /&gt;
|-&lt;br /&gt;
| Santo Antônio de Lisboa - CEP 88050-001&lt;br /&gt;
|-&lt;br /&gt;
| Tel: +55 48 3112.6200&lt;br /&gt;
|-&lt;br /&gt;
| Mail: [mailto:comercial@wecom.com.br comercial@wecom.com.br]&lt;br /&gt;
|-&lt;br /&gt;
| Support: [mailto:suporte@wecom.com.br suporte@wecom.com.br]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
For any questions please refer to [https://wecom.com.br/fale-conosco/ our contact page.]&lt;/div&gt;</summary>
		<author><name>Pablo.montiel</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Howto:Gcalendar_-_Wecom_-_Partner_App&amp;diff=78505</id>
		<title>Howto:Gcalendar - Wecom - Partner App</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Howto:Gcalendar_-_Wecom_-_Partner_App&amp;diff=78505"/>
		<updated>2025-11-18T17:11:05Z</updated>

		<summary type="html">&lt;p&gt;Pablo.montiel: /* Viewing Upcoming Meetings */ fix&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FIXME|reason=Work in progress, still incomplete}}&lt;br /&gt;
[[Image:Logo 2 Wecom.png||200px|right]]&lt;br /&gt;
&lt;br /&gt;
== Product Name ==&lt;br /&gt;
[[Image:Wecom Gcallendar Icon.png|100px]]&lt;br /&gt;
Wecom [https://wecom.com.br/ Gcalendar]&lt;br /&gt;
&lt;br /&gt;
== Certification Status ==&lt;br /&gt;
&amp;lt;!--Do not remove comment. Will be added by innovaphone upon document check &amp;amp; app availablity on app store.--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Space dedicated to Gcalendar certification information.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Category ==&lt;br /&gt;
&amp;lt;!--Do not change this section and do not remove comments. Will be set by Innovaphone upon document check.--&amp;gt;&lt;br /&gt;
[[Category:Partner_Apps|{{PAGENAME}}]]&lt;br /&gt;
[[Category:3rdParty CTI and integrations|{{PAGENAME}}]]&lt;br /&gt;
{{Category:3rdParty CTI and integrations}}&lt;br /&gt;
&lt;br /&gt;
== Vendor ==&lt;br /&gt;
[[Image:Logo 2 Wecom.png|150px]]&lt;br /&gt;
&lt;br /&gt;
Wecom are integrators, maintainers, and distributors of unified communications systems.&lt;br /&gt;
Aimed at the corporate market, our focus is on promoting digital transformation for the businesses we advise, presenting the best mobility and collaboration tools available on the market. We are partners with leading brands and distributors in Brazil. With a solid portfolio of clients in a wide range of segments, our activities include consulting, project development, implementation and maintenance of communication systems, with extensive experience in collaboration technologies and advanced technical staff.&lt;br /&gt;
&lt;br /&gt;
[https://wecom.com.br/sobre-nos/ Wecom -About us]&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&#039;&#039;&#039;Gcalendar&#039;&#039;&#039; is a Partner App developed by &#039;&#039;&#039;Wecom&#039;&#039;&#039; to integrate Google Calendar events with the Innovaphone presence system.&lt;br /&gt;
&lt;br /&gt;
The app operates through two components:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Users App&#039;&#039;&#039; – Where the users initiate their account linking process via Google login.&lt;br /&gt;
* &#039;&#039;&#039;Admin App&#039;&#039;&#039; – Allows configuration of the integration with editable fields for Google Client ID and Client Secret, along with a dedicated OAuth authorization URL.&lt;br /&gt;
&lt;br /&gt;
This setup enables real-time status synchronization and supports four languages: Portuguese, English, Spanish, and German.&lt;br /&gt;
&lt;br /&gt;
== Functions ==&lt;br /&gt;
This section provides an overview of each core part of the &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; application. It highlights what actions can be performed, and how to navigate through the available features. Additionally, this section provides step-by-step explanations for each functionality.&lt;br /&gt;
&lt;br /&gt;
=== Users App ===&lt;br /&gt;
The &#039;&#039;&#039;Users App&#039;&#039;&#039; is the interface used by users to link their Google Calendar account to the Innovaphone presence system. It focuses only on enabling the connection between the user and their calendar through Google authentication.&lt;br /&gt;
[[File:Gcallendar Users App Interface.png|none|thumb|404x404px|Users app interface with google account pop-up]]&lt;br /&gt;
&lt;br /&gt;
==== Connecting with Google account ====&lt;br /&gt;
&lt;br /&gt;
# Open the &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; Users App.&lt;br /&gt;
# Click the &#039;&#039;&#039;Connect&#039;&#039;&#039; button.&lt;br /&gt;
# A Google login popup will appear.&lt;br /&gt;
#* This popup allows users to choose or log into a Google account.&lt;br /&gt;
# After selecting an account, the integration process will begin automatically.&lt;br /&gt;
#* Once completed, the account will be linked to the Innovaphone system.&lt;br /&gt;
[[File:Gcallendar Connect Button.png|none|thumb|Connect button]]&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⇒ &#039;&#039;&#039;Note:&#039;&#039;&#039; Before starting the connection process, ensure you&#039;re already logged into the correct Google account in your browser. This helps avoid selecting the wrong account and ensures the integration is completed with the intended calendar.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Viewing Upcoming Meetings ====&lt;br /&gt;
&lt;br /&gt;
On the main screen, users can see a list of their upcoming scheduled meetings.  &lt;br /&gt;
Each meeting is displayed as a card containing:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Title&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Start time&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
By clicking on a meeting card, the user is redirected to the corresponding event inside their Google Calendar.&lt;br /&gt;
[[File:Gcalendar Upcoming Meetings.jpg|none|thumb|392x392px|Upcoming meetings list]]&lt;br /&gt;
&lt;br /&gt;
==== Creating a New Meeting ====&lt;br /&gt;
&lt;br /&gt;
To schedule a new meeting:&lt;br /&gt;
# Click the &#039;&#039;&#039;+&#039;&#039;&#039; button on the main screen.&lt;br /&gt;
# A creation modal will open with the following fields:&lt;br /&gt;
#* &#039;&#039;&#039;Summary&#039;&#039;&#039; – The title of the meeting.&lt;br /&gt;
#* &#039;&#039;&#039;Description&#039;&#039;&#039; – Details or agenda of the meeting.&lt;br /&gt;
#* &#039;&#039;&#039;Location&#039;&#039;&#039; – Where the meeting will occur (physical address or online).&lt;br /&gt;
#* &#039;&#039;&#039;Start time&#039;&#039;&#039; – When the meeting begins.&lt;br /&gt;
#* &#039;&#039;&#039;End time&#039;&#039;&#039; – When the meeting ends.&lt;br /&gt;
#* &#039;&#039;&#039;Time zone&#039;&#039;&#039; – The time zone for the meeting.&lt;br /&gt;
#* &#039;&#039;&#039;Attendees&#039;&#039;&#039; – Email addresses of participants who should receive an invitation.&lt;br /&gt;
#* &#039;&#039;&#039;Add Google Meet&#039;&#039;&#039; – When checked, a Google Meet link is automatically generated and included in the event.&lt;br /&gt;
&lt;br /&gt;
After filling in the required information:&lt;br /&gt;
* Click **Save** to create the meeting.&lt;br /&gt;
* Click **Cancel** to close the modal without saving any changes.&lt;br /&gt;
[[File:Gcalendar Create Meeting Modal.jpg|none|thumb|420x420px|Meeting creation modal]]&lt;br /&gt;
&lt;br /&gt;
==== Disconnecting from Google account ====&lt;br /&gt;
&lt;br /&gt;
# Open the &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; Users App.&lt;br /&gt;
# If a Google account is already connected, the &#039;&#039;&#039;Connect&#039;&#039;&#039; button will be replaced by a &#039;&#039;&#039;Disconnect&#039;&#039;&#039; button.&lt;br /&gt;
# Click the &#039;&#039;&#039;Disconnect&#039;&#039;&#039; button to unlink your current Google Calendar account from the Innovaphone presence system.&lt;br /&gt;
# Once disconnected, presence synchronization will be disabled for that user.&lt;br /&gt;
[[File:Gcallendar Disconnect Button.png|none|thumb|392x392px|Disconnect button]]&lt;br /&gt;
&lt;br /&gt;
=== Admin App ===&lt;br /&gt;
The &#039;&#039;&#039;Admin App&#039;&#039;&#039; provides configuration options required to authorize and manage the Google integration. It is intended for system administrators and enables control over OAuth credentials used for user authentication.&lt;br /&gt;
[[File:Gcallendar Admin App.png|none|thumb|453x453px|Admin app interface]]&lt;br /&gt;
&lt;br /&gt;
==== Updating Google OAuth Credentials ====&lt;br /&gt;
To enable or update the integration between Gcalendar and Google Calendar, you’ll need to provide the correct &#039;&#039;&#039;Client ID&#039;&#039;&#039; and &#039;&#039;&#039;Client Secret&#039;&#039;&#039; obtained from your Google Cloud project.&lt;br /&gt;
&lt;br /&gt;
# Open the &#039;&#039;&#039;Gcalendar Admin App&#039;&#039;&#039;.&lt;br /&gt;
# Locate the fields labeled &#039;&#039;&#039;Google Client ID&#039;&#039;&#039; and &#039;&#039;&#039;Client Secret&#039;&#039;&#039;.&lt;br /&gt;
# Paste the values copied from your Google OAuth Credentials into the respective fields.&lt;br /&gt;
# Click the &#039;&#039;&#039;Update&#039;&#039;&#039; button next to each field to save the changes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⇒ &#039;&#039;&#039;Notes:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Ensure both values are correctly copied and properly formatted.&lt;br /&gt;
* Incorrect credentials will prevent users from authenticating.&lt;br /&gt;
* The Client Secret is sensitive—never share or expose it publicly.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
[[File:Gcallendar Google Client ID Update.png|none|thumb|519x519px|Google Client ID input and update button]]&lt;br /&gt;
[[File:Gcallendar Client Secret Update.png|none|thumb|519x519px|Client Secret input and update button]]&lt;br /&gt;
&lt;br /&gt;
===Multi-PBX ready===&lt;br /&gt;
&amp;lt;!-- Mandatory topic. --&amp;gt; &lt;br /&gt;
&amp;lt;!-- Give test-prooved statement about product usability in Multi-PBX-systems / Master-Slave --&amp;gt;&lt;br /&gt;
&amp;lt;!-- I.e. can the application be operated towards slave-pbxes, by slave-users, special configuration steps, special requirements, ...  --&amp;gt;&lt;br /&gt;
&amp;lt;!-- If applicable, provide hints about required configuration steps below in the chapter Configuration --&amp;gt; &lt;br /&gt;
&lt;br /&gt;
===Cloud ready===&lt;br /&gt;
&amp;lt;!-- Mandatory topic. --&amp;gt; &lt;br /&gt;
&amp;lt;!-- Give test-prooved statement about product usability in Cloud-environments / Hosted PBXes --&amp;gt;&lt;br /&gt;
&amp;lt;!-- I.e. can the application be operated via NAT-boundaries, special configuration steps, special requirements, ...  --&amp;gt;&lt;br /&gt;
&amp;lt;!-- If applicable, provide hints about required configuration steps below in the chapter Configuration --&amp;gt; &lt;br /&gt;
&lt;br /&gt;
===Supported languages===&lt;br /&gt;
&amp;lt;!-- Mandatory topic. --&amp;gt; &lt;br /&gt;
&amp;lt;!-- List the translated languages which the application provides. Comma-separated is sufficient --&amp;gt;&lt;br /&gt;
Portuguese, English, Spanish, German&lt;br /&gt;
&lt;br /&gt;
== Licensing ==&lt;br /&gt;
The &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; application is licensed via the Innovaphone Pricelist.&lt;br /&gt;
&lt;br /&gt;
Currently, it is not yet listed on the official Innovaphone Partner App Licenses page, but it is expected to be included in future updates.&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;License type:&#039;&#039;&#039; Innovaphone Pricelist&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;License model:&#039;&#039;&#039; One license per user&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Listed at:&#039;&#039;&#039; https://www.innovaphone.com/en/services/licenses/partner-apps.html?app=Gcalendar&amp;amp;type=license#gcalendar&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
Before installing and using Gcalendar, ensure your environment meets the following requirements:&lt;br /&gt;
&lt;br /&gt;
==== System Requirements ====&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Innovaphone firmware:&#039;&#039;&#039; Version &amp;lt;code&amp;gt;14r1&amp;lt;/code&amp;gt; or later&lt;br /&gt;
* &#039;&#039;&#039;App platform:&#039;&#039;&#039; Innovaphone &#039;&#039;&#039;myApps&#039;&#039;&#039; system with &#039;&#039;&#039;App Platform&#039;&#039;&#039; active&lt;br /&gt;
* &#039;&#039;&#039;PBX Manager:&#039;&#039;&#039; Required to register and configure the Users and Admin Apps&lt;br /&gt;
&lt;br /&gt;
==== OAuth Setup ====&lt;br /&gt;
&lt;br /&gt;
* A &#039;&#039;&#039;Google Cloud Project&#039;&#039;&#039; with valid &#039;&#039;&#039;OAuth 2.0 credentials&#039;&#039;&#039; (Client ID and Client Secret)&lt;br /&gt;
* The following URIs must be configured in the Google project:&lt;br /&gt;
** &#039;&#039;&#039;Authorized JavaScript origins:&#039;&#039;&#039; &amp;lt;code&amp;gt;https://app_platform&amp;lt;/code&amp;gt;&lt;br /&gt;
** &#039;&#039;&#039;Authorized redirect URI:&#039;&#039;&#039; &amp;lt;code&amp;gt;https://app_platform/domain/app_name/newToken&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Versions ==&lt;br /&gt;
The &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; application follows the release versioning aligned with the Innovaphone platform.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Initial release version:&#039;&#039;&#039; &amp;lt;code&amp;gt;14r1&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Latest available version:&#039;&#039;&#039; &amp;lt;code&amp;gt;2002 final&amp;lt;/code&amp;gt; (as of June 17, 2025)&lt;br /&gt;
* &#039;&#039;&#039;Build number:&#039;&#039;&#039;&amp;lt;code&amp;gt;14A1149 dvl&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Supported architectures:&#039;&#039;&#039; &amp;lt;code&amp;gt;arm&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;x86_64&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;arm64&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⇒ New versions are published and made available through the Wecom App Store.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
=== Google OAuth Setup (Admin Only) ===&lt;br /&gt;
To enable account linking between the Innovaphone presence system and Google Calendar, administrators must configure OAuth 2.0 credentials using the Google Cloud Platform beforehand.&lt;br /&gt;
&lt;br /&gt;
# Go to [https://console.cloud.google.com/ Google Cloud Console].&lt;br /&gt;
# Select or create a &#039;&#039;&#039;Google Cloud Project&#039;&#039;&#039;.&amp;lt;blockquote&amp;gt;◇ This project will host the credentials used by Gcalendar to access the Google Calendar API. We recommend creating a dedicated project for better control and security.&amp;lt;/blockquote&amp;gt;[[File:Google Cloud Select-Create Project.png|none|thumb|425x425px|Google Cloud Console welcome page with select project button outlined (here the project is already selected)]]&amp;lt;blockquote&amp;gt;Clicking the &#039;&#039;&#039;&amp;quot;Select Project&amp;quot;&#039;&#039;&#039; button will open a &#039;&#039;&#039;modal&#039;&#039;&#039; where you can choose or create a project.&amp;lt;/blockquote&amp;gt;[[File:Google Cloud Select Project If Selected.png|none|thumb|353x353px|Project selection modal]]&amp;lt;blockquote&amp;gt;If a project already exists, click on its name from the list to open it. If not, click &#039;&#039;&#039;&amp;quot;New Project&amp;quot;&#039;&#039;&#039; in the top-right corner to create one.&amp;lt;/blockquote&amp;gt;[[File:Google Cloud New Project Page.png|none|thumb|440x440px|New project creation page]]&lt;br /&gt;
# In the top-left corner, click the &#039;&#039;&#039;hamburger menu icon&#039;&#039;&#039; (☰) to expand the left navigation menu.&lt;br /&gt;
#* Before continuing to the OAuth configuration, you need to make sure the Google Calendar API is enabled.&lt;br /&gt;
# From the sidebar, go to &#039;&#039;&#039;APIs &amp;amp; Services &amp;gt; Enabled APIs &amp;amp; services&#039;&#039;&#039;.[[File:Google Cloud Sidebar API Services.png|none|thumb|450x450px|Opening the APIs &amp;amp; Services section to enable the Calendar API]]&lt;br /&gt;
# At the top of the page, click &#039;&#039;&#039;+ Enable APIs and services&#039;&#039;&#039;.&amp;lt;blockquote&amp;gt;Once enabled, it will appear in the list of active APIs under &#039;&#039;&#039;Enabled APIs &amp;amp; Services&#039;&#039;&#039;.If the Google Calendar API is already enabled, you may skip the steps below and proceed directly to the OAuth configuration.&amp;lt;/blockquote&amp;gt;[[File:Google Cloud Enable APIs Services.jpg|none|thumb|450x450px|Enabling API button and viewing the enabled Google Calendar API]]&lt;br /&gt;
# In the API Library, search for: &amp;lt;code&amp;gt;calendar&amp;lt;/code&amp;gt;.&lt;br /&gt;
#* From the results, click on &#039;&#039;&#039;Google Calendar API&#039;&#039;&#039;.[[File:Google Clou APIs Google Calendar Search.jpg|none|thumb|450x450px|Searching for the Google Calendar API in the API Library]]&lt;br /&gt;
# On the API page, click the blue &#039;&#039;&#039;Enable&#039;&#039;&#039; button to activate it.[[File:Google Cloud Enabling Google Calendar.jpg|none|thumb|450x450px|Enabling the Google Calendar API]]&lt;br /&gt;
# Now click the &#039;&#039;&#039;hamburger menu icon&#039;&#039;&#039; (☰) again to return to the sidebar.&lt;br /&gt;
# Navigate to &#039;&#039;&#039;API &amp;amp; Services &amp;gt; OAuth consent screen&#039;&#039;&#039;.[[File:Google Cloud Left Menu API Outlined.png|none|thumb|482x482px|Left menu: &#039;&#039;&#039;APIs &amp;amp; service -&amp;gt; OAuth consent screen&#039;&#039;&#039;]]&lt;br /&gt;
#* If it&#039;s your first time, configure the consent screen with basic app details (organization name, app name, email, etc.).&lt;br /&gt;
#* Once configured, you&#039;ll be redirected to the &#039;&#039;&#039;Google Auth Platform / Overview&#039;&#039;&#039; page.&lt;br /&gt;
# Click &#039;&#039;&#039;Clients&#039;&#039;&#039; in the left menu and then click &amp;quot;&#039;&#039;&#039;+ Create client&amp;quot;&#039;&#039;&#039;.[[File:Google Cloud new client.jpg|none|thumb|525x525px|Creating client option in Clients page]]&lt;br /&gt;
# Choose &#039;&#039;&#039;Application Type: Web Application&#039;&#039;&#039;.&lt;br /&gt;
# Enter a recognizable &#039;&#039;&#039;name&#039;&#039;&#039; (e.g., &#039;&#039;Gcalendar Integration&#039;&#039;).&lt;br /&gt;
# Add the following values:&lt;br /&gt;
#* &#039;&#039;&#039;Authorized JavaScript origins&#039;&#039;&#039;&lt;br /&gt;
#** &amp;lt;code&amp;gt;https://app_platform&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &#039;&#039;&#039;Authorized redirect URIs&#039;&#039;&#039;&lt;br /&gt;
#** &amp;lt;code&amp;gt;https://app_platform/domain/app_name/newToken&amp;lt;/code&amp;gt;[[File:Google Cloud Create OAuth Client ID.jpg|none|thumb|411x411px|Create OAuth client ID inputs]]&lt;br /&gt;
# After creation, copy the generated:&lt;br /&gt;
#* &#039;&#039;&#039;Client ID&#039;&#039;&#039;&lt;br /&gt;
#* &#039;&#039;&#039;Client Secret&#039;&#039;&#039;[[File:Google Cloud Client ID Client Secret.jpg|none|thumb|434x434px|Client credentials available after creating]]&lt;br /&gt;
# Open the &#039;&#039;&#039;Gcalendar Admin App&#039;&#039;&#039; and insert the values in the respective fields and click &#039;&#039;&#039;Update&#039;&#039;&#039; (see [[#Updating Google OAuth Credentials|Update Google OAuth Credentials]] section above).&amp;lt;blockquote&amp;gt;▷ This links the Google authentication flow to the presence system, allowing users to authorize their calendars.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
# On the left menu, go to &#039;&#039;&#039;Data Access&#039;&#039;&#039; under the &#039;&#039;&#039;Google Auth Platform&#039;&#039;&#039; section.&amp;lt;blockquote&amp;gt;◇ This section lists the sensitive scopes (permissions) your app is requesting during OAuth authorization. These are required for accessing user calendars.&amp;lt;/blockquote&amp;gt;[[File:Google Cloud Add or Remove Scopes.png|none|thumb|510x510px|Click &amp;quot;Add or remove scopes&amp;quot; to open the scope selection menu]]&lt;br /&gt;
# Click the blue &#039;&#039;&#039;Add or remove scopes&#039;&#039;&#039; button.&amp;lt;blockquote&amp;gt;◇ A sidebar will open listing all available scopes from enabled APIs. You can search and select the necessary calendar-related scopes for your application.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
# In the sidebar that appears, search for and select the following calendar scopes:&lt;br /&gt;
#* &amp;lt;code&amp;gt;../auth/calendar.events&amp;lt;/code&amp;gt; – View and edit calendar events.&lt;br /&gt;
#* &amp;lt;code&amp;gt;../auth/calendar.events.owned&amp;lt;/code&amp;gt; – Modify events on owned calendars.[[File:Google Cloud Data Access Scopes Correct.png|none|thumb|400x400px|Data Access section showing added calendar scopes]]&amp;lt;blockquote&amp;gt;▷ These scopes must be added to your app for Google to allow access to calendar data through the API. Make sure they match the level of access your app requires.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
Follow the steps below to install the &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; application in your Innovaphone environment.&lt;br /&gt;
&lt;br /&gt;
=== Option 1: Installing via AP Manager App Store (Recommended) ===&lt;br /&gt;
You can install &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; directly through the &#039;&#039;&#039;App Platform Manager&#039;&#039;&#039; (AP Manager) by accessing the App Store:&lt;br /&gt;
&lt;br /&gt;
# Open the &#039;&#039;&#039;AP Manager&#039;&#039;&#039;.&lt;br /&gt;
# Click the yellow &#039;&#039;&#039;App Store&#039;&#039;&#039; button in the top-right corner.&lt;br /&gt;
# Search for &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; in the list.&lt;br /&gt;
# Select the latest version and confirm the download.&lt;br /&gt;
# The app will be automatically installed and ready to configure.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;🛈 This is the easiest and fastest way to deploy the app.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
[[File:Innovaphone MyApps Lab AppStore Button in AP Manager.png|none|thumb|436x436px|AppStore Button in AP Manager outlined]]&lt;br /&gt;
[[File:AP Manager Appstore Interface.png|none|thumb|436x436px|AP Manager Appstore interface]]&lt;br /&gt;
&lt;br /&gt;
=== Option 2: Manual Installation via Upload ===&lt;br /&gt;
If the app is not yet listed in the App Store, follow the steps below:&lt;br /&gt;
&lt;br /&gt;
==== Step 1: Download the App Package ====&lt;br /&gt;
&lt;br /&gt;
# Visit the official Wecom myApps Downloads Portal.&lt;br /&gt;
# Find the &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; app.&lt;br /&gt;
# Download the latest available version compatible with your system architecture.&lt;br /&gt;
[[File:Gcalendar myapps wecom appstore.png|none|thumb|418x418px|Gcalendar on MyApps&#039; Wecom&#039;s App Store]]&lt;br /&gt;
&lt;br /&gt;
==== Step 2: Upload to AP Manager ====&lt;br /&gt;
&lt;br /&gt;
# In &#039;&#039;&#039;AP Manager&#039;&#039;&#039;, click &#039;&#039;&#039;App upload&#039;&#039;&#039; (top right).&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;.app&amp;lt;/code&amp;gt; package you downloaded from the portal.&lt;br /&gt;
# After successful upload, the app will appear in your list and show as &#039;&#039;&#039;Running&#039;&#039;&#039;.&lt;br /&gt;
[[File:App Upload Button on MyApps AP Manager.png|none|thumb|485x485px|App Upload button on AP Manager outlined]]&lt;br /&gt;
[[File:Gcallendar on AP Manager Innovaphone.jpg|none|thumb|490x490px|Gcalendar on AP Manager]]&lt;br /&gt;
&lt;br /&gt;
=== Step 3: Add Application Instance ===&lt;br /&gt;
&lt;br /&gt;
# After uploading the app, click the yellow &#039;&#039;&#039;+ Add&#039;&#039;&#039; button to create an instance of the application.&lt;br /&gt;
# Fill in the required fields:&lt;br /&gt;
#* &#039;&#039;&#039;Name:&#039;&#039;&#039; A recognizable name for the instance.&lt;br /&gt;
#* &#039;&#039;&#039;Domain:&#039;&#039;&#039; The domain for the PBX.&lt;br /&gt;
#* &#039;&#039;&#039;Password:&#039;&#039;&#039; A secure admin password for the app instance.&lt;br /&gt;
#* &#039;&#039;&#039;Webserver path:&#039;&#039;&#039; Optional path (or leave blank).&lt;br /&gt;
#* &#039;&#039;&#039;Database host:&#039;&#039;&#039; Leave empty for local DB or specify IP/DNS if external.&lt;br /&gt;
#* &#039;&#039;&#039;Database name&#039;&#039;&#039; and &#039;&#039;&#039;Database user&#039;&#039;&#039;: Use consistent values for your environment.&lt;br /&gt;
#* &#039;&#039;&#039;Database password:&#039;&#039;&#039; Corresponding DB password.&lt;br /&gt;
# When all values are filled, click &#039;&#039;&#039;Save&#039;&#039;&#039;.&lt;br /&gt;
[[File:AP Manager Gcalendar App Instance Creation Example.png|none|thumb|440x440px|Example of instance creation screen in AP Manager]]&lt;br /&gt;
&lt;br /&gt;
=== Final Step: Registering the App in PBX Manager ===&lt;br /&gt;
&lt;br /&gt;
# Open the &#039;&#039;&#039;PBX Manager&#039;&#039;&#039;.&lt;br /&gt;
# Go to the &#039;&#039;&#039;Apps&#039;&#039;&#039; section.&lt;br /&gt;
# Click &#039;&#039;&#039;Add App&#039;&#039;&#039; and register:&lt;br /&gt;
#* A &#039;&#039;&#039;Users App&#039;&#039;&#039;&lt;br /&gt;
#* An &#039;&#039;&#039;Admin App&#039;&#039;&#039;&lt;br /&gt;
# Assign access rights as needed.&lt;br /&gt;
[[File:PBX Manager Add an App flow - part 1.png|none|thumb|440x440px|PBX Manager Add an App select the app]]&lt;br /&gt;
[[File:Gcallendar PBX Manager Add an App flow - part 2.png|none|thumb|440x440px|PBX Manager Add an App configurations]]&lt;br /&gt;
[[File:Gcallendar on PBX Manager Innovaphone.jpg|none|thumb|441x441px|Gcalendar on PBX Manager configured]]&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⇒ After registration, both apps will appear in MyApps and are ready for use.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Copyright ==&lt;br /&gt;
Copyright information.&lt;br /&gt;
&lt;br /&gt;
== Contact ==&lt;br /&gt;
{|&lt;br /&gt;
| Wecom PORTO ALEGRE - RS&lt;br /&gt;
|-&lt;br /&gt;
| Av. Carlos Gomes, 466 / 401&lt;br /&gt;
|-&lt;br /&gt;
| Boa Vista - CEP 90480-000&lt;br /&gt;
|-&lt;br /&gt;
| Wecom FLORIANÓPOLIS - SC&lt;br /&gt;
|-&lt;br /&gt;
| SC 401, 8600 - Room 7 Corporate Park - Block 2&lt;br /&gt;
|-&lt;br /&gt;
| Santo Antônio de Lisboa - CEP 88050-001&lt;br /&gt;
|-&lt;br /&gt;
| Tel: +55 48 3112.6200&lt;br /&gt;
|-&lt;br /&gt;
| Mail: [mailto:comercial@wecom.com.br comercial@wecom.com.br]&lt;br /&gt;
|-&lt;br /&gt;
| Support: [mailto:suporte@wecom.com.br suporte@wecom.com.br]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
For any questions please refer to [https://wecom.com.br/fale-conosco/ our contact page.]&lt;/div&gt;</summary>
		<author><name>Pablo.montiel</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Howto:Gcalendar_-_Wecom_-_Partner_App&amp;diff=78503</id>
		<title>Howto:Gcalendar - Wecom - Partner App</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Howto:Gcalendar_-_Wecom_-_Partner_App&amp;diff=78503"/>
		<updated>2025-11-18T17:10:24Z</updated>

		<summary type="html">&lt;p&gt;Pablo.montiel: Addition of two extra functionalities&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FIXME|reason=Work in progress, still incomplete}}&lt;br /&gt;
[[Image:Logo 2 Wecom.png||200px|right]]&lt;br /&gt;
&lt;br /&gt;
== Product Name ==&lt;br /&gt;
[[Image:Wecom Gcallendar Icon.png|100px]]&lt;br /&gt;
Wecom [https://wecom.com.br/ Gcalendar]&lt;br /&gt;
&lt;br /&gt;
== Certification Status ==&lt;br /&gt;
&amp;lt;!--Do not remove comment. Will be added by innovaphone upon document check &amp;amp; app availablity on app store.--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Space dedicated to Gcalendar certification information.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Category ==&lt;br /&gt;
&amp;lt;!--Do not change this section and do not remove comments. Will be set by Innovaphone upon document check.--&amp;gt;&lt;br /&gt;
[[Category:Partner_Apps|{{PAGENAME}}]]&lt;br /&gt;
[[Category:3rdParty CTI and integrations|{{PAGENAME}}]]&lt;br /&gt;
{{Category:3rdParty CTI and integrations}}&lt;br /&gt;
&lt;br /&gt;
== Vendor ==&lt;br /&gt;
[[Image:Logo 2 Wecom.png|150px]]&lt;br /&gt;
&lt;br /&gt;
Wecom are integrators, maintainers, and distributors of unified communications systems.&lt;br /&gt;
Aimed at the corporate market, our focus is on promoting digital transformation for the businesses we advise, presenting the best mobility and collaboration tools available on the market. We are partners with leading brands and distributors in Brazil. With a solid portfolio of clients in a wide range of segments, our activities include consulting, project development, implementation and maintenance of communication systems, with extensive experience in collaboration technologies and advanced technical staff.&lt;br /&gt;
&lt;br /&gt;
[https://wecom.com.br/sobre-nos/ Wecom -About us]&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&#039;&#039;&#039;Gcalendar&#039;&#039;&#039; is a Partner App developed by &#039;&#039;&#039;Wecom&#039;&#039;&#039; to integrate Google Calendar events with the Innovaphone presence system.&lt;br /&gt;
&lt;br /&gt;
The app operates through two components:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Users App&#039;&#039;&#039; – Where the users initiate their account linking process via Google login.&lt;br /&gt;
* &#039;&#039;&#039;Admin App&#039;&#039;&#039; – Allows configuration of the integration with editable fields for Google Client ID and Client Secret, along with a dedicated OAuth authorization URL.&lt;br /&gt;
&lt;br /&gt;
This setup enables real-time status synchronization and supports four languages: Portuguese, English, Spanish, and German.&lt;br /&gt;
&lt;br /&gt;
== Functions ==&lt;br /&gt;
This section provides an overview of each core part of the &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; application. It highlights what actions can be performed, and how to navigate through the available features. Additionally, this section provides step-by-step explanations for each functionality.&lt;br /&gt;
&lt;br /&gt;
=== Users App ===&lt;br /&gt;
The &#039;&#039;&#039;Users App&#039;&#039;&#039; is the interface used by users to link their Google Calendar account to the Innovaphone presence system. It focuses only on enabling the connection between the user and their calendar through Google authentication.&lt;br /&gt;
[[File:Gcallendar Users App Interface.png|none|thumb|404x404px|Users app interface with google account pop-up]]&lt;br /&gt;
&lt;br /&gt;
==== Connecting with Google account ====&lt;br /&gt;
&lt;br /&gt;
# Open the &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; Users App.&lt;br /&gt;
# Click the &#039;&#039;&#039;Connect&#039;&#039;&#039; button.&lt;br /&gt;
# A Google login popup will appear.&lt;br /&gt;
#* This popup allows users to choose or log into a Google account.&lt;br /&gt;
# After selecting an account, the integration process will begin automatically.&lt;br /&gt;
#* Once completed, the account will be linked to the Innovaphone system.&lt;br /&gt;
[[File:Gcallendar Connect Button.png|none|thumb|Connect button]]&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⇒ &#039;&#039;&#039;Note:&#039;&#039;&#039; Before starting the connection process, ensure you&#039;re already logged into the correct Google account in your browser. This helps avoid selecting the wrong account and ensures the integration is completed with the intended calendar.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Viewing Upcoming Meetings ====&lt;br /&gt;
&lt;br /&gt;
On the main screen, users can see a list of their upcoming scheduled meetings.  &lt;br /&gt;
Each meeting is displayed as a card containing:&lt;br /&gt;
&lt;br /&gt;
* **Title**  &lt;br /&gt;
* **Start time**&lt;br /&gt;
&lt;br /&gt;
By clicking on a meeting card, the user is redirected to the corresponding event inside their Google Calendar.&lt;br /&gt;
[[File:Gcalendar Upcoming Meetings.jpg|none|thumb|392x392px|Upcoming meetings list]]&lt;br /&gt;
&lt;br /&gt;
==== Creating a New Meeting ====&lt;br /&gt;
&lt;br /&gt;
To schedule a new meeting:&lt;br /&gt;
# Click the &#039;&#039;&#039;+&#039;&#039;&#039; button on the main screen.&lt;br /&gt;
# A creation modal will open with the following fields:&lt;br /&gt;
#* &#039;&#039;&#039;Summary&#039;&#039;&#039; – The title of the meeting.&lt;br /&gt;
#* &#039;&#039;&#039;Description&#039;&#039;&#039; – Details or agenda of the meeting.&lt;br /&gt;
#* &#039;&#039;&#039;Location&#039;&#039;&#039; – Where the meeting will occur (physical address or online).&lt;br /&gt;
#* &#039;&#039;&#039;Start time&#039;&#039;&#039; – When the meeting begins.&lt;br /&gt;
#* &#039;&#039;&#039;End time&#039;&#039;&#039; – When the meeting ends.&lt;br /&gt;
#* &#039;&#039;&#039;Time zone&#039;&#039;&#039; – The time zone for the meeting.&lt;br /&gt;
#* &#039;&#039;&#039;Attendees&#039;&#039;&#039; – Email addresses of participants who should receive an invitation.&lt;br /&gt;
#* &#039;&#039;&#039;Add Google Meet&#039;&#039;&#039; – When checked, a Google Meet link is automatically generated and included in the event.&lt;br /&gt;
&lt;br /&gt;
After filling in the required information:&lt;br /&gt;
* Click **Save** to create the meeting.&lt;br /&gt;
* Click **Cancel** to close the modal without saving any changes.&lt;br /&gt;
[[File:Gcalendar Create Meeting Modal.jpg|none|thumb|420x420px|Meeting creation modal]]&lt;br /&gt;
&lt;br /&gt;
==== Disconnecting from Google account ====&lt;br /&gt;
&lt;br /&gt;
# Open the &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; Users App.&lt;br /&gt;
# If a Google account is already connected, the &#039;&#039;&#039;Connect&#039;&#039;&#039; button will be replaced by a &#039;&#039;&#039;Disconnect&#039;&#039;&#039; button.&lt;br /&gt;
# Click the &#039;&#039;&#039;Disconnect&#039;&#039;&#039; button to unlink your current Google Calendar account from the Innovaphone presence system.&lt;br /&gt;
# Once disconnected, presence synchronization will be disabled for that user.&lt;br /&gt;
[[File:Gcallendar Disconnect Button.png|none|thumb|392x392px|Disconnect button]]&lt;br /&gt;
&lt;br /&gt;
=== Admin App ===&lt;br /&gt;
The &#039;&#039;&#039;Admin App&#039;&#039;&#039; provides configuration options required to authorize and manage the Google integration. It is intended for system administrators and enables control over OAuth credentials used for user authentication.&lt;br /&gt;
[[File:Gcallendar Admin App.png|none|thumb|453x453px|Admin app interface]]&lt;br /&gt;
&lt;br /&gt;
==== Updating Google OAuth Credentials ====&lt;br /&gt;
To enable or update the integration between Gcalendar and Google Calendar, you’ll need to provide the correct &#039;&#039;&#039;Client ID&#039;&#039;&#039; and &#039;&#039;&#039;Client Secret&#039;&#039;&#039; obtained from your Google Cloud project.&lt;br /&gt;
&lt;br /&gt;
# Open the &#039;&#039;&#039;Gcalendar Admin App&#039;&#039;&#039;.&lt;br /&gt;
# Locate the fields labeled &#039;&#039;&#039;Google Client ID&#039;&#039;&#039; and &#039;&#039;&#039;Client Secret&#039;&#039;&#039;.&lt;br /&gt;
# Paste the values copied from your Google OAuth Credentials into the respective fields.&lt;br /&gt;
# Click the &#039;&#039;&#039;Update&#039;&#039;&#039; button next to each field to save the changes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⇒ &#039;&#039;&#039;Notes:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Ensure both values are correctly copied and properly formatted.&lt;br /&gt;
* Incorrect credentials will prevent users from authenticating.&lt;br /&gt;
* The Client Secret is sensitive—never share or expose it publicly.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
[[File:Gcallendar Google Client ID Update.png|none|thumb|519x519px|Google Client ID input and update button]]&lt;br /&gt;
[[File:Gcallendar Client Secret Update.png|none|thumb|519x519px|Client Secret input and update button]]&lt;br /&gt;
&lt;br /&gt;
===Multi-PBX ready===&lt;br /&gt;
&amp;lt;!-- Mandatory topic. --&amp;gt; &lt;br /&gt;
&amp;lt;!-- Give test-prooved statement about product usability in Multi-PBX-systems / Master-Slave --&amp;gt;&lt;br /&gt;
&amp;lt;!-- I.e. can the application be operated towards slave-pbxes, by slave-users, special configuration steps, special requirements, ...  --&amp;gt;&lt;br /&gt;
&amp;lt;!-- If applicable, provide hints about required configuration steps below in the chapter Configuration --&amp;gt; &lt;br /&gt;
&lt;br /&gt;
===Cloud ready===&lt;br /&gt;
&amp;lt;!-- Mandatory topic. --&amp;gt; &lt;br /&gt;
&amp;lt;!-- Give test-prooved statement about product usability in Cloud-environments / Hosted PBXes --&amp;gt;&lt;br /&gt;
&amp;lt;!-- I.e. can the application be operated via NAT-boundaries, special configuration steps, special requirements, ...  --&amp;gt;&lt;br /&gt;
&amp;lt;!-- If applicable, provide hints about required configuration steps below in the chapter Configuration --&amp;gt; &lt;br /&gt;
&lt;br /&gt;
===Supported languages===&lt;br /&gt;
&amp;lt;!-- Mandatory topic. --&amp;gt; &lt;br /&gt;
&amp;lt;!-- List the translated languages which the application provides. Comma-separated is sufficient --&amp;gt;&lt;br /&gt;
Portuguese, English, Spanish, German&lt;br /&gt;
&lt;br /&gt;
== Licensing ==&lt;br /&gt;
The &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; application is licensed via the Innovaphone Pricelist.&lt;br /&gt;
&lt;br /&gt;
Currently, it is not yet listed on the official Innovaphone Partner App Licenses page, but it is expected to be included in future updates.&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;License type:&#039;&#039;&#039; Innovaphone Pricelist&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;License model:&#039;&#039;&#039; One license per user&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Listed at:&#039;&#039;&#039; https://www.innovaphone.com/en/services/licenses/partner-apps.html?app=Gcalendar&amp;amp;type=license#gcalendar&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
Before installing and using Gcalendar, ensure your environment meets the following requirements:&lt;br /&gt;
&lt;br /&gt;
==== System Requirements ====&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Innovaphone firmware:&#039;&#039;&#039; Version &amp;lt;code&amp;gt;14r1&amp;lt;/code&amp;gt; or later&lt;br /&gt;
* &#039;&#039;&#039;App platform:&#039;&#039;&#039; Innovaphone &#039;&#039;&#039;myApps&#039;&#039;&#039; system with &#039;&#039;&#039;App Platform&#039;&#039;&#039; active&lt;br /&gt;
* &#039;&#039;&#039;PBX Manager:&#039;&#039;&#039; Required to register and configure the Users and Admin Apps&lt;br /&gt;
&lt;br /&gt;
==== OAuth Setup ====&lt;br /&gt;
&lt;br /&gt;
* A &#039;&#039;&#039;Google Cloud Project&#039;&#039;&#039; with valid &#039;&#039;&#039;OAuth 2.0 credentials&#039;&#039;&#039; (Client ID and Client Secret)&lt;br /&gt;
* The following URIs must be configured in the Google project:&lt;br /&gt;
** &#039;&#039;&#039;Authorized JavaScript origins:&#039;&#039;&#039; &amp;lt;code&amp;gt;https://app_platform&amp;lt;/code&amp;gt;&lt;br /&gt;
** &#039;&#039;&#039;Authorized redirect URI:&#039;&#039;&#039; &amp;lt;code&amp;gt;https://app_platform/domain/app_name/newToken&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Versions ==&lt;br /&gt;
The &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; application follows the release versioning aligned with the Innovaphone platform.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Initial release version:&#039;&#039;&#039; &amp;lt;code&amp;gt;14r1&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Latest available version:&#039;&#039;&#039; &amp;lt;code&amp;gt;2002 final&amp;lt;/code&amp;gt; (as of June 17, 2025)&lt;br /&gt;
* &#039;&#039;&#039;Build number:&#039;&#039;&#039;&amp;lt;code&amp;gt;14A1149 dvl&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Supported architectures:&#039;&#039;&#039; &amp;lt;code&amp;gt;arm&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;x86_64&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;arm64&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⇒ New versions are published and made available through the Wecom App Store.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
=== Google OAuth Setup (Admin Only) ===&lt;br /&gt;
To enable account linking between the Innovaphone presence system and Google Calendar, administrators must configure OAuth 2.0 credentials using the Google Cloud Platform beforehand.&lt;br /&gt;
&lt;br /&gt;
# Go to [https://console.cloud.google.com/ Google Cloud Console].&lt;br /&gt;
# Select or create a &#039;&#039;&#039;Google Cloud Project&#039;&#039;&#039;.&amp;lt;blockquote&amp;gt;◇ This project will host the credentials used by Gcalendar to access the Google Calendar API. We recommend creating a dedicated project for better control and security.&amp;lt;/blockquote&amp;gt;[[File:Google Cloud Select-Create Project.png|none|thumb|425x425px|Google Cloud Console welcome page with select project button outlined (here the project is already selected)]]&amp;lt;blockquote&amp;gt;Clicking the &#039;&#039;&#039;&amp;quot;Select Project&amp;quot;&#039;&#039;&#039; button will open a &#039;&#039;&#039;modal&#039;&#039;&#039; where you can choose or create a project.&amp;lt;/blockquote&amp;gt;[[File:Google Cloud Select Project If Selected.png|none|thumb|353x353px|Project selection modal]]&amp;lt;blockquote&amp;gt;If a project already exists, click on its name from the list to open it. If not, click &#039;&#039;&#039;&amp;quot;New Project&amp;quot;&#039;&#039;&#039; in the top-right corner to create one.&amp;lt;/blockquote&amp;gt;[[File:Google Cloud New Project Page.png|none|thumb|440x440px|New project creation page]]&lt;br /&gt;
# In the top-left corner, click the &#039;&#039;&#039;hamburger menu icon&#039;&#039;&#039; (☰) to expand the left navigation menu.&lt;br /&gt;
#* Before continuing to the OAuth configuration, you need to make sure the Google Calendar API is enabled.&lt;br /&gt;
# From the sidebar, go to &#039;&#039;&#039;APIs &amp;amp; Services &amp;gt; Enabled APIs &amp;amp; services&#039;&#039;&#039;.[[File:Google Cloud Sidebar API Services.png|none|thumb|450x450px|Opening the APIs &amp;amp; Services section to enable the Calendar API]]&lt;br /&gt;
# At the top of the page, click &#039;&#039;&#039;+ Enable APIs and services&#039;&#039;&#039;.&amp;lt;blockquote&amp;gt;Once enabled, it will appear in the list of active APIs under &#039;&#039;&#039;Enabled APIs &amp;amp; Services&#039;&#039;&#039;.If the Google Calendar API is already enabled, you may skip the steps below and proceed directly to the OAuth configuration.&amp;lt;/blockquote&amp;gt;[[File:Google Cloud Enable APIs Services.jpg|none|thumb|450x450px|Enabling API button and viewing the enabled Google Calendar API]]&lt;br /&gt;
# In the API Library, search for: &amp;lt;code&amp;gt;calendar&amp;lt;/code&amp;gt;.&lt;br /&gt;
#* From the results, click on &#039;&#039;&#039;Google Calendar API&#039;&#039;&#039;.[[File:Google Clou APIs Google Calendar Search.jpg|none|thumb|450x450px|Searching for the Google Calendar API in the API Library]]&lt;br /&gt;
# On the API page, click the blue &#039;&#039;&#039;Enable&#039;&#039;&#039; button to activate it.[[File:Google Cloud Enabling Google Calendar.jpg|none|thumb|450x450px|Enabling the Google Calendar API]]&lt;br /&gt;
# Now click the &#039;&#039;&#039;hamburger menu icon&#039;&#039;&#039; (☰) again to return to the sidebar.&lt;br /&gt;
# Navigate to &#039;&#039;&#039;API &amp;amp; Services &amp;gt; OAuth consent screen&#039;&#039;&#039;.[[File:Google Cloud Left Menu API Outlined.png|none|thumb|482x482px|Left menu: &#039;&#039;&#039;APIs &amp;amp; service -&amp;gt; OAuth consent screen&#039;&#039;&#039;]]&lt;br /&gt;
#* If it&#039;s your first time, configure the consent screen with basic app details (organization name, app name, email, etc.).&lt;br /&gt;
#* Once configured, you&#039;ll be redirected to the &#039;&#039;&#039;Google Auth Platform / Overview&#039;&#039;&#039; page.&lt;br /&gt;
# Click &#039;&#039;&#039;Clients&#039;&#039;&#039; in the left menu and then click &amp;quot;&#039;&#039;&#039;+ Create client&amp;quot;&#039;&#039;&#039;.[[File:Google Cloud new client.jpg|none|thumb|525x525px|Creating client option in Clients page]]&lt;br /&gt;
# Choose &#039;&#039;&#039;Application Type: Web Application&#039;&#039;&#039;.&lt;br /&gt;
# Enter a recognizable &#039;&#039;&#039;name&#039;&#039;&#039; (e.g., &#039;&#039;Gcalendar Integration&#039;&#039;).&lt;br /&gt;
# Add the following values:&lt;br /&gt;
#* &#039;&#039;&#039;Authorized JavaScript origins&#039;&#039;&#039;&lt;br /&gt;
#** &amp;lt;code&amp;gt;https://app_platform&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &#039;&#039;&#039;Authorized redirect URIs&#039;&#039;&#039;&lt;br /&gt;
#** &amp;lt;code&amp;gt;https://app_platform/domain/app_name/newToken&amp;lt;/code&amp;gt;[[File:Google Cloud Create OAuth Client ID.jpg|none|thumb|411x411px|Create OAuth client ID inputs]]&lt;br /&gt;
# After creation, copy the generated:&lt;br /&gt;
#* &#039;&#039;&#039;Client ID&#039;&#039;&#039;&lt;br /&gt;
#* &#039;&#039;&#039;Client Secret&#039;&#039;&#039;[[File:Google Cloud Client ID Client Secret.jpg|none|thumb|434x434px|Client credentials available after creating]]&lt;br /&gt;
# Open the &#039;&#039;&#039;Gcalendar Admin App&#039;&#039;&#039; and insert the values in the respective fields and click &#039;&#039;&#039;Update&#039;&#039;&#039; (see [[#Updating Google OAuth Credentials|Update Google OAuth Credentials]] section above).&amp;lt;blockquote&amp;gt;▷ This links the Google authentication flow to the presence system, allowing users to authorize their calendars.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
# On the left menu, go to &#039;&#039;&#039;Data Access&#039;&#039;&#039; under the &#039;&#039;&#039;Google Auth Platform&#039;&#039;&#039; section.&amp;lt;blockquote&amp;gt;◇ This section lists the sensitive scopes (permissions) your app is requesting during OAuth authorization. These are required for accessing user calendars.&amp;lt;/blockquote&amp;gt;[[File:Google Cloud Add or Remove Scopes.png|none|thumb|510x510px|Click &amp;quot;Add or remove scopes&amp;quot; to open the scope selection menu]]&lt;br /&gt;
# Click the blue &#039;&#039;&#039;Add or remove scopes&#039;&#039;&#039; button.&amp;lt;blockquote&amp;gt;◇ A sidebar will open listing all available scopes from enabled APIs. You can search and select the necessary calendar-related scopes for your application.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
# In the sidebar that appears, search for and select the following calendar scopes:&lt;br /&gt;
#* &amp;lt;code&amp;gt;../auth/calendar.events&amp;lt;/code&amp;gt; – View and edit calendar events.&lt;br /&gt;
#* &amp;lt;code&amp;gt;../auth/calendar.events.owned&amp;lt;/code&amp;gt; – Modify events on owned calendars.[[File:Google Cloud Data Access Scopes Correct.png|none|thumb|400x400px|Data Access section showing added calendar scopes]]&amp;lt;blockquote&amp;gt;▷ These scopes must be added to your app for Google to allow access to calendar data through the API. Make sure they match the level of access your app requires.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
Follow the steps below to install the &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; application in your Innovaphone environment.&lt;br /&gt;
&lt;br /&gt;
=== Option 1: Installing via AP Manager App Store (Recommended) ===&lt;br /&gt;
You can install &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; directly through the &#039;&#039;&#039;App Platform Manager&#039;&#039;&#039; (AP Manager) by accessing the App Store:&lt;br /&gt;
&lt;br /&gt;
# Open the &#039;&#039;&#039;AP Manager&#039;&#039;&#039;.&lt;br /&gt;
# Click the yellow &#039;&#039;&#039;App Store&#039;&#039;&#039; button in the top-right corner.&lt;br /&gt;
# Search for &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; in the list.&lt;br /&gt;
# Select the latest version and confirm the download.&lt;br /&gt;
# The app will be automatically installed and ready to configure.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;🛈 This is the easiest and fastest way to deploy the app.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
[[File:Innovaphone MyApps Lab AppStore Button in AP Manager.png|none|thumb|436x436px|AppStore Button in AP Manager outlined]]&lt;br /&gt;
[[File:AP Manager Appstore Interface.png|none|thumb|436x436px|AP Manager Appstore interface]]&lt;br /&gt;
&lt;br /&gt;
=== Option 2: Manual Installation via Upload ===&lt;br /&gt;
If the app is not yet listed in the App Store, follow the steps below:&lt;br /&gt;
&lt;br /&gt;
==== Step 1: Download the App Package ====&lt;br /&gt;
&lt;br /&gt;
# Visit the official Wecom myApps Downloads Portal.&lt;br /&gt;
# Find the &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; app.&lt;br /&gt;
# Download the latest available version compatible with your system architecture.&lt;br /&gt;
[[File:Gcalendar myapps wecom appstore.png|none|thumb|418x418px|Gcalendar on MyApps&#039; Wecom&#039;s App Store]]&lt;br /&gt;
&lt;br /&gt;
==== Step 2: Upload to AP Manager ====&lt;br /&gt;
&lt;br /&gt;
# In &#039;&#039;&#039;AP Manager&#039;&#039;&#039;, click &#039;&#039;&#039;App upload&#039;&#039;&#039; (top right).&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;.app&amp;lt;/code&amp;gt; package you downloaded from the portal.&lt;br /&gt;
# After successful upload, the app will appear in your list and show as &#039;&#039;&#039;Running&#039;&#039;&#039;.&lt;br /&gt;
[[File:App Upload Button on MyApps AP Manager.png|none|thumb|485x485px|App Upload button on AP Manager outlined]]&lt;br /&gt;
[[File:Gcallendar on AP Manager Innovaphone.jpg|none|thumb|490x490px|Gcalendar on AP Manager]]&lt;br /&gt;
&lt;br /&gt;
=== Step 3: Add Application Instance ===&lt;br /&gt;
&lt;br /&gt;
# After uploading the app, click the yellow &#039;&#039;&#039;+ Add&#039;&#039;&#039; button to create an instance of the application.&lt;br /&gt;
# Fill in the required fields:&lt;br /&gt;
#* &#039;&#039;&#039;Name:&#039;&#039;&#039; A recognizable name for the instance.&lt;br /&gt;
#* &#039;&#039;&#039;Domain:&#039;&#039;&#039; The domain for the PBX.&lt;br /&gt;
#* &#039;&#039;&#039;Password:&#039;&#039;&#039; A secure admin password for the app instance.&lt;br /&gt;
#* &#039;&#039;&#039;Webserver path:&#039;&#039;&#039; Optional path (or leave blank).&lt;br /&gt;
#* &#039;&#039;&#039;Database host:&#039;&#039;&#039; Leave empty for local DB or specify IP/DNS if external.&lt;br /&gt;
#* &#039;&#039;&#039;Database name&#039;&#039;&#039; and &#039;&#039;&#039;Database user&#039;&#039;&#039;: Use consistent values for your environment.&lt;br /&gt;
#* &#039;&#039;&#039;Database password:&#039;&#039;&#039; Corresponding DB password.&lt;br /&gt;
# When all values are filled, click &#039;&#039;&#039;Save&#039;&#039;&#039;.&lt;br /&gt;
[[File:AP Manager Gcalendar App Instance Creation Example.png|none|thumb|440x440px|Example of instance creation screen in AP Manager]]&lt;br /&gt;
&lt;br /&gt;
=== Final Step: Registering the App in PBX Manager ===&lt;br /&gt;
&lt;br /&gt;
# Open the &#039;&#039;&#039;PBX Manager&#039;&#039;&#039;.&lt;br /&gt;
# Go to the &#039;&#039;&#039;Apps&#039;&#039;&#039; section.&lt;br /&gt;
# Click &#039;&#039;&#039;Add App&#039;&#039;&#039; and register:&lt;br /&gt;
#* A &#039;&#039;&#039;Users App&#039;&#039;&#039;&lt;br /&gt;
#* An &#039;&#039;&#039;Admin App&#039;&#039;&#039;&lt;br /&gt;
# Assign access rights as needed.&lt;br /&gt;
[[File:PBX Manager Add an App flow - part 1.png|none|thumb|440x440px|PBX Manager Add an App select the app]]&lt;br /&gt;
[[File:Gcallendar PBX Manager Add an App flow - part 2.png|none|thumb|440x440px|PBX Manager Add an App configurations]]&lt;br /&gt;
[[File:Gcallendar on PBX Manager Innovaphone.jpg|none|thumb|441x441px|Gcalendar on PBX Manager configured]]&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⇒ After registration, both apps will appear in MyApps and are ready for use.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Copyright ==&lt;br /&gt;
Copyright information.&lt;br /&gt;
&lt;br /&gt;
== Contact ==&lt;br /&gt;
{|&lt;br /&gt;
| Wecom PORTO ALEGRE - RS&lt;br /&gt;
|-&lt;br /&gt;
| Av. Carlos Gomes, 466 / 401&lt;br /&gt;
|-&lt;br /&gt;
| Boa Vista - CEP 90480-000&lt;br /&gt;
|-&lt;br /&gt;
| Wecom FLORIANÓPOLIS - SC&lt;br /&gt;
|-&lt;br /&gt;
| SC 401, 8600 - Room 7 Corporate Park - Block 2&lt;br /&gt;
|-&lt;br /&gt;
| Santo Antônio de Lisboa - CEP 88050-001&lt;br /&gt;
|-&lt;br /&gt;
| Tel: +55 48 3112.6200&lt;br /&gt;
|-&lt;br /&gt;
| Mail: [mailto:comercial@wecom.com.br comercial@wecom.com.br]&lt;br /&gt;
|-&lt;br /&gt;
| Support: [mailto:suporte@wecom.com.br suporte@wecom.com.br]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
For any questions please refer to [https://wecom.com.br/fale-conosco/ our contact page.]&lt;/div&gt;</summary>
		<author><name>Pablo.montiel</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=File:Gcalendar_Upcoming_Meetings.jpg&amp;diff=78501</id>
		<title>File:Gcalendar Upcoming Meetings.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=File:Gcalendar_Upcoming_Meetings.jpg&amp;diff=78501"/>
		<updated>2025-11-18T17:07:14Z</updated>

		<summary type="html">&lt;p&gt;Pablo.montiel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Gcalendar Upcoming Meetings&lt;/div&gt;</summary>
		<author><name>Pablo.montiel</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=File:Gcalendar_Create_Meeting_Modal.jpg&amp;diff=78499</id>
		<title>File:Gcalendar Create Meeting Modal.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=File:Gcalendar_Create_Meeting_Modal.jpg&amp;diff=78499"/>
		<updated>2025-11-18T17:04:12Z</updated>

		<summary type="html">&lt;p&gt;Pablo.montiel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Gcalendar Create Meeting Modal&lt;/div&gt;</summary>
		<author><name>Pablo.montiel</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Howto:Gcalendar_-_Wecom_-_Partner_App&amp;diff=78462</id>
		<title>Howto:Gcalendar - Wecom - Partner App</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Howto:Gcalendar_-_Wecom_-_Partner_App&amp;diff=78462"/>
		<updated>2025-11-17T15:06:24Z</updated>

		<summary type="html">&lt;p&gt;Pablo.montiel: Fixed image from last fix&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FIXME|reason=Work in progress, still incomplete}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;float:right;&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Partner App Info&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |[[File:Wecom Gcallendar Icon.png|alt=|center|frameless|200x200px|Gcalendar Icon]]&lt;br /&gt;
|-&lt;br /&gt;
!Name&lt;br /&gt;
|Gcalendar&lt;br /&gt;
|-&lt;br /&gt;
!Company&lt;br /&gt;
|Wecom&lt;br /&gt;
|-&lt;br /&gt;
!Version&lt;br /&gt;
|1.0&lt;br /&gt;
|-&lt;br /&gt;
!Compatibility&lt;br /&gt;
|Innovaphone XML Schema&lt;br /&gt;
|-&lt;br /&gt;
!License&lt;br /&gt;
|Via Innovaphone Pricelist&lt;br /&gt;
|-&lt;br /&gt;
!Languages&lt;br /&gt;
|Portuguese, English, Spanish, German&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Product Name ==&lt;br /&gt;
&#039;&#039;&#039;Gcalendar&#039;&#039;&#039; [https://wecom.com.br/ Link]&lt;br /&gt;
&lt;br /&gt;
== Certification Status ==&amp;lt;!--Do not remove comment. Will be added by Innovaphone upon document check &amp;amp; app availablity on app store.--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Space dedicated to Gcalendar certification information.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Category ==&amp;lt;!--Do not change this section and do not remove comments. Will be set by Innovaphone upon document check.--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Category:3rdParty CTI and integrations}}&lt;br /&gt;
&lt;br /&gt;
== Vendor ==&lt;br /&gt;
[[File:Logo 2 Wecom.png|alt=|thumb|Wecom&#039;s logo]]&lt;br /&gt;
Wecom&lt;br /&gt;
&lt;br /&gt;
* [https://wecom.com.br/ wecom.com.br]&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&#039;&#039;&#039;Gcalendar&#039;&#039;&#039; is a Partner App developed by &#039;&#039;&#039;Wecom&#039;&#039;&#039; to integrate Google Calendar events with the Innovaphone presence system.&lt;br /&gt;
&lt;br /&gt;
The app operates through two components:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Users App&#039;&#039;&#039; – Where the users initiate their account linking process via Google login.&lt;br /&gt;
* &#039;&#039;&#039;Admin App&#039;&#039;&#039; – Allows configuration of the integration with editable fields for Google Client ID and Client Secret, along with a dedicated OAuth authorization URL.&lt;br /&gt;
&lt;br /&gt;
This setup enables real-time status synchronization and supports four languages: Portuguese, English, Spanish, and German.&lt;br /&gt;
&lt;br /&gt;
== Functions ==&lt;br /&gt;
This section provides an overview of each core part of the &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; application. It highlights what actions can be performed, and how to navigate through the available features. Additionally, this section provides step-by-step explanations for each functionality.&lt;br /&gt;
&lt;br /&gt;
=== Users App ===&lt;br /&gt;
The &#039;&#039;&#039;Users App&#039;&#039;&#039; is the interface used by users to link their Google Calendar account to the Innovaphone presence system. It focuses only on enabling the connection between the user and their calendar through Google authentication.&lt;br /&gt;
[[File:Gcallendar Users App Interface.png|none|thumb|404x404px|Users app interface with google account pop-up]]&lt;br /&gt;
&lt;br /&gt;
==== Connecting with Google account ====&lt;br /&gt;
&lt;br /&gt;
# Open the &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; Users App.&lt;br /&gt;
# Click the &#039;&#039;&#039;Connect&#039;&#039;&#039; button.&lt;br /&gt;
# A Google login popup will appear.&lt;br /&gt;
#* This popup allows users to choose or log into a Google account.&lt;br /&gt;
# After selecting an account, the integration process will begin automatically.&lt;br /&gt;
#* Once completed, the account will be linked to the Innovaphone system.&lt;br /&gt;
[[File:Gcallendar Connect Button.png|none|thumb|Connect button]]&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⇒ &#039;&#039;&#039;Note:&#039;&#039;&#039; Before starting the connection process, ensure you&#039;re already logged into the correct Google account in your browser. This helps avoid selecting the wrong account and ensures the integration is completed with the intended calendar.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Disconnecting from Google account ====&lt;br /&gt;
&lt;br /&gt;
# Open the &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; Users App.&lt;br /&gt;
# If a Google account is already connected, the &#039;&#039;&#039;Connect&#039;&#039;&#039; button will be replaced by a &#039;&#039;&#039;Disconnect&#039;&#039;&#039; button.&lt;br /&gt;
# Click the &#039;&#039;&#039;Disconnect&#039;&#039;&#039; button to unlink your current Google Calendar account from the Innovaphone presence system.&lt;br /&gt;
# Once disconnected, presence synchronization will be disabled for that user.&lt;br /&gt;
[[File:Gcallendar Disconnect Button.png|none|thumb|392x392px|Disconnect button]]&lt;br /&gt;
&lt;br /&gt;
=== Admin App ===&lt;br /&gt;
The &#039;&#039;&#039;Admin App&#039;&#039;&#039; provides configuration options required to authorize and manage the Google integration. It is intended for system administrators and enables control over OAuth credentials used for user authentication.&lt;br /&gt;
[[File:Gcallendar Admin App.png|none|thumb|453x453px|Admin app interface]]&lt;br /&gt;
&lt;br /&gt;
==== Updating Google OAuth Credentials ====&lt;br /&gt;
To enable or update the integration between Gcalendar and Google Calendar, you’ll need to provide the correct &#039;&#039;&#039;Client ID&#039;&#039;&#039; and &#039;&#039;&#039;Client Secret&#039;&#039;&#039; obtained from your Google Cloud project.&lt;br /&gt;
&lt;br /&gt;
# Open the &#039;&#039;&#039;Gcalendar Admin App&#039;&#039;&#039;.&lt;br /&gt;
# Locate the fields labeled &#039;&#039;&#039;Google Client ID&#039;&#039;&#039; and &#039;&#039;&#039;Client Secret&#039;&#039;&#039;.&lt;br /&gt;
# Paste the values copied from your Google OAuth Credentials into the respective fields.&lt;br /&gt;
# Click the &#039;&#039;&#039;Update&#039;&#039;&#039; button next to each field to save the changes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⇒ &#039;&#039;&#039;Notes:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Ensure both values are correctly copied and properly formatted.&lt;br /&gt;
* Incorrect credentials will prevent users from authenticating.&lt;br /&gt;
* The Client Secret is sensitive—never share or expose it publicly.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
[[File:Gcallendar Google Client ID Update.png|none|thumb|519x519px|Google Client ID input and update button]]&lt;br /&gt;
[[File:Gcallendar Client Secret Update.png|none|thumb|519x519px|Client Secret input and update button]]&lt;br /&gt;
&lt;br /&gt;
== Licensing ==&lt;br /&gt;
The &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; application is licensed via the Innovaphone Pricelist.&lt;br /&gt;
&lt;br /&gt;
Currently, it is not yet listed on the official Innovaphone Partner App Licenses page, but it is expected to be included in future updates.&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;License type:&#039;&#039;&#039; Innovaphone Pricelist&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;License model:&#039;&#039;&#039; One license per user&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Listed at:&#039;&#039;&#039; https://www.innovaphone.com/en/services/licenses/partner-apps.html?app=Gcalendar&amp;amp;type=license#gcalendar&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
Before installing and using Gcalendar, ensure your environment meets the following requirements:&lt;br /&gt;
&lt;br /&gt;
==== System Requirements ====&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Innovaphone firmware:&#039;&#039;&#039; Version &amp;lt;code&amp;gt;14r1&amp;lt;/code&amp;gt; or later&lt;br /&gt;
* &#039;&#039;&#039;App platform:&#039;&#039;&#039; Innovaphone &#039;&#039;&#039;myApps&#039;&#039;&#039; system with &#039;&#039;&#039;App Platform&#039;&#039;&#039; active&lt;br /&gt;
* &#039;&#039;&#039;PBX Manager:&#039;&#039;&#039; Required to register and configure the Users and Admin Apps&lt;br /&gt;
&lt;br /&gt;
==== OAuth Setup ====&lt;br /&gt;
&lt;br /&gt;
* A &#039;&#039;&#039;Google Cloud Project&#039;&#039;&#039; with valid &#039;&#039;&#039;OAuth 2.0 credentials&#039;&#039;&#039; (Client ID and Client Secret)&lt;br /&gt;
* The following URIs must be configured in the Google project:&lt;br /&gt;
** &#039;&#039;&#039;Authorized JavaScript origins:&#039;&#039;&#039; &amp;lt;code&amp;gt;https://app_platform&amp;lt;/code&amp;gt;&lt;br /&gt;
** &#039;&#039;&#039;Authorized redirect URI:&#039;&#039;&#039; &amp;lt;code&amp;gt;https://app_platform/domain/app_name/newToken&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Versions ==&lt;br /&gt;
The &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; application follows the release versioning aligned with the Innovaphone platform.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Initial release version:&#039;&#039;&#039; &amp;lt;code&amp;gt;14r1&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Latest available version:&#039;&#039;&#039; &amp;lt;code&amp;gt;2002 final&amp;lt;/code&amp;gt; (as of June 17, 2025)&lt;br /&gt;
* &#039;&#039;&#039;Build number:&#039;&#039;&#039;&amp;lt;code&amp;gt;14A1149 dvl&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Supported architectures:&#039;&#039;&#039; &amp;lt;code&amp;gt;arm&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;x86_64&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;arm64&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⇒ New versions are published and made available through the Wecom App Store.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
=== Google OAuth Setup (Admin Only) ===&lt;br /&gt;
To enable account linking between the Innovaphone presence system and Google Calendar, administrators must configure OAuth 2.0 credentials using the Google Cloud Platform beforehand.&lt;br /&gt;
&lt;br /&gt;
# Go to [https://console.cloud.google.com/ Google Cloud Console].&lt;br /&gt;
# Select or create a &#039;&#039;&#039;Google Cloud Project&#039;&#039;&#039;.&amp;lt;blockquote&amp;gt;◇ This project will host the credentials used by Gcalendar to access the Google Calendar API. We recommend creating a dedicated project for better control and security.&amp;lt;/blockquote&amp;gt;[[File:Google Cloud Select-Create Project.png|none|thumb|425x425px|Google Cloud Console welcome page with select project button outlined (here the project is already selected)]]&amp;lt;blockquote&amp;gt;Clicking the &#039;&#039;&#039;&amp;quot;Select Project&amp;quot;&#039;&#039;&#039; button will open a &#039;&#039;&#039;modal&#039;&#039;&#039; where you can choose or create a project.&amp;lt;/blockquote&amp;gt;[[File:Google Cloud Select Project If Selected.png|none|thumb|353x353px|Project selection modal]]&amp;lt;blockquote&amp;gt;If a project already exists, click on its name from the list to open it. If not, click &#039;&#039;&#039;&amp;quot;New Project&amp;quot;&#039;&#039;&#039; in the top-right corner to create one.&amp;lt;/blockquote&amp;gt;[[File:Google Cloud New Project Page.png|none|thumb|440x440px|New project creation page]]&lt;br /&gt;
# In the top-left corner, click the &#039;&#039;&#039;hamburger menu icon&#039;&#039;&#039; (☰) to expand the left navigation menu.&lt;br /&gt;
#* Before continuing to the OAuth configuration, you need to make sure the Google Calendar API is enabled.&lt;br /&gt;
# From the sidebar, go to &#039;&#039;&#039;APIs &amp;amp; Services &amp;gt; Enabled APIs &amp;amp; services&#039;&#039;&#039;.[[File:Google Cloud Sidebar API Services.png|none|thumb|450x450px|Opening the APIs &amp;amp; Services section to enable the Calendar API]]&lt;br /&gt;
# At the top of the page, click &#039;&#039;&#039;+ Enable APIs and services&#039;&#039;&#039;.&amp;lt;blockquote&amp;gt;Once enabled, it will appear in the list of active APIs under &#039;&#039;&#039;Enabled APIs &amp;amp; Services&#039;&#039;&#039;.If the Google Calendar API is already enabled, you may skip the steps below and proceed directly to the OAuth configuration.&amp;lt;/blockquote&amp;gt;[[File:Google Cloud Enable APIs Services.jpg|none|thumb|450x450px|Enabling API button and viewing the enabled Google Calendar API]]&lt;br /&gt;
# In the API Library, search for: &amp;lt;code&amp;gt;calendar&amp;lt;/code&amp;gt;.&lt;br /&gt;
#* From the results, click on &#039;&#039;&#039;Google Calendar API&#039;&#039;&#039;.[[File:Google Clou APIs Google Calendar Search.jpg|none|thumb|450x450px|Searching for the Google Calendar API in the API Library]]&lt;br /&gt;
# On the API page, click the blue &#039;&#039;&#039;Enable&#039;&#039;&#039; button to activate it.[[File:Google Cloud Enabling Google Calendar.jpg|none|thumb|450x450px|Enabling the Google Calendar API]]&lt;br /&gt;
# Now click the &#039;&#039;&#039;hamburger menu icon&#039;&#039;&#039; (☰) again to return to the sidebar.&lt;br /&gt;
# Navigate to &#039;&#039;&#039;API &amp;amp; Services &amp;gt; OAuth consent screen&#039;&#039;&#039;.[[File:Google Cloud Left Menu API Outlined.png|none|thumb|482x482px|Left menu: &#039;&#039;&#039;APIs &amp;amp; service -&amp;gt; OAuth consent screen&#039;&#039;&#039;]]&lt;br /&gt;
#* If it&#039;s your first time, configure the consent screen with basic app details (organization name, app name, email, etc.).&lt;br /&gt;
#* Once configured, you&#039;ll be redirected to the &#039;&#039;&#039;Google Auth Platform / Overview&#039;&#039;&#039; page.&lt;br /&gt;
# Click &#039;&#039;&#039;Clients&#039;&#039;&#039; in the left menu and then click &amp;quot;&#039;&#039;&#039;+ Create client&amp;quot;&#039;&#039;&#039;.[[File:Google Cloud new client.jpg|none|thumb|525x525px|Creating client option in Clients page]]&lt;br /&gt;
# Choose &#039;&#039;&#039;Application Type: Web Application&#039;&#039;&#039;.&lt;br /&gt;
# Enter a recognizable &#039;&#039;&#039;name&#039;&#039;&#039; (e.g., &#039;&#039;Gcalendar Integration&#039;&#039;).&lt;br /&gt;
# Add the following values:&lt;br /&gt;
#* &#039;&#039;&#039;Authorized JavaScript origins&#039;&#039;&#039;&lt;br /&gt;
#** &amp;lt;code&amp;gt;https://app_platform&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &#039;&#039;&#039;Authorized redirect URIs&#039;&#039;&#039;&lt;br /&gt;
#** &amp;lt;code&amp;gt;https://app_platform/domain/app_name/newToken&amp;lt;/code&amp;gt;[[File:Google Cloud Create OAuth Client ID.jpg|none|thumb|411x411px|Create OAuth client ID inputs]]&lt;br /&gt;
# After creation, copy the generated:&lt;br /&gt;
#* &#039;&#039;&#039;Client ID&#039;&#039;&#039;&lt;br /&gt;
#* &#039;&#039;&#039;Client Secret&#039;&#039;&#039;[[File:Google Cloud Client ID Client Secret.jpg|none|thumb|434x434px|Client credentials available after creating]]&lt;br /&gt;
# Open the &#039;&#039;&#039;Gcalendar Admin App&#039;&#039;&#039; and insert the values in the respective fields and click &#039;&#039;&#039;Update&#039;&#039;&#039; (see [[#Updating Google OAuth Credentials|Update Google OAuth Credentials]] section above).&amp;lt;blockquote&amp;gt;▷ This links the Google authentication flow to the presence system, allowing users to authorize their calendars.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
# On the left menu, go to &#039;&#039;&#039;Data Access&#039;&#039;&#039; under the &#039;&#039;&#039;Google Auth Platform&#039;&#039;&#039; section.&amp;lt;blockquote&amp;gt;◇ This section lists the sensitive scopes (permissions) your app is requesting during OAuth authorization. These are required for accessing user calendars.&amp;lt;/blockquote&amp;gt;[[File:Google Cloud Add or Remove Scopes.png|none|thumb|510x510px|Click &amp;quot;Add or remove scopes&amp;quot; to open the scope selection menu]]&lt;br /&gt;
# Click the blue &#039;&#039;&#039;Add or remove scopes&#039;&#039;&#039; button.&amp;lt;blockquote&amp;gt;◇ A sidebar will open listing all available scopes from enabled APIs. You can search and select the necessary calendar-related scopes for your application.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
# In the sidebar that appears, search for and select the following calendar scopes:&lt;br /&gt;
#* &amp;lt;code&amp;gt;../auth/calendar.events&amp;lt;/code&amp;gt; – View and edit calendar events.&lt;br /&gt;
#* &amp;lt;code&amp;gt;../auth/calendar.events.owned&amp;lt;/code&amp;gt; – Modify events on owned calendars.[[File:Google Cloud Data Access Scopes Correct.png|none|thumb|400x400px|Data Access section showing added calendar scopes]]&amp;lt;blockquote&amp;gt;▷ These scopes must be added to your app for Google to allow access to calendar data through the API. Make sure they match the level of access your app requires.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
Follow the steps below to install the &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; application in your Innovaphone environment.&lt;br /&gt;
&lt;br /&gt;
=== Option 1: Installing via AP Manager App Store (Recommended) ===&lt;br /&gt;
You can install &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; directly through the &#039;&#039;&#039;App Platform Manager&#039;&#039;&#039; (AP Manager) by accessing the App Store:&lt;br /&gt;
&lt;br /&gt;
# Open the &#039;&#039;&#039;AP Manager&#039;&#039;&#039;.&lt;br /&gt;
# Click the yellow &#039;&#039;&#039;App Store&#039;&#039;&#039; button in the top-right corner.&lt;br /&gt;
# Search for &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; in the list.&lt;br /&gt;
# Select the latest version and confirm the download.&lt;br /&gt;
# The app will be automatically installed and ready to configure.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;🛈 This is the easiest and fastest way to deploy the app.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
[[File:Innovaphone MyApps Lab AppStore Button in AP Manager.png|none|thumb|436x436px|AppStore Button in AP Manager outlined]]&lt;br /&gt;
[[File:AP Manager Appstore Interface.png|none|thumb|436x436px|AP Manager Appstore interface]]&lt;br /&gt;
&lt;br /&gt;
=== Option 2: Manual Installation via Upload ===&lt;br /&gt;
If the app is not yet listed in the App Store, follow the steps below:&lt;br /&gt;
&lt;br /&gt;
==== Step 1: Download the App Package ====&lt;br /&gt;
&lt;br /&gt;
# Visit the official Wecom myApps Downloads Portal.&lt;br /&gt;
# Find the &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; app.&lt;br /&gt;
# Download the latest available version compatible with your system architecture.&lt;br /&gt;
[[File:Gcalendar myapps wecom appstore.png|none|thumb|418x418px|Gcalendar on MyApps&#039; Wecom&#039;s App Store]]&lt;br /&gt;
&lt;br /&gt;
==== Step 2: Upload to AP Manager ====&lt;br /&gt;
&lt;br /&gt;
# In &#039;&#039;&#039;AP Manager&#039;&#039;&#039;, click &#039;&#039;&#039;App upload&#039;&#039;&#039; (top right).&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;.app&amp;lt;/code&amp;gt; package you downloaded from the portal.&lt;br /&gt;
# After successful upload, the app will appear in your list and show as &#039;&#039;&#039;Running&#039;&#039;&#039;.&lt;br /&gt;
[[File:App Upload Button on MyApps AP Manager.png|none|thumb|485x485px|App Upload button on AP Manager outlined]]&lt;br /&gt;
[[File:Gcallendar on AP Manager Innovaphone.jpg|none|thumb|490x490px|Gcalendar on AP Manager]]&lt;br /&gt;
&lt;br /&gt;
=== Step 3: Add Application Instance ===&lt;br /&gt;
&lt;br /&gt;
# After uploading the app, click the yellow &#039;&#039;&#039;+ Add&#039;&#039;&#039; button to create an instance of the application.&lt;br /&gt;
# Fill in the required fields:&lt;br /&gt;
#* &#039;&#039;&#039;Name:&#039;&#039;&#039; A recognizable name for the instance.&lt;br /&gt;
#* &#039;&#039;&#039;Domain:&#039;&#039;&#039; The domain for the PBX.&lt;br /&gt;
#* &#039;&#039;&#039;Password:&#039;&#039;&#039; A secure admin password for the app instance.&lt;br /&gt;
#* &#039;&#039;&#039;Webserver path:&#039;&#039;&#039; Optional path (or leave blank).&lt;br /&gt;
#* &#039;&#039;&#039;Database host:&#039;&#039;&#039; Leave empty for local DB or specify IP/DNS if external.&lt;br /&gt;
#* &#039;&#039;&#039;Database name&#039;&#039;&#039; and &#039;&#039;&#039;Database user&#039;&#039;&#039;: Use consistent values for your environment.&lt;br /&gt;
#* &#039;&#039;&#039;Database password:&#039;&#039;&#039; Corresponding DB password.&lt;br /&gt;
# When all values are filled, click &#039;&#039;&#039;Save&#039;&#039;&#039;.&lt;br /&gt;
[[File:AP Manager Gcalendar App Instance Creation Example.png|none|thumb|440x440px|Example of instance creation screen in AP Manager]]&lt;br /&gt;
&lt;br /&gt;
=== Final Step: Registering the App in PBX Manager ===&lt;br /&gt;
&lt;br /&gt;
# Open the &#039;&#039;&#039;PBX Manager&#039;&#039;&#039;.&lt;br /&gt;
# Go to the &#039;&#039;&#039;Apps&#039;&#039;&#039; section.&lt;br /&gt;
# Click &#039;&#039;&#039;Add App&#039;&#039;&#039; and register:&lt;br /&gt;
#* A &#039;&#039;&#039;Users App&#039;&#039;&#039;&lt;br /&gt;
#* An &#039;&#039;&#039;Admin App&#039;&#039;&#039;&lt;br /&gt;
# Assign access rights as needed.&lt;br /&gt;
[[File:PBX Manager Add an App flow - part 1.png|none|thumb|440x440px|PBX Manager Add an App select the app]]&lt;br /&gt;
[[File:Gcallendar PBX Manager Add an App flow - part 2.png|none|thumb|440x440px|PBX Manager Add an App configurations]]&lt;br /&gt;
[[File:Gcallendar on PBX Manager Innovaphone.jpg|none|thumb|441x441px|Gcalendar on PBX Manager configured]]&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⇒ After registration, both apps will appear in MyApps and are ready for use.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Copyright ==&lt;br /&gt;
Copyright information.&lt;br /&gt;
&lt;br /&gt;
== Contact ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;PORTO ALEGRE - RS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Av. Carlos Gomes, 466 / 401&lt;br /&gt;
&lt;br /&gt;
Boa Vista - CEP 90480-000&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tel:&#039;&#039;&#039; +55 51 3079.5000&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;FLORIANÓPOLIS - SC&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SC 401, 8600 - Room 7&lt;br /&gt;
&lt;br /&gt;
Corporate Park - Block 2&lt;br /&gt;
&lt;br /&gt;
Santo Antônio de Lisboa&lt;br /&gt;
&lt;br /&gt;
CEP 88050-001&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tel:&#039;&#039;&#039; +55 48 3112.6200&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mail:&#039;&#039;&#039; [mailto:comercial@wecom.com.br comercial@wecom.com.br]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Support:&#039;&#039;&#039; [mailto:suporte@wecom.com.br suporte@wecom.com.br]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Website:&#039;&#039;&#039; [https://wecom.com.br/ wecom.com.br]&lt;br /&gt;
&lt;br /&gt;
For any questions please refer to [https://wecom.com.br/fale-conosco/ our contact page.]&lt;/div&gt;</summary>
		<author><name>Pablo.montiel</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=File:Google_Cloud_Data_Access_Scopes_Correct.png&amp;diff=78461</id>
		<title>File:Google Cloud Data Access Scopes Correct.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=File:Google_Cloud_Data_Access_Scopes_Correct.png&amp;diff=78461"/>
		<updated>2025-11-17T15:05:08Z</updated>

		<summary type="html">&lt;p&gt;Pablo.montiel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Google Cloud Data Access Scopes Correct&lt;/div&gt;</summary>
		<author><name>Pablo.montiel</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Howto:Gcalendar_-_Wecom_-_Partner_App&amp;diff=78460</id>
		<title>Howto:Gcalendar - Wecom - Partner App</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Howto:Gcalendar_-_Wecom_-_Partner_App&amp;diff=78460"/>
		<updated>2025-11-17T14:46:14Z</updated>

		<summary type="html">&lt;p&gt;Pablo.montiel: Fix - removal of readonly bullet points!&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FIXME|reason=Work in progress, still incomplete}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;float:right;&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Partner App Info&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |[[File:Wecom Gcallendar Icon.png|alt=|center|frameless|200x200px|Gcalendar Icon]]&lt;br /&gt;
|-&lt;br /&gt;
!Name&lt;br /&gt;
|Gcalendar&lt;br /&gt;
|-&lt;br /&gt;
!Company&lt;br /&gt;
|Wecom&lt;br /&gt;
|-&lt;br /&gt;
!Version&lt;br /&gt;
|1.0&lt;br /&gt;
|-&lt;br /&gt;
!Compatibility&lt;br /&gt;
|Innovaphone XML Schema&lt;br /&gt;
|-&lt;br /&gt;
!License&lt;br /&gt;
|Via Innovaphone Pricelist&lt;br /&gt;
|-&lt;br /&gt;
!Languages&lt;br /&gt;
|Portuguese, English, Spanish, German&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Product Name ==&lt;br /&gt;
&#039;&#039;&#039;Gcalendar&#039;&#039;&#039; [https://wecom.com.br/ Link]&lt;br /&gt;
&lt;br /&gt;
== Certification Status ==&amp;lt;!--Do not remove comment. Will be added by Innovaphone upon document check &amp;amp; app availablity on app store.--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Space dedicated to Gcalendar certification information.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Category ==&amp;lt;!--Do not change this section and do not remove comments. Will be set by Innovaphone upon document check.--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Category:3rdParty CTI and integrations}}&lt;br /&gt;
&lt;br /&gt;
== Vendor ==&lt;br /&gt;
[[File:Logo 2 Wecom.png|alt=|thumb|Wecom&#039;s logo]]&lt;br /&gt;
Wecom&lt;br /&gt;
&lt;br /&gt;
* [https://wecom.com.br/ wecom.com.br]&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&#039;&#039;&#039;Gcalendar&#039;&#039;&#039; is a Partner App developed by &#039;&#039;&#039;Wecom&#039;&#039;&#039; to integrate Google Calendar events with the Innovaphone presence system.&lt;br /&gt;
&lt;br /&gt;
The app operates through two components:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Users App&#039;&#039;&#039; – Where the users initiate their account linking process via Google login.&lt;br /&gt;
* &#039;&#039;&#039;Admin App&#039;&#039;&#039; – Allows configuration of the integration with editable fields for Google Client ID and Client Secret, along with a dedicated OAuth authorization URL.&lt;br /&gt;
&lt;br /&gt;
This setup enables real-time status synchronization and supports four languages: Portuguese, English, Spanish, and German.&lt;br /&gt;
&lt;br /&gt;
== Functions ==&lt;br /&gt;
This section provides an overview of each core part of the &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; application. It highlights what actions can be performed, and how to navigate through the available features. Additionally, this section provides step-by-step explanations for each functionality.&lt;br /&gt;
&lt;br /&gt;
=== Users App ===&lt;br /&gt;
The &#039;&#039;&#039;Users App&#039;&#039;&#039; is the interface used by users to link their Google Calendar account to the Innovaphone presence system. It focuses only on enabling the connection between the user and their calendar through Google authentication.&lt;br /&gt;
[[File:Gcallendar Users App Interface.png|none|thumb|404x404px|Users app interface with google account pop-up]]&lt;br /&gt;
&lt;br /&gt;
==== Connecting with Google account ====&lt;br /&gt;
&lt;br /&gt;
# Open the &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; Users App.&lt;br /&gt;
# Click the &#039;&#039;&#039;Connect&#039;&#039;&#039; button.&lt;br /&gt;
# A Google login popup will appear.&lt;br /&gt;
#* This popup allows users to choose or log into a Google account.&lt;br /&gt;
# After selecting an account, the integration process will begin automatically.&lt;br /&gt;
#* Once completed, the account will be linked to the Innovaphone system.&lt;br /&gt;
[[File:Gcallendar Connect Button.png|none|thumb|Connect button]]&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⇒ &#039;&#039;&#039;Note:&#039;&#039;&#039; Before starting the connection process, ensure you&#039;re already logged into the correct Google account in your browser. This helps avoid selecting the wrong account and ensures the integration is completed with the intended calendar.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Disconnecting from Google account ====&lt;br /&gt;
&lt;br /&gt;
# Open the &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; Users App.&lt;br /&gt;
# If a Google account is already connected, the &#039;&#039;&#039;Connect&#039;&#039;&#039; button will be replaced by a &#039;&#039;&#039;Disconnect&#039;&#039;&#039; button.&lt;br /&gt;
# Click the &#039;&#039;&#039;Disconnect&#039;&#039;&#039; button to unlink your current Google Calendar account from the Innovaphone presence system.&lt;br /&gt;
# Once disconnected, presence synchronization will be disabled for that user.&lt;br /&gt;
[[File:Gcallendar Disconnect Button.png|none|thumb|392x392px|Disconnect button]]&lt;br /&gt;
&lt;br /&gt;
=== Admin App ===&lt;br /&gt;
The &#039;&#039;&#039;Admin App&#039;&#039;&#039; provides configuration options required to authorize and manage the Google integration. It is intended for system administrators and enables control over OAuth credentials used for user authentication.&lt;br /&gt;
[[File:Gcallendar Admin App.png|none|thumb|453x453px|Admin app interface]]&lt;br /&gt;
&lt;br /&gt;
==== Updating Google OAuth Credentials ====&lt;br /&gt;
To enable or update the integration between Gcalendar and Google Calendar, you’ll need to provide the correct &#039;&#039;&#039;Client ID&#039;&#039;&#039; and &#039;&#039;&#039;Client Secret&#039;&#039;&#039; obtained from your Google Cloud project.&lt;br /&gt;
&lt;br /&gt;
# Open the &#039;&#039;&#039;Gcalendar Admin App&#039;&#039;&#039;.&lt;br /&gt;
# Locate the fields labeled &#039;&#039;&#039;Google Client ID&#039;&#039;&#039; and &#039;&#039;&#039;Client Secret&#039;&#039;&#039;.&lt;br /&gt;
# Paste the values copied from your Google OAuth Credentials into the respective fields.&lt;br /&gt;
# Click the &#039;&#039;&#039;Update&#039;&#039;&#039; button next to each field to save the changes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⇒ &#039;&#039;&#039;Notes:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Ensure both values are correctly copied and properly formatted.&lt;br /&gt;
* Incorrect credentials will prevent users from authenticating.&lt;br /&gt;
* The Client Secret is sensitive—never share or expose it publicly.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
[[File:Gcallendar Google Client ID Update.png|none|thumb|519x519px|Google Client ID input and update button]]&lt;br /&gt;
[[File:Gcallendar Client Secret Update.png|none|thumb|519x519px|Client Secret input and update button]]&lt;br /&gt;
&lt;br /&gt;
== Licensing ==&lt;br /&gt;
The &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; application is licensed via the Innovaphone Pricelist.&lt;br /&gt;
&lt;br /&gt;
Currently, it is not yet listed on the official Innovaphone Partner App Licenses page, but it is expected to be included in future updates.&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;License type:&#039;&#039;&#039; Innovaphone Pricelist&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;License model:&#039;&#039;&#039; One license per user&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Listed at:&#039;&#039;&#039; https://www.innovaphone.com/en/services/licenses/partner-apps.html?app=Gcalendar&amp;amp;type=license#gcalendar&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
Before installing and using Gcalendar, ensure your environment meets the following requirements:&lt;br /&gt;
&lt;br /&gt;
==== System Requirements ====&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Innovaphone firmware:&#039;&#039;&#039; Version &amp;lt;code&amp;gt;14r1&amp;lt;/code&amp;gt; or later&lt;br /&gt;
* &#039;&#039;&#039;App platform:&#039;&#039;&#039; Innovaphone &#039;&#039;&#039;myApps&#039;&#039;&#039; system with &#039;&#039;&#039;App Platform&#039;&#039;&#039; active&lt;br /&gt;
* &#039;&#039;&#039;PBX Manager:&#039;&#039;&#039; Required to register and configure the Users and Admin Apps&lt;br /&gt;
&lt;br /&gt;
==== OAuth Setup ====&lt;br /&gt;
&lt;br /&gt;
* A &#039;&#039;&#039;Google Cloud Project&#039;&#039;&#039; with valid &#039;&#039;&#039;OAuth 2.0 credentials&#039;&#039;&#039; (Client ID and Client Secret)&lt;br /&gt;
* The following URIs must be configured in the Google project:&lt;br /&gt;
** &#039;&#039;&#039;Authorized JavaScript origins:&#039;&#039;&#039; &amp;lt;code&amp;gt;https://app_platform&amp;lt;/code&amp;gt;&lt;br /&gt;
** &#039;&#039;&#039;Authorized redirect URI:&#039;&#039;&#039; &amp;lt;code&amp;gt;https://app_platform/domain/app_name/newToken&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Versions ==&lt;br /&gt;
The &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; application follows the release versioning aligned with the Innovaphone platform.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Initial release version:&#039;&#039;&#039; &amp;lt;code&amp;gt;14r1&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Latest available version:&#039;&#039;&#039; &amp;lt;code&amp;gt;2002 final&amp;lt;/code&amp;gt; (as of June 17, 2025)&lt;br /&gt;
* &#039;&#039;&#039;Build number:&#039;&#039;&#039;&amp;lt;code&amp;gt;14A1149 dvl&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Supported architectures:&#039;&#039;&#039; &amp;lt;code&amp;gt;arm&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;x86_64&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;arm64&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⇒ New versions are published and made available through the Wecom App Store.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
=== Google OAuth Setup (Admin Only) ===&lt;br /&gt;
To enable account linking between the Innovaphone presence system and Google Calendar, administrators must configure OAuth 2.0 credentials using the Google Cloud Platform beforehand.&lt;br /&gt;
&lt;br /&gt;
# Go to [https://console.cloud.google.com/ Google Cloud Console].&lt;br /&gt;
# Select or create a &#039;&#039;&#039;Google Cloud Project&#039;&#039;&#039;.&amp;lt;blockquote&amp;gt;◇ This project will host the credentials used by Gcalendar to access the Google Calendar API. We recommend creating a dedicated project for better control and security.&amp;lt;/blockquote&amp;gt;[[File:Google Cloud Select-Create Project.png|none|thumb|425x425px|Google Cloud Console welcome page with select project button outlined (here the project is already selected)]]&amp;lt;blockquote&amp;gt;Clicking the &#039;&#039;&#039;&amp;quot;Select Project&amp;quot;&#039;&#039;&#039; button will open a &#039;&#039;&#039;modal&#039;&#039;&#039; where you can choose or create a project.&amp;lt;/blockquote&amp;gt;[[File:Google Cloud Select Project If Selected.png|none|thumb|353x353px|Project selection modal]]&amp;lt;blockquote&amp;gt;If a project already exists, click on its name from the list to open it. If not, click &#039;&#039;&#039;&amp;quot;New Project&amp;quot;&#039;&#039;&#039; in the top-right corner to create one.&amp;lt;/blockquote&amp;gt;[[File:Google Cloud New Project Page.png|none|thumb|440x440px|New project creation page]]&lt;br /&gt;
# In the top-left corner, click the &#039;&#039;&#039;hamburger menu icon&#039;&#039;&#039; (☰) to expand the left navigation menu.&lt;br /&gt;
#* Before continuing to the OAuth configuration, you need to make sure the Google Calendar API is enabled.&lt;br /&gt;
# From the sidebar, go to &#039;&#039;&#039;APIs &amp;amp; Services &amp;gt; Enabled APIs &amp;amp; services&#039;&#039;&#039;.[[File:Google Cloud Sidebar API Services.png|none|thumb|450x450px|Opening the APIs &amp;amp; Services section to enable the Calendar API]]&lt;br /&gt;
# At the top of the page, click &#039;&#039;&#039;+ Enable APIs and services&#039;&#039;&#039;.&amp;lt;blockquote&amp;gt;Once enabled, it will appear in the list of active APIs under &#039;&#039;&#039;Enabled APIs &amp;amp; Services&#039;&#039;&#039;.If the Google Calendar API is already enabled, you may skip the steps below and proceed directly to the OAuth configuration.&amp;lt;/blockquote&amp;gt;[[File:Google Cloud Enable APIs Services.jpg|none|thumb|450x450px|Enabling API button and viewing the enabled Google Calendar API]]&lt;br /&gt;
# In the API Library, search for: &amp;lt;code&amp;gt;calendar&amp;lt;/code&amp;gt;.&lt;br /&gt;
#* From the results, click on &#039;&#039;&#039;Google Calendar API&#039;&#039;&#039;.[[File:Google Clou APIs Google Calendar Search.jpg|none|thumb|450x450px|Searching for the Google Calendar API in the API Library]]&lt;br /&gt;
# On the API page, click the blue &#039;&#039;&#039;Enable&#039;&#039;&#039; button to activate it.[[File:Google Cloud Enabling Google Calendar.jpg|none|thumb|450x450px|Enabling the Google Calendar API]]&lt;br /&gt;
# Now click the &#039;&#039;&#039;hamburger menu icon&#039;&#039;&#039; (☰) again to return to the sidebar.&lt;br /&gt;
# Navigate to &#039;&#039;&#039;API &amp;amp; Services &amp;gt; OAuth consent screen&#039;&#039;&#039;.[[File:Google Cloud Left Menu API Outlined.png|none|thumb|482x482px|Left menu: &#039;&#039;&#039;APIs &amp;amp; service -&amp;gt; OAuth consent screen&#039;&#039;&#039;]]&lt;br /&gt;
#* If it&#039;s your first time, configure the consent screen with basic app details (organization name, app name, email, etc.).&lt;br /&gt;
#* Once configured, you&#039;ll be redirected to the &#039;&#039;&#039;Google Auth Platform / Overview&#039;&#039;&#039; page.&lt;br /&gt;
# Click &#039;&#039;&#039;Clients&#039;&#039;&#039; in the left menu and then click &amp;quot;&#039;&#039;&#039;+ Create client&amp;quot;&#039;&#039;&#039;.[[File:Google Cloud new client.jpg|none|thumb|525x525px|Creating client option in Clients page]]&lt;br /&gt;
# Choose &#039;&#039;&#039;Application Type: Web Application&#039;&#039;&#039;.&lt;br /&gt;
# Enter a recognizable &#039;&#039;&#039;name&#039;&#039;&#039; (e.g., &#039;&#039;Gcalendar Integration&#039;&#039;).&lt;br /&gt;
# Add the following values:&lt;br /&gt;
#* &#039;&#039;&#039;Authorized JavaScript origins&#039;&#039;&#039;&lt;br /&gt;
#** &amp;lt;code&amp;gt;https://app_platform&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &#039;&#039;&#039;Authorized redirect URIs&#039;&#039;&#039;&lt;br /&gt;
#** &amp;lt;code&amp;gt;https://app_platform/domain/app_name/newToken&amp;lt;/code&amp;gt;[[File:Google Cloud Create OAuth Client ID.jpg|none|thumb|411x411px|Create OAuth client ID inputs]]&lt;br /&gt;
# After creation, copy the generated:&lt;br /&gt;
#* &#039;&#039;&#039;Client ID&#039;&#039;&#039;&lt;br /&gt;
#* &#039;&#039;&#039;Client Secret&#039;&#039;&#039;[[File:Google Cloud Client ID Client Secret.jpg|none|thumb|434x434px|Client credentials available after creating]]&lt;br /&gt;
# Open the &#039;&#039;&#039;Gcalendar Admin App&#039;&#039;&#039; and insert the values in the respective fields and click &#039;&#039;&#039;Update&#039;&#039;&#039; (see [[#Updating Google OAuth Credentials|Update Google OAuth Credentials]] section above).&amp;lt;blockquote&amp;gt;▷ This links the Google authentication flow to the presence system, allowing users to authorize their calendars.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
# On the left menu, go to &#039;&#039;&#039;Data Access&#039;&#039;&#039; under the &#039;&#039;&#039;Google Auth Platform&#039;&#039;&#039; section.&amp;lt;blockquote&amp;gt;◇ This section lists the sensitive scopes (permissions) your app is requesting during OAuth authorization. These are required for accessing user calendars.&amp;lt;/blockquote&amp;gt;[[File:Google Cloud Add or Remove Scopes.png|none|thumb|510x510px|Click &amp;quot;Add or remove scopes&amp;quot; to open the scope selection menu]]&lt;br /&gt;
# Click the blue &#039;&#039;&#039;Add or remove scopes&#039;&#039;&#039; button.&amp;lt;blockquote&amp;gt;◇ A sidebar will open listing all available scopes from enabled APIs. You can search and select the necessary calendar-related scopes for your application.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
# In the sidebar that appears, search for and select the following calendar scopes:&lt;br /&gt;
#* &amp;lt;code&amp;gt;../auth/calendar.events&amp;lt;/code&amp;gt; – View and edit calendar events.&lt;br /&gt;
#* &amp;lt;code&amp;gt;../auth/calendar.events.owned&amp;lt;/code&amp;gt; – Modify events on owned calendars.[[File:Google Cloud Data Access Scopes.jpg|none|thumb|400x400px|Data Access section showing added calendar scopes]]&amp;lt;blockquote&amp;gt;▷ These scopes must be added to your app for Google to allow access to calendar data through the API. Make sure they match the level of access your app requires.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
Follow the steps below to install the &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; application in your Innovaphone environment.&lt;br /&gt;
&lt;br /&gt;
=== Option 1: Installing via AP Manager App Store (Recommended) ===&lt;br /&gt;
You can install &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; directly through the &#039;&#039;&#039;App Platform Manager&#039;&#039;&#039; (AP Manager) by accessing the App Store:&lt;br /&gt;
&lt;br /&gt;
# Open the &#039;&#039;&#039;AP Manager&#039;&#039;&#039;.&lt;br /&gt;
# Click the yellow &#039;&#039;&#039;App Store&#039;&#039;&#039; button in the top-right corner.&lt;br /&gt;
# Search for &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; in the list.&lt;br /&gt;
# Select the latest version and confirm the download.&lt;br /&gt;
# The app will be automatically installed and ready to configure.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;🛈 This is the easiest and fastest way to deploy the app.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
[[File:Innovaphone MyApps Lab AppStore Button in AP Manager.png|none|thumb|436x436px|AppStore Button in AP Manager outlined]]&lt;br /&gt;
[[File:AP Manager Appstore Interface.png|none|thumb|436x436px|AP Manager Appstore interface]]&lt;br /&gt;
&lt;br /&gt;
=== Option 2: Manual Installation via Upload ===&lt;br /&gt;
If the app is not yet listed in the App Store, follow the steps below:&lt;br /&gt;
&lt;br /&gt;
==== Step 1: Download the App Package ====&lt;br /&gt;
&lt;br /&gt;
# Visit the official Wecom myApps Downloads Portal.&lt;br /&gt;
# Find the &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; app.&lt;br /&gt;
# Download the latest available version compatible with your system architecture.&lt;br /&gt;
[[File:Gcalendar myapps wecom appstore.png|none|thumb|418x418px|Gcalendar on MyApps&#039; Wecom&#039;s App Store]]&lt;br /&gt;
&lt;br /&gt;
==== Step 2: Upload to AP Manager ====&lt;br /&gt;
&lt;br /&gt;
# In &#039;&#039;&#039;AP Manager&#039;&#039;&#039;, click &#039;&#039;&#039;App upload&#039;&#039;&#039; (top right).&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;.app&amp;lt;/code&amp;gt; package you downloaded from the portal.&lt;br /&gt;
# After successful upload, the app will appear in your list and show as &#039;&#039;&#039;Running&#039;&#039;&#039;.&lt;br /&gt;
[[File:App Upload Button on MyApps AP Manager.png|none|thumb|485x485px|App Upload button on AP Manager outlined]]&lt;br /&gt;
[[File:Gcallendar on AP Manager Innovaphone.jpg|none|thumb|490x490px|Gcalendar on AP Manager]]&lt;br /&gt;
&lt;br /&gt;
=== Step 3: Add Application Instance ===&lt;br /&gt;
&lt;br /&gt;
# After uploading the app, click the yellow &#039;&#039;&#039;+ Add&#039;&#039;&#039; button to create an instance of the application.&lt;br /&gt;
# Fill in the required fields:&lt;br /&gt;
#* &#039;&#039;&#039;Name:&#039;&#039;&#039; A recognizable name for the instance.&lt;br /&gt;
#* &#039;&#039;&#039;Domain:&#039;&#039;&#039; The domain for the PBX.&lt;br /&gt;
#* &#039;&#039;&#039;Password:&#039;&#039;&#039; A secure admin password for the app instance.&lt;br /&gt;
#* &#039;&#039;&#039;Webserver path:&#039;&#039;&#039; Optional path (or leave blank).&lt;br /&gt;
#* &#039;&#039;&#039;Database host:&#039;&#039;&#039; Leave empty for local DB or specify IP/DNS if external.&lt;br /&gt;
#* &#039;&#039;&#039;Database name&#039;&#039;&#039; and &#039;&#039;&#039;Database user&#039;&#039;&#039;: Use consistent values for your environment.&lt;br /&gt;
#* &#039;&#039;&#039;Database password:&#039;&#039;&#039; Corresponding DB password.&lt;br /&gt;
# When all values are filled, click &#039;&#039;&#039;Save&#039;&#039;&#039;.&lt;br /&gt;
[[File:AP Manager Gcalendar App Instance Creation Example.png|none|thumb|440x440px|Example of instance creation screen in AP Manager]]&lt;br /&gt;
&lt;br /&gt;
=== Final Step: Registering the App in PBX Manager ===&lt;br /&gt;
&lt;br /&gt;
# Open the &#039;&#039;&#039;PBX Manager&#039;&#039;&#039;.&lt;br /&gt;
# Go to the &#039;&#039;&#039;Apps&#039;&#039;&#039; section.&lt;br /&gt;
# Click &#039;&#039;&#039;Add App&#039;&#039;&#039; and register:&lt;br /&gt;
#* A &#039;&#039;&#039;Users App&#039;&#039;&#039;&lt;br /&gt;
#* An &#039;&#039;&#039;Admin App&#039;&#039;&#039;&lt;br /&gt;
# Assign access rights as needed.&lt;br /&gt;
[[File:PBX Manager Add an App flow - part 1.png|none|thumb|440x440px|PBX Manager Add an App select the app]]&lt;br /&gt;
[[File:Gcallendar PBX Manager Add an App flow - part 2.png|none|thumb|440x440px|PBX Manager Add an App configurations]]&lt;br /&gt;
[[File:Gcallendar on PBX Manager Innovaphone.jpg|none|thumb|441x441px|Gcalendar on PBX Manager configured]]&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⇒ After registration, both apps will appear in MyApps and are ready for use.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Copyright ==&lt;br /&gt;
Copyright information.&lt;br /&gt;
&lt;br /&gt;
== Contact ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;PORTO ALEGRE - RS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Av. Carlos Gomes, 466 / 401&lt;br /&gt;
&lt;br /&gt;
Boa Vista - CEP 90480-000&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tel:&#039;&#039;&#039; +55 51 3079.5000&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;FLORIANÓPOLIS - SC&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SC 401, 8600 - Room 7&lt;br /&gt;
&lt;br /&gt;
Corporate Park - Block 2&lt;br /&gt;
&lt;br /&gt;
Santo Antônio de Lisboa&lt;br /&gt;
&lt;br /&gt;
CEP 88050-001&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tel:&#039;&#039;&#039; +55 48 3112.6200&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mail:&#039;&#039;&#039; [mailto:comercial@wecom.com.br comercial@wecom.com.br]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Support:&#039;&#039;&#039; [mailto:suporte@wecom.com.br suporte@wecom.com.br]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Website:&#039;&#039;&#039; [https://wecom.com.br/ wecom.com.br]&lt;br /&gt;
&lt;br /&gt;
For any questions please refer to [https://wecom.com.br/fale-conosco/ our contact page.]&lt;/div&gt;</summary>
		<author><name>Pablo.montiel</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Howto:Gcalendar_-_Wecom_-_Partner_App&amp;diff=77327</id>
		<title>Howto:Gcalendar - Wecom - Partner App</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Howto:Gcalendar_-_Wecom_-_Partner_App&amp;diff=77327"/>
		<updated>2025-07-16T11:47:00Z</updated>

		<summary type="html">&lt;p&gt;Pablo.montiel: /* Vendor */ Wecom&amp;#039;s logo change&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FIXME|reason=Work in progress, still incomplete}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;float:right;&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Partner App Info&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |[[File:Wecom Gcallendar Icon.png|alt=|center|frameless|200x200px|Gcalendar Icon]]&lt;br /&gt;
|-&lt;br /&gt;
!Name&lt;br /&gt;
|Gcalendar&lt;br /&gt;
|-&lt;br /&gt;
!Company&lt;br /&gt;
|Wecom&lt;br /&gt;
|-&lt;br /&gt;
!Version&lt;br /&gt;
|1.0&lt;br /&gt;
|-&lt;br /&gt;
!Compatibility&lt;br /&gt;
|Innovaphone XML Schema&lt;br /&gt;
|-&lt;br /&gt;
!License&lt;br /&gt;
|Via Innovaphone Pricelist&lt;br /&gt;
|-&lt;br /&gt;
!Languages&lt;br /&gt;
|Portuguese, English, Spanish, German&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Product Name ==&lt;br /&gt;
&#039;&#039;&#039;Gcalendar&#039;&#039;&#039; [https://wecom.com.br/ Link]&lt;br /&gt;
&lt;br /&gt;
== Certification Status ==&amp;lt;!--Do not remove comment. Will be added by Innovaphone upon document check &amp;amp; app availablity on app store.--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Space dedicated to Gcalendar certification information.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Category ==&amp;lt;!--Do not change this section and do not remove comments. Will be set by Innovaphone upon document check.--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Category:3rdParty CTI and integrations}}&lt;br /&gt;
&lt;br /&gt;
== Vendor ==&lt;br /&gt;
[[File:Logo 2 Wecom.png|alt=|thumb|Wecom&#039;s logo]]&lt;br /&gt;
Wecom&lt;br /&gt;
&lt;br /&gt;
* [https://wecom.com.br/ wecom.com.br]&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&#039;&#039;&#039;Gcalendar&#039;&#039;&#039; is a Partner App developed by &#039;&#039;&#039;Wecom&#039;&#039;&#039; to integrate Google Calendar events with the Innovaphone presence system.&lt;br /&gt;
&lt;br /&gt;
The app operates through two components:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Users App&#039;&#039;&#039; – Where the users initiate their account linking process via Google login.&lt;br /&gt;
* &#039;&#039;&#039;Admin App&#039;&#039;&#039; – Allows configuration of the integration with editable fields for Google Client ID and Client Secret, along with a dedicated OAuth authorization URL.&lt;br /&gt;
&lt;br /&gt;
This setup enables real-time status synchronization and supports four languages: Portuguese, English, Spanish, and German.&lt;br /&gt;
&lt;br /&gt;
== Functions ==&lt;br /&gt;
This section provides an overview of each core part of the &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; application. It highlights what actions can be performed, and how to navigate through the available features. Additionally, this section provides step-by-step explanations for each functionality.&lt;br /&gt;
&lt;br /&gt;
=== Users App ===&lt;br /&gt;
The &#039;&#039;&#039;Users App&#039;&#039;&#039; is the interface used by users to link their Google Calendar account to the Innovaphone presence system. It focuses only on enabling the connection between the user and their calendar through Google authentication.&lt;br /&gt;
[[File:Gcallendar Users App Interface.png|none|thumb|404x404px|Users app interface with google account pop-up]]&lt;br /&gt;
&lt;br /&gt;
==== Connecting with Google account ====&lt;br /&gt;
&lt;br /&gt;
# Open the &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; Users App.&lt;br /&gt;
# Click the &#039;&#039;&#039;Connect&#039;&#039;&#039; button.&lt;br /&gt;
# A Google login popup will appear.&lt;br /&gt;
#* This popup allows users to choose or log into a Google account.&lt;br /&gt;
# After selecting an account, the integration process will begin automatically.&lt;br /&gt;
#* Once completed, the account will be linked to the Innovaphone system.&lt;br /&gt;
[[File:Gcallendar Connect Button.png|none|thumb|Connect button]]&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⇒ &#039;&#039;&#039;Note:&#039;&#039;&#039; Before starting the connection process, ensure you&#039;re already logged into the correct Google account in your browser. This helps avoid selecting the wrong account and ensures the integration is completed with the intended calendar.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Disconnecting from Google account ====&lt;br /&gt;
&lt;br /&gt;
# Open the &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; Users App.&lt;br /&gt;
# If a Google account is already connected, the &#039;&#039;&#039;Connect&#039;&#039;&#039; button will be replaced by a &#039;&#039;&#039;Disconnect&#039;&#039;&#039; button.&lt;br /&gt;
# Click the &#039;&#039;&#039;Disconnect&#039;&#039;&#039; button to unlink your current Google Calendar account from the Innovaphone presence system.&lt;br /&gt;
# Once disconnected, presence synchronization will be disabled for that user.&lt;br /&gt;
[[File:Gcallendar Disconnect Button.png|none|thumb|392x392px|Disconnect button]]&lt;br /&gt;
&lt;br /&gt;
=== Admin App ===&lt;br /&gt;
The &#039;&#039;&#039;Admin App&#039;&#039;&#039; provides configuration options required to authorize and manage the Google integration. It is intended for system administrators and enables control over OAuth credentials used for user authentication.&lt;br /&gt;
[[File:Gcallendar Admin App.png|none|thumb|453x453px|Admin app interface]]&lt;br /&gt;
&lt;br /&gt;
==== Updating Google OAuth Credentials ====&lt;br /&gt;
To enable or update the integration between Gcalendar and Google Calendar, you’ll need to provide the correct &#039;&#039;&#039;Client ID&#039;&#039;&#039; and &#039;&#039;&#039;Client Secret&#039;&#039;&#039; obtained from your Google Cloud project.&lt;br /&gt;
&lt;br /&gt;
# Open the &#039;&#039;&#039;Gcalendar Admin App&#039;&#039;&#039;.&lt;br /&gt;
# Locate the fields labeled &#039;&#039;&#039;Google Client ID&#039;&#039;&#039; and &#039;&#039;&#039;Client Secret&#039;&#039;&#039;.&lt;br /&gt;
# Paste the values copied from your Google OAuth Credentials into the respective fields.&lt;br /&gt;
# Click the &#039;&#039;&#039;Update&#039;&#039;&#039; button next to each field to save the changes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⇒ &#039;&#039;&#039;Notes:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Ensure both values are correctly copied and properly formatted.&lt;br /&gt;
* Incorrect credentials will prevent users from authenticating.&lt;br /&gt;
* The Client Secret is sensitive—never share or expose it publicly.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
[[File:Gcallendar Google Client ID Update.png|none|thumb|519x519px|Google Client ID input and update button]]&lt;br /&gt;
[[File:Gcallendar Client Secret Update.png|none|thumb|519x519px|Client Secret input and update button]]&lt;br /&gt;
&lt;br /&gt;
== Licensing ==&lt;br /&gt;
The &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; application is licensed via the Innovaphone Pricelist.&lt;br /&gt;
&lt;br /&gt;
Currently, it is not yet listed on the official Innovaphone Partner App Licenses page, but it is expected to be included in future updates.&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;License type:&#039;&#039;&#039; Innovaphone Pricelist&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;License model:&#039;&#039;&#039; One license per user&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Listed at:&#039;&#039;&#039; https://www.innovaphone.com/en/services/licenses/partner-apps.html?app=Gcalendar&amp;amp;type=license#gcalendar&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
Before installing and using Gcalendar, ensure your environment meets the following requirements:&lt;br /&gt;
&lt;br /&gt;
==== System Requirements ====&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Innovaphone firmware:&#039;&#039;&#039; Version &amp;lt;code&amp;gt;14r1&amp;lt;/code&amp;gt; or later&lt;br /&gt;
* &#039;&#039;&#039;App platform:&#039;&#039;&#039; Innovaphone &#039;&#039;&#039;myApps&#039;&#039;&#039; system with &#039;&#039;&#039;App Platform&#039;&#039;&#039; active&lt;br /&gt;
* &#039;&#039;&#039;PBX Manager:&#039;&#039;&#039; Required to register and configure the Users and Admin Apps&lt;br /&gt;
&lt;br /&gt;
==== OAuth Setup ====&lt;br /&gt;
&lt;br /&gt;
* A &#039;&#039;&#039;Google Cloud Project&#039;&#039;&#039; with valid &#039;&#039;&#039;OAuth 2.0 credentials&#039;&#039;&#039; (Client ID and Client Secret)&lt;br /&gt;
* The following URIs must be configured in the Google project:&lt;br /&gt;
** &#039;&#039;&#039;Authorized JavaScript origins:&#039;&#039;&#039; &amp;lt;code&amp;gt;https://app_platform&amp;lt;/code&amp;gt;&lt;br /&gt;
** &#039;&#039;&#039;Authorized redirect URI:&#039;&#039;&#039; &amp;lt;code&amp;gt;https://app_platform/domain/app_name/newToken&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Versions ==&lt;br /&gt;
The &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; application follows the release versioning aligned with the Innovaphone platform.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Initial release version:&#039;&#039;&#039; &amp;lt;code&amp;gt;14r1&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Latest available version:&#039;&#039;&#039; &amp;lt;code&amp;gt;2002 final&amp;lt;/code&amp;gt; (as of June 17, 2025)&lt;br /&gt;
* &#039;&#039;&#039;Build number:&#039;&#039;&#039;&amp;lt;code&amp;gt;14A1149 dvl&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Supported architectures:&#039;&#039;&#039; &amp;lt;code&amp;gt;arm&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;x86_64&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;arm64&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⇒ New versions are published and made available through the Wecom App Store.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
=== Google OAuth Setup (Admin Only) ===&lt;br /&gt;
To enable account linking between the Innovaphone presence system and Google Calendar, administrators must configure OAuth 2.0 credentials using the Google Cloud Platform beforehand.&lt;br /&gt;
&lt;br /&gt;
# Go to [https://console.cloud.google.com/ Google Cloud Console].&lt;br /&gt;
# Select or create a &#039;&#039;&#039;Google Cloud Project&#039;&#039;&#039;.&amp;lt;blockquote&amp;gt;◇ This project will host the credentials used by Gcalendar to access the Google Calendar API. We recommend creating a dedicated project for better control and security.&amp;lt;/blockquote&amp;gt;[[File:Google Cloud Select-Create Project.png|none|thumb|425x425px|Google Cloud Console welcome page with select project button outlined (here the project is already selected)]]&amp;lt;blockquote&amp;gt;Clicking the &#039;&#039;&#039;&amp;quot;Select Project&amp;quot;&#039;&#039;&#039; button will open a &#039;&#039;&#039;modal&#039;&#039;&#039; where you can choose or create a project.&amp;lt;/blockquote&amp;gt;[[File:Google Cloud Select Project If Selected.png|none|thumb|353x353px|Project selection modal]]&amp;lt;blockquote&amp;gt;If a project already exists, click on its name from the list to open it. If not, click &#039;&#039;&#039;&amp;quot;New Project&amp;quot;&#039;&#039;&#039; in the top-right corner to create one.&amp;lt;/blockquote&amp;gt;[[File:Google Cloud New Project Page.png|none|thumb|440x440px|New project creation page]]&lt;br /&gt;
# In the top-left corner, click the &#039;&#039;&#039;hamburger menu icon&#039;&#039;&#039; (☰) to expand the left navigation menu.&lt;br /&gt;
#* Before continuing to the OAuth configuration, you need to make sure the Google Calendar API is enabled.&lt;br /&gt;
# From the sidebar, go to &#039;&#039;&#039;APIs &amp;amp; Services &amp;gt; Enabled APIs &amp;amp; services&#039;&#039;&#039;.[[File:Google Cloud Sidebar API Services.png|none|thumb|450x450px|Opening the APIs &amp;amp; Services section to enable the Calendar API]]&lt;br /&gt;
# At the top of the page, click &#039;&#039;&#039;+ Enable APIs and services&#039;&#039;&#039;.&amp;lt;blockquote&amp;gt;Once enabled, it will appear in the list of active APIs under &#039;&#039;&#039;Enabled APIs &amp;amp; Services&#039;&#039;&#039;.If the Google Calendar API is already enabled, you may skip the steps below and proceed directly to the OAuth configuration.&amp;lt;/blockquote&amp;gt;[[File:Google Cloud Enable APIs Services.jpg|none|thumb|450x450px|Enabling API button and viewing the enabled Google Calendar API]]&lt;br /&gt;
# In the API Library, search for: &amp;lt;code&amp;gt;calendar&amp;lt;/code&amp;gt;.&lt;br /&gt;
#* From the results, click on &#039;&#039;&#039;Google Calendar API&#039;&#039;&#039;.[[File:Google Clou APIs Google Calendar Search.jpg|none|thumb|450x450px|Searching for the Google Calendar API in the API Library]]&lt;br /&gt;
# On the API page, click the blue &#039;&#039;&#039;Enable&#039;&#039;&#039; button to activate it.[[File:Google Cloud Enabling Google Calendar.jpg|none|thumb|450x450px|Enabling the Google Calendar API]]&lt;br /&gt;
# Now click the &#039;&#039;&#039;hamburger menu icon&#039;&#039;&#039; (☰) again to return to the sidebar.&lt;br /&gt;
# Navigate to &#039;&#039;&#039;API &amp;amp; Services &amp;gt; OAuth consent screen&#039;&#039;&#039;.[[File:Google Cloud Left Menu API Outlined.png|none|thumb|482x482px|Left menu: &#039;&#039;&#039;APIs &amp;amp; service -&amp;gt; OAuth consent screen&#039;&#039;&#039;]]&lt;br /&gt;
#* If it&#039;s your first time, configure the consent screen with basic app details (organization name, app name, email, etc.).&lt;br /&gt;
#* Once configured, you&#039;ll be redirected to the &#039;&#039;&#039;Google Auth Platform / Overview&#039;&#039;&#039; page.&lt;br /&gt;
# Click &#039;&#039;&#039;Clients&#039;&#039;&#039; in the left menu and then click &amp;quot;&#039;&#039;&#039;+ Create client&amp;quot;&#039;&#039;&#039;.[[File:Google Cloud new client.jpg|none|thumb|525x525px|Creating client option in Clients page]]&lt;br /&gt;
# Choose &#039;&#039;&#039;Application Type: Web Application&#039;&#039;&#039;.&lt;br /&gt;
# Enter a recognizable &#039;&#039;&#039;name&#039;&#039;&#039; (e.g., &#039;&#039;Gcalendar Integration&#039;&#039;).&lt;br /&gt;
# Add the following values:&lt;br /&gt;
#* &#039;&#039;&#039;Authorized JavaScript origins&#039;&#039;&#039;&lt;br /&gt;
#** &amp;lt;code&amp;gt;https://app_platform&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &#039;&#039;&#039;Authorized redirect URIs&#039;&#039;&#039;&lt;br /&gt;
#** &amp;lt;code&amp;gt;https://app_platform/domain/app_name/newToken&amp;lt;/code&amp;gt;[[File:Google Cloud Create OAuth Client ID.jpg|none|thumb|411x411px|Create OAuth client ID inputs]]&lt;br /&gt;
# After creation, copy the generated:&lt;br /&gt;
#* &#039;&#039;&#039;Client ID&#039;&#039;&#039;&lt;br /&gt;
#* &#039;&#039;&#039;Client Secret&#039;&#039;&#039;[[File:Google Cloud Client ID Client Secret.jpg|none|thumb|434x434px|Client credentials available after creating]]&lt;br /&gt;
# Open the &#039;&#039;&#039;Gcalendar Admin App&#039;&#039;&#039; and insert the values in the respective fields and click &#039;&#039;&#039;Update&#039;&#039;&#039; (see [[#Updating Google OAuth Credentials|Update Google OAuth Credentials]] section above).&amp;lt;blockquote&amp;gt;▷ This links the Google authentication flow to the presence system, allowing users to authorize their calendars.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
# On the left menu, go to &#039;&#039;&#039;Data Access&#039;&#039;&#039; under the &#039;&#039;&#039;Google Auth Platform&#039;&#039;&#039; section.&amp;lt;blockquote&amp;gt;◇ This section lists the sensitive scopes (permissions) your app is requesting during OAuth authorization. These are required for accessing user calendars.&amp;lt;/blockquote&amp;gt;[[File:Google Cloud Add or Remove Scopes.png|none|thumb|510x510px|Click &amp;quot;Add or remove scopes&amp;quot; to open the scope selection menu]]&lt;br /&gt;
# Click the blue &#039;&#039;&#039;Add or remove scopes&#039;&#039;&#039; button.&amp;lt;blockquote&amp;gt;◇ A sidebar will open listing all available scopes from enabled APIs. You can search and select the necessary calendar-related scopes for your application.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
# In the sidebar that appears, search for and select the following calendar scopes:&lt;br /&gt;
#* &amp;lt;code&amp;gt;../auth/calendar.readonly&amp;lt;/code&amp;gt; – View and download calendar data.&lt;br /&gt;
#* &amp;lt;code&amp;gt;../auth/calendar.calendars.readonly&amp;lt;/code&amp;gt; – View calendar metadata.&lt;br /&gt;
#* &amp;lt;code&amp;gt;../auth/calendar.events&amp;lt;/code&amp;gt; – View and edit calendar events.&lt;br /&gt;
#* &amp;lt;code&amp;gt;../auth/calendar.events.owned&amp;lt;/code&amp;gt; – Modify events on owned calendars.&lt;br /&gt;
#* &amp;lt;code&amp;gt;../auth/calendar.events.owned.readonly&amp;lt;/code&amp;gt; – Read-only access to events on owned calendars.&lt;br /&gt;
#* &amp;lt;code&amp;gt;../auth/calendar.events.readonly&amp;lt;/code&amp;gt; – View events only.[[File:Google Cloud Data Access Scopes.jpg|none|thumb|400x400px|Data Access section showing added calendar scopes]]&amp;lt;blockquote&amp;gt;▷ These scopes must be added to your app for Google to allow access to calendar data through the API. Make sure they match the level of access your app requires.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
Follow the steps below to install the &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; application in your Innovaphone environment.&lt;br /&gt;
&lt;br /&gt;
=== Option 1: Installing via AP Manager App Store (Recommended) ===&lt;br /&gt;
You can install &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; directly through the &#039;&#039;&#039;App Platform Manager&#039;&#039;&#039; (AP Manager) by accessing the App Store:&lt;br /&gt;
&lt;br /&gt;
# Open the &#039;&#039;&#039;AP Manager&#039;&#039;&#039;.&lt;br /&gt;
# Click the yellow &#039;&#039;&#039;App Store&#039;&#039;&#039; button in the top-right corner.&lt;br /&gt;
# Search for &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; in the list.&lt;br /&gt;
# Select the latest version and confirm the download.&lt;br /&gt;
# The app will be automatically installed and ready to configure.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;🛈 This is the easiest and fastest way to deploy the app.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
[[File:Innovaphone MyApps Lab AppStore Button in AP Manager.png|none|thumb|436x436px|AppStore Button in AP Manager outlined]]&lt;br /&gt;
[[File:AP Manager Appstore Interface.png|none|thumb|436x436px|AP Manager Appstore interface]]&lt;br /&gt;
&lt;br /&gt;
=== Option 2: Manual Installation via Upload ===&lt;br /&gt;
If the app is not yet listed in the App Store, follow the steps below:&lt;br /&gt;
&lt;br /&gt;
==== Step 1: Download the App Package ====&lt;br /&gt;
&lt;br /&gt;
# Visit the official Wecom myApps Downloads Portal.&lt;br /&gt;
# Find the &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; app.&lt;br /&gt;
# Download the latest available version compatible with your system architecture.&lt;br /&gt;
[[File:Gcalendar myapps wecom appstore.png|none|thumb|418x418px|Gcalendar on MyApps&#039; Wecom&#039;s App Store]]&lt;br /&gt;
&lt;br /&gt;
==== Step 2: Upload to AP Manager ====&lt;br /&gt;
&lt;br /&gt;
# In &#039;&#039;&#039;AP Manager&#039;&#039;&#039;, click &#039;&#039;&#039;App upload&#039;&#039;&#039; (top right).&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;.app&amp;lt;/code&amp;gt; package you downloaded from the portal.&lt;br /&gt;
# After successful upload, the app will appear in your list and show as &#039;&#039;&#039;Running&#039;&#039;&#039;.&lt;br /&gt;
[[File:App Upload Button on MyApps AP Manager.png|none|thumb|485x485px|App Upload button on AP Manager outlined]]&lt;br /&gt;
[[File:Gcallendar on AP Manager Innovaphone.jpg|none|thumb|490x490px|Gcalendar on AP Manager]]&lt;br /&gt;
&lt;br /&gt;
=== Step 3: Add Application Instance ===&lt;br /&gt;
&lt;br /&gt;
# After uploading the app, click the yellow &#039;&#039;&#039;+ Add&#039;&#039;&#039; button to create an instance of the application.&lt;br /&gt;
# Fill in the required fields:&lt;br /&gt;
#* &#039;&#039;&#039;Name:&#039;&#039;&#039; A recognizable name for the instance.&lt;br /&gt;
#* &#039;&#039;&#039;Domain:&#039;&#039;&#039; The domain for the PBX.&lt;br /&gt;
#* &#039;&#039;&#039;Password:&#039;&#039;&#039; A secure admin password for the app instance.&lt;br /&gt;
#* &#039;&#039;&#039;Webserver path:&#039;&#039;&#039; Optional path (or leave blank).&lt;br /&gt;
#* &#039;&#039;&#039;Database host:&#039;&#039;&#039; Leave empty for local DB or specify IP/DNS if external.&lt;br /&gt;
#* &#039;&#039;&#039;Database name&#039;&#039;&#039; and &#039;&#039;&#039;Database user&#039;&#039;&#039;: Use consistent values for your environment.&lt;br /&gt;
#* &#039;&#039;&#039;Database password:&#039;&#039;&#039; Corresponding DB password.&lt;br /&gt;
# When all values are filled, click &#039;&#039;&#039;Save&#039;&#039;&#039;.&lt;br /&gt;
[[File:AP Manager Gcalendar App Instance Creation Example.png|none|thumb|440x440px|Example of instance creation screen in AP Manager]]&lt;br /&gt;
&lt;br /&gt;
=== Final Step: Registering the App in PBX Manager ===&lt;br /&gt;
&lt;br /&gt;
# Open the &#039;&#039;&#039;PBX Manager&#039;&#039;&#039;.&lt;br /&gt;
# Go to the &#039;&#039;&#039;Apps&#039;&#039;&#039; section.&lt;br /&gt;
# Click &#039;&#039;&#039;Add App&#039;&#039;&#039; and register:&lt;br /&gt;
#* A &#039;&#039;&#039;Users App&#039;&#039;&#039;&lt;br /&gt;
#* An &#039;&#039;&#039;Admin App&#039;&#039;&#039;&lt;br /&gt;
# Assign access rights as needed.&lt;br /&gt;
[[File:PBX Manager Add an App flow - part 1.png|none|thumb|440x440px|PBX Manager Add an App select the app]]&lt;br /&gt;
[[File:Gcallendar PBX Manager Add an App flow - part 2.png|none|thumb|440x440px|PBX Manager Add an App configurations]]&lt;br /&gt;
[[File:Gcallendar on PBX Manager Innovaphone.jpg|none|thumb|441x441px|Gcalendar on PBX Manager configured]]&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⇒ After registration, both apps will appear in MyApps and are ready for use.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Copyright ==&lt;br /&gt;
Copyright information.&lt;br /&gt;
&lt;br /&gt;
== Contact ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;PORTO ALEGRE - RS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Av. Carlos Gomes, 466 / 401&lt;br /&gt;
&lt;br /&gt;
Boa Vista - CEP 90480-000&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tel:&#039;&#039;&#039; +55 51 3079.5000&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;FLORIANÓPOLIS - SC&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SC 401, 8600 - Room 7&lt;br /&gt;
&lt;br /&gt;
Corporate Park - Block 2&lt;br /&gt;
&lt;br /&gt;
Santo Antônio de Lisboa&lt;br /&gt;
&lt;br /&gt;
CEP 88050-001&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tel:&#039;&#039;&#039; +55 48 3112.6200&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mail:&#039;&#039;&#039; [mailto:comercial@wecom.com.br comercial@wecom.com.br]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Support:&#039;&#039;&#039; [mailto:suporte@wecom.com.br suporte@wecom.com.br]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Website:&#039;&#039;&#039; [https://wecom.com.br/ wecom.com.br]&lt;br /&gt;
&lt;br /&gt;
For any questions please refer to [https://wecom.com.br/fale-conosco/ our contact page.]&lt;/div&gt;</summary>
		<author><name>Pablo.montiel</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Howto:Flowe_-_Wecom_-_Partner_App&amp;diff=77326</id>
		<title>Howto:Flowe - Wecom - Partner App</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Howto:Flowe_-_Wecom_-_Partner_App&amp;diff=77326"/>
		<updated>2025-07-16T11:45:48Z</updated>

		<summary type="html">&lt;p&gt;Pablo.montiel: /* Vendor */ Wecom&amp;#039;s logo change&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FIXME|reason=Work in progress, still incomplete}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;float:right; margin: 0 0 1em 1em; width: 330px;&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Partner App Info&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |[[File:Flowe Logo Small.png|alt=|center|frameless|Flowe&#039;s logo]]&lt;br /&gt;
|-&lt;br /&gt;
!Name&lt;br /&gt;
|Flowe&lt;br /&gt;
|-&lt;br /&gt;
!Company&lt;br /&gt;
|Wecom&lt;br /&gt;
|-&lt;br /&gt;
!Version&lt;br /&gt;
|1.0&lt;br /&gt;
|-&lt;br /&gt;
!Compatibility&lt;br /&gt;
|[https://www.innovaphone.com/xsd/vm.htm Innovaphone XML Schema]&lt;br /&gt;
|-&lt;br /&gt;
!License&lt;br /&gt;
|Via Innovaphone Pricelist&lt;br /&gt;
|-&lt;br /&gt;
!Languages&lt;br /&gt;
|Portuguese, English, German&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Product Name ==&lt;br /&gt;
&#039;&#039;&#039;Flowe&#039;&#039;&#039; [https://www.innovaphone.com/xsd/vm.htm Link]&lt;br /&gt;
&lt;br /&gt;
== Certification Status ==&lt;br /&gt;
&amp;lt;!-- Do not remove comment. Will be added by Innovaphone upon document check &amp;amp; app availablity on app store. --&amp;gt;&lt;br /&gt;
&#039;&#039;Space dedicated to Flowe certification information.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Category ==&lt;br /&gt;
&amp;lt;!-- Do not change this section and do not remove comments. Will be set by Innovaphone upon document check. --&amp;gt;&lt;br /&gt;
[[Category:Partner Apps|{{PAGENAME}}]]&lt;br /&gt;
{{Category:3rdParty_VoIPSystem_Management}}&lt;br /&gt;
[[Category:3rdParty VoIPSystem Management|{{PAGENAME}}]]&lt;br /&gt;
&lt;br /&gt;
== Vendor ==&lt;br /&gt;
[[File:Logo 2 Wecom.png|alt=|thumb|Wecom&#039;s logo]]&lt;br /&gt;
Wecom&lt;br /&gt;
&lt;br /&gt;
* [https://www.wecom.com.br www.wecom.com.br]&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&#039;&#039;&#039;Flowe&#039;&#039;&#039; is a Partner App developed by &#039;&#039;&#039;Wecom&#039;&#039;&#039; for the &#039;&#039;&#039;Innovaphone MyApps&#039;&#039;&#039; platform. It is designed to simplify the creation, edition, and management of XML scripts and Voicemail Objects within the PBX.&lt;br /&gt;
&lt;br /&gt;
With a user-friendly and responsive interface optimized for mobile and desktop use, Flowe allows administrators to:&lt;br /&gt;
&lt;br /&gt;
* Create and edit XML scripts visually&lt;br /&gt;
* Import and export script files&lt;br /&gt;
* Create and assign scripts to IVRs (Interactive Voice Response systems)&lt;br /&gt;
* Manage multi-language content (Portuguese, English, German)&lt;br /&gt;
&lt;br /&gt;
Flowe enhances productivity by abstracting technical complexity and aligning with Innovaphone’s native [https://www.innovaphone.com/xsd/vm.htm schema definitions].&lt;br /&gt;
&lt;br /&gt;
== Functions ==&lt;br /&gt;
This section provides an overview of each core part of the Flowe application. It highlights the purpose of each page, what actions can be performed, and how to navigate through the available features. Additionally, this section provides step-by-step explanations for each functionality.&lt;br /&gt;
&lt;br /&gt;
=== Scripts - Initial Page ===&lt;br /&gt;
[[File:Flowe&#039;s Scripts&#039; Initial Page.png|alt=|thumb|419x419px|Scripts&#039; initial page with outlined features]]&lt;br /&gt;
The Scripts &#039;&#039;&#039;Initial Page&#039;&#039;&#039; section is the main entry point of the Flowe application. Upon launching the app, users are presented with an overview of all existing XML scripts that have been created or imported into the system where users can quickly access, search for and manage scripts.&lt;br /&gt;
&lt;br /&gt;
The interface is divided into a &#039;&#039;&#039;search bar,&#039;&#039;&#039; a &#039;&#039;&#039;list of scripts&#039;&#039;&#039;, and two main action buttons: &#039;&#039;&#039;Add&#039;&#039;&#039; and &#039;&#039;&#039;Import&#039;&#039;&#039;. Each script listed displays essential information such as its filename, creation date, last modification date, file size and a unique identifier.&lt;br /&gt;
&lt;br /&gt;
Additionally, each script entry offers three direct action buttons:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Download&#039;&#039;&#039; – allows the user to download the XML file locally.&lt;br /&gt;
* &#039;&#039;&#039;Edit&#039;&#039;&#039; – redirects the user to the Script Management page, where the script can be fully edited.&lt;br /&gt;
* &#039;&#039;&#039;Delete&#039;&#039;&#039; – opens a confirmation modal for script deletion.&lt;br /&gt;
&lt;br /&gt;
==== 1. Searching for script ====&lt;br /&gt;
&lt;br /&gt;
# Write in the &#039;&#039;&#039;&amp;quot;Type to search...&amp;quot;&#039;&#039;&#039; input area.&lt;br /&gt;
# The results will automatically appear in the list below as you type.&lt;br /&gt;
[[File:Flowe Scripts&#039; Search Bar.png|none|thumb|461x461px|Script list search bar]]&lt;br /&gt;
&lt;br /&gt;
==== 2. Adding new script ====&lt;br /&gt;
&lt;br /&gt;
* Click the &#039;&#039;&#039;Add&#039;&#039;&#039; button next to the search bar.&lt;br /&gt;
** You will be redirected to the [[#Scripts - Management Page|Scripts Management Page]] to create a new script.&lt;br /&gt;
[[File:Flowe Scripts Add Button.png|none|thumb|Add script button]]&lt;br /&gt;
&lt;br /&gt;
==== 3. Importing script ====&lt;br /&gt;
&lt;br /&gt;
# Click the &#039;&#039;&#039;Import&#039;&#039;&#039; button next to the search bar.&lt;br /&gt;
#* An &#039;&#039;&#039;Import Script&#039;&#039;&#039; modal will appear.&lt;br /&gt;
# Select the file by clicking the &#039;&#039;&#039;Select File&#039;&#039;&#039; button.&lt;br /&gt;
#* This will open your computer’s file selection window.&lt;br /&gt;
# Click the &#039;&#039;&#039;Import&#039;&#039;&#039; button in the modal.&lt;br /&gt;
#* The imported script will appear in the list automatically.&lt;br /&gt;
[[File:Flowe Scripts Import Button.png|none|thumb|Import script button]]&lt;br /&gt;
[[File:Flowe Import Script Modal.png|none|thumb|Import script modal]]&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⇒ &#039;&#039;&#039;Note:&#039;&#039;&#039; Only XML script files will be accepted.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 4. Downloading script ====&lt;br /&gt;
&lt;br /&gt;
* Click the &#039;&#039;&#039;Download&#039;&#039;&#039; icon on the right side of the script’s information card.&lt;br /&gt;
** The download will start immediately once clicked.&lt;br /&gt;
[[File:Flowe Download Script Button.png|none|thumb|Download script button]]&lt;br /&gt;
&lt;br /&gt;
==== 5. Editing script ====&lt;br /&gt;
&lt;br /&gt;
* Click the &#039;&#039;&#039;Edit&#039;&#039;&#039; icon on the right side of the script’s information card.&lt;br /&gt;
** You will be redirected to the [[#Scripts - Management Page|Scripts Management Page]], where you can edit the script.&lt;br /&gt;
[[File:Flowe Edit Script Button.png|none|thumb|Edit script button]]&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⇒ &#039;&#039;&#039;Note:&#039;&#039;&#039; All current script data will be loaded automatically into the management page for editing.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 6. Deleting script ====&lt;br /&gt;
&lt;br /&gt;
#Click the &#039;&#039;&#039;Delete (trash icon)&#039;&#039;&#039; icon on the right side of the script’s information card.&lt;br /&gt;
#* A &#039;&#039;&#039;Delete Confirmation&#039;&#039;&#039; confirmation modal will appear.&lt;br /&gt;
# To confirm deletion, click the &#039;&#039;&#039;Delete&#039;&#039;&#039; button on the right.&lt;br /&gt;
#* The script will be permanently deleted and removed from the list.&lt;br /&gt;
# If you misclicked or decide not to delete, click the &#039;&#039;&#039;Cancel&#039;&#039;&#039; button on the left.&lt;br /&gt;
#* The modal will close promptly without any changes.&lt;br /&gt;
[[File:Flowe Delete Script Button.png|none|thumb|Delete script button]]&lt;br /&gt;
[[File:Flowe Delete Script Modal.png|none|thumb|Delete script confirmation modal]]&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⇒ &#039;&#039;&#039;Note:&#039;&#039;&#039; Deletion is permanent and cannot be undone. Make sure to confirm before deleting a script.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Scripts - Management Page ===&lt;br /&gt;
The Scripts &#039;&#039;&#039;Management Page&#039;&#039;&#039; is the core interface for creating and editing XML scripts within the Flowe application. This page is designed to provide users with a intuitive interactive editor where scripts can be built from scratch or modified as needed.&lt;br /&gt;
[[File:Flowe New Script Management Page.png|thumb|447x447px|New script management page with outlined features]]&lt;br /&gt;
[[File:Flowe Scripts Management Page 2.1.png|thumb|447x447px|Script management page with added functions and outlined features]]&lt;br /&gt;
The interface is divided into the following key areas:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Script Name Input&#039;&#039;&#039; – Located at the top of the page, filling this input field in is mandatory. Users must define a unique name for the script before they can save it.&lt;br /&gt;
* &#039;&#039;&#039;Elements List&#039;&#039;&#039; – Positioned on the left side, this section contains all available XML elements, each with a brief description, that can be inserted into the script.&lt;br /&gt;
* &#039;&#039;&#039;Search Bar for Elements&#039;&#039;&#039; – A search bar above the elements list allows users to search through using keywords that match either the element name or its description.&lt;br /&gt;
* &#039;&#039;&#039;Script Body&#039;&#039;&#039; – The main workspace is located on the right side and displays the full structure of the script as collapsed blocks. Each script begins with a pre-created Main Function (automatically provided when starting a new script), the following functions and, inside each function, users can dynamically insert and manage elements.&lt;br /&gt;
* &#039;&#039;&#039;Add New Function&#039;&#039;&#039; – Below the script body, an input field and button allow users to sequentially create new named functions.&lt;br /&gt;
* &#039;&#039;&#039;Action Buttons&#039;&#039;&#039;:&lt;br /&gt;
** &#039;&#039;&#039;Save&#039;&#039;&#039; – Saves the current script, either as a new file or as an update to an existing one.&lt;br /&gt;
** &#039;&#039;&#039;Cancel&#039;&#039;&#039; – Aborts the script creation or editing process and returns the user to the Initial Scripts Page.&lt;br /&gt;
&lt;br /&gt;
Elements are based on the official [https://www.innovaphone.com/xsd/vm.htm Innovaphone XML Schema].&lt;br /&gt;
[[File:Flowe Script Collapsed Functions.png|none|thumb|459x459px|Pre-existing script management page with collapsed functions]]&lt;br /&gt;
&lt;br /&gt;
==== 1. Elements List ====&lt;br /&gt;
The &#039;&#039;&#039;Elements List&#039;&#039;&#039; contains all XML components available for building scripts in the Flowe application. These elements are based on the official [https://www.innovaphone.com/xsd/vm.htm Innovaphone XML Schema], used for managing the script structure and logic within the XML file.&lt;br /&gt;
[[File:Flowe Add Element.png|thumb|383x383px|Add element]]&lt;br /&gt;
[[File:Flowe Assign Element.png|thumb|383x383px|Assign element]]&lt;br /&gt;
[[File:Flowe If Element.png|thumb|381x381px|If element with collapsing button]]&lt;br /&gt;
* &#039;&#039;&#039;How to use the elements:&#039;&#039;&#039; Users can insert elements inside functions and fill out the required fields according to their purpose and the Innovaphone documentation. Each element should be configured with the necessary data to achieve the expected behavior within the script logic.&lt;br /&gt;
* &#039;&#039;&#039;Nested elements:&#039;&#039;&#039; Some elements allow other elements to be placed inside them, supporting nested structures. For example, you can insert a &amp;lt;code&amp;gt;Switch&amp;lt;/code&amp;gt; block inside an &amp;lt;code&amp;gt;If&amp;lt;/code&amp;gt; condition, and within that &amp;lt;code&amp;gt;Switch&amp;lt;/code&amp;gt;, you can have additional &amp;lt;code&amp;gt;If&amp;lt;/code&amp;gt; conditions, and so on. These elements are collapsible, with a collapsing button next to the element&#039;s name.&lt;br /&gt;
* &#039;&#039;&#039;Custom element – &amp;quot;Comment&amp;quot;:&#039;&#039;&#039; In addition to the standard Innovaphone elements, Flowe provides a new custom element named &#039;&#039;&#039;Comment&#039;&#039;&#039; (as of now, shown as &amp;quot;&#039;&#039;Comentário&#039;&#039;&amp;quot;). This element is designed purely for documentation purposes and allows users to insert comments directly into the XML code. These comments have no effect on script execution and serve only as notes or explanations within the file.&lt;br /&gt;
[[File:Flowe Comment Element.png|none|thumb|534x534px|Comment element]]&lt;br /&gt;
* In the examples shown in the images:&lt;br /&gt;
** &#039;&#039;&#039;Add element:&#039;&#039;&#039; one can write two values and the output.&lt;br /&gt;
** &#039;&#039;&#039;Assign element:&#039;&#039;&#039; one can assign a value to a variable&lt;br /&gt;
** &#039;&#039;&#039;If element:&#039;&#039;&#039; one can define the condition and nest an element inside. The else if and else elements are not automatically created.&lt;br /&gt;
** &#039;&#039;&#039;Comment element:&#039;&#039;&#039; with a text input, one can add a comment to the script in the position where the element was added.&lt;br /&gt;
&lt;br /&gt;
==== 2. Searching for element ====&lt;br /&gt;
&lt;br /&gt;
* Type your query into the &#039;&#039;&#039;&amp;quot;Search elements...&amp;quot;&#039;&#039;&#039; input field.&lt;br /&gt;
** Use keywords that match either the element name or its description.&lt;br /&gt;
[[File:Flowe Script Search Element.png|none|thumb|410x410px|Elements list search bar]]&lt;br /&gt;
[[File:Flowe Script Search Element Example.png|none|thumb|Element search example]]&lt;br /&gt;
&lt;br /&gt;
==== 3. Changing script name ====&lt;br /&gt;
&lt;br /&gt;
#Enter the desired name into the &#039;&#039;&#039;&amp;quot;Enter the script name&amp;quot;&#039;&#039;&#039; input field.&lt;br /&gt;
#* The name is required to create or edit a script.&lt;br /&gt;
#Click the &#039;&#039;&#039;Save&#039;&#039;&#039; button to save your changes once you&#039;re done managing the script.&lt;br /&gt;
#*If the name is already in use, the input field will highlight in red and the &#039;&#039;&#039;Save&#039;&#039;&#039; button will be disabled.&lt;br /&gt;
#*If you attempt to save without a name, an alert modal will appear.&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⇒ &#039;&#039;&#039;Note:&#039;&#039;&#039; The script requires a unique name that is not already in use. If the name is duplicated, the Save button will be disabled; if missing, an alert will appear.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
[[File:Flowe Enter Script Name.png|none|thumb|499x499px|Script name input]]&lt;br /&gt;
[[File:Flowe Script Name Already In Use Tooltip.png|none|thumb|499x499px|&#039;&#039;&amp;quot;A script with this name already exists; (...)&amp;quot;&#039;&#039; tooltip alert]]&lt;br /&gt;
[[File:Flowe Name Required Modal.png|none|thumb|258x258px|Name requirement alert modal]]&lt;br /&gt;
&lt;br /&gt;
==== 4. Canceling script management ====&lt;br /&gt;
&lt;br /&gt;
* Click the &#039;&#039;&#039;Cancel&#039;&#039;&#039; button located between the script name input and the &#039;&#039;Save&#039;&#039; button.&lt;br /&gt;
** The page will redirect back to the initial Scripts area, and any unsaved progress will be lost.&lt;br /&gt;
[[File:Flowe Cancel Script Button.png|none|thumb|260x260px|Cancel script management button]]&lt;br /&gt;
&lt;br /&gt;
==== 5. Saving script ====&lt;br /&gt;
&lt;br /&gt;
* Click the &#039;&#039;&#039;Save&#039;&#039;&#039; button beside the Cancel button.&lt;br /&gt;
** The page will redirect back to the Scripts initial page.&lt;br /&gt;
*** The script will be updated on or added to your list.&lt;br /&gt;
[[File:Flowe Save Script Button.png|none|thumb|160x160px|Save script button]]&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⇒ &#039;&#039;&#039;Note:&#039;&#039;&#039; The script can only be saved if it has a unique name that is not already in use.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 6. Adding function to script ====&lt;br /&gt;
&lt;br /&gt;
# Type in the &#039;&#039;&#039;&amp;quot;New function name&amp;quot;&#039;&#039;&#039; input area;&lt;br /&gt;
# Click the &#039;&#039;&#039;Add&#039;&#039;&#039; button on the right.&lt;br /&gt;
#* New functions will be added sequentially below the previous ones.&lt;br /&gt;
[[File:Flowe Script New Function.png|none|thumb|543x543px|Add new function input and button]]&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⇒ &#039;&#039;&#039;Note:&#039;&#039;&#039; A valid name is mandatory to create a new function. Without it, the function won’t be added.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 7. Changing function name ====&lt;br /&gt;
&lt;br /&gt;
# Click the &#039;&#039;&#039;Edit (pencil icon)&#039;&#039;&#039; button next to the red trash icon.&lt;br /&gt;
# Edit the name in the input field.&lt;br /&gt;
# Click outside the input field to save.&lt;br /&gt;
#* The new name will be saved automatically.&lt;br /&gt;
[[File:Flowe Script Function Name Change.png|none|thumb|531x531px|Change function name]]&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⇒ &#039;&#039;&#039;Note:&#039;&#039;&#039; The Main function’s name is fixed and cannot be changed.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 8. Removing function from script ====&lt;br /&gt;
&lt;br /&gt;
* Click the red &#039;&#039;&#039;Delete&#039;&#039;&#039; &#039;&#039;&#039;(trash icon)&#039;&#039;&#039; in the top-right corner of the function block&lt;br /&gt;
** The entire function will be deleted immediately.&lt;br /&gt;
[[File:Flowe Script Delete Function Button.png|none|thumb|266x266px|Remove function button]]&lt;br /&gt;
&lt;br /&gt;
==== 9. Adding element to function ====&lt;br /&gt;
&lt;br /&gt;
# Click the &#039;&#039;&#039;+ dotted area&#039;&#039;&#039; where you want to add an element.&lt;br /&gt;
#* The area will be highlighted when selected.&lt;br /&gt;
# Click on the desired element from the elements list.&lt;br /&gt;
#* You can search for elements using the search bar and simply click to add.&lt;br /&gt;
#* Elements can be added before, after, in between elements.&lt;br /&gt;
#* Elements can also be nested within other elements using the same process.&lt;br /&gt;
[[File:Flowe Add First Element.png|none|thumb|467x467px|Add first element (in the highlighted dotted area)]]&lt;br /&gt;
[[File:Flowe Adding More Elements.png|none|thumb|468x468px|Add more elements (in the dotted areas)]]&lt;br /&gt;
[[File:Flowe Adding Nested Elements.png|none|thumb|467x467px|Add nested elements (in the dotted areas)]]&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⇒ &#039;&#039;&#039;Note:&#039;&#039;&#039; If no insertion point is selected, the element will be &amp;lt;u&amp;gt;added at the end of the function&amp;lt;/u&amp;gt;. If there are no existing elements in the function and no insertion point is selected, the element &amp;lt;u&amp;gt;will not be added&amp;lt;/u&amp;gt;.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 10. Filling element information ====&lt;br /&gt;
&lt;br /&gt;
* Enter the required details in the element’s input fields.&lt;br /&gt;
** Each element has its own specific required inputs, based on the Innovaphone XML Schema.&lt;br /&gt;
[[File:Flowe Add Element Values.png|none|thumb|467x467px|Add element inputs]]&lt;br /&gt;
&lt;br /&gt;
==== 11. Removing element from function ====&lt;br /&gt;
&lt;br /&gt;
* Click the red &#039;&#039;&#039;Delete (trash icon)&#039;&#039;&#039; in the top-right corner of the element block.&lt;br /&gt;
** The entire element will be deleted immediately.&lt;br /&gt;
[[File:Flowe Remove Element.png|none|thumb|469x469px|Remove element button]]&lt;br /&gt;
&lt;br /&gt;
=== IVRs ===&lt;br /&gt;
The &#039;&#039;&#039;IVRs Page&#039;&#039;&#039; is the main interface for managing IVR entries within the Flowe application. It allows users to create, edit, and organize IVRs that are associated with existing XML scripts.&lt;br /&gt;
[[File:Flowe IVR Page.png|thumb|383x383px|IVR page with outlined features]]&lt;br /&gt;
The interface is divided into the following key areas:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;IVR Search Bar&#039;&#039;&#039; – Positioned at the top of the page, this input allows users to search through existing IVRs using keywords and numbers that match either the title, the internal number or SIP.&lt;br /&gt;
* &#039;&#039;&#039;Add IVR Button&#039;&#039;&#039; – Located to the right of the search bar, this button opens a modal window to create a new IVR entry. Every information is required to create the new IVR.&lt;br /&gt;
* &#039;&#039;&#039;IVRs List&#039;&#039;&#039; – Displays all IVRs in a card-based format. Each card contains the following details:&lt;br /&gt;
** &#039;&#039;&#039;Title&#039;&#039;&#039; – The unique name identifying the IVR.&lt;br /&gt;
** &#039;&#039;&#039;Internal Number&#039;&#039;&#039; – The internal extension assigned to the IVR.&lt;br /&gt;
** &#039;&#039;&#039;SIP Number&#039;&#039;&#039; – The SIP number configured for the IVR.&lt;br /&gt;
** &#039;&#039;&#039;Script&#039;&#039;&#039; – The XML script that is linked to the IVR.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Action Buttons on Each IVR&#039;&#039;&#039;:&lt;br /&gt;
** &#039;&#039;&#039;Edit&#039;&#039;&#039; – Opens the same modal used for creation, pre-filled with the IVR’s current data for editing.&lt;br /&gt;
** &#039;&#039;&#039;Delete&#039;&#039;&#039; – Removes the IVR after confirmation.&lt;br /&gt;
IVRs are fully integrated with the Scripts module, ensuring that each IVR is functional only if a valid script is associated with it.&lt;br /&gt;
&lt;br /&gt;
==== 1. Searching for IVR ====&lt;br /&gt;
&lt;br /&gt;
* Type your search query into the &#039;&#039;&#039;&amp;quot;Type to search...&amp;quot;&#039;&#039;&#039; input field.&lt;br /&gt;
** You can use keywords that match the IVR’s title, internal number, or SIP address.&lt;br /&gt;
[[File:Flowe IVR Search Bar.png|none|thumb|522x522px|IVR search bar]]&lt;br /&gt;
&lt;br /&gt;
==== 2. Adding a New IVR ====&lt;br /&gt;
&lt;br /&gt;
# Click the &#039;&#039;&#039;Add&#039;&#039;&#039; button next to the IVR List search bar;&lt;br /&gt;
#* A &#039;&#039;&#039;Create a new IVR&#039;&#039;&#039; modal will appear;&lt;br /&gt;
# Fill in all required fields:&lt;br /&gt;
#* Type the name of the IVR;&lt;br /&gt;
#* Enter the internal number;&lt;br /&gt;
#* Enter the SIP address;&lt;br /&gt;
#* Select a pre-existing script to associate with the IVR;&lt;br /&gt;
# Click the &#039;&#039;&#039;Save&#039;&#039;&#039; button in the bottom-right corner to create the IVR;&lt;br /&gt;
# To cancel the creation process, click the &#039;&#039;&#039;Cancel&#039;&#039;&#039; button in the bottom-left corner.&lt;br /&gt;
[[File:Flowe Add New IVR Button.png|none|thumb|285x285px|Add new IVR button]]&lt;br /&gt;
[[File:Flowe New IVR Modal.png|none|thumb|372x372px|Create a new IVR modal]]&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⇒ &#039;&#039;&#039;Note:&#039;&#039;&#039; All fields are mandatory to successfully add a new IVR.&lt;br /&gt;
&lt;br /&gt;
Once saved, the new IVR will appear in the list automatically, and the modal will close.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 3. Editing an IVR ====&lt;br /&gt;
&lt;br /&gt;
# Click the &#039;&#039;&#039;Edit&#039;&#039;&#039; icon on the bottom-right of the IVR card.&lt;br /&gt;
#* An &#039;&#039;&#039;Update the IVR&#039;&#039;&#039; modal will appear with the current information pre-filled.&lt;br /&gt;
# Update any of the fields as needed:&lt;br /&gt;
#* Enter a new IVR name, internal number, and/or SIP address.&lt;br /&gt;
#* Select a different existing script to associate with the IVR.&lt;br /&gt;
# Click the &#039;&#039;&#039;Save&#039;&#039;&#039; button in the bottom-right corner to apply the changes.&lt;br /&gt;
# To cancel the editing process, click the &#039;&#039;&#039;Cancel&#039;&#039;&#039; button in the bottom-left corner.&lt;br /&gt;
[[File:Flowe IVR Edit Button.png|none|thumb|Edit IVR button]]&lt;br /&gt;
[[File:Flowe Edit IVR Modal.png|none|thumb|Update the IVR modal]]&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⇒ &#039;&#039;&#039;Note:&#039;&#039;&#039; All fields remain mandatory when editing an IVR.&lt;br /&gt;
&lt;br /&gt;
Once saved, the updated IVR will replace the old information in the list, and the modal will close.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 4. Deleting IVR ====&lt;br /&gt;
&lt;br /&gt;
# Click the &#039;&#039;&#039;Delete (trash icon)&#039;&#039;&#039; on the bottom-right of the IVR card.&lt;br /&gt;
#* A &#039;&#039;&#039;Delete IVR&#039;&#039;&#039; confirmation modal displaying the name of the selected IVR will appear.&lt;br /&gt;
# To confirm deletion, click the &#039;&#039;&#039;Delete&#039;&#039;&#039; button on the right.&lt;br /&gt;
#* The IVR will be permanently deleted and removed from the list.&lt;br /&gt;
# If you misclicked or decide not to delete, click the &#039;&#039;&#039;Cancel&#039;&#039;&#039; button on the left.&lt;br /&gt;
#* The modal will close promptly without any changes.&lt;br /&gt;
[[File:Flowe IVR Delete Button.png|none|thumb|301x301px|Delete IVR button]]&lt;br /&gt;
[[File:Flowe Delete IVR Modal.png|none|thumb|Delete IVR confirmation modal]]&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⇒ &#039;&#039;&#039;Note:&#039;&#039;&#039; Deletion is permanent and cannot be undone. Make sure to confirm before deleting a script.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Additional Functions ===&lt;br /&gt;
&lt;br /&gt;
==== Navigation Tab ====&lt;br /&gt;
The &#039;&#039;&#039;navigation tab&#039;&#039;&#039; on the top provides direct access to the main sections of the Flowe application: Scripts initial page, IVRs page, and Licensing information page. Users can quickly navigate between these sections by clicking the corresponding tab. The currently active section is highlighted to indicate the page in view.&lt;br /&gt;
&lt;br /&gt;
The navigation tab remains visible at all times, ensuring easy switching between functionalities within the app.&lt;br /&gt;
[[File:Flowe Top Navigation Tab.png|none|thumb|344x344px|Navigation tab]]&lt;br /&gt;
&lt;br /&gt;
==== Licensing Page ====&lt;br /&gt;
The &#039;&#039;&#039;Licensing page&#039;&#039;&#039; displays essential licensing information related to the Flowe application. This page is purely informational and does not contain interactive elements. It typically shows a message with contact details for inquiries or further licensing procedures.&lt;br /&gt;
[[File:Flowe Licensing Page.png|none|thumb|363x363px|Licensing page]]&lt;br /&gt;
&lt;br /&gt;
==== Language Configuration ====&lt;br /&gt;
The &#039;&#039;&#039;language selector&#039;&#039;&#039; is always visible within the application&#039;s interface, allowing users to seamlessly switch between Portuguese, English, and German at any time. This ensures that the application is accessible and user-friendly across different language preferences, with all texts dynamically updated upon selection.&lt;br /&gt;
[[File:Flowe Language Select.png|none|thumb|195x195px|Language selection]]&lt;br /&gt;
&lt;br /&gt;
== Component Diagram ==&lt;br /&gt;
The diagram below illustrates the architecture of the &#039;&#039;&#039;Flowe&#039;&#039;&#039; application and how its components interact with the &#039;&#039;&#039;Innovaphone PBX&#039;&#039;&#039;, the &#039;&#039;&#039;App Platform&#039;&#039;&#039; and external services.&lt;br /&gt;
[[File:Flowe Component Diagram Fixed.png|none|thumb|425x425px|Flowe&#039;s component diagram]]&lt;br /&gt;
&lt;br /&gt;
=== Component Flow Overview ===&lt;br /&gt;
* &#039;&#039;&#039;Flowe:&#039;&#039;&#039; stores and manages XML-based scripts that define the call flow logic.&lt;br /&gt;
* &#039;&#039;&#039;Files:&#039;&#039;&#039; holds audio files that can be used by scripts during execution.&lt;br /&gt;
* &#039;&#039;&#039;PBX Objects:&#039;&#039;&#039; are linked to scripts created in Flowe. When a call reaches a PBX object, it triggers the associated script.&lt;br /&gt;
* &#039;&#039;&#039;Webserver Routepoint:&#039;&#039;&#039; handles HTTP/HTTPS requests from Flowe:&lt;br /&gt;
** It interacts with external services (e.g. APIs) and returns the response in the expected format.&lt;br /&gt;
** It also stores audio files referenced by the scripts.&lt;br /&gt;
&lt;br /&gt;
== Licensing ==&amp;lt;!-- Needs further analysis and confirmation if more information is needed. --&amp;gt;&lt;br /&gt;
The &#039;&#039;&#039;Flowe&#039;&#039;&#039; application is licensed via the Innovaphone Pricelist. Currently, it is not yet listed on the official Innovaphone Partner App Licenses page, but it is expected to be included in future updates.&lt;br /&gt;
&lt;br /&gt;
The license model is based on the number of created scripts: each script requires one license.&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;License type:&#039;&#039;&#039; Innovaphone Pricelist&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;License model:&#039;&#039;&#039; One license per script&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Listed at:&#039;&#039;&#039; https://www.innovaphone.com/en/services/licenses/partner-apps.html?app=Flowe&amp;amp;type=license#flowe&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&amp;lt;!-- Needs further analysis and confirmation if more information is needed. --&amp;gt;&lt;br /&gt;
Before using Flowe, make sure your environment meets the following requirements:&lt;br /&gt;
&lt;br /&gt;
==== System Requirements ====&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Innovaphone firmware:&#039;&#039;&#039; Version 14r1 or later&lt;br /&gt;
* &#039;&#039;&#039;App Platform:&#039;&#039;&#039; Must be enabled and running in your myApps environment&lt;br /&gt;
* &#039;&#039;&#039;PBX Access:&#039;&#039;&#039; Access to the Admin UI to manage PBX Voicemail Objects&lt;br /&gt;
* &#039;&#039;&#039;Browser access:&#039;&#039;&#039; myApps Web or myApps Windows/Mobile&lt;br /&gt;
* &#039;&#039;&#039;Network access:&#039;&#039;&#039; Outbound access to the App and PBX services&lt;br /&gt;
&lt;br /&gt;
==== Functional Requirements ====&lt;br /&gt;
&lt;br /&gt;
* Must have rights to create/edit/delete &#039;&#039;&#039;Voicemail Objects&#039;&#039;&#039; in the PBX&lt;br /&gt;
* Must have access to manage XML script files through the app interface&lt;br /&gt;
* Users must have login permissions in the App Platform&lt;br /&gt;
&lt;br /&gt;
== Versions ==&lt;br /&gt;
&amp;lt;!-- Needs further analysis and confirmation if more information is needed. --&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Current version:&#039;&#039;&#039; 1.0&lt;br /&gt;
* &#039;&#039;&#039;Latest release:&#039;&#039;&#039; &amp;lt;code&amp;gt;2001 final&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Release date:&#039;&#039;&#039; May 22, 2025&lt;br /&gt;
* &#039;&#039;&#039;Innovaphone compatibility:&#039;&#039;&#039; Yes (Voicemail XML Schema)&lt;br /&gt;
* &#039;&#039;&#039;Architectures supported:&#039;&#039;&#039; &amp;lt;code&amp;gt;arm&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;x86_64&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;arm64&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&amp;lt;!-- Needs further analysis and confirmation if more information is needed. --&amp;gt;&lt;br /&gt;
Once installed, the &#039;&#039;&#039;Flowe&#039;&#039;&#039; app provides a structured and intuitive interface within &#039;&#039;&#039;MyApps&#039;&#039;&#039; for managing &#039;&#039;&#039;Voicemail Objects&#039;&#039;&#039; and their corresponding XML-based call flows. The configuration process is divided into two main areas: using the &#039;&#039;&#039;Flowe editor&#039;&#039;&#039; and linking the flow to the PBX via &#039;&#039;&#039;PBX Manager&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
To apply a script to a PBX Voicemail Object and activate it in the Innovaphone system:&lt;br /&gt;
&lt;br /&gt;
# Open the &#039;&#039;&#039;Devices&#039;&#039;&#039; app in MyApps and go to the &#039;&#039;&#039;Devices&#039;&#039;&#039; tab.&lt;br /&gt;
# Locate your PBX and click &#039;&#039;&#039;Admin UI&#039;&#039;&#039;.&lt;br /&gt;
# In the Admin UI interface, go to the &#039;&#039;&#039;PBX&#039;&#039;&#039; tab and select &#039;&#039;&#039;Objects&#039;&#039;&#039;.&lt;br /&gt;
# In the drop-down menu, choose &#039;&#039;&#039;Voicemail&#039;&#039;&#039;, then click &#039;&#039;&#039;new&#039;&#039;&#039;.&lt;br /&gt;
# Fill in the necessary fields:&lt;br /&gt;
#* &amp;lt;code&amp;gt;Name&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Number&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Display Name&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;Password&amp;lt;/code&amp;gt;&lt;br /&gt;
#* Under the &#039;&#039;&#039;Voicemail&#039;&#039;&#039; tab, provide:&lt;br /&gt;
#** &#039;&#039;&#039;Script URL&#039;&#039;&#039; (e.g., the script created in Flowe)&lt;br /&gt;
# Click &#039;&#039;&#039;Apply&#039;&#039;&#039; to save the object.&lt;br /&gt;
&lt;br /&gt;
[[File:PBX Manager flow for Flowe - voicemails.png|none|thumb|477x477px|PBX Manager flow to configure voicemail objects]]&lt;br /&gt;
[[File:PBX Voicemail Object General Configuration.png|none|thumb|479x479px|PBX voicemail object general configuration]]&lt;br /&gt;
[[File:PBX Voicemail Object Voicemail Configuration with Buttons.png|none|thumb|350x350px|PBX voicemail object voicemail configuration with buttons]]&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
Follow the steps below to install the &#039;&#039;&#039;Flowe&#039;&#039;&#039; application in your Innovaphone environment.&lt;br /&gt;
&lt;br /&gt;
=== Option 1: Installing via AP Manager App Store (Recommended) ===&lt;br /&gt;
You can install &#039;&#039;&#039;Flowe&#039;&#039;&#039; directly through the &#039;&#039;&#039;App Platform Manager&#039;&#039;&#039; (AP Manager) by accessing the App Store:&lt;br /&gt;
&lt;br /&gt;
# Open the &#039;&#039;&#039;AP Manager&#039;&#039;&#039;.&lt;br /&gt;
# Click the yellow &#039;&#039;&#039;App Store&#039;&#039;&#039; button in the top-right corner.&lt;br /&gt;
# Search for &#039;&#039;&#039;Flowe&#039;&#039;&#039; in the list.&lt;br /&gt;
# Select the latest version and confirm the download.&lt;br /&gt;
# The app will be automatically installed and ready to configure.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;🛈 This is the easiest and fastest way to deploy the app.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
[[File:Innovaphone MyApps Lab AppStore Button in AP Manager.png|link=https://wiki.innovaphone.comhttps//wiki.innovaphone.com/File:Innovaphone%20MyApps%20Lab%20AppStore%20Button%20in%20AP%20Manager.png|none|thumb|436x436px|AppStore Button in AP Manager outlined]]&lt;br /&gt;
[[File:AP Manager Appstore Interface.png|link=https://wiki.innovaphone.comhttps//wiki.innovaphone.com/File:AP%20Manager%20Appstore%20Interface.png|none|thumb|436x436px|AP Manager Appstore interface]]&lt;br /&gt;
&lt;br /&gt;
=== Option 2: Manual Installation via Upload ===&lt;br /&gt;
If you prefer installing manually, follow the steps below:&lt;br /&gt;
&lt;br /&gt;
==== Step 1: Download the App Package ====&lt;br /&gt;
&lt;br /&gt;
# Visit the official [https://appstore.wecom.com.br/release/WecomStore/1410593/download.htm Wecom myApps Downloads Portal].&lt;br /&gt;
# Find the &#039;&#039;&#039;Flowe&#039;&#039;&#039; app.&lt;br /&gt;
# Download the latest available version compatible with your system architecture.&lt;br /&gt;
&lt;br /&gt;
[[File:Wecom MyApps App Store Flowe.png|none|thumb|418x418px|Flowe on MyApps&#039; Wecom&#039;s App Store]]&lt;br /&gt;
&lt;br /&gt;
==== Step 2: Upload to AP Manager ====&lt;br /&gt;
&lt;br /&gt;
# In &#039;&#039;&#039;AP Manager&#039;&#039;&#039;, click &#039;&#039;&#039;App upload&#039;&#039;&#039; (top right).&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;.app&amp;lt;/code&amp;gt; package you downloaded from the portal.&lt;br /&gt;
# After successful upload, the app will appear in your list and show as &#039;&#039;&#039;Running&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
[[File:App Upload Button on MyApps AP Manager.png|link=https://wiki.innovaphone.comhttps//wiki.innovaphone.com/File:App%20Upload%20Button%20on%20MyApps%20AP%20Manager.png|none|thumb|487x487px|App Upload button on AP Manager outlined]]&lt;br /&gt;
[[File:Flowe on AP Manager.png|none|thumb|490x490px|Flowe on AP Manager]]&lt;br /&gt;
&lt;br /&gt;
=== Step 3: Add Application Instance ===&lt;br /&gt;
&lt;br /&gt;
# After uploading the app, click the yellow &#039;&#039;&#039;+ Add&#039;&#039;&#039; button to create an instance of the application.&lt;br /&gt;
# Fill in the required fields:&lt;br /&gt;
#* &#039;&#039;&#039;Name:&#039;&#039;&#039; A recognizable name for the instance.&lt;br /&gt;
#* &#039;&#039;&#039;Domain:&#039;&#039;&#039; The domain for the PBX.&lt;br /&gt;
#* &#039;&#039;&#039;Password:&#039;&#039;&#039; A secure admin password for the app instance.&lt;br /&gt;
#* &#039;&#039;&#039;Webserver path:&#039;&#039;&#039; Optional path (or leave blank).&lt;br /&gt;
#* &#039;&#039;&#039;Database host:&#039;&#039;&#039; Leave empty for local DB or specify IP/DNS if external.&lt;br /&gt;
#* &#039;&#039;&#039;Database name&#039;&#039;&#039; and &#039;&#039;&#039;Database user&#039;&#039;&#039;: Use consistent values for your environment.&lt;br /&gt;
#* &#039;&#039;&#039;Database password:&#039;&#039;&#039; Corresponding DB password.&lt;br /&gt;
# When all values are filled, click &#039;&#039;&#039;Save&#039;&#039;&#039;.&lt;br /&gt;
[[File:AP Manager Flowe App Instance Creation Example.png|none|thumb|440x440px|Example of instance creation screen in AP Manager]]&lt;br /&gt;
&lt;br /&gt;
=== Final Step: Registering the App in PBX Manager ===&lt;br /&gt;
&lt;br /&gt;
# Open the &#039;&#039;&#039;PBX Manager&#039;&#039;&#039;.&lt;br /&gt;
# Go to the &#039;&#039;&#039;Apps&#039;&#039;&#039; section.&lt;br /&gt;
# Click &#039;&#039;&#039;Add App&#039;&#039;&#039; and register:&lt;br /&gt;
#* A &#039;&#039;&#039;Users App&#039;&#039;&#039;&lt;br /&gt;
#* An &#039;&#039;&#039;Admin App&#039;&#039;&#039;&lt;br /&gt;
# Assign access rights as needed.&lt;br /&gt;
&lt;br /&gt;
[[File:PBX Manager Add an App Flowe.png|none|thumb|440x440px|PBX Manager Add an App select the app]]&lt;br /&gt;
[[File:PBX Manager Flowe Add an App Config.png|none|thumb|440x440px|PBX Manager Add an App configurations]]&lt;br /&gt;
[[File:Flowe on PBX Manager.png|none|thumb|441x441px|Flowe on PBX Manager configured]]&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⇒ After registration, both apps will appear in MyApps and are ready for use.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Copyright ==&lt;br /&gt;
&#039;&#039;Space dedicated to Flowe copyright information.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Contact ==&amp;lt;!-- Needs further analysis and confirmation if more information is needed. --&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;PORTO ALEGRE - RS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Av. Carlos Gomes, 466 / 401&lt;br /&gt;
&lt;br /&gt;
Boa Vista - CEP 90480-000&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tel:&#039;&#039;&#039; +55 51 3079.5000&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;FLORIANÓPOLIS - SC&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SC 401, 8600 - Room 7&lt;br /&gt;
&lt;br /&gt;
Corporate Park - Block 2&lt;br /&gt;
&lt;br /&gt;
Santo Antônio de Lisboa&lt;br /&gt;
&lt;br /&gt;
CEP 88050-001&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tel:&#039;&#039;&#039; +55 48 3112.6200&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mail:&#039;&#039;&#039; [mailto:comercial@wecom.com.br comercial@wecom.com.br]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Support:&#039;&#039;&#039; [mailto:suporte@wecom.com.br suporte@wecom.com.br]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Website:&#039;&#039;&#039; [https://wecom.com.br/ wecom.com.br]&lt;br /&gt;
&lt;br /&gt;
For any questions please refer to [https://wecom.com.br/fale-conosco/ our contact page.]&lt;/div&gt;</summary>
		<author><name>Pablo.montiel</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Howto:Billboard_-_Wecom_-_Partner_App&amp;diff=77325</id>
		<title>Howto:Billboard - Wecom - Partner App</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Howto:Billboard_-_Wecom_-_Partner_App&amp;diff=77325"/>
		<updated>2025-07-16T11:45:01Z</updated>

		<summary type="html">&lt;p&gt;Pablo.montiel: Wecom&amp;#039;s logo change&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FIXME|reason=Work in progress, still incomplete}}&lt;br /&gt;
&amp;lt;!-- Needed to add images: billboard logo, diagrams (2) to the component diagram, functions step-by-step, installation images, . --&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;float:right;&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Partner App Info&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |[[File:Wecom Billboard.png|alt=|center|frameless|200x200px|Billboard Icon]]&lt;br /&gt;
|-&lt;br /&gt;
!Name&lt;br /&gt;
|Billboard&lt;br /&gt;
|-&lt;br /&gt;
!Company&lt;br /&gt;
|Wecom&lt;br /&gt;
|-&lt;br /&gt;
!Version&lt;br /&gt;
|1.0&lt;br /&gt;
|-&lt;br /&gt;
!License&lt;br /&gt;
|Via Innovaphone Pricelist&lt;br /&gt;
|-&lt;br /&gt;
!Languages&lt;br /&gt;
|Czech, English, Estonian, French,&amp;lt;br&amp;gt;German, Italian, Polish, Portuguese,&amp;lt;br&amp;gt;Slovenian, Spanish&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Product Name ==&lt;br /&gt;
&#039;&#039;&#039;Billboard&#039;&#039;&#039; [https://wecom.com.br/ Link]&lt;br /&gt;
&lt;br /&gt;
== Certification Status ==&lt;br /&gt;
&amp;lt;!-- Do not remove comment. Will be added by Innovaphone upon document check &amp;amp; app availablity on app store. --&amp;gt;&lt;br /&gt;
&#039;&#039;Space dedicated to Billboard certification information.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Category ==&lt;br /&gt;
&#039;&#039;Space dedicated to Billboard category information.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Vendor ==&lt;br /&gt;
[[File:Logo 2 Wecom.png|alt=|thumb|Wecom&#039;s logo]]&lt;br /&gt;
Wecom&lt;br /&gt;
&lt;br /&gt;
* [https://wecom.com.br/ wecom.com.br]&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&#039;&#039;&#039;Billboard&#039;&#039;&#039; is a Partner App developed by &#039;&#039;&#039;Wecom&#039;&#039;&#039; to modernize internal communications by digitizing traditional bulletin boards. Through a user-friendly interface integrated into Innovaphone’s myApps workspace, departments (referred to as &amp;quot;groups&amp;quot; within the app) can publish announcements with scheduled validity, targeted visibility, and interaction tracking.&lt;br /&gt;
&lt;br /&gt;
Main components:&lt;br /&gt;
* &#039;&#039;&#039;Users App&#039;&#039;&#039; – For general users to access and interact with department posts.&lt;br /&gt;
* &#039;&#039;&#039;Admin App&#039;&#039;&#039; – For administrators to manage groups, posts, and licensing.&lt;br /&gt;
&lt;br /&gt;
== Functions ==&lt;br /&gt;
&amp;lt;!-- Section in analysis. --&amp;gt;&lt;br /&gt;
=== Admin App ===&lt;br /&gt;
&lt;br /&gt;
The Admin App provides global management functionalities for users, groups (departments), and posts. Only users marked as administrators via this panel will have access to it.&lt;br /&gt;
&lt;br /&gt;
==== 1. Granting Administrator Access ====&lt;br /&gt;
&lt;br /&gt;
# Access the Admin App – it will open on the &#039;&#039;&#039;Users Page&#039;&#039;&#039; by default.&lt;br /&gt;
# Use the &#039;&#039;&#039;search bar&#039;&#039;&#039; at the top to find the user you wish to promote.&lt;br /&gt;
# Locate the user in the list below.&lt;br /&gt;
# Click the checkbox next to their name to grant administrator privileges.&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Only an existing admin can assign admin rights to another user.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
[[File:A1. Billboard Admin Users Page.png|none|thumb|450x450px|Users Page with search bar and checkboxes for admin privileges]]&lt;br /&gt;
&lt;br /&gt;
==== 2. Viewing the Billboard License Information ====&lt;br /&gt;
&lt;br /&gt;
# In the Admin App sidebar, click on the &#039;&#039;&#039;Licensing&#039;&#039;&#039; tab.&lt;br /&gt;
# The page will display information related to the current license.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;System Token&#039;&#039;&#039;: Unique identifier for the system, used for license validation.&lt;br /&gt;
* &#039;&#039;&#039;Active License&#039;&#039;&#039;: Indicates if the license is active (e.g., Temporary).&lt;br /&gt;
* &#039;&#039;&#039;Billboard Install Date&#039;&#039;&#039;: Shows the exact date and time when the Billboard app was installed.&lt;br /&gt;
* &#039;&#039;&#039;Licenses in Use&#039;&#039;&#039;: Displays the number of users currently using the Billboard Apps.&lt;br /&gt;
&lt;br /&gt;
[[File:License Page Billboard Admin Correct.jpg|none|thumb|450x450px|Licensing page showing all license details]]&lt;br /&gt;
&lt;br /&gt;
==== 3. Managing Departments ====&lt;br /&gt;
&lt;br /&gt;
# In the Admin App sidebar, click on the &#039;&#039;&#039;Departments&#039;&#039;&#039; tab.&lt;br /&gt;
# Browse the list of all departments created in the system.&lt;br /&gt;
# Scroll to locate the department you wish to edit.&lt;br /&gt;
# Click on the &#039;&#039;&#039;color circle&#039;&#039;&#039; next to the department to open the editing modal.&lt;br /&gt;
# In the modal:&lt;br /&gt;
## Update the department&#039;s name.&lt;br /&gt;
## Change its color using the color picker.&lt;br /&gt;
## Add or remove users as &#039;&#039;&#039;Editors&#039;&#039;&#039; or &#039;&#039;&#039;Viewers&#039;&#039;&#039;.&lt;br /&gt;
## Save the changes to apply them.&lt;br /&gt;
[[File:A3.1. Billboard Admin Group Management.png|none|thumb|450x450px|Group management modal]]&lt;br /&gt;
&lt;br /&gt;
* The list includes all departments, including those marked as deleted.&lt;br /&gt;
* Deleted departments are labeled with their deletion date.&lt;br /&gt;
* Each department entry shows:&lt;br /&gt;
** Department name&lt;br /&gt;
** Assigned color&lt;br /&gt;
** Creator&#039;s name&lt;br /&gt;
** Status (active or deleted)&lt;br /&gt;
[[File:A3. Billboard Admin Departments Page.png|none|thumb|450x450px|Departments list with edit modal access]]&lt;br /&gt;
&lt;br /&gt;
==== 4. Managing Posts ====&lt;br /&gt;
&lt;br /&gt;
# Click on the &#039;&#039;&#039;Posts&#039;&#039;&#039; tab in the Admin App sidebar.&lt;br /&gt;
# Browse the full list of posts created across all departments.&lt;br /&gt;
# Scroll to locate a specific post.&lt;br /&gt;
# Click the &#039;&#039;&#039;edit icon&#039;&#039;&#039; next to a post to open the editing modal.&lt;br /&gt;
# In the modal:&lt;br /&gt;
## Modify the title, description, color, type, and visibility period.&lt;br /&gt;
## Save the changes to update the post.&lt;br /&gt;
[[File:A4.1. ABillboard Admin Post Management.png|none|thumb|450x450px|Post management modal]]&lt;br /&gt;
&lt;br /&gt;
* The post list includes:&lt;br /&gt;
** Active posts&lt;br /&gt;
** Expired posts&lt;br /&gt;
** Deleted posts (showing the deletion date)&lt;br /&gt;
* Each post displays:&lt;br /&gt;
** Title&lt;br /&gt;
** Department (group) association&lt;br /&gt;
** Type: Internal or External&lt;br /&gt;
** Start and end dates (visibility period)&lt;br /&gt;
** Creator&#039;s name&lt;br /&gt;
** Current status: active, expired, or deleted&lt;br /&gt;
[[File:A4. Billboard Admin Posts Page.png|none|thumb|450x450px|All posts view with status, creator, and edit access]]&lt;br /&gt;
&lt;br /&gt;
==== 5. Accessing Public Posts ====&lt;br /&gt;
&lt;br /&gt;
# In the sidebar, click on the &#039;&#039;&#039;Public Posts&#039;&#039;&#039; tab.&lt;br /&gt;
# A modal will appear, redirecting you to the Billboard &#039;&#039;&#039;Users App&#039;&#039;&#039; to view a list of posts.&lt;br /&gt;
# Click on any post from this list.&lt;br /&gt;
&lt;br /&gt;
* Only posts with the &amp;quot;External&amp;quot; type selected during creation appear here.&lt;br /&gt;
* This page is read-only and used for quick access to public content.&lt;br /&gt;
[[File:A5. Billboard Admin Public Posts Modal.png|none|thumb|450x450px|Public posts modal with redirect to Users App]]&lt;br /&gt;
&lt;br /&gt;
=== Users App ===&lt;br /&gt;
&lt;br /&gt;
The Users App is the interface where users access, read, create, and manage department posts, based on their permissions (viewer or editor). Each user sees only the groups they are part of.&lt;br /&gt;
&lt;br /&gt;
==== 1. Accessing a Group ====&lt;br /&gt;
&lt;br /&gt;
# Upon opening the Users App, the main screen lists all groups (departments) the user belongs to.&lt;br /&gt;
# To enter a group, simply click on the desired group.&amp;lt;blockquote&amp;gt;Groups are color-coded and may display badges for new or unseen posts.&amp;lt;/blockquote&amp;gt;[[File:Billboard Users Groups Page.png|none|thumb|450x450px|Users App main page with every group you are on]]&lt;br /&gt;
&lt;br /&gt;
==== 2. Creating a Group (Admins only) ====&lt;br /&gt;
&lt;br /&gt;
# Only users assigned with the &amp;quot;create department&amp;quot; permission (via Admin App) will see the &#039;&#039;&#039;Add+&#039;&#039;&#039; button on the main screen.[[File:4. Billboard Users Groups Page Button Outlined.png|none|thumb|450x450px|Groups page with &amp;quot;+ Add&amp;quot; button outlined]]&lt;br /&gt;
# Click &#039;&#039;&#039;Add+&#039;&#039;&#039; to open the group creation modal.&lt;br /&gt;
# Fill in:&lt;br /&gt;
#* Enter the &#039;&#039;&#039;Department Name&#039;&#039;&#039;&lt;br /&gt;
#* Select the color using the color picker&lt;br /&gt;
#* Assign users to roles:&lt;br /&gt;
#** &#039;&#039;&#039;Editor&#039;&#039;&#039; – Can manage posts, see group&#039;s history and edit the department.&lt;br /&gt;
#** &#039;&#039;&#039;Viewer&#039;&#039;&#039; – Can only view posts.&lt;br /&gt;
#* Clicking &amp;quot;Viewer&amp;quot; name label selects all users as viewers.[[File:5. Billboard Group Creation Modal.png|none|thumb|450x450px|Group creation modal with roles selection, color picking and name input]]&lt;br /&gt;
&lt;br /&gt;
==== 3. Viewing a Post ====&lt;br /&gt;
&lt;br /&gt;
# Inside a group, posts are displayed as cards.[[File:2. Billboard Posts Page (of a Group).png|none|thumb|450x450px|Posts inside a group]]&lt;br /&gt;
#* If you are an Editor, the post will also show the visibility period on the bottom of the card.&lt;br /&gt;
#* Unread posts display a red &#039;&#039;&#039;NEW&#039;&#039;&#039; label in the top-left corner of the card.&lt;br /&gt;
#** The label disappears as soon as the post is opened.[[File:2.5. Billboard New Post Card Editor View.png|none|thumb|350x350px|New post with visibility period]]&lt;br /&gt;
# Click on a post to open its details.[[File:3. Billboard Open Post.png|none|thumb|Open post with information and description]]&lt;br /&gt;
# The post view shows:&lt;br /&gt;
#* Type (External or Internal)&lt;br /&gt;
#* Creator&#039;s name&lt;br /&gt;
#* Start and end dates of visibility&lt;br /&gt;
# To close the post, click the &#039;&#039;&#039;X&#039;&#039;&#039; button in the top right corner.&lt;br /&gt;
&lt;br /&gt;
==== 4. Creating a Post ====&lt;br /&gt;
&lt;br /&gt;
# Editors will see an &#039;&#039;&#039;Add+&#039;&#039;&#039; card within the department page.[[File:6. Billboard Posts Page with Add Card.png|none|thumb|450x450px|Posts on a group with Editor view, with &amp;quot;Add+&amp;quot; card]]&lt;br /&gt;
# Click it to open the post creation modal.&lt;br /&gt;
# Fill in the following:&lt;br /&gt;
#* &#039;&#039;&#039;Title&#039;&#039;&#039; (top input)&lt;br /&gt;
#* &#039;&#039;&#039;Description&#039;&#039;&#039; (main text area)&lt;br /&gt;
#* &#039;&#039;&#039;Start and end dates&#039;&#039;&#039;[[File:6.1. Billboard Post Start and End Date Picking.png|none|thumb|350x350px|Post start and end date time picking]]&lt;br /&gt;
#* &#039;&#039;&#039;Type&#039;&#039;&#039; (Internal or External)[[File:6.2. Billboard Post Type Drop Down Select.png|none|thumb|300x300px|Type drop down selection]]&lt;br /&gt;
#* &#039;&#039;&#039;Color&#039;&#039;&#039; (default is black if not selected)[[File:6.3. Billboard Post Color Picker.png|none|thumb|300x300px|Post and group color picker]]&lt;br /&gt;
# Click &#039;&#039;&#039;Insert&#039;&#039;&#039; to save or &#039;&#039;&#039;Close&#039;&#039;&#039; to cancel.[[File:7. Billboard Post Creation Modal.png|none|thumb|400x400px|Post creation and editing modal]]&lt;br /&gt;
&lt;br /&gt;
==== 5. Editing or Deleting a Post ====&lt;br /&gt;
&lt;br /&gt;
# If you are the creator or an editor of the group:&lt;br /&gt;
#* Click the pencil icon to edit – the modal opens pre-filled with existing data.&lt;br /&gt;
#* Click the trash icon to delete – the post is removed immediately.[[File:8. Billboard Post View as Editor Actions Outlined.png|none|thumb|400x400px|Post view as Editor with actions outlined]]&lt;br /&gt;
&lt;br /&gt;
==== 6. Viewing Post History ====&lt;br /&gt;
&lt;br /&gt;
# Inside the post, click the &#039;&#039;&#039;Clock&#039;&#039;&#039; icon to view who has accessed it.&lt;br /&gt;
#* The view shows user names and access timestamps.&lt;br /&gt;
#* A back arrow icon replaces the clock to return to the post details.[[File:9. Billboard Post History.png|none|thumb|350x350px|Post history of who has viewed and when]]&lt;br /&gt;
&lt;br /&gt;
==== 7. Managing Groups (Editor role) ====&lt;br /&gt;
&lt;br /&gt;
* Editors see extra options in the bottom menu of the department page.[[File:10. Billboard Posts Page with Bottom Menu Outlined.png|none|thumb|Posts on a group as an Editor with bottom menu outlined]]&lt;br /&gt;
# Click the trash icon to delete the group.&lt;br /&gt;
# Click the clock icon to access post history.&lt;br /&gt;
#* You can filter posts:&lt;br /&gt;
#** By time period (Today, Last 7 days, Custom...)&lt;br /&gt;
#** By deleted or active status[[File:11. Billboard Posts Time Filter Drop Down.png|none|thumb|Group&#039;s posts history drop down time filter]][[File:12. Billboard Posts Time Filter Custom.png|none|thumb|Group&#039;s posts history time filter with custom period time picking]]&lt;br /&gt;
# Click the gear icon to edit group settings:&lt;br /&gt;
#* Change the name or color&lt;br /&gt;
#* Modify members and their roles[[File:13. Billboard Group Editing.png|none|thumb|Group editing modal with users and their roles that were previous selected ]]&lt;br /&gt;
&lt;br /&gt;
== Component Diagram ==&lt;br /&gt;
The diagrams below illustrate the architecture of the &#039;&#039;&#039;Billboard&#039;&#039;&#039; application and its interaction with the Innovaphone platform, as well as the various components involved.&lt;br /&gt;
&lt;br /&gt;
=== User and Admin Interaction Flow ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Flow Overview:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;ADMIN:&#039;&#039;&#039; The administrator has the ability to manage groups and posts across the system, including controlling visibility and user access.&lt;br /&gt;
* &#039;&#039;&#039;DEPARTMENT (Group):&#039;&#039;&#039; Represents different groups (like IT and HR), each having specific announcements and user interactions.&lt;br /&gt;
* &#039;&#039;&#039;NOTES:&#039;&#039;&#039; Each group can have specific notes (e.g., IT or HR), which are shown to relevant users.&lt;br /&gt;
* &#039;&#039;&#039;USERS:&#039;&#039;&#039; Users from various groups (IT, HR, and General) can access posts that are published within their allowed groups.&lt;br /&gt;
&lt;br /&gt;
=== Application Architecture ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Flow Overview:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;PBX Platform:&#039;&#039;&#039; Interacts with the &#039;&#039;&#039;Billboard App&#039;&#039;&#039;, managing internal communication and service integration.&lt;br /&gt;
* &#039;&#039;&#039;APP Platform:&#039;&#039;&#039; Hosts the &#039;&#039;&#039;Billboard Service&#039;&#039;&#039;, which manages posts and user interactions, and communicates with the database.&lt;br /&gt;
* &#039;&#039;&#039;Service DWC:&#039;&#039;&#039; Responsible for managing the backend services for the Billboard app, providing routes to interact with both the database and the PBX platform.&lt;br /&gt;
&lt;br /&gt;
This architecture shows how the components integrate within the Innovaphone ecosystem, allowing for seamless communication between groups and users through the &#039;&#039;&#039;Billboard&#039;&#039;&#039; app.&lt;br /&gt;
&lt;br /&gt;
== Licensing ==&lt;br /&gt;
&amp;lt;!-- Needs further analysis and clarification. --&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Billboard&#039;&#039;&#039; is licensed via the Innovaphone Pricelist.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;License type:&#039;&#039;&#039; Innovaphone Pricelist  &lt;br /&gt;
&#039;&#039;&#039;License model:&#039;&#039;&#039; One license per user&lt;br /&gt;
&#039;&#039;&#039;Trial:&#039;&#039;&#039; 90 days temporary license available after installation  &lt;br /&gt;
&#039;&#039;&#039;Listed at:&#039;&#039;&#039; https://www.innovaphone.com/en/services/licenses/partner-apps.html?app=Billboard&amp;amp;type=license#billboard&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
&amp;lt;!-- Needs further analysis and clarification. --&amp;gt;&lt;br /&gt;
=== System Requirements ===&lt;br /&gt;
&lt;br /&gt;
* Innovaphone firmware: &amp;lt;code&amp;gt;14r1&amp;lt;/code&amp;gt; or later&lt;br /&gt;
* Innovaphone App Platform with myApps&lt;br /&gt;
* PBX Manager for app registration&lt;br /&gt;
&lt;br /&gt;
=== Licensing Activation ===&lt;br /&gt;
&lt;br /&gt;
* Requires license token and file provided by Wecom&lt;br /&gt;
* Insert into Admin interface for activation&lt;br /&gt;
&lt;br /&gt;
== Versions ==&lt;br /&gt;
&amp;lt;!-- Needs further analysis and clarification. --&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Current version:&#039;&#039;&#039; 1.0&lt;br /&gt;
* &#039;&#039;&#039;Latest release:&#039;&#039;&#039; &amp;lt;code&amp;gt;1011 final&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Release date:&#039;&#039;&#039; June 17, 2025&lt;br /&gt;
* &#039;&#039;&#039;Innovaphone compatibility:&#039;&#039;&#039; Yes&lt;br /&gt;
* &#039;&#039;&#039;Architectures supported:&#039;&#039;&#039; &amp;lt;code&amp;gt;arm&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;x86_64&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;arm64&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
Follow the steps below to install the &#039;&#039;&#039;Billboard&#039;&#039;&#039; application in your Innovaphone environment.&lt;br /&gt;
&lt;br /&gt;
=== Option 1: Installing via AP Manager App Store (Recommended) ===&lt;br /&gt;
You can install &#039;&#039;&#039;Billboard&#039;&#039;&#039; directly through the &#039;&#039;&#039;App Platform Manager&#039;&#039;&#039; (AP Manager) by accessing the App Store:&lt;br /&gt;
&lt;br /&gt;
# Open the &#039;&#039;&#039;AP Manager&#039;&#039;&#039;.&lt;br /&gt;
# Click the yellow &#039;&#039;&#039;App Store&#039;&#039;&#039; button in the top-right corner.&lt;br /&gt;
# Search for &#039;&#039;&#039;Billboard&#039;&#039;&#039; in the list.&lt;br /&gt;
# Click on it to open further information&lt;br /&gt;
# Select the latest version and confirm the download.&lt;br /&gt;
# The app will be automatically installed and ready to configure.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;🛈 This is the easiest and fastest way to deploy the app.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
[[File:Innovaphone MyApps Lab AppStore Button in AP Manager.png|none|thumb|436x436px|AppStore Button in AP Manager outlined]]&lt;br /&gt;
[[File:AP Manager Billboard.png|none|thumb|436x436px|AP Manager Appstore interface with actions outlined]]&lt;br /&gt;
&lt;br /&gt;
=== Option 2: Manual Installation via Upload ===&lt;br /&gt;
If you prefer installing manually, follow the steps below:&lt;br /&gt;
&lt;br /&gt;
==== Step 1: Download the App Package ====&lt;br /&gt;
&lt;br /&gt;
# Visit the official [https://appstore.wecom.com.br/release/WecomStore/1410593/download.htm Wecom myApps Downloads Portal].&lt;br /&gt;
# Find the &#039;&#039;&#039;Billboard&#039;&#039;&#039; app.&lt;br /&gt;
# Download the latest available version compatible with your system architecture.&lt;br /&gt;
[[File:Wecom MyApps App Store Billboard.png|none|thumb|418x418px|Billboard on MyApps&#039; Wecom&#039;s App Store]]&lt;br /&gt;
&lt;br /&gt;
==== Step 2: Upload to AP Manager ====&lt;br /&gt;
&lt;br /&gt;
# In &#039;&#039;&#039;AP Manager&#039;&#039;&#039;, click &#039;&#039;&#039;App upload&#039;&#039;&#039; (top right).&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;.app&amp;lt;/code&amp;gt; package you downloaded from the portal.&lt;br /&gt;
# After successful upload, the app will appear in your list and show as &#039;&#039;&#039;Running&#039;&#039;&#039;.&lt;br /&gt;
[[File:App Upload Button on MyApps AP Manager.png|none|thumb|487x487px|App Upload button on AP Manager outlined]]&lt;br /&gt;
[[File:Billboard on AP Manager.png|none|thumb|440x440px|Billboard on AP Manager]]&lt;br /&gt;
[[File:Billboard upload on App Manager.png|none|thumb|440x440px|Uploading Billboard on Ap Manager]]&lt;br /&gt;
&lt;br /&gt;
=== Step 3: Add Application Instance ===&lt;br /&gt;
&lt;br /&gt;
# After uploading the app, click the yellow &#039;&#039;&#039;+ Add&#039;&#039;&#039; button to create an instance of the application.&lt;br /&gt;
# Fill in the required fields:&lt;br /&gt;
#* &#039;&#039;&#039;Name:&#039;&#039;&#039; A recognizable name for the instance.&lt;br /&gt;
#* &#039;&#039;&#039;Domain:&#039;&#039;&#039; The domain for the PBX.&lt;br /&gt;
#* &#039;&#039;&#039;Password:&#039;&#039;&#039; A secure admin password for the app instance.&lt;br /&gt;
#* &#039;&#039;&#039;Webserver path:&#039;&#039;&#039; Optional path (or leave blank).&lt;br /&gt;
#* &#039;&#039;&#039;Database host:&#039;&#039;&#039; Leave empty for local DB or specify IP/DNS if external.&lt;br /&gt;
#* &#039;&#039;&#039;Database name&#039;&#039;&#039; and &#039;&#039;&#039;Database user&#039;&#039;&#039;: Use consistent values for your environment.&lt;br /&gt;
#* &#039;&#039;&#039;Database password:&#039;&#039;&#039; Corresponding DB password.&lt;br /&gt;
# When all values are filled, click &#039;&#039;&#039;Save&#039;&#039;&#039;.&lt;br /&gt;
[[File:AP Manager Billboard App Instance Creation Example.png|none|thumb|440x440px|Example of instance creation screen in AP Manager]]&lt;br /&gt;
&lt;br /&gt;
=== Final Step: Registering the App in PBX Manager ===&lt;br /&gt;
&lt;br /&gt;
# Open the &#039;&#039;&#039;PBX Manager&#039;&#039;&#039;.&lt;br /&gt;
# Go to the &#039;&#039;&#039;Apps&#039;&#039;&#039; section.&lt;br /&gt;
# Click &#039;&#039;&#039;Add App&#039;&#039;&#039; and register:&lt;br /&gt;
#* A &#039;&#039;&#039;Users App&#039;&#039;&#039;&lt;br /&gt;
#* An &#039;&#039;&#039;Admin App&#039;&#039;&#039;&lt;br /&gt;
# Assign access rights as needed.&lt;br /&gt;
[[File:PBX Manager Add an App Billboard Correct.png|none|thumb|440x440px|PBX Manager &#039;&#039;Add an App&#039;&#039; app selection]]&lt;br /&gt;
[[File:PBX Manager Billboard Add an App Config.png|none|thumb|440x440px|PBX Manager &#039;&#039;Add an App&#039;&#039; configuration]]&lt;br /&gt;
[[File:Billboard on PBX Manager Correct.png|none|thumb|440x440px|Billboard on PBX Manager configured]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⇒ After registration, both apps will appear in MyApps and are ready for use.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Copyright ==&lt;br /&gt;
&#039;&#039;Space dedicated to Flowe copyright information.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Contact ==&lt;br /&gt;
* &#039;&#039;&#039;PORTO ALEGRE - RS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Av. Carlos Gomes, 466 / 401&lt;br /&gt;
&lt;br /&gt;
Boa Vista - CEP 90480-000&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tel:&#039;&#039;&#039; +55 51 3079.5000&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;FLORIANÓPOLIS - SC&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SC 401, 8600 - Room 7&lt;br /&gt;
&lt;br /&gt;
Corporate Park - Block 2&lt;br /&gt;
&lt;br /&gt;
Santo Antônio de Lisboa&lt;br /&gt;
&lt;br /&gt;
CEP 88050-001&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tel:&#039;&#039;&#039; +55 48 3112.6200&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mail:&#039;&#039;&#039; [mailto:comercial@wecom.com.br comercial@wecom.com.br]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Support:&#039;&#039;&#039; [mailto:suporte@wecom.com.br suporte@wecom.com.br]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Website:&#039;&#039;&#039; [https://wecom.com.br/ wecom.com.br]&lt;br /&gt;
&lt;br /&gt;
For any questions please refer to [https://wecom.com.br/fale-conosco/ our contact page.]&lt;/div&gt;</summary>
		<author><name>Pablo.montiel</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=File:Logo_2_Wecom.png&amp;diff=77324</id>
		<title>File:Logo 2 Wecom.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=File:Logo_2_Wecom.png&amp;diff=77324"/>
		<updated>2025-07-16T11:40:48Z</updated>

		<summary type="html">&lt;p&gt;Pablo.montiel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Logo 2 Wecom&lt;/div&gt;</summary>
		<author><name>Pablo.montiel</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Howto:Flowe_-_Wecom_-_Partner_App&amp;diff=77254</id>
		<title>Howto:Flowe - Wecom - Partner App</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Howto:Flowe_-_Wecom_-_Partner_App&amp;diff=77254"/>
		<updated>2025-07-01T18:39:00Z</updated>

		<summary type="html">&lt;p&gt;Pablo.montiel: /* Versions */ Fix with latest version info&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FIXME|reason=Work in progress, still incomplete}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;float:right; margin: 0 0 1em 1em; width: 330px;&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Partner App Info&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |[[File:Flowe Logo Small.png|alt=|center|frameless|Flowe&#039;s logo]]&lt;br /&gt;
|-&lt;br /&gt;
!Name&lt;br /&gt;
|Flowe&lt;br /&gt;
|-&lt;br /&gt;
!Company&lt;br /&gt;
|Wecom&lt;br /&gt;
|-&lt;br /&gt;
!Version&lt;br /&gt;
|1.0&lt;br /&gt;
|-&lt;br /&gt;
!Compatibility&lt;br /&gt;
|[https://www.innovaphone.com/xsd/vm.htm Innovaphone XML Schema]&lt;br /&gt;
|-&lt;br /&gt;
!License&lt;br /&gt;
|Via Innovaphone Pricelist&lt;br /&gt;
|-&lt;br /&gt;
!Languages&lt;br /&gt;
|Portuguese, English, German&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Product Name ==&lt;br /&gt;
&#039;&#039;&#039;Flowe&#039;&#039;&#039; [https://www.innovaphone.com/xsd/vm.htm Link]&lt;br /&gt;
&lt;br /&gt;
== Certification Status ==&lt;br /&gt;
&amp;lt;!-- Do not remove comment. Will be added by Innovaphone upon document check &amp;amp; app availablity on app store. --&amp;gt;&lt;br /&gt;
&#039;&#039;Space dedicated to Flowe certification information.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Category ==&lt;br /&gt;
&amp;lt;!-- Do not change this section and do not remove comments. Will be set by Innovaphone upon document check. --&amp;gt;&lt;br /&gt;
[[Category:Partner Apps|{{PAGENAME}}]]&lt;br /&gt;
{{Category:3rdParty_VoIPSystem_Management}}&lt;br /&gt;
[[Category:3rdParty VoIPSystem Management|{{PAGENAME}}]]&lt;br /&gt;
&lt;br /&gt;
== Vendor ==&lt;br /&gt;
[[File:Logo wecom.png|alt=|thumb|Wecom&#039;s logo]]&lt;br /&gt;
Wecom&lt;br /&gt;
&lt;br /&gt;
* [https://www.wecom.com.br www.wecom.com.br]&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&#039;&#039;&#039;Flowe&#039;&#039;&#039; is a Partner App developed by &#039;&#039;&#039;Wecom&#039;&#039;&#039; for the &#039;&#039;&#039;Innovaphone MyApps&#039;&#039;&#039; platform. It is designed to simplify the creation, edition, and management of XML scripts and Voicemail Objects within the PBX.&lt;br /&gt;
&lt;br /&gt;
With a user-friendly and responsive interface optimized for mobile and desktop use, Flowe allows administrators to:&lt;br /&gt;
&lt;br /&gt;
* Create and edit XML scripts visually&lt;br /&gt;
* Import and export script files&lt;br /&gt;
* Create and assign scripts to IVRs (Interactive Voice Response systems)&lt;br /&gt;
* Manage multi-language content (Portuguese, English, German)&lt;br /&gt;
&lt;br /&gt;
Flowe enhances productivity by abstracting technical complexity and aligning with Innovaphone’s native [https://www.innovaphone.com/xsd/vm.htm schema definitions].&lt;br /&gt;
&lt;br /&gt;
== Functions ==&lt;br /&gt;
This section provides an overview of each core part of the Flowe application. It highlights the purpose of each page, what actions can be performed, and how to navigate through the available features. Additionally, this section provides step-by-step explanations for each functionality.&lt;br /&gt;
&lt;br /&gt;
=== Scripts - Initial Page ===&lt;br /&gt;
[[File:Flowe&#039;s Scripts&#039; Initial Page.png|alt=|thumb|419x419px|Scripts&#039; initial page with outlined features]]&lt;br /&gt;
The Scripts &#039;&#039;&#039;Initial Page&#039;&#039;&#039; section is the main entry point of the Flowe application. Upon launching the app, users are presented with an overview of all existing XML scripts that have been created or imported into the system where users can quickly access, search for and manage scripts.&lt;br /&gt;
&lt;br /&gt;
The interface is divided into a &#039;&#039;&#039;search bar,&#039;&#039;&#039; a &#039;&#039;&#039;list of scripts&#039;&#039;&#039;, and two main action buttons: &#039;&#039;&#039;Add&#039;&#039;&#039; and &#039;&#039;&#039;Import&#039;&#039;&#039;. Each script listed displays essential information such as its filename, creation date, last modification date, file size and a unique identifier.&lt;br /&gt;
&lt;br /&gt;
Additionally, each script entry offers three direct action buttons:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Download&#039;&#039;&#039; – allows the user to download the XML file locally.&lt;br /&gt;
* &#039;&#039;&#039;Edit&#039;&#039;&#039; – redirects the user to the Script Management page, where the script can be fully edited.&lt;br /&gt;
* &#039;&#039;&#039;Delete&#039;&#039;&#039; – opens a confirmation modal for script deletion.&lt;br /&gt;
&lt;br /&gt;
==== 1. Searching for script ====&lt;br /&gt;
&lt;br /&gt;
# Write in the &#039;&#039;&#039;&amp;quot;Type to search...&amp;quot;&#039;&#039;&#039; input area.&lt;br /&gt;
# The results will automatically appear in the list below as you type.&lt;br /&gt;
[[File:Flowe Scripts&#039; Search Bar.png|none|thumb|461x461px|Script list search bar]]&lt;br /&gt;
&lt;br /&gt;
==== 2. Adding new script ====&lt;br /&gt;
&lt;br /&gt;
* Click the &#039;&#039;&#039;Add&#039;&#039;&#039; button next to the search bar.&lt;br /&gt;
** You will be redirected to the [[#Scripts - Management Page|Scripts Management Page]] to create a new script.&lt;br /&gt;
[[File:Flowe Scripts Add Button.png|none|thumb|Add script button]]&lt;br /&gt;
&lt;br /&gt;
==== 3. Importing script ====&lt;br /&gt;
&lt;br /&gt;
# Click the &#039;&#039;&#039;Import&#039;&#039;&#039; button next to the search bar.&lt;br /&gt;
#* An &#039;&#039;&#039;Import Script&#039;&#039;&#039; modal will appear.&lt;br /&gt;
# Select the file by clicking the &#039;&#039;&#039;Select File&#039;&#039;&#039; button.&lt;br /&gt;
#* This will open your computer’s file selection window.&lt;br /&gt;
# Click the &#039;&#039;&#039;Import&#039;&#039;&#039; button in the modal.&lt;br /&gt;
#* The imported script will appear in the list automatically.&lt;br /&gt;
[[File:Flowe Scripts Import Button.png|none|thumb|Import script button]]&lt;br /&gt;
[[File:Flowe Import Script Modal.png|none|thumb|Import script modal]]&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⇒ &#039;&#039;&#039;Note:&#039;&#039;&#039; Only XML script files will be accepted.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 4. Downloading script ====&lt;br /&gt;
&lt;br /&gt;
* Click the &#039;&#039;&#039;Download&#039;&#039;&#039; icon on the right side of the script’s information card.&lt;br /&gt;
** The download will start immediately once clicked.&lt;br /&gt;
[[File:Flowe Download Script Button.png|none|thumb|Download script button]]&lt;br /&gt;
&lt;br /&gt;
==== 5. Editing script ====&lt;br /&gt;
&lt;br /&gt;
* Click the &#039;&#039;&#039;Edit&#039;&#039;&#039; icon on the right side of the script’s information card.&lt;br /&gt;
** You will be redirected to the [[#Scripts - Management Page|Scripts Management Page]], where you can edit the script.&lt;br /&gt;
[[File:Flowe Edit Script Button.png|none|thumb|Edit script button]]&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⇒ &#039;&#039;&#039;Note:&#039;&#039;&#039; All current script data will be loaded automatically into the management page for editing.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 6. Deleting script ====&lt;br /&gt;
&lt;br /&gt;
#Click the &#039;&#039;&#039;Delete (trash icon)&#039;&#039;&#039; icon on the right side of the script’s information card.&lt;br /&gt;
#* A &#039;&#039;&#039;Delete Confirmation&#039;&#039;&#039; confirmation modal will appear.&lt;br /&gt;
# To confirm deletion, click the &#039;&#039;&#039;Delete&#039;&#039;&#039; button on the right.&lt;br /&gt;
#* The script will be permanently deleted and removed from the list.&lt;br /&gt;
# If you misclicked or decide not to delete, click the &#039;&#039;&#039;Cancel&#039;&#039;&#039; button on the left.&lt;br /&gt;
#* The modal will close promptly without any changes.&lt;br /&gt;
[[File:Flowe Delete Script Button.png|none|thumb|Delete script button]]&lt;br /&gt;
[[File:Flowe Delete Script Modal.png|none|thumb|Delete script confirmation modal]]&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⇒ &#039;&#039;&#039;Note:&#039;&#039;&#039; Deletion is permanent and cannot be undone. Make sure to confirm before deleting a script.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Scripts - Management Page ===&lt;br /&gt;
The Scripts &#039;&#039;&#039;Management Page&#039;&#039;&#039; is the core interface for creating and editing XML scripts within the Flowe application. This page is designed to provide users with a intuitive interactive editor where scripts can be built from scratch or modified as needed.&lt;br /&gt;
[[File:Flowe New Script Management Page.png|thumb|447x447px|New script management page with outlined features]]&lt;br /&gt;
[[File:Flowe Scripts Management Page 2.1.png|thumb|447x447px|Script management page with added functions and outlined features]]&lt;br /&gt;
The interface is divided into the following key areas:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Script Name Input&#039;&#039;&#039; – Located at the top of the page, filling this input field in is mandatory. Users must define a unique name for the script before they can save it.&lt;br /&gt;
* &#039;&#039;&#039;Elements List&#039;&#039;&#039; – Positioned on the left side, this section contains all available XML elements, each with a brief description, that can be inserted into the script.&lt;br /&gt;
* &#039;&#039;&#039;Search Bar for Elements&#039;&#039;&#039; – A search bar above the elements list allows users to search through using keywords that match either the element name or its description.&lt;br /&gt;
* &#039;&#039;&#039;Script Body&#039;&#039;&#039; – The main workspace is located on the right side and displays the full structure of the script as collapsed blocks. Each script begins with a pre-created Main Function (automatically provided when starting a new script), the following functions and, inside each function, users can dynamically insert and manage elements.&lt;br /&gt;
* &#039;&#039;&#039;Add New Function&#039;&#039;&#039; – Below the script body, an input field and button allow users to sequentially create new named functions.&lt;br /&gt;
* &#039;&#039;&#039;Action Buttons&#039;&#039;&#039;:&lt;br /&gt;
** &#039;&#039;&#039;Save&#039;&#039;&#039; – Saves the current script, either as a new file or as an update to an existing one.&lt;br /&gt;
** &#039;&#039;&#039;Cancel&#039;&#039;&#039; – Aborts the script creation or editing process and returns the user to the Initial Scripts Page.&lt;br /&gt;
&lt;br /&gt;
Elements are based on the official [https://www.innovaphone.com/xsd/vm.htm Innovaphone XML Schema].&lt;br /&gt;
[[File:Flowe Script Collapsed Functions.png|none|thumb|459x459px|Pre-existing script management page with collapsed functions]]&lt;br /&gt;
&lt;br /&gt;
==== 1. Elements List ====&lt;br /&gt;
The &#039;&#039;&#039;Elements List&#039;&#039;&#039; contains all XML components available for building scripts in the Flowe application. These elements are based on the official [https://www.innovaphone.com/xsd/vm.htm Innovaphone XML Schema], used for managing the script structure and logic within the XML file.&lt;br /&gt;
[[File:Flowe Add Element.png|thumb|383x383px|Add element]]&lt;br /&gt;
[[File:Flowe Assign Element.png|thumb|383x383px|Assign element]]&lt;br /&gt;
[[File:Flowe If Element.png|thumb|381x381px|If element with collapsing button]]&lt;br /&gt;
* &#039;&#039;&#039;How to use the elements:&#039;&#039;&#039; Users can insert elements inside functions and fill out the required fields according to their purpose and the Innovaphone documentation. Each element should be configured with the necessary data to achieve the expected behavior within the script logic.&lt;br /&gt;
* &#039;&#039;&#039;Nested elements:&#039;&#039;&#039; Some elements allow other elements to be placed inside them, supporting nested structures. For example, you can insert a &amp;lt;code&amp;gt;Switch&amp;lt;/code&amp;gt; block inside an &amp;lt;code&amp;gt;If&amp;lt;/code&amp;gt; condition, and within that &amp;lt;code&amp;gt;Switch&amp;lt;/code&amp;gt;, you can have additional &amp;lt;code&amp;gt;If&amp;lt;/code&amp;gt; conditions, and so on. These elements are collapsible, with a collapsing button next to the element&#039;s name.&lt;br /&gt;
* &#039;&#039;&#039;Custom element – &amp;quot;Comment&amp;quot;:&#039;&#039;&#039; In addition to the standard Innovaphone elements, Flowe provides a new custom element named &#039;&#039;&#039;Comment&#039;&#039;&#039; (as of now, shown as &amp;quot;&#039;&#039;Comentário&#039;&#039;&amp;quot;). This element is designed purely for documentation purposes and allows users to insert comments directly into the XML code. These comments have no effect on script execution and serve only as notes or explanations within the file.&lt;br /&gt;
[[File:Flowe Comment Element.png|none|thumb|534x534px|Comment element]]&lt;br /&gt;
* In the examples shown in the images:&lt;br /&gt;
** &#039;&#039;&#039;Add element:&#039;&#039;&#039; one can write two values and the output.&lt;br /&gt;
** &#039;&#039;&#039;Assign element:&#039;&#039;&#039; one can assign a value to a variable&lt;br /&gt;
** &#039;&#039;&#039;If element:&#039;&#039;&#039; one can define the condition and nest an element inside. The else if and else elements are not automatically created.&lt;br /&gt;
** &#039;&#039;&#039;Comment element:&#039;&#039;&#039; with a text input, one can add a comment to the script in the position where the element was added.&lt;br /&gt;
&lt;br /&gt;
==== 2. Searching for element ====&lt;br /&gt;
&lt;br /&gt;
* Type your query into the &#039;&#039;&#039;&amp;quot;Search elements...&amp;quot;&#039;&#039;&#039; input field.&lt;br /&gt;
** Use keywords that match either the element name or its description.&lt;br /&gt;
[[File:Flowe Script Search Element.png|none|thumb|410x410px|Elements list search bar]]&lt;br /&gt;
[[File:Flowe Script Search Element Example.png|none|thumb|Element search example]]&lt;br /&gt;
&lt;br /&gt;
==== 3. Changing script name ====&lt;br /&gt;
&lt;br /&gt;
#Enter the desired name into the &#039;&#039;&#039;&amp;quot;Enter the script name&amp;quot;&#039;&#039;&#039; input field.&lt;br /&gt;
#* The name is required to create or edit a script.&lt;br /&gt;
#Click the &#039;&#039;&#039;Save&#039;&#039;&#039; button to save your changes once you&#039;re done managing the script.&lt;br /&gt;
#*If the name is already in use, the input field will highlight in red and the &#039;&#039;&#039;Save&#039;&#039;&#039; button will be disabled.&lt;br /&gt;
#*If you attempt to save without a name, an alert modal will appear.&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⇒ &#039;&#039;&#039;Note:&#039;&#039;&#039; The script requires a unique name that is not already in use. If the name is duplicated, the Save button will be disabled; if missing, an alert will appear.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
[[File:Flowe Enter Script Name.png|none|thumb|499x499px|Script name input]]&lt;br /&gt;
[[File:Flowe Script Name Already In Use Tooltip.png|none|thumb|499x499px|&#039;&#039;&amp;quot;A script with this name already exists; (...)&amp;quot;&#039;&#039; tooltip alert]]&lt;br /&gt;
[[File:Flowe Name Required Modal.png|none|thumb|258x258px|Name requirement alert modal]]&lt;br /&gt;
&lt;br /&gt;
==== 4. Canceling script management ====&lt;br /&gt;
&lt;br /&gt;
* Click the &#039;&#039;&#039;Cancel&#039;&#039;&#039; button located between the script name input and the &#039;&#039;Save&#039;&#039; button.&lt;br /&gt;
** The page will redirect back to the initial Scripts area, and any unsaved progress will be lost.&lt;br /&gt;
[[File:Flowe Cancel Script Button.png|none|thumb|260x260px|Cancel script management button]]&lt;br /&gt;
&lt;br /&gt;
==== 5. Saving script ====&lt;br /&gt;
&lt;br /&gt;
* Click the &#039;&#039;&#039;Save&#039;&#039;&#039; button beside the Cancel button.&lt;br /&gt;
** The page will redirect back to the Scripts initial page.&lt;br /&gt;
*** The script will be updated on or added to your list.&lt;br /&gt;
[[File:Flowe Save Script Button.png|none|thumb|160x160px|Save script button]]&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⇒ &#039;&#039;&#039;Note:&#039;&#039;&#039; The script can only be saved if it has a unique name that is not already in use.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 6. Adding function to script ====&lt;br /&gt;
&lt;br /&gt;
# Type in the &#039;&#039;&#039;&amp;quot;New function name&amp;quot;&#039;&#039;&#039; input area;&lt;br /&gt;
# Click the &#039;&#039;&#039;Add&#039;&#039;&#039; button on the right.&lt;br /&gt;
#* New functions will be added sequentially below the previous ones.&lt;br /&gt;
[[File:Flowe Script New Function.png|none|thumb|543x543px|Add new function input and button]]&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⇒ &#039;&#039;&#039;Note:&#039;&#039;&#039; A valid name is mandatory to create a new function. Without it, the function won’t be added.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 7. Changing function name ====&lt;br /&gt;
&lt;br /&gt;
# Click the &#039;&#039;&#039;Edit (pencil icon)&#039;&#039;&#039; button next to the red trash icon.&lt;br /&gt;
# Edit the name in the input field.&lt;br /&gt;
# Click outside the input field to save.&lt;br /&gt;
#* The new name will be saved automatically.&lt;br /&gt;
[[File:Flowe Script Function Name Change.png|none|thumb|531x531px|Change function name]]&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⇒ &#039;&#039;&#039;Note:&#039;&#039;&#039; The Main function’s name is fixed and cannot be changed.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 8. Removing function from script ====&lt;br /&gt;
&lt;br /&gt;
* Click the red &#039;&#039;&#039;Delete&#039;&#039;&#039; &#039;&#039;&#039;(trash icon)&#039;&#039;&#039; in the top-right corner of the function block&lt;br /&gt;
** The entire function will be deleted immediately.&lt;br /&gt;
[[File:Flowe Script Delete Function Button.png|none|thumb|266x266px|Remove function button]]&lt;br /&gt;
&lt;br /&gt;
==== 9. Adding element to function ====&lt;br /&gt;
&lt;br /&gt;
# Click the &#039;&#039;&#039;+ dotted area&#039;&#039;&#039; where you want to add an element.&lt;br /&gt;
#* The area will be highlighted when selected.&lt;br /&gt;
# Click on the desired element from the elements list.&lt;br /&gt;
#* You can search for elements using the search bar and simply click to add.&lt;br /&gt;
#* Elements can be added before, after, in between elements.&lt;br /&gt;
#* Elements can also be nested within other elements using the same process.&lt;br /&gt;
[[File:Flowe Add First Element.png|none|thumb|467x467px|Add first element (in the highlighted dotted area)]]&lt;br /&gt;
[[File:Flowe Adding More Elements.png|none|thumb|468x468px|Add more elements (in the dotted areas)]]&lt;br /&gt;
[[File:Flowe Adding Nested Elements.png|none|thumb|467x467px|Add nested elements (in the dotted areas)]]&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⇒ &#039;&#039;&#039;Note:&#039;&#039;&#039; If no insertion point is selected, the element will be &amp;lt;u&amp;gt;added at the end of the function&amp;lt;/u&amp;gt;. If there are no existing elements in the function and no insertion point is selected, the element &amp;lt;u&amp;gt;will not be added&amp;lt;/u&amp;gt;.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 10. Filling element information ====&lt;br /&gt;
&lt;br /&gt;
* Enter the required details in the element’s input fields.&lt;br /&gt;
** Each element has its own specific required inputs, based on the Innovaphone XML Schema.&lt;br /&gt;
[[File:Flowe Add Element Values.png|none|thumb|467x467px|Add element inputs]]&lt;br /&gt;
&lt;br /&gt;
==== 11. Removing element from function ====&lt;br /&gt;
&lt;br /&gt;
* Click the red &#039;&#039;&#039;Delete (trash icon)&#039;&#039;&#039; in the top-right corner of the element block.&lt;br /&gt;
** The entire element will be deleted immediately.&lt;br /&gt;
[[File:Flowe Remove Element.png|none|thumb|469x469px|Remove element button]]&lt;br /&gt;
&lt;br /&gt;
=== IVRs ===&lt;br /&gt;
The &#039;&#039;&#039;IVRs Page&#039;&#039;&#039; is the main interface for managing IVR entries within the Flowe application. It allows users to create, edit, and organize IVRs that are associated with existing XML scripts.&lt;br /&gt;
[[File:Flowe IVR Page.png|thumb|383x383px|IVR page with outlined features]]&lt;br /&gt;
The interface is divided into the following key areas:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;IVR Search Bar&#039;&#039;&#039; – Positioned at the top of the page, this input allows users to search through existing IVRs using keywords and numbers that match either the title, the internal number or SIP.&lt;br /&gt;
* &#039;&#039;&#039;Add IVR Button&#039;&#039;&#039; – Located to the right of the search bar, this button opens a modal window to create a new IVR entry. Every information is required to create the new IVR.&lt;br /&gt;
* &#039;&#039;&#039;IVRs List&#039;&#039;&#039; – Displays all IVRs in a card-based format. Each card contains the following details:&lt;br /&gt;
** &#039;&#039;&#039;Title&#039;&#039;&#039; – The unique name identifying the IVR.&lt;br /&gt;
** &#039;&#039;&#039;Internal Number&#039;&#039;&#039; – The internal extension assigned to the IVR.&lt;br /&gt;
** &#039;&#039;&#039;SIP Number&#039;&#039;&#039; – The SIP number configured for the IVR.&lt;br /&gt;
** &#039;&#039;&#039;Script&#039;&#039;&#039; – The XML script that is linked to the IVR.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Action Buttons on Each IVR&#039;&#039;&#039;:&lt;br /&gt;
** &#039;&#039;&#039;Edit&#039;&#039;&#039; – Opens the same modal used for creation, pre-filled with the IVR’s current data for editing.&lt;br /&gt;
** &#039;&#039;&#039;Delete&#039;&#039;&#039; – Removes the IVR after confirmation.&lt;br /&gt;
IVRs are fully integrated with the Scripts module, ensuring that each IVR is functional only if a valid script is associated with it.&lt;br /&gt;
&lt;br /&gt;
==== 1. Searching for IVR ====&lt;br /&gt;
&lt;br /&gt;
* Type your search query into the &#039;&#039;&#039;&amp;quot;Type to search...&amp;quot;&#039;&#039;&#039; input field.&lt;br /&gt;
** You can use keywords that match the IVR’s title, internal number, or SIP address.&lt;br /&gt;
[[File:Flowe IVR Search Bar.png|none|thumb|522x522px|IVR search bar]]&lt;br /&gt;
&lt;br /&gt;
==== 2. Adding a New IVR ====&lt;br /&gt;
&lt;br /&gt;
# Click the &#039;&#039;&#039;Add&#039;&#039;&#039; button next to the IVR List search bar;&lt;br /&gt;
#* A &#039;&#039;&#039;Create a new IVR&#039;&#039;&#039; modal will appear;&lt;br /&gt;
# Fill in all required fields:&lt;br /&gt;
#* Type the name of the IVR;&lt;br /&gt;
#* Enter the internal number;&lt;br /&gt;
#* Enter the SIP address;&lt;br /&gt;
#* Select a pre-existing script to associate with the IVR;&lt;br /&gt;
# Click the &#039;&#039;&#039;Save&#039;&#039;&#039; button in the bottom-right corner to create the IVR;&lt;br /&gt;
# To cancel the creation process, click the &#039;&#039;&#039;Cancel&#039;&#039;&#039; button in the bottom-left corner.&lt;br /&gt;
[[File:Flowe Add New IVR Button.png|none|thumb|285x285px|Add new IVR button]]&lt;br /&gt;
[[File:Flowe New IVR Modal.png|none|thumb|372x372px|Create a new IVR modal]]&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⇒ &#039;&#039;&#039;Note:&#039;&#039;&#039; All fields are mandatory to successfully add a new IVR.&lt;br /&gt;
&lt;br /&gt;
Once saved, the new IVR will appear in the list automatically, and the modal will close.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 3. Editing an IVR ====&lt;br /&gt;
&lt;br /&gt;
# Click the &#039;&#039;&#039;Edit&#039;&#039;&#039; icon on the bottom-right of the IVR card.&lt;br /&gt;
#* An &#039;&#039;&#039;Update the IVR&#039;&#039;&#039; modal will appear with the current information pre-filled.&lt;br /&gt;
# Update any of the fields as needed:&lt;br /&gt;
#* Enter a new IVR name, internal number, and/or SIP address.&lt;br /&gt;
#* Select a different existing script to associate with the IVR.&lt;br /&gt;
# Click the &#039;&#039;&#039;Save&#039;&#039;&#039; button in the bottom-right corner to apply the changes.&lt;br /&gt;
# To cancel the editing process, click the &#039;&#039;&#039;Cancel&#039;&#039;&#039; button in the bottom-left corner.&lt;br /&gt;
[[File:Flowe IVR Edit Button.png|none|thumb|Edit IVR button]]&lt;br /&gt;
[[File:Flowe Edit IVR Modal.png|none|thumb|Update the IVR modal]]&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⇒ &#039;&#039;&#039;Note:&#039;&#039;&#039; All fields remain mandatory when editing an IVR.&lt;br /&gt;
&lt;br /&gt;
Once saved, the updated IVR will replace the old information in the list, and the modal will close.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 4. Deleting IVR ====&lt;br /&gt;
&lt;br /&gt;
# Click the &#039;&#039;&#039;Delete (trash icon)&#039;&#039;&#039; on the bottom-right of the IVR card.&lt;br /&gt;
#* A &#039;&#039;&#039;Delete IVR&#039;&#039;&#039; confirmation modal displaying the name of the selected IVR will appear.&lt;br /&gt;
# To confirm deletion, click the &#039;&#039;&#039;Delete&#039;&#039;&#039; button on the right.&lt;br /&gt;
#* The IVR will be permanently deleted and removed from the list.&lt;br /&gt;
# If you misclicked or decide not to delete, click the &#039;&#039;&#039;Cancel&#039;&#039;&#039; button on the left.&lt;br /&gt;
#* The modal will close promptly without any changes.&lt;br /&gt;
[[File:Flowe IVR Delete Button.png|none|thumb|301x301px|Delete IVR button]]&lt;br /&gt;
[[File:Flowe Delete IVR Modal.png|none|thumb|Delete IVR confirmation modal]]&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⇒ &#039;&#039;&#039;Note:&#039;&#039;&#039; Deletion is permanent and cannot be undone. Make sure to confirm before deleting a script.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Additional Functions ===&lt;br /&gt;
&lt;br /&gt;
==== Navigation Tab ====&lt;br /&gt;
The &#039;&#039;&#039;navigation tab&#039;&#039;&#039; on the top provides direct access to the main sections of the Flowe application: Scripts initial page, IVRs page, and Licensing information page. Users can quickly navigate between these sections by clicking the corresponding tab. The currently active section is highlighted to indicate the page in view.&lt;br /&gt;
&lt;br /&gt;
The navigation tab remains visible at all times, ensuring easy switching between functionalities within the app.&lt;br /&gt;
[[File:Flowe Top Navigation Tab.png|none|thumb|344x344px|Navigation tab]]&lt;br /&gt;
&lt;br /&gt;
==== Licensing Page ====&lt;br /&gt;
The &#039;&#039;&#039;Licensing page&#039;&#039;&#039; displays essential licensing information related to the Flowe application. This page is purely informational and does not contain interactive elements. It typically shows a message with contact details for inquiries or further licensing procedures.&lt;br /&gt;
[[File:Flowe Licensing Page.png|none|thumb|363x363px|Licensing page]]&lt;br /&gt;
&lt;br /&gt;
==== Language Configuration ====&lt;br /&gt;
The &#039;&#039;&#039;language selector&#039;&#039;&#039; is always visible within the application&#039;s interface, allowing users to seamlessly switch between Portuguese, English, and German at any time. This ensures that the application is accessible and user-friendly across different language preferences, with all texts dynamically updated upon selection.&lt;br /&gt;
[[File:Flowe Language Select.png|none|thumb|195x195px|Language selection]]&lt;br /&gt;
&lt;br /&gt;
== Component Diagram ==&lt;br /&gt;
The diagram below illustrates the architecture of the &#039;&#039;&#039;Flowe&#039;&#039;&#039; application and how its components interact with the &#039;&#039;&#039;Innovaphone PBX&#039;&#039;&#039;, the &#039;&#039;&#039;App Platform&#039;&#039;&#039; and external services.&lt;br /&gt;
[[File:Flowe Component Diagram Fixed.png|none|thumb|425x425px|Flowe&#039;s component diagram]]&lt;br /&gt;
&lt;br /&gt;
=== Component Flow Overview ===&lt;br /&gt;
* &#039;&#039;&#039;Flowe:&#039;&#039;&#039; stores and manages XML-based scripts that define the call flow logic.&lt;br /&gt;
* &#039;&#039;&#039;Files:&#039;&#039;&#039; holds audio files that can be used by scripts during execution.&lt;br /&gt;
* &#039;&#039;&#039;PBX Objects:&#039;&#039;&#039; are linked to scripts created in Flowe. When a call reaches a PBX object, it triggers the associated script.&lt;br /&gt;
* &#039;&#039;&#039;Webserver Routepoint:&#039;&#039;&#039; handles HTTP/HTTPS requests from Flowe:&lt;br /&gt;
** It interacts with external services (e.g. APIs) and returns the response in the expected format.&lt;br /&gt;
** It also stores audio files referenced by the scripts.&lt;br /&gt;
&lt;br /&gt;
== Licensing ==&amp;lt;!-- Needs further analysis and confirmation if more information is needed. --&amp;gt;&lt;br /&gt;
The &#039;&#039;&#039;Flowe&#039;&#039;&#039; application is licensed via the Innovaphone Pricelist. Currently, it is not yet listed on the official Innovaphone Partner App Licenses page, but it is expected to be included in future updates.&lt;br /&gt;
&lt;br /&gt;
The license model is based on the number of created scripts: each script requires one license.&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;License type:&#039;&#039;&#039; Innovaphone Pricelist&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;License model:&#039;&#039;&#039; One license per script&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Listed at:&#039;&#039;&#039; https://www.innovaphone.com/en/services/licenses/partner-apps.html?app=Flowe&amp;amp;type=license#flowe&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&amp;lt;!-- Needs further analysis and confirmation if more information is needed. --&amp;gt;&lt;br /&gt;
Before using Flowe, make sure your environment meets the following requirements:&lt;br /&gt;
&lt;br /&gt;
==== System Requirements ====&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Innovaphone firmware:&#039;&#039;&#039; Version 14r1 or later&lt;br /&gt;
* &#039;&#039;&#039;App Platform:&#039;&#039;&#039; Must be enabled and running in your myApps environment&lt;br /&gt;
* &#039;&#039;&#039;PBX Access:&#039;&#039;&#039; Access to the Admin UI to manage PBX Voicemail Objects&lt;br /&gt;
* &#039;&#039;&#039;Browser access:&#039;&#039;&#039; myApps Web or myApps Windows/Mobile&lt;br /&gt;
* &#039;&#039;&#039;Network access:&#039;&#039;&#039; Outbound access to the App and PBX services&lt;br /&gt;
&lt;br /&gt;
==== Functional Requirements ====&lt;br /&gt;
&lt;br /&gt;
* Must have rights to create/edit/delete &#039;&#039;&#039;Voicemail Objects&#039;&#039;&#039; in the PBX&lt;br /&gt;
* Must have access to manage XML script files through the app interface&lt;br /&gt;
* Users must have login permissions in the App Platform&lt;br /&gt;
&lt;br /&gt;
== Versions ==&lt;br /&gt;
&amp;lt;!-- Needs further analysis and confirmation if more information is needed. --&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Current version:&#039;&#039;&#039; 1.0&lt;br /&gt;
* &#039;&#039;&#039;Latest release:&#039;&#039;&#039; &amp;lt;code&amp;gt;2001 final&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Release date:&#039;&#039;&#039; May 22, 2025&lt;br /&gt;
* &#039;&#039;&#039;Innovaphone compatibility:&#039;&#039;&#039; Yes (Voicemail XML Schema)&lt;br /&gt;
* &#039;&#039;&#039;Architectures supported:&#039;&#039;&#039; &amp;lt;code&amp;gt;arm&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;x86_64&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;arm64&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&amp;lt;!-- Needs further analysis and confirmation if more information is needed. --&amp;gt;&lt;br /&gt;
Once installed, the &#039;&#039;&#039;Flowe&#039;&#039;&#039; app provides a structured and intuitive interface within &#039;&#039;&#039;MyApps&#039;&#039;&#039; for managing &#039;&#039;&#039;Voicemail Objects&#039;&#039;&#039; and their corresponding XML-based call flows. The configuration process is divided into two main areas: using the &#039;&#039;&#039;Flowe editor&#039;&#039;&#039; and linking the flow to the PBX via &#039;&#039;&#039;PBX Manager&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
To apply a script to a PBX Voicemail Object and activate it in the Innovaphone system:&lt;br /&gt;
&lt;br /&gt;
# Open the &#039;&#039;&#039;Devices&#039;&#039;&#039; app in MyApps and go to the &#039;&#039;&#039;Devices&#039;&#039;&#039; tab.&lt;br /&gt;
# Locate your PBX and click &#039;&#039;&#039;Admin UI&#039;&#039;&#039;.&lt;br /&gt;
# In the Admin UI interface, go to the &#039;&#039;&#039;PBX&#039;&#039;&#039; tab and select &#039;&#039;&#039;Objects&#039;&#039;&#039;.&lt;br /&gt;
# In the drop-down menu, choose &#039;&#039;&#039;Voicemail&#039;&#039;&#039;, then click &#039;&#039;&#039;new&#039;&#039;&#039;.&lt;br /&gt;
# Fill in the necessary fields:&lt;br /&gt;
#* &amp;lt;code&amp;gt;Name&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Number&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Display Name&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;Password&amp;lt;/code&amp;gt;&lt;br /&gt;
#* Under the &#039;&#039;&#039;Voicemail&#039;&#039;&#039; tab, provide:&lt;br /&gt;
#** &#039;&#039;&#039;Script URL&#039;&#039;&#039; (e.g., the script created in Flowe)&lt;br /&gt;
# Click &#039;&#039;&#039;Apply&#039;&#039;&#039; to save the object.&lt;br /&gt;
&lt;br /&gt;
[[File:PBX Manager flow for Flowe - voicemails.png|none|thumb|477x477px|PBX Manager flow to configure voicemail objects]]&lt;br /&gt;
[[File:PBX Voicemail Object General Configuration.png|none|thumb|479x479px|PBX voicemail object general configuration]]&lt;br /&gt;
[[File:PBX Voicemail Object Voicemail Configuration with Buttons.png|none|thumb|350x350px|PBX voicemail object voicemail configuration with buttons]]&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
Follow the steps below to install the &#039;&#039;&#039;Flowe&#039;&#039;&#039; application in your Innovaphone environment.&lt;br /&gt;
&lt;br /&gt;
=== Option 1: Installing via AP Manager App Store (Recommended) ===&lt;br /&gt;
You can install &#039;&#039;&#039;Flowe&#039;&#039;&#039; directly through the &#039;&#039;&#039;App Platform Manager&#039;&#039;&#039; (AP Manager) by accessing the App Store:&lt;br /&gt;
&lt;br /&gt;
# Open the &#039;&#039;&#039;AP Manager&#039;&#039;&#039;.&lt;br /&gt;
# Click the yellow &#039;&#039;&#039;App Store&#039;&#039;&#039; button in the top-right corner.&lt;br /&gt;
# Search for &#039;&#039;&#039;Flowe&#039;&#039;&#039; in the list.&lt;br /&gt;
# Select the latest version and confirm the download.&lt;br /&gt;
# The app will be automatically installed and ready to configure.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;🛈 This is the easiest and fastest way to deploy the app.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
[[File:Innovaphone MyApps Lab AppStore Button in AP Manager.png|link=https://wiki.innovaphone.comhttps//wiki.innovaphone.com/File:Innovaphone%20MyApps%20Lab%20AppStore%20Button%20in%20AP%20Manager.png|none|thumb|436x436px|AppStore Button in AP Manager outlined]]&lt;br /&gt;
[[File:AP Manager Appstore Interface.png|link=https://wiki.innovaphone.comhttps//wiki.innovaphone.com/File:AP%20Manager%20Appstore%20Interface.png|none|thumb|436x436px|AP Manager Appstore interface]]&lt;br /&gt;
&lt;br /&gt;
=== Option 2: Manual Installation via Upload ===&lt;br /&gt;
If you prefer installing manually, follow the steps below:&lt;br /&gt;
&lt;br /&gt;
==== Step 1: Download the App Package ====&lt;br /&gt;
&lt;br /&gt;
# Visit the official [https://appstore.wecom.com.br/release/WecomStore/1410593/download.htm Wecom myApps Downloads Portal].&lt;br /&gt;
# Find the &#039;&#039;&#039;Flowe&#039;&#039;&#039; app.&lt;br /&gt;
# Download the latest available version compatible with your system architecture.&lt;br /&gt;
&lt;br /&gt;
[[File:Wecom MyApps App Store Flowe.png|none|thumb|418x418px|Flowe on MyApps&#039; Wecom&#039;s App Store]]&lt;br /&gt;
&lt;br /&gt;
==== Step 2: Upload to AP Manager ====&lt;br /&gt;
&lt;br /&gt;
# In &#039;&#039;&#039;AP Manager&#039;&#039;&#039;, click &#039;&#039;&#039;App upload&#039;&#039;&#039; (top right).&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;.app&amp;lt;/code&amp;gt; package you downloaded from the portal.&lt;br /&gt;
# After successful upload, the app will appear in your list and show as &#039;&#039;&#039;Running&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
[[File:App Upload Button on MyApps AP Manager.png|link=https://wiki.innovaphone.comhttps//wiki.innovaphone.com/File:App%20Upload%20Button%20on%20MyApps%20AP%20Manager.png|none|thumb|487x487px|App Upload button on AP Manager outlined]]&lt;br /&gt;
[[File:Flowe on AP Manager.png|none|thumb|490x490px|Flowe on AP Manager]]&lt;br /&gt;
&lt;br /&gt;
=== Step 3: Add Application Instance ===&lt;br /&gt;
&lt;br /&gt;
# After uploading the app, click the yellow &#039;&#039;&#039;+ Add&#039;&#039;&#039; button to create an instance of the application.&lt;br /&gt;
# Fill in the required fields:&lt;br /&gt;
#* &#039;&#039;&#039;Name:&#039;&#039;&#039; A recognizable name for the instance.&lt;br /&gt;
#* &#039;&#039;&#039;Domain:&#039;&#039;&#039; The domain for the PBX.&lt;br /&gt;
#* &#039;&#039;&#039;Password:&#039;&#039;&#039; A secure admin password for the app instance.&lt;br /&gt;
#* &#039;&#039;&#039;Webserver path:&#039;&#039;&#039; Optional path (or leave blank).&lt;br /&gt;
#* &#039;&#039;&#039;Database host:&#039;&#039;&#039; Leave empty for local DB or specify IP/DNS if external.&lt;br /&gt;
#* &#039;&#039;&#039;Database name&#039;&#039;&#039; and &#039;&#039;&#039;Database user&#039;&#039;&#039;: Use consistent values for your environment.&lt;br /&gt;
#* &#039;&#039;&#039;Database password:&#039;&#039;&#039; Corresponding DB password.&lt;br /&gt;
# When all values are filled, click &#039;&#039;&#039;Save&#039;&#039;&#039;.&lt;br /&gt;
[[File:AP Manager Flowe App Instance Creation Example.png|none|thumb|440x440px|Example of instance creation screen in AP Manager]]&lt;br /&gt;
&lt;br /&gt;
=== Final Step: Registering the App in PBX Manager ===&lt;br /&gt;
&lt;br /&gt;
# Open the &#039;&#039;&#039;PBX Manager&#039;&#039;&#039;.&lt;br /&gt;
# Go to the &#039;&#039;&#039;Apps&#039;&#039;&#039; section.&lt;br /&gt;
# Click &#039;&#039;&#039;Add App&#039;&#039;&#039; and register:&lt;br /&gt;
#* A &#039;&#039;&#039;Users App&#039;&#039;&#039;&lt;br /&gt;
#* An &#039;&#039;&#039;Admin App&#039;&#039;&#039;&lt;br /&gt;
# Assign access rights as needed.&lt;br /&gt;
&lt;br /&gt;
[[File:PBX Manager Add an App Flowe.png|none|thumb|440x440px|PBX Manager Add an App select the app]]&lt;br /&gt;
[[File:PBX Manager Flowe Add an App Config.png|none|thumb|440x440px|PBX Manager Add an App configurations]]&lt;br /&gt;
[[File:Flowe on PBX Manager.png|none|thumb|441x441px|Flowe on PBX Manager configured]]&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⇒ After registration, both apps will appear in MyApps and are ready for use.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Copyright ==&lt;br /&gt;
&#039;&#039;Space dedicated to Flowe copyright information.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Contact ==&amp;lt;!-- Needs further analysis and confirmation if more information is needed. --&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;PORTO ALEGRE - RS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Av. Carlos Gomes, 466 / 401&lt;br /&gt;
&lt;br /&gt;
Boa Vista - CEP 90480-000&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tel:&#039;&#039;&#039; +55 51 3079.5000&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;FLORIANÓPOLIS - SC&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SC 401, 8600 - Room 7&lt;br /&gt;
&lt;br /&gt;
Corporate Park - Block 2&lt;br /&gt;
&lt;br /&gt;
Santo Antônio de Lisboa&lt;br /&gt;
&lt;br /&gt;
CEP 88050-001&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tel:&#039;&#039;&#039; +55 48 3112.6200&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mail:&#039;&#039;&#039; [mailto:comercial@wecom.com.br comercial@wecom.com.br]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Support:&#039;&#039;&#039; [mailto:suporte@wecom.com.br suporte@wecom.com.br]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Website:&#039;&#039;&#039; [https://wecom.com.br/ wecom.com.br]&lt;br /&gt;
&lt;br /&gt;
For any questions please refer to [https://wecom.com.br/fale-conosco/ our contact page.]&lt;/div&gt;</summary>
		<author><name>Pablo.montiel</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Howto:Gcalendar_-_Wecom_-_Partner_App&amp;diff=77253</id>
		<title>Howto:Gcalendar - Wecom - Partner App</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Howto:Gcalendar_-_Wecom_-_Partner_App&amp;diff=77253"/>
		<updated>2025-07-01T18:38:13Z</updated>

		<summary type="html">&lt;p&gt;Pablo.montiel: /* Versions */ Fix with latest version info&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FIXME|reason=Work in progress, still incomplete}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;float:right;&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Partner App Info&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |[[File:Wecom Gcallendar Icon.png|alt=|center|frameless|200x200px|Gcalendar Icon]]&lt;br /&gt;
|-&lt;br /&gt;
!Name&lt;br /&gt;
|Gcalendar&lt;br /&gt;
|-&lt;br /&gt;
!Company&lt;br /&gt;
|Wecom&lt;br /&gt;
|-&lt;br /&gt;
!Version&lt;br /&gt;
|1.0&lt;br /&gt;
|-&lt;br /&gt;
!Compatibility&lt;br /&gt;
|Innovaphone XML Schema&lt;br /&gt;
|-&lt;br /&gt;
!License&lt;br /&gt;
|Via Innovaphone Pricelist&lt;br /&gt;
|-&lt;br /&gt;
!Languages&lt;br /&gt;
|Portuguese, English, Spanish, German&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Product Name ==&lt;br /&gt;
&#039;&#039;&#039;Gcalendar&#039;&#039;&#039; [https://wecom.com.br/ Link]&lt;br /&gt;
&lt;br /&gt;
== Certification Status ==&amp;lt;!--Do not remove comment. Will be added by Innovaphone upon document check &amp;amp; app availablity on app store.--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Space dedicated to Gcalendar certification information.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Category ==&amp;lt;!--Do not change this section and do not remove comments. Will be set by Innovaphone upon document check.--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Category:3rdParty CTI and integrations}}&lt;br /&gt;
&lt;br /&gt;
== Vendor ==&lt;br /&gt;
[[File:Logo wecom.png|thumb|326x326px|Wecom&#039;s logo]]&lt;br /&gt;
Wecom&lt;br /&gt;
&lt;br /&gt;
* [https://wecom.com.br/ wecom.com.br]&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&#039;&#039;&#039;Gcalendar&#039;&#039;&#039; is a Partner App developed by &#039;&#039;&#039;Wecom&#039;&#039;&#039; to integrate Google Calendar events with the Innovaphone presence system.&lt;br /&gt;
&lt;br /&gt;
The app operates through two components:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Users App&#039;&#039;&#039; – Where the users initiate their account linking process via Google login.&lt;br /&gt;
* &#039;&#039;&#039;Admin App&#039;&#039;&#039; – Allows configuration of the integration with editable fields for Google Client ID and Client Secret, along with a dedicated OAuth authorization URL.&lt;br /&gt;
&lt;br /&gt;
This setup enables real-time status synchronization and supports four languages: Portuguese, English, Spanish, and German.&lt;br /&gt;
&lt;br /&gt;
== Functions ==&lt;br /&gt;
This section provides an overview of each core part of the &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; application. It highlights what actions can be performed, and how to navigate through the available features. Additionally, this section provides step-by-step explanations for each functionality.&lt;br /&gt;
&lt;br /&gt;
=== Users App ===&lt;br /&gt;
The &#039;&#039;&#039;Users App&#039;&#039;&#039; is the interface used by users to link their Google Calendar account to the Innovaphone presence system. It focuses only on enabling the connection between the user and their calendar through Google authentication.&lt;br /&gt;
[[File:Gcallendar Users App Interface.png|none|thumb|404x404px|Users app interface with google account pop-up]]&lt;br /&gt;
&lt;br /&gt;
==== Connecting with Google account ====&lt;br /&gt;
&lt;br /&gt;
# Open the &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; Users App.&lt;br /&gt;
# Click the &#039;&#039;&#039;Connect&#039;&#039;&#039; button.&lt;br /&gt;
# A Google login popup will appear.&lt;br /&gt;
#* This popup allows users to choose or log into a Google account.&lt;br /&gt;
# After selecting an account, the integration process will begin automatically.&lt;br /&gt;
#* Once completed, the account will be linked to the Innovaphone system.&lt;br /&gt;
[[File:Gcallendar Connect Button.png|none|thumb|Connect button]]&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⇒ &#039;&#039;&#039;Note:&#039;&#039;&#039; Before starting the connection process, ensure you&#039;re already logged into the correct Google account in your browser. This helps avoid selecting the wrong account and ensures the integration is completed with the intended calendar.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Disconnecting from Google account ====&lt;br /&gt;
&lt;br /&gt;
# Open the &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; Users App.&lt;br /&gt;
# If a Google account is already connected, the &#039;&#039;&#039;Connect&#039;&#039;&#039; button will be replaced by a &#039;&#039;&#039;Disconnect&#039;&#039;&#039; button.&lt;br /&gt;
# Click the &#039;&#039;&#039;Disconnect&#039;&#039;&#039; button to unlink your current Google Calendar account from the Innovaphone presence system.&lt;br /&gt;
# Once disconnected, presence synchronization will be disabled for that user.&lt;br /&gt;
[[File:Gcallendar Disconnect Button.png|none|thumb|392x392px|Disconnect button]]&lt;br /&gt;
&lt;br /&gt;
=== Admin App ===&lt;br /&gt;
The &#039;&#039;&#039;Admin App&#039;&#039;&#039; provides configuration options required to authorize and manage the Google integration. It is intended for system administrators and enables control over OAuth credentials used for user authentication.&lt;br /&gt;
[[File:Gcallendar Admin App.png|none|thumb|453x453px|Admin app interface]]&lt;br /&gt;
&lt;br /&gt;
==== Updating Google OAuth Credentials ====&lt;br /&gt;
To enable or update the integration between Gcalendar and Google Calendar, you’ll need to provide the correct &#039;&#039;&#039;Client ID&#039;&#039;&#039; and &#039;&#039;&#039;Client Secret&#039;&#039;&#039; obtained from your Google Cloud project.&lt;br /&gt;
&lt;br /&gt;
# Open the &#039;&#039;&#039;Gcalendar Admin App&#039;&#039;&#039;.&lt;br /&gt;
# Locate the fields labeled &#039;&#039;&#039;Google Client ID&#039;&#039;&#039; and &#039;&#039;&#039;Client Secret&#039;&#039;&#039;.&lt;br /&gt;
# Paste the values copied from your Google OAuth Credentials into the respective fields.&lt;br /&gt;
# Click the &#039;&#039;&#039;Update&#039;&#039;&#039; button next to each field to save the changes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⇒ &#039;&#039;&#039;Notes:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Ensure both values are correctly copied and properly formatted.&lt;br /&gt;
* Incorrect credentials will prevent users from authenticating.&lt;br /&gt;
* The Client Secret is sensitive—never share or expose it publicly.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
[[File:Gcallendar Google Client ID Update.png|none|thumb|519x519px|Google Client ID input and update button]]&lt;br /&gt;
[[File:Gcallendar Client Secret Update.png|none|thumb|519x519px|Client Secret input and update button]]&lt;br /&gt;
&lt;br /&gt;
== Licensing ==&lt;br /&gt;
The &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; application is licensed via the Innovaphone Pricelist.&lt;br /&gt;
&lt;br /&gt;
Currently, it is not yet listed on the official Innovaphone Partner App Licenses page, but it is expected to be included in future updates.&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;License type:&#039;&#039;&#039; Innovaphone Pricelist&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;License model:&#039;&#039;&#039; One license per user&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Listed at:&#039;&#039;&#039; https://www.innovaphone.com/en/services/licenses/partner-apps.html?app=Gcalendar&amp;amp;type=license#gcalendar&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
Before installing and using Gcalendar, ensure your environment meets the following requirements:&lt;br /&gt;
&lt;br /&gt;
==== System Requirements ====&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Innovaphone firmware:&#039;&#039;&#039; Version &amp;lt;code&amp;gt;14r1&amp;lt;/code&amp;gt; or later&lt;br /&gt;
* &#039;&#039;&#039;App platform:&#039;&#039;&#039; Innovaphone &#039;&#039;&#039;myApps&#039;&#039;&#039; system with &#039;&#039;&#039;App Platform&#039;&#039;&#039; active&lt;br /&gt;
* &#039;&#039;&#039;PBX Manager:&#039;&#039;&#039; Required to register and configure the Users and Admin Apps&lt;br /&gt;
&lt;br /&gt;
==== OAuth Setup ====&lt;br /&gt;
&lt;br /&gt;
* A &#039;&#039;&#039;Google Cloud Project&#039;&#039;&#039; with valid &#039;&#039;&#039;OAuth 2.0 credentials&#039;&#039;&#039; (Client ID and Client Secret)&lt;br /&gt;
* The following URIs must be configured in the Google project:&lt;br /&gt;
** &#039;&#039;&#039;Authorized JavaScript origins:&#039;&#039;&#039; &amp;lt;code&amp;gt;https://app_platform&amp;lt;/code&amp;gt;&lt;br /&gt;
** &#039;&#039;&#039;Authorized redirect URI:&#039;&#039;&#039; &amp;lt;code&amp;gt;https://app_platform/domain/app_name/newToken&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Versions ==&lt;br /&gt;
The &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; application follows the release versioning aligned with the Innovaphone platform.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Initial release version:&#039;&#039;&#039; &amp;lt;code&amp;gt;14r1&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Latest available version:&#039;&#039;&#039; &amp;lt;code&amp;gt;2002 final&amp;lt;/code&amp;gt; (as of June 17, 2025)&lt;br /&gt;
* &#039;&#039;&#039;Build number:&#039;&#039;&#039;&amp;lt;code&amp;gt;14A1149 dvl&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Supported architectures:&#039;&#039;&#039; &amp;lt;code&amp;gt;arm&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;x86_64&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;arm64&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⇒ New versions are published and made available through the Wecom App Store.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
=== Google OAuth Setup (Admin Only) ===&lt;br /&gt;
To enable account linking between the Innovaphone presence system and Google Calendar, administrators must configure OAuth 2.0 credentials using the Google Cloud Platform beforehand.&lt;br /&gt;
&lt;br /&gt;
# Go to [https://console.cloud.google.com/ Google Cloud Console].&lt;br /&gt;
# Select or create a &#039;&#039;&#039;Google Cloud Project&#039;&#039;&#039;.&amp;lt;blockquote&amp;gt;◇ This project will host the credentials used by Gcalendar to access the Google Calendar API. We recommend creating a dedicated project for better control and security.&amp;lt;/blockquote&amp;gt;[[File:Google Cloud Select-Create Project.png|none|thumb|425x425px|Google Cloud Console welcome page with select project button outlined (here the project is already selected)]]&amp;lt;blockquote&amp;gt;Clicking the &#039;&#039;&#039;&amp;quot;Select Project&amp;quot;&#039;&#039;&#039; button will open a &#039;&#039;&#039;modal&#039;&#039;&#039; where you can choose or create a project.&amp;lt;/blockquote&amp;gt;[[File:Google Cloud Select Project If Selected.png|none|thumb|353x353px|Project selection modal]]&amp;lt;blockquote&amp;gt;If a project already exists, click on its name from the list to open it. If not, click &#039;&#039;&#039;&amp;quot;New Project&amp;quot;&#039;&#039;&#039; in the top-right corner to create one.&amp;lt;/blockquote&amp;gt;[[File:Google Cloud New Project Page.png|none|thumb|440x440px|New project creation page]]&lt;br /&gt;
# In the top-left corner, click the &#039;&#039;&#039;hamburger menu icon&#039;&#039;&#039; (☰) to expand the left navigation menu.&lt;br /&gt;
#* Before continuing to the OAuth configuration, you need to make sure the Google Calendar API is enabled.&lt;br /&gt;
# From the sidebar, go to &#039;&#039;&#039;APIs &amp;amp; Services &amp;gt; Enabled APIs &amp;amp; services&#039;&#039;&#039;.[[File:Google Cloud Sidebar API Services.png|none|thumb|450x450px|Opening the APIs &amp;amp; Services section to enable the Calendar API]]&lt;br /&gt;
# At the top of the page, click &#039;&#039;&#039;+ Enable APIs and services&#039;&#039;&#039;.&amp;lt;blockquote&amp;gt;Once enabled, it will appear in the list of active APIs under &#039;&#039;&#039;Enabled APIs &amp;amp; Services&#039;&#039;&#039;.If the Google Calendar API is already enabled, you may skip the steps below and proceed directly to the OAuth configuration.&amp;lt;/blockquote&amp;gt;[[File:Google Cloud Enable APIs Services.jpg|none|thumb|450x450px|Enabling API button and viewing the enabled Google Calendar API]]&lt;br /&gt;
# In the API Library, search for: &amp;lt;code&amp;gt;calendar&amp;lt;/code&amp;gt;.&lt;br /&gt;
#* From the results, click on &#039;&#039;&#039;Google Calendar API&#039;&#039;&#039;.[[File:Google Clou APIs Google Calendar Search.jpg|none|thumb|450x450px|Searching for the Google Calendar API in the API Library]]&lt;br /&gt;
# On the API page, click the blue &#039;&#039;&#039;Enable&#039;&#039;&#039; button to activate it.[[File:Google Cloud Enabling Google Calendar.jpg|none|thumb|450x450px|Enabling the Google Calendar API]]&lt;br /&gt;
# Now click the &#039;&#039;&#039;hamburger menu icon&#039;&#039;&#039; (☰) again to return to the sidebar.&lt;br /&gt;
# Navigate to &#039;&#039;&#039;API &amp;amp; Services &amp;gt; OAuth consent screen&#039;&#039;&#039;.[[File:Google Cloud Left Menu API Outlined.png|none|thumb|482x482px|Left menu: &#039;&#039;&#039;APIs &amp;amp; service -&amp;gt; OAuth consent screen&#039;&#039;&#039;]]&lt;br /&gt;
#* If it&#039;s your first time, configure the consent screen with basic app details (organization name, app name, email, etc.).&lt;br /&gt;
#* Once configured, you&#039;ll be redirected to the &#039;&#039;&#039;Google Auth Platform / Overview&#039;&#039;&#039; page.&lt;br /&gt;
# Click &#039;&#039;&#039;Clients&#039;&#039;&#039; in the left menu and then click &amp;quot;&#039;&#039;&#039;+ Create client&amp;quot;&#039;&#039;&#039;.[[File:Google Cloud new client.jpg|none|thumb|525x525px|Creating client option in Clients page]]&lt;br /&gt;
# Choose &#039;&#039;&#039;Application Type: Web Application&#039;&#039;&#039;.&lt;br /&gt;
# Enter a recognizable &#039;&#039;&#039;name&#039;&#039;&#039; (e.g., &#039;&#039;Gcalendar Integration&#039;&#039;).&lt;br /&gt;
# Add the following values:&lt;br /&gt;
#* &#039;&#039;&#039;Authorized JavaScript origins&#039;&#039;&#039;&lt;br /&gt;
#** &amp;lt;code&amp;gt;https://app_platform&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &#039;&#039;&#039;Authorized redirect URIs&#039;&#039;&#039;&lt;br /&gt;
#** &amp;lt;code&amp;gt;https://app_platform/domain/app_name/newToken&amp;lt;/code&amp;gt;[[File:Google Cloud Create OAuth Client ID.jpg|none|thumb|411x411px|Create OAuth client ID inputs]]&lt;br /&gt;
# After creation, copy the generated:&lt;br /&gt;
#* &#039;&#039;&#039;Client ID&#039;&#039;&#039;&lt;br /&gt;
#* &#039;&#039;&#039;Client Secret&#039;&#039;&#039;[[File:Google Cloud Client ID Client Secret.jpg|none|thumb|434x434px|Client credentials available after creating]]&lt;br /&gt;
# Open the &#039;&#039;&#039;Gcalendar Admin App&#039;&#039;&#039; and insert the values in the respective fields and click &#039;&#039;&#039;Update&#039;&#039;&#039; (see [[#Updating Google OAuth Credentials|Update Google OAuth Credentials]] section above).&amp;lt;blockquote&amp;gt;▷ This links the Google authentication flow to the presence system, allowing users to authorize their calendars.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
# On the left menu, go to &#039;&#039;&#039;Data Access&#039;&#039;&#039; under the &#039;&#039;&#039;Google Auth Platform&#039;&#039;&#039; section.&amp;lt;blockquote&amp;gt;◇ This section lists the sensitive scopes (permissions) your app is requesting during OAuth authorization. These are required for accessing user calendars.&amp;lt;/blockquote&amp;gt;[[File:Google Cloud Add or Remove Scopes.png|none|thumb|510x510px|Click &amp;quot;Add or remove scopes&amp;quot; to open the scope selection menu]]&lt;br /&gt;
# Click the blue &#039;&#039;&#039;Add or remove scopes&#039;&#039;&#039; button.&amp;lt;blockquote&amp;gt;◇ A sidebar will open listing all available scopes from enabled APIs. You can search and select the necessary calendar-related scopes for your application.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
# In the sidebar that appears, search for and select the following calendar scopes:&lt;br /&gt;
#* &amp;lt;code&amp;gt;../auth/calendar.readonly&amp;lt;/code&amp;gt; – View and download calendar data.&lt;br /&gt;
#* &amp;lt;code&amp;gt;../auth/calendar.calendars.readonly&amp;lt;/code&amp;gt; – View calendar metadata.&lt;br /&gt;
#* &amp;lt;code&amp;gt;../auth/calendar.events&amp;lt;/code&amp;gt; – View and edit calendar events.&lt;br /&gt;
#* &amp;lt;code&amp;gt;../auth/calendar.events.owned&amp;lt;/code&amp;gt; – Modify events on owned calendars.&lt;br /&gt;
#* &amp;lt;code&amp;gt;../auth/calendar.events.owned.readonly&amp;lt;/code&amp;gt; – Read-only access to events on owned calendars.&lt;br /&gt;
#* &amp;lt;code&amp;gt;../auth/calendar.events.readonly&amp;lt;/code&amp;gt; – View events only.[[File:Google Cloud Data Access Scopes.jpg|none|thumb|400x400px|Data Access section showing added calendar scopes]]&amp;lt;blockquote&amp;gt;▷ These scopes must be added to your app for Google to allow access to calendar data through the API. Make sure they match the level of access your app requires.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
Follow the steps below to install the &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; application in your Innovaphone environment.&lt;br /&gt;
&lt;br /&gt;
=== Option 1: Installing via AP Manager App Store (Recommended) ===&lt;br /&gt;
You can install &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; directly through the &#039;&#039;&#039;App Platform Manager&#039;&#039;&#039; (AP Manager) by accessing the App Store:&lt;br /&gt;
&lt;br /&gt;
# Open the &#039;&#039;&#039;AP Manager&#039;&#039;&#039;.&lt;br /&gt;
# Click the yellow &#039;&#039;&#039;App Store&#039;&#039;&#039; button in the top-right corner.&lt;br /&gt;
# Search for &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; in the list.&lt;br /&gt;
# Select the latest version and confirm the download.&lt;br /&gt;
# The app will be automatically installed and ready to configure.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;🛈 This is the easiest and fastest way to deploy the app.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
[[File:Innovaphone MyApps Lab AppStore Button in AP Manager.png|none|thumb|436x436px|AppStore Button in AP Manager outlined]]&lt;br /&gt;
[[File:AP Manager Appstore Interface.png|none|thumb|436x436px|AP Manager Appstore interface]]&lt;br /&gt;
&lt;br /&gt;
=== Option 2: Manual Installation via Upload ===&lt;br /&gt;
If the app is not yet listed in the App Store, follow the steps below:&lt;br /&gt;
&lt;br /&gt;
==== Step 1: Download the App Package ====&lt;br /&gt;
&lt;br /&gt;
# Visit the official Wecom myApps Downloads Portal.&lt;br /&gt;
# Find the &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; app.&lt;br /&gt;
# Download the latest available version compatible with your system architecture.&lt;br /&gt;
[[File:Gcalendar myapps wecom appstore.png|none|thumb|418x418px|Gcalendar on MyApps&#039; Wecom&#039;s App Store]]&lt;br /&gt;
&lt;br /&gt;
==== Step 2: Upload to AP Manager ====&lt;br /&gt;
&lt;br /&gt;
# In &#039;&#039;&#039;AP Manager&#039;&#039;&#039;, click &#039;&#039;&#039;App upload&#039;&#039;&#039; (top right).&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;.app&amp;lt;/code&amp;gt; package you downloaded from the portal.&lt;br /&gt;
# After successful upload, the app will appear in your list and show as &#039;&#039;&#039;Running&#039;&#039;&#039;.&lt;br /&gt;
[[File:App Upload Button on MyApps AP Manager.png|none|thumb|485x485px|App Upload button on AP Manager outlined]]&lt;br /&gt;
[[File:Gcallendar on AP Manager Innovaphone.jpg|none|thumb|490x490px|Gcalendar on AP Manager]]&lt;br /&gt;
&lt;br /&gt;
=== Step 3: Add Application Instance ===&lt;br /&gt;
&lt;br /&gt;
# After uploading the app, click the yellow &#039;&#039;&#039;+ Add&#039;&#039;&#039; button to create an instance of the application.&lt;br /&gt;
# Fill in the required fields:&lt;br /&gt;
#* &#039;&#039;&#039;Name:&#039;&#039;&#039; A recognizable name for the instance.&lt;br /&gt;
#* &#039;&#039;&#039;Domain:&#039;&#039;&#039; The domain for the PBX.&lt;br /&gt;
#* &#039;&#039;&#039;Password:&#039;&#039;&#039; A secure admin password for the app instance.&lt;br /&gt;
#* &#039;&#039;&#039;Webserver path:&#039;&#039;&#039; Optional path (or leave blank).&lt;br /&gt;
#* &#039;&#039;&#039;Database host:&#039;&#039;&#039; Leave empty for local DB or specify IP/DNS if external.&lt;br /&gt;
#* &#039;&#039;&#039;Database name&#039;&#039;&#039; and &#039;&#039;&#039;Database user&#039;&#039;&#039;: Use consistent values for your environment.&lt;br /&gt;
#* &#039;&#039;&#039;Database password:&#039;&#039;&#039; Corresponding DB password.&lt;br /&gt;
# When all values are filled, click &#039;&#039;&#039;Save&#039;&#039;&#039;.&lt;br /&gt;
[[File:AP Manager Gcalendar App Instance Creation Example.png|none|thumb|440x440px|Example of instance creation screen in AP Manager]]&lt;br /&gt;
&lt;br /&gt;
=== Final Step: Registering the App in PBX Manager ===&lt;br /&gt;
&lt;br /&gt;
# Open the &#039;&#039;&#039;PBX Manager&#039;&#039;&#039;.&lt;br /&gt;
# Go to the &#039;&#039;&#039;Apps&#039;&#039;&#039; section.&lt;br /&gt;
# Click &#039;&#039;&#039;Add App&#039;&#039;&#039; and register:&lt;br /&gt;
#* A &#039;&#039;&#039;Users App&#039;&#039;&#039;&lt;br /&gt;
#* An &#039;&#039;&#039;Admin App&#039;&#039;&#039;&lt;br /&gt;
# Assign access rights as needed.&lt;br /&gt;
[[File:PBX Manager Add an App flow - part 1.png|none|thumb|440x440px|PBX Manager Add an App select the app]]&lt;br /&gt;
[[File:Gcallendar PBX Manager Add an App flow - part 2.png|none|thumb|440x440px|PBX Manager Add an App configurations]]&lt;br /&gt;
[[File:Gcallendar on PBX Manager Innovaphone.jpg|none|thumb|441x441px|Gcalendar on PBX Manager configured]]&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⇒ After registration, both apps will appear in MyApps and are ready for use.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Copyright ==&lt;br /&gt;
Copyright information.&lt;br /&gt;
&lt;br /&gt;
== Contact ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;PORTO ALEGRE - RS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Av. Carlos Gomes, 466 / 401&lt;br /&gt;
&lt;br /&gt;
Boa Vista - CEP 90480-000&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tel:&#039;&#039;&#039; +55 51 3079.5000&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;FLORIANÓPOLIS - SC&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SC 401, 8600 - Room 7&lt;br /&gt;
&lt;br /&gt;
Corporate Park - Block 2&lt;br /&gt;
&lt;br /&gt;
Santo Antônio de Lisboa&lt;br /&gt;
&lt;br /&gt;
CEP 88050-001&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tel:&#039;&#039;&#039; +55 48 3112.6200&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mail:&#039;&#039;&#039; [mailto:comercial@wecom.com.br comercial@wecom.com.br]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Support:&#039;&#039;&#039; [mailto:suporte@wecom.com.br suporte@wecom.com.br]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Website:&#039;&#039;&#039; [https://wecom.com.br/ wecom.com.br]&lt;br /&gt;
&lt;br /&gt;
For any questions please refer to [https://wecom.com.br/fale-conosco/ our contact page.]&lt;/div&gt;</summary>
		<author><name>Pablo.montiel</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Howto:Billboard_-_Wecom_-_Partner_App&amp;diff=77252</id>
		<title>Howto:Billboard - Wecom - Partner App</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Howto:Billboard_-_Wecom_-_Partner_App&amp;diff=77252"/>
		<updated>2025-07-01T18:35:19Z</updated>

		<summary type="html">&lt;p&gt;Pablo.montiel: /* Licensing */ Trial period fix&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FIXME|reason=Work in progress, still incomplete}}&lt;br /&gt;
&amp;lt;!-- Needed to add images: billboard logo, diagrams (2) to the component diagram, functions step-by-step, installation images, . --&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;float:right;&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Partner App Info&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |[[File:Wecom Billboard.png|alt=|center|frameless|200x200px|Billboard Icon]]&lt;br /&gt;
|-&lt;br /&gt;
!Name&lt;br /&gt;
|Billboard&lt;br /&gt;
|-&lt;br /&gt;
!Company&lt;br /&gt;
|Wecom&lt;br /&gt;
|-&lt;br /&gt;
!Version&lt;br /&gt;
|1.0&lt;br /&gt;
|-&lt;br /&gt;
!License&lt;br /&gt;
|Via Innovaphone Pricelist&lt;br /&gt;
|-&lt;br /&gt;
!Languages&lt;br /&gt;
|Czech, English, Estonian, French,&amp;lt;br&amp;gt;German, Italian, Polish, Portuguese,&amp;lt;br&amp;gt;Slovenian, Spanish&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Product Name ==&lt;br /&gt;
&#039;&#039;&#039;Billboard&#039;&#039;&#039; [https://wecom.com.br/ Link]&lt;br /&gt;
&lt;br /&gt;
== Certification Status ==&lt;br /&gt;
&amp;lt;!-- Do not remove comment. Will be added by Innovaphone upon document check &amp;amp; app availablity on app store. --&amp;gt;&lt;br /&gt;
&#039;&#039;Space dedicated to Billboard certification information.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Category ==&lt;br /&gt;
&#039;&#039;Space dedicated to Billboard category information.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Vendor ==&lt;br /&gt;
[[File:Logo wecom.png|alt=|thumb|Wecom&#039;s logo]]&lt;br /&gt;
Wecom&lt;br /&gt;
&lt;br /&gt;
* [https://wecom.com.br/ wecom.com.br]&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&#039;&#039;&#039;Billboard&#039;&#039;&#039; is a Partner App developed by &#039;&#039;&#039;Wecom&#039;&#039;&#039; to modernize internal communications by digitizing traditional bulletin boards. Through a user-friendly interface integrated into Innovaphone’s myApps workspace, departments (referred to as &amp;quot;groups&amp;quot; within the app) can publish announcements with scheduled validity, targeted visibility, and interaction tracking.&lt;br /&gt;
&lt;br /&gt;
Main components:&lt;br /&gt;
* &#039;&#039;&#039;Users App&#039;&#039;&#039; – For general users to access and interact with department posts.&lt;br /&gt;
* &#039;&#039;&#039;Admin App&#039;&#039;&#039; – For administrators to manage groups, posts, and licensing.&lt;br /&gt;
&lt;br /&gt;
== Functions ==&lt;br /&gt;
&amp;lt;!-- Section in analysis. --&amp;gt;&lt;br /&gt;
=== Admin App ===&lt;br /&gt;
&lt;br /&gt;
The Admin App provides global management functionalities for users, groups (departments), and posts. Only users marked as administrators via this panel will have access to it.&lt;br /&gt;
&lt;br /&gt;
==== 1. Granting Administrator Access ====&lt;br /&gt;
&lt;br /&gt;
# Access the Admin App – it will open on the &#039;&#039;&#039;Users Page&#039;&#039;&#039; by default.&lt;br /&gt;
# Use the &#039;&#039;&#039;search bar&#039;&#039;&#039; at the top to find the user you wish to promote.&lt;br /&gt;
# Locate the user in the list below.&lt;br /&gt;
# Click the checkbox next to their name to grant administrator privileges.&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Only an existing admin can assign admin rights to another user.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
[[File:A1. Billboard Admin Users Page.png|none|thumb|450x450px|Users Page with search bar and checkboxes for admin privileges]]&lt;br /&gt;
&lt;br /&gt;
==== 2. Viewing the Billboard License Information ====&lt;br /&gt;
&lt;br /&gt;
# In the Admin App sidebar, click on the &#039;&#039;&#039;Licensing&#039;&#039;&#039; tab.&lt;br /&gt;
# The page will display information related to the current license.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;System Token&#039;&#039;&#039;: Unique identifier for the system, used for license validation.&lt;br /&gt;
* &#039;&#039;&#039;Active License&#039;&#039;&#039;: Indicates if the license is active (e.g., Temporary).&lt;br /&gt;
* &#039;&#039;&#039;Billboard Install Date&#039;&#039;&#039;: Shows the exact date and time when the Billboard app was installed.&lt;br /&gt;
* &#039;&#039;&#039;Licenses in Use&#039;&#039;&#039;: Displays the number of users currently using the Billboard Apps.&lt;br /&gt;
&lt;br /&gt;
[[File:License Page Billboard Admin Correct.jpg|none|thumb|450x450px|Licensing page showing all license details]]&lt;br /&gt;
&lt;br /&gt;
==== 3. Managing Departments ====&lt;br /&gt;
&lt;br /&gt;
# In the Admin App sidebar, click on the &#039;&#039;&#039;Departments&#039;&#039;&#039; tab.&lt;br /&gt;
# Browse the list of all departments created in the system.&lt;br /&gt;
# Scroll to locate the department you wish to edit.&lt;br /&gt;
# Click on the &#039;&#039;&#039;color circle&#039;&#039;&#039; next to the department to open the editing modal.&lt;br /&gt;
# In the modal:&lt;br /&gt;
## Update the department&#039;s name.&lt;br /&gt;
## Change its color using the color picker.&lt;br /&gt;
## Add or remove users as &#039;&#039;&#039;Editors&#039;&#039;&#039; or &#039;&#039;&#039;Viewers&#039;&#039;&#039;.&lt;br /&gt;
## Save the changes to apply them.&lt;br /&gt;
[[File:A3.1. Billboard Admin Group Management.png|none|thumb|450x450px|Group management modal]]&lt;br /&gt;
&lt;br /&gt;
* The list includes all departments, including those marked as deleted.&lt;br /&gt;
* Deleted departments are labeled with their deletion date.&lt;br /&gt;
* Each department entry shows:&lt;br /&gt;
** Department name&lt;br /&gt;
** Assigned color&lt;br /&gt;
** Creator&#039;s name&lt;br /&gt;
** Status (active or deleted)&lt;br /&gt;
[[File:A3. Billboard Admin Departments Page.png|none|thumb|450x450px|Departments list with edit modal access]]&lt;br /&gt;
&lt;br /&gt;
==== 4. Managing Posts ====&lt;br /&gt;
&lt;br /&gt;
# Click on the &#039;&#039;&#039;Posts&#039;&#039;&#039; tab in the Admin App sidebar.&lt;br /&gt;
# Browse the full list of posts created across all departments.&lt;br /&gt;
# Scroll to locate a specific post.&lt;br /&gt;
# Click the &#039;&#039;&#039;edit icon&#039;&#039;&#039; next to a post to open the editing modal.&lt;br /&gt;
# In the modal:&lt;br /&gt;
## Modify the title, description, color, type, and visibility period.&lt;br /&gt;
## Save the changes to update the post.&lt;br /&gt;
[[File:A4.1. ABillboard Admin Post Management.png|none|thumb|450x450px|Post management modal]]&lt;br /&gt;
&lt;br /&gt;
* The post list includes:&lt;br /&gt;
** Active posts&lt;br /&gt;
** Expired posts&lt;br /&gt;
** Deleted posts (showing the deletion date)&lt;br /&gt;
* Each post displays:&lt;br /&gt;
** Title&lt;br /&gt;
** Department (group) association&lt;br /&gt;
** Type: Internal or External&lt;br /&gt;
** Start and end dates (visibility period)&lt;br /&gt;
** Creator&#039;s name&lt;br /&gt;
** Current status: active, expired, or deleted&lt;br /&gt;
[[File:A4. Billboard Admin Posts Page.png|none|thumb|450x450px|All posts view with status, creator, and edit access]]&lt;br /&gt;
&lt;br /&gt;
==== 5. Accessing Public Posts ====&lt;br /&gt;
&lt;br /&gt;
# In the sidebar, click on the &#039;&#039;&#039;Public Posts&#039;&#039;&#039; tab.&lt;br /&gt;
# A modal will appear, redirecting you to the Billboard &#039;&#039;&#039;Users App&#039;&#039;&#039; to view a list of posts.&lt;br /&gt;
# Click on any post from this list.&lt;br /&gt;
&lt;br /&gt;
* Only posts with the &amp;quot;External&amp;quot; type selected during creation appear here.&lt;br /&gt;
* This page is read-only and used for quick access to public content.&lt;br /&gt;
[[File:A5. Billboard Admin Public Posts Modal.png|none|thumb|450x450px|Public posts modal with redirect to Users App]]&lt;br /&gt;
&lt;br /&gt;
=== Users App ===&lt;br /&gt;
&lt;br /&gt;
The Users App is the interface where users access, read, create, and manage department posts, based on their permissions (viewer or editor). Each user sees only the groups they are part of.&lt;br /&gt;
&lt;br /&gt;
==== 1. Accessing a Group ====&lt;br /&gt;
&lt;br /&gt;
# Upon opening the Users App, the main screen lists all groups (departments) the user belongs to.&lt;br /&gt;
# To enter a group, simply click on the desired group.&amp;lt;blockquote&amp;gt;Groups are color-coded and may display badges for new or unseen posts.&amp;lt;/blockquote&amp;gt;[[File:Billboard Users Groups Page.png|none|thumb|450x450px|Users App main page with every group you are on]]&lt;br /&gt;
&lt;br /&gt;
==== 2. Creating a Group (Admins only) ====&lt;br /&gt;
&lt;br /&gt;
# Only users assigned with the &amp;quot;create department&amp;quot; permission (via Admin App) will see the &#039;&#039;&#039;Add+&#039;&#039;&#039; button on the main screen.[[File:4. Billboard Users Groups Page Button Outlined.png|none|thumb|450x450px|Groups page with &amp;quot;+ Add&amp;quot; button outlined]]&lt;br /&gt;
# Click &#039;&#039;&#039;Add+&#039;&#039;&#039; to open the group creation modal.&lt;br /&gt;
# Fill in:&lt;br /&gt;
#* Enter the &#039;&#039;&#039;Department Name&#039;&#039;&#039;&lt;br /&gt;
#* Select the color using the color picker&lt;br /&gt;
#* Assign users to roles:&lt;br /&gt;
#** &#039;&#039;&#039;Editor&#039;&#039;&#039; – Can manage posts, see group&#039;s history and edit the department.&lt;br /&gt;
#** &#039;&#039;&#039;Viewer&#039;&#039;&#039; – Can only view posts.&lt;br /&gt;
#* Clicking &amp;quot;Viewer&amp;quot; name label selects all users as viewers.[[File:5. Billboard Group Creation Modal.png|none|thumb|450x450px|Group creation modal with roles selection, color picking and name input]]&lt;br /&gt;
&lt;br /&gt;
==== 3. Viewing a Post ====&lt;br /&gt;
&lt;br /&gt;
# Inside a group, posts are displayed as cards.[[File:2. Billboard Posts Page (of a Group).png|none|thumb|450x450px|Posts inside a group]]&lt;br /&gt;
#* If you are an Editor, the post will also show the visibility period on the bottom of the card.&lt;br /&gt;
#* Unread posts display a red &#039;&#039;&#039;NEW&#039;&#039;&#039; label in the top-left corner of the card.&lt;br /&gt;
#** The label disappears as soon as the post is opened.[[File:2.5. Billboard New Post Card Editor View.png|none|thumb|350x350px|New post with visibility period]]&lt;br /&gt;
# Click on a post to open its details.[[File:3. Billboard Open Post.png|none|thumb|Open post with information and description]]&lt;br /&gt;
# The post view shows:&lt;br /&gt;
#* Type (External or Internal)&lt;br /&gt;
#* Creator&#039;s name&lt;br /&gt;
#* Start and end dates of visibility&lt;br /&gt;
# To close the post, click the &#039;&#039;&#039;X&#039;&#039;&#039; button in the top right corner.&lt;br /&gt;
&lt;br /&gt;
==== 4. Creating a Post ====&lt;br /&gt;
&lt;br /&gt;
# Editors will see an &#039;&#039;&#039;Add+&#039;&#039;&#039; card within the department page.[[File:6. Billboard Posts Page with Add Card.png|none|thumb|450x450px|Posts on a group with Editor view, with &amp;quot;Add+&amp;quot; card]]&lt;br /&gt;
# Click it to open the post creation modal.&lt;br /&gt;
# Fill in the following:&lt;br /&gt;
#* &#039;&#039;&#039;Title&#039;&#039;&#039; (top input)&lt;br /&gt;
#* &#039;&#039;&#039;Description&#039;&#039;&#039; (main text area)&lt;br /&gt;
#* &#039;&#039;&#039;Start and end dates&#039;&#039;&#039;[[File:6.1. Billboard Post Start and End Date Picking.png|none|thumb|350x350px|Post start and end date time picking]]&lt;br /&gt;
#* &#039;&#039;&#039;Type&#039;&#039;&#039; (Internal or External)[[File:6.2. Billboard Post Type Drop Down Select.png|none|thumb|300x300px|Type drop down selection]]&lt;br /&gt;
#* &#039;&#039;&#039;Color&#039;&#039;&#039; (default is black if not selected)[[File:6.3. Billboard Post Color Picker.png|none|thumb|300x300px|Post and group color picker]]&lt;br /&gt;
# Click &#039;&#039;&#039;Insert&#039;&#039;&#039; to save or &#039;&#039;&#039;Close&#039;&#039;&#039; to cancel.[[File:7. Billboard Post Creation Modal.png|none|thumb|400x400px|Post creation and editing modal]]&lt;br /&gt;
&lt;br /&gt;
==== 5. Editing or Deleting a Post ====&lt;br /&gt;
&lt;br /&gt;
# If you are the creator or an editor of the group:&lt;br /&gt;
#* Click the pencil icon to edit – the modal opens pre-filled with existing data.&lt;br /&gt;
#* Click the trash icon to delete – the post is removed immediately.[[File:8. Billboard Post View as Editor Actions Outlined.png|none|thumb|400x400px|Post view as Editor with actions outlined]]&lt;br /&gt;
&lt;br /&gt;
==== 6. Viewing Post History ====&lt;br /&gt;
&lt;br /&gt;
# Inside the post, click the &#039;&#039;&#039;Clock&#039;&#039;&#039; icon to view who has accessed it.&lt;br /&gt;
#* The view shows user names and access timestamps.&lt;br /&gt;
#* A back arrow icon replaces the clock to return to the post details.[[File:9. Billboard Post History.png|none|thumb|350x350px|Post history of who has viewed and when]]&lt;br /&gt;
&lt;br /&gt;
==== 7. Managing Groups (Editor role) ====&lt;br /&gt;
&lt;br /&gt;
* Editors see extra options in the bottom menu of the department page.[[File:10. Billboard Posts Page with Bottom Menu Outlined.png|none|thumb|Posts on a group as an Editor with bottom menu outlined]]&lt;br /&gt;
# Click the trash icon to delete the group.&lt;br /&gt;
# Click the clock icon to access post history.&lt;br /&gt;
#* You can filter posts:&lt;br /&gt;
#** By time period (Today, Last 7 days, Custom...)&lt;br /&gt;
#** By deleted or active status[[File:11. Billboard Posts Time Filter Drop Down.png|none|thumb|Group&#039;s posts history drop down time filter]][[File:12. Billboard Posts Time Filter Custom.png|none|thumb|Group&#039;s posts history time filter with custom period time picking]]&lt;br /&gt;
# Click the gear icon to edit group settings:&lt;br /&gt;
#* Change the name or color&lt;br /&gt;
#* Modify members and their roles[[File:13. Billboard Group Editing.png|none|thumb|Group editing modal with users and their roles that were previous selected ]]&lt;br /&gt;
&lt;br /&gt;
== Component Diagram ==&lt;br /&gt;
The diagrams below illustrate the architecture of the &#039;&#039;&#039;Billboard&#039;&#039;&#039; application and its interaction with the Innovaphone platform, as well as the various components involved.&lt;br /&gt;
&lt;br /&gt;
=== User and Admin Interaction Flow ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Flow Overview:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;ADMIN:&#039;&#039;&#039; The administrator has the ability to manage groups and posts across the system, including controlling visibility and user access.&lt;br /&gt;
* &#039;&#039;&#039;DEPARTMENT (Group):&#039;&#039;&#039; Represents different groups (like IT and HR), each having specific announcements and user interactions.&lt;br /&gt;
* &#039;&#039;&#039;NOTES:&#039;&#039;&#039; Each group can have specific notes (e.g., IT or HR), which are shown to relevant users.&lt;br /&gt;
* &#039;&#039;&#039;USERS:&#039;&#039;&#039; Users from various groups (IT, HR, and General) can access posts that are published within their allowed groups.&lt;br /&gt;
&lt;br /&gt;
=== Application Architecture ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Flow Overview:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;PBX Platform:&#039;&#039;&#039; Interacts with the &#039;&#039;&#039;Billboard App&#039;&#039;&#039;, managing internal communication and service integration.&lt;br /&gt;
* &#039;&#039;&#039;APP Platform:&#039;&#039;&#039; Hosts the &#039;&#039;&#039;Billboard Service&#039;&#039;&#039;, which manages posts and user interactions, and communicates with the database.&lt;br /&gt;
* &#039;&#039;&#039;Service DWC:&#039;&#039;&#039; Responsible for managing the backend services for the Billboard app, providing routes to interact with both the database and the PBX platform.&lt;br /&gt;
&lt;br /&gt;
This architecture shows how the components integrate within the Innovaphone ecosystem, allowing for seamless communication between groups and users through the &#039;&#039;&#039;Billboard&#039;&#039;&#039; app.&lt;br /&gt;
&lt;br /&gt;
== Licensing ==&lt;br /&gt;
&amp;lt;!-- Needs further analysis and clarification. --&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Billboard&#039;&#039;&#039; is licensed via the Innovaphone Pricelist.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;License type:&#039;&#039;&#039; Innovaphone Pricelist  &lt;br /&gt;
&#039;&#039;&#039;License model:&#039;&#039;&#039; One license per user&lt;br /&gt;
&#039;&#039;&#039;Trial:&#039;&#039;&#039; 90 days temporary license available after installation  &lt;br /&gt;
&#039;&#039;&#039;Listed at:&#039;&#039;&#039; https://www.innovaphone.com/en/services/licenses/partner-apps.html?app=Billboard&amp;amp;type=license#billboard&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
&amp;lt;!-- Needs further analysis and clarification. --&amp;gt;&lt;br /&gt;
=== System Requirements ===&lt;br /&gt;
&lt;br /&gt;
* Innovaphone firmware: &amp;lt;code&amp;gt;14r1&amp;lt;/code&amp;gt; or later&lt;br /&gt;
* Innovaphone App Platform with myApps&lt;br /&gt;
* PBX Manager for app registration&lt;br /&gt;
&lt;br /&gt;
=== Licensing Activation ===&lt;br /&gt;
&lt;br /&gt;
* Requires license token and file provided by Wecom&lt;br /&gt;
* Insert into Admin interface for activation&lt;br /&gt;
&lt;br /&gt;
== Versions ==&lt;br /&gt;
&amp;lt;!-- Needs further analysis and clarification. --&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Current version:&#039;&#039;&#039; 1.0&lt;br /&gt;
* &#039;&#039;&#039;Latest release:&#039;&#039;&#039; &amp;lt;code&amp;gt;1011 final&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Release date:&#039;&#039;&#039; June 17, 2025&lt;br /&gt;
* &#039;&#039;&#039;Innovaphone compatibility:&#039;&#039;&#039; Yes&lt;br /&gt;
* &#039;&#039;&#039;Architectures supported:&#039;&#039;&#039; &amp;lt;code&amp;gt;arm&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;x86_64&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;arm64&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
Follow the steps below to install the &#039;&#039;&#039;Billboard&#039;&#039;&#039; application in your Innovaphone environment.&lt;br /&gt;
&lt;br /&gt;
=== Option 1: Installing via AP Manager App Store (Recommended) ===&lt;br /&gt;
You can install &#039;&#039;&#039;Billboard&#039;&#039;&#039; directly through the &#039;&#039;&#039;App Platform Manager&#039;&#039;&#039; (AP Manager) by accessing the App Store:&lt;br /&gt;
&lt;br /&gt;
# Open the &#039;&#039;&#039;AP Manager&#039;&#039;&#039;.&lt;br /&gt;
# Click the yellow &#039;&#039;&#039;App Store&#039;&#039;&#039; button in the top-right corner.&lt;br /&gt;
# Search for &#039;&#039;&#039;Billboard&#039;&#039;&#039; in the list.&lt;br /&gt;
# Click on it to open further information&lt;br /&gt;
# Select the latest version and confirm the download.&lt;br /&gt;
# The app will be automatically installed and ready to configure.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;🛈 This is the easiest and fastest way to deploy the app.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
[[File:Innovaphone MyApps Lab AppStore Button in AP Manager.png|none|thumb|436x436px|AppStore Button in AP Manager outlined]]&lt;br /&gt;
[[File:AP Manager Billboard.png|none|thumb|436x436px|AP Manager Appstore interface with actions outlined]]&lt;br /&gt;
&lt;br /&gt;
=== Option 2: Manual Installation via Upload ===&lt;br /&gt;
If you prefer installing manually, follow the steps below:&lt;br /&gt;
&lt;br /&gt;
==== Step 1: Download the App Package ====&lt;br /&gt;
&lt;br /&gt;
# Visit the official [https://appstore.wecom.com.br/release/WecomStore/1410593/download.htm Wecom myApps Downloads Portal].&lt;br /&gt;
# Find the &#039;&#039;&#039;Billboard&#039;&#039;&#039; app.&lt;br /&gt;
# Download the latest available version compatible with your system architecture.&lt;br /&gt;
[[File:Wecom MyApps App Store Billboard.png|none|thumb|418x418px|Billboard on MyApps&#039; Wecom&#039;s App Store]]&lt;br /&gt;
&lt;br /&gt;
==== Step 2: Upload to AP Manager ====&lt;br /&gt;
&lt;br /&gt;
# In &#039;&#039;&#039;AP Manager&#039;&#039;&#039;, click &#039;&#039;&#039;App upload&#039;&#039;&#039; (top right).&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;.app&amp;lt;/code&amp;gt; package you downloaded from the portal.&lt;br /&gt;
# After successful upload, the app will appear in your list and show as &#039;&#039;&#039;Running&#039;&#039;&#039;.&lt;br /&gt;
[[File:App Upload Button on MyApps AP Manager.png|none|thumb|487x487px|App Upload button on AP Manager outlined]]&lt;br /&gt;
[[File:Billboard on AP Manager.png|none|thumb|440x440px|Billboard on AP Manager]]&lt;br /&gt;
[[File:Billboard upload on App Manager.png|none|thumb|440x440px|Uploading Billboard on Ap Manager]]&lt;br /&gt;
&lt;br /&gt;
=== Step 3: Add Application Instance ===&lt;br /&gt;
&lt;br /&gt;
# After uploading the app, click the yellow &#039;&#039;&#039;+ Add&#039;&#039;&#039; button to create an instance of the application.&lt;br /&gt;
# Fill in the required fields:&lt;br /&gt;
#* &#039;&#039;&#039;Name:&#039;&#039;&#039; A recognizable name for the instance.&lt;br /&gt;
#* &#039;&#039;&#039;Domain:&#039;&#039;&#039; The domain for the PBX.&lt;br /&gt;
#* &#039;&#039;&#039;Password:&#039;&#039;&#039; A secure admin password for the app instance.&lt;br /&gt;
#* &#039;&#039;&#039;Webserver path:&#039;&#039;&#039; Optional path (or leave blank).&lt;br /&gt;
#* &#039;&#039;&#039;Database host:&#039;&#039;&#039; Leave empty for local DB or specify IP/DNS if external.&lt;br /&gt;
#* &#039;&#039;&#039;Database name&#039;&#039;&#039; and &#039;&#039;&#039;Database user&#039;&#039;&#039;: Use consistent values for your environment.&lt;br /&gt;
#* &#039;&#039;&#039;Database password:&#039;&#039;&#039; Corresponding DB password.&lt;br /&gt;
# When all values are filled, click &#039;&#039;&#039;Save&#039;&#039;&#039;.&lt;br /&gt;
[[File:AP Manager Billboard App Instance Creation Example.png|none|thumb|440x440px|Example of instance creation screen in AP Manager]]&lt;br /&gt;
&lt;br /&gt;
=== Final Step: Registering the App in PBX Manager ===&lt;br /&gt;
&lt;br /&gt;
# Open the &#039;&#039;&#039;PBX Manager&#039;&#039;&#039;.&lt;br /&gt;
# Go to the &#039;&#039;&#039;Apps&#039;&#039;&#039; section.&lt;br /&gt;
# Click &#039;&#039;&#039;Add App&#039;&#039;&#039; and register:&lt;br /&gt;
#* A &#039;&#039;&#039;Users App&#039;&#039;&#039;&lt;br /&gt;
#* An &#039;&#039;&#039;Admin App&#039;&#039;&#039;&lt;br /&gt;
# Assign access rights as needed.&lt;br /&gt;
[[File:PBX Manager Add an App Billboard Correct.png|none|thumb|440x440px|PBX Manager &#039;&#039;Add an App&#039;&#039; app selection]]&lt;br /&gt;
[[File:PBX Manager Billboard Add an App Config.png|none|thumb|440x440px|PBX Manager &#039;&#039;Add an App&#039;&#039; configuration]]&lt;br /&gt;
[[File:Billboard on PBX Manager Correct.png|none|thumb|440x440px|Billboard on PBX Manager configured]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⇒ After registration, both apps will appear in MyApps and are ready for use.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Copyright ==&lt;br /&gt;
&#039;&#039;Space dedicated to Flowe copyright information.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Contact ==&lt;br /&gt;
* &#039;&#039;&#039;PORTO ALEGRE - RS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Av. Carlos Gomes, 466 / 401&lt;br /&gt;
&lt;br /&gt;
Boa Vista - CEP 90480-000&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tel:&#039;&#039;&#039; +55 51 3079.5000&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;FLORIANÓPOLIS - SC&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SC 401, 8600 - Room 7&lt;br /&gt;
&lt;br /&gt;
Corporate Park - Block 2&lt;br /&gt;
&lt;br /&gt;
Santo Antônio de Lisboa&lt;br /&gt;
&lt;br /&gt;
CEP 88050-001&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tel:&#039;&#039;&#039; +55 48 3112.6200&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mail:&#039;&#039;&#039; [mailto:comercial@wecom.com.br comercial@wecom.com.br]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Support:&#039;&#039;&#039; [mailto:suporte@wecom.com.br suporte@wecom.com.br]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Website:&#039;&#039;&#039; [https://wecom.com.br/ wecom.com.br]&lt;br /&gt;
&lt;br /&gt;
For any questions please refer to [https://wecom.com.br/fale-conosco/ our contact page.]&lt;/div&gt;</summary>
		<author><name>Pablo.montiel</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Howto:Billboard_-_Wecom_-_Partner_App&amp;diff=77251</id>
		<title>Howto:Billboard - Wecom - Partner App</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Howto:Billboard_-_Wecom_-_Partner_App&amp;diff=77251"/>
		<updated>2025-07-01T18:34:11Z</updated>

		<summary type="html">&lt;p&gt;Pablo.montiel: /* Functions */ Rearranged subsections order - Admin App first, then Users App&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FIXME|reason=Work in progress, still incomplete}}&lt;br /&gt;
&amp;lt;!-- Needed to add images: billboard logo, diagrams (2) to the component diagram, functions step-by-step, installation images, . --&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;float:right;&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Partner App Info&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |[[File:Wecom Billboard.png|alt=|center|frameless|200x200px|Billboard Icon]]&lt;br /&gt;
|-&lt;br /&gt;
!Name&lt;br /&gt;
|Billboard&lt;br /&gt;
|-&lt;br /&gt;
!Company&lt;br /&gt;
|Wecom&lt;br /&gt;
|-&lt;br /&gt;
!Version&lt;br /&gt;
|1.0&lt;br /&gt;
|-&lt;br /&gt;
!License&lt;br /&gt;
|Via Innovaphone Pricelist&lt;br /&gt;
|-&lt;br /&gt;
!Languages&lt;br /&gt;
|Czech, English, Estonian, French,&amp;lt;br&amp;gt;German, Italian, Polish, Portuguese,&amp;lt;br&amp;gt;Slovenian, Spanish&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Product Name ==&lt;br /&gt;
&#039;&#039;&#039;Billboard&#039;&#039;&#039; [https://wecom.com.br/ Link]&lt;br /&gt;
&lt;br /&gt;
== Certification Status ==&lt;br /&gt;
&amp;lt;!-- Do not remove comment. Will be added by Innovaphone upon document check &amp;amp; app availablity on app store. --&amp;gt;&lt;br /&gt;
&#039;&#039;Space dedicated to Billboard certification information.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Category ==&lt;br /&gt;
&#039;&#039;Space dedicated to Billboard category information.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Vendor ==&lt;br /&gt;
[[File:Logo wecom.png|alt=|thumb|Wecom&#039;s logo]]&lt;br /&gt;
Wecom&lt;br /&gt;
&lt;br /&gt;
* [https://wecom.com.br/ wecom.com.br]&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&#039;&#039;&#039;Billboard&#039;&#039;&#039; is a Partner App developed by &#039;&#039;&#039;Wecom&#039;&#039;&#039; to modernize internal communications by digitizing traditional bulletin boards. Through a user-friendly interface integrated into Innovaphone’s myApps workspace, departments (referred to as &amp;quot;groups&amp;quot; within the app) can publish announcements with scheduled validity, targeted visibility, and interaction tracking.&lt;br /&gt;
&lt;br /&gt;
Main components:&lt;br /&gt;
* &#039;&#039;&#039;Users App&#039;&#039;&#039; – For general users to access and interact with department posts.&lt;br /&gt;
* &#039;&#039;&#039;Admin App&#039;&#039;&#039; – For administrators to manage groups, posts, and licensing.&lt;br /&gt;
&lt;br /&gt;
== Functions ==&lt;br /&gt;
&amp;lt;!-- Section in analysis. --&amp;gt;&lt;br /&gt;
=== Admin App ===&lt;br /&gt;
&lt;br /&gt;
The Admin App provides global management functionalities for users, groups (departments), and posts. Only users marked as administrators via this panel will have access to it.&lt;br /&gt;
&lt;br /&gt;
==== 1. Granting Administrator Access ====&lt;br /&gt;
&lt;br /&gt;
# Access the Admin App – it will open on the &#039;&#039;&#039;Users Page&#039;&#039;&#039; by default.&lt;br /&gt;
# Use the &#039;&#039;&#039;search bar&#039;&#039;&#039; at the top to find the user you wish to promote.&lt;br /&gt;
# Locate the user in the list below.&lt;br /&gt;
# Click the checkbox next to their name to grant administrator privileges.&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Only an existing admin can assign admin rights to another user.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
[[File:A1. Billboard Admin Users Page.png|none|thumb|450x450px|Users Page with search bar and checkboxes for admin privileges]]&lt;br /&gt;
&lt;br /&gt;
==== 2. Viewing the Billboard License Information ====&lt;br /&gt;
&lt;br /&gt;
# In the Admin App sidebar, click on the &#039;&#039;&#039;Licensing&#039;&#039;&#039; tab.&lt;br /&gt;
# The page will display information related to the current license.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;System Token&#039;&#039;&#039;: Unique identifier for the system, used for license validation.&lt;br /&gt;
* &#039;&#039;&#039;Active License&#039;&#039;&#039;: Indicates if the license is active (e.g., Temporary).&lt;br /&gt;
* &#039;&#039;&#039;Billboard Install Date&#039;&#039;&#039;: Shows the exact date and time when the Billboard app was installed.&lt;br /&gt;
* &#039;&#039;&#039;Licenses in Use&#039;&#039;&#039;: Displays the number of users currently using the Billboard Apps.&lt;br /&gt;
&lt;br /&gt;
[[File:License Page Billboard Admin Correct.jpg|none|thumb|450x450px|Licensing page showing all license details]]&lt;br /&gt;
&lt;br /&gt;
==== 3. Managing Departments ====&lt;br /&gt;
&lt;br /&gt;
# In the Admin App sidebar, click on the &#039;&#039;&#039;Departments&#039;&#039;&#039; tab.&lt;br /&gt;
# Browse the list of all departments created in the system.&lt;br /&gt;
# Scroll to locate the department you wish to edit.&lt;br /&gt;
# Click on the &#039;&#039;&#039;color circle&#039;&#039;&#039; next to the department to open the editing modal.&lt;br /&gt;
# In the modal:&lt;br /&gt;
## Update the department&#039;s name.&lt;br /&gt;
## Change its color using the color picker.&lt;br /&gt;
## Add or remove users as &#039;&#039;&#039;Editors&#039;&#039;&#039; or &#039;&#039;&#039;Viewers&#039;&#039;&#039;.&lt;br /&gt;
## Save the changes to apply them.&lt;br /&gt;
[[File:A3.1. Billboard Admin Group Management.png|none|thumb|450x450px|Group management modal]]&lt;br /&gt;
&lt;br /&gt;
* The list includes all departments, including those marked as deleted.&lt;br /&gt;
* Deleted departments are labeled with their deletion date.&lt;br /&gt;
* Each department entry shows:&lt;br /&gt;
** Department name&lt;br /&gt;
** Assigned color&lt;br /&gt;
** Creator&#039;s name&lt;br /&gt;
** Status (active or deleted)&lt;br /&gt;
[[File:A3. Billboard Admin Departments Page.png|none|thumb|450x450px|Departments list with edit modal access]]&lt;br /&gt;
&lt;br /&gt;
==== 4. Managing Posts ====&lt;br /&gt;
&lt;br /&gt;
# Click on the &#039;&#039;&#039;Posts&#039;&#039;&#039; tab in the Admin App sidebar.&lt;br /&gt;
# Browse the full list of posts created across all departments.&lt;br /&gt;
# Scroll to locate a specific post.&lt;br /&gt;
# Click the &#039;&#039;&#039;edit icon&#039;&#039;&#039; next to a post to open the editing modal.&lt;br /&gt;
# In the modal:&lt;br /&gt;
## Modify the title, description, color, type, and visibility period.&lt;br /&gt;
## Save the changes to update the post.&lt;br /&gt;
[[File:A4.1. ABillboard Admin Post Management.png|none|thumb|450x450px|Post management modal]]&lt;br /&gt;
&lt;br /&gt;
* The post list includes:&lt;br /&gt;
** Active posts&lt;br /&gt;
** Expired posts&lt;br /&gt;
** Deleted posts (showing the deletion date)&lt;br /&gt;
* Each post displays:&lt;br /&gt;
** Title&lt;br /&gt;
** Department (group) association&lt;br /&gt;
** Type: Internal or External&lt;br /&gt;
** Start and end dates (visibility period)&lt;br /&gt;
** Creator&#039;s name&lt;br /&gt;
** Current status: active, expired, or deleted&lt;br /&gt;
[[File:A4. Billboard Admin Posts Page.png|none|thumb|450x450px|All posts view with status, creator, and edit access]]&lt;br /&gt;
&lt;br /&gt;
==== 5. Accessing Public Posts ====&lt;br /&gt;
&lt;br /&gt;
# In the sidebar, click on the &#039;&#039;&#039;Public Posts&#039;&#039;&#039; tab.&lt;br /&gt;
# A modal will appear, redirecting you to the Billboard &#039;&#039;&#039;Users App&#039;&#039;&#039; to view a list of posts.&lt;br /&gt;
# Click on any post from this list.&lt;br /&gt;
&lt;br /&gt;
* Only posts with the &amp;quot;External&amp;quot; type selected during creation appear here.&lt;br /&gt;
* This page is read-only and used for quick access to public content.&lt;br /&gt;
[[File:A5. Billboard Admin Public Posts Modal.png|none|thumb|450x450px|Public posts modal with redirect to Users App]]&lt;br /&gt;
&lt;br /&gt;
=== Users App ===&lt;br /&gt;
&lt;br /&gt;
The Users App is the interface where users access, read, create, and manage department posts, based on their permissions (viewer or editor). Each user sees only the groups they are part of.&lt;br /&gt;
&lt;br /&gt;
==== 1. Accessing a Group ====&lt;br /&gt;
&lt;br /&gt;
# Upon opening the Users App, the main screen lists all groups (departments) the user belongs to.&lt;br /&gt;
# To enter a group, simply click on the desired group.&amp;lt;blockquote&amp;gt;Groups are color-coded and may display badges for new or unseen posts.&amp;lt;/blockquote&amp;gt;[[File:Billboard Users Groups Page.png|none|thumb|450x450px|Users App main page with every group you are on]]&lt;br /&gt;
&lt;br /&gt;
==== 2. Creating a Group (Admins only) ====&lt;br /&gt;
&lt;br /&gt;
# Only users assigned with the &amp;quot;create department&amp;quot; permission (via Admin App) will see the &#039;&#039;&#039;Add+&#039;&#039;&#039; button on the main screen.[[File:4. Billboard Users Groups Page Button Outlined.png|none|thumb|450x450px|Groups page with &amp;quot;+ Add&amp;quot; button outlined]]&lt;br /&gt;
# Click &#039;&#039;&#039;Add+&#039;&#039;&#039; to open the group creation modal.&lt;br /&gt;
# Fill in:&lt;br /&gt;
#* Enter the &#039;&#039;&#039;Department Name&#039;&#039;&#039;&lt;br /&gt;
#* Select the color using the color picker&lt;br /&gt;
#* Assign users to roles:&lt;br /&gt;
#** &#039;&#039;&#039;Editor&#039;&#039;&#039; – Can manage posts, see group&#039;s history and edit the department.&lt;br /&gt;
#** &#039;&#039;&#039;Viewer&#039;&#039;&#039; – Can only view posts.&lt;br /&gt;
#* Clicking &amp;quot;Viewer&amp;quot; name label selects all users as viewers.[[File:5. Billboard Group Creation Modal.png|none|thumb|450x450px|Group creation modal with roles selection, color picking and name input]]&lt;br /&gt;
&lt;br /&gt;
==== 3. Viewing a Post ====&lt;br /&gt;
&lt;br /&gt;
# Inside a group, posts are displayed as cards.[[File:2. Billboard Posts Page (of a Group).png|none|thumb|450x450px|Posts inside a group]]&lt;br /&gt;
#* If you are an Editor, the post will also show the visibility period on the bottom of the card.&lt;br /&gt;
#* Unread posts display a red &#039;&#039;&#039;NEW&#039;&#039;&#039; label in the top-left corner of the card.&lt;br /&gt;
#** The label disappears as soon as the post is opened.[[File:2.5. Billboard New Post Card Editor View.png|none|thumb|350x350px|New post with visibility period]]&lt;br /&gt;
# Click on a post to open its details.[[File:3. Billboard Open Post.png|none|thumb|Open post with information and description]]&lt;br /&gt;
# The post view shows:&lt;br /&gt;
#* Type (External or Internal)&lt;br /&gt;
#* Creator&#039;s name&lt;br /&gt;
#* Start and end dates of visibility&lt;br /&gt;
# To close the post, click the &#039;&#039;&#039;X&#039;&#039;&#039; button in the top right corner.&lt;br /&gt;
&lt;br /&gt;
==== 4. Creating a Post ====&lt;br /&gt;
&lt;br /&gt;
# Editors will see an &#039;&#039;&#039;Add+&#039;&#039;&#039; card within the department page.[[File:6. Billboard Posts Page with Add Card.png|none|thumb|450x450px|Posts on a group with Editor view, with &amp;quot;Add+&amp;quot; card]]&lt;br /&gt;
# Click it to open the post creation modal.&lt;br /&gt;
# Fill in the following:&lt;br /&gt;
#* &#039;&#039;&#039;Title&#039;&#039;&#039; (top input)&lt;br /&gt;
#* &#039;&#039;&#039;Description&#039;&#039;&#039; (main text area)&lt;br /&gt;
#* &#039;&#039;&#039;Start and end dates&#039;&#039;&#039;[[File:6.1. Billboard Post Start and End Date Picking.png|none|thumb|350x350px|Post start and end date time picking]]&lt;br /&gt;
#* &#039;&#039;&#039;Type&#039;&#039;&#039; (Internal or External)[[File:6.2. Billboard Post Type Drop Down Select.png|none|thumb|300x300px|Type drop down selection]]&lt;br /&gt;
#* &#039;&#039;&#039;Color&#039;&#039;&#039; (default is black if not selected)[[File:6.3. Billboard Post Color Picker.png|none|thumb|300x300px|Post and group color picker]]&lt;br /&gt;
# Click &#039;&#039;&#039;Insert&#039;&#039;&#039; to save or &#039;&#039;&#039;Close&#039;&#039;&#039; to cancel.[[File:7. Billboard Post Creation Modal.png|none|thumb|400x400px|Post creation and editing modal]]&lt;br /&gt;
&lt;br /&gt;
==== 5. Editing or Deleting a Post ====&lt;br /&gt;
&lt;br /&gt;
# If you are the creator or an editor of the group:&lt;br /&gt;
#* Click the pencil icon to edit – the modal opens pre-filled with existing data.&lt;br /&gt;
#* Click the trash icon to delete – the post is removed immediately.[[File:8. Billboard Post View as Editor Actions Outlined.png|none|thumb|400x400px|Post view as Editor with actions outlined]]&lt;br /&gt;
&lt;br /&gt;
==== 6. Viewing Post History ====&lt;br /&gt;
&lt;br /&gt;
# Inside the post, click the &#039;&#039;&#039;Clock&#039;&#039;&#039; icon to view who has accessed it.&lt;br /&gt;
#* The view shows user names and access timestamps.&lt;br /&gt;
#* A back arrow icon replaces the clock to return to the post details.[[File:9. Billboard Post History.png|none|thumb|350x350px|Post history of who has viewed and when]]&lt;br /&gt;
&lt;br /&gt;
==== 7. Managing Groups (Editor role) ====&lt;br /&gt;
&lt;br /&gt;
* Editors see extra options in the bottom menu of the department page.[[File:10. Billboard Posts Page with Bottom Menu Outlined.png|none|thumb|Posts on a group as an Editor with bottom menu outlined]]&lt;br /&gt;
# Click the trash icon to delete the group.&lt;br /&gt;
# Click the clock icon to access post history.&lt;br /&gt;
#* You can filter posts:&lt;br /&gt;
#** By time period (Today, Last 7 days, Custom...)&lt;br /&gt;
#** By deleted or active status[[File:11. Billboard Posts Time Filter Drop Down.png|none|thumb|Group&#039;s posts history drop down time filter]][[File:12. Billboard Posts Time Filter Custom.png|none|thumb|Group&#039;s posts history time filter with custom period time picking]]&lt;br /&gt;
# Click the gear icon to edit group settings:&lt;br /&gt;
#* Change the name or color&lt;br /&gt;
#* Modify members and their roles[[File:13. Billboard Group Editing.png|none|thumb|Group editing modal with users and their roles that were previous selected ]]&lt;br /&gt;
&lt;br /&gt;
== Component Diagram ==&lt;br /&gt;
The diagrams below illustrate the architecture of the &#039;&#039;&#039;Billboard&#039;&#039;&#039; application and its interaction with the Innovaphone platform, as well as the various components involved.&lt;br /&gt;
&lt;br /&gt;
=== User and Admin Interaction Flow ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Flow Overview:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;ADMIN:&#039;&#039;&#039; The administrator has the ability to manage groups and posts across the system, including controlling visibility and user access.&lt;br /&gt;
* &#039;&#039;&#039;DEPARTMENT (Group):&#039;&#039;&#039; Represents different groups (like IT and HR), each having specific announcements and user interactions.&lt;br /&gt;
* &#039;&#039;&#039;NOTES:&#039;&#039;&#039; Each group can have specific notes (e.g., IT or HR), which are shown to relevant users.&lt;br /&gt;
* &#039;&#039;&#039;USERS:&#039;&#039;&#039; Users from various groups (IT, HR, and General) can access posts that are published within their allowed groups.&lt;br /&gt;
&lt;br /&gt;
=== Application Architecture ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Flow Overview:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;PBX Platform:&#039;&#039;&#039; Interacts with the &#039;&#039;&#039;Billboard App&#039;&#039;&#039;, managing internal communication and service integration.&lt;br /&gt;
* &#039;&#039;&#039;APP Platform:&#039;&#039;&#039; Hosts the &#039;&#039;&#039;Billboard Service&#039;&#039;&#039;, which manages posts and user interactions, and communicates with the database.&lt;br /&gt;
* &#039;&#039;&#039;Service DWC:&#039;&#039;&#039; Responsible for managing the backend services for the Billboard app, providing routes to interact with both the database and the PBX platform.&lt;br /&gt;
&lt;br /&gt;
This architecture shows how the components integrate within the Innovaphone ecosystem, allowing for seamless communication between groups and users through the &#039;&#039;&#039;Billboard&#039;&#039;&#039; app.&lt;br /&gt;
&lt;br /&gt;
== Licensing ==&lt;br /&gt;
&amp;lt;!-- Needs further analysis and clarification. --&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Billboard&#039;&#039;&#039; is licensed via the Innovaphone Pricelist.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;License type:&#039;&#039;&#039; Innovaphone Pricelist  &lt;br /&gt;
&#039;&#039;&#039;License model:&#039;&#039;&#039; One license per user&lt;br /&gt;
&#039;&#039;&#039;Trial:&#039;&#039;&#039; 30 days temporary license available after installation  &lt;br /&gt;
&#039;&#039;&#039;Listed at:&#039;&#039;&#039; https://www.innovaphone.com/en/services/licenses/partner-apps.html?app=Billboard&amp;amp;type=license#billboard&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
&amp;lt;!-- Needs further analysis and clarification. --&amp;gt;&lt;br /&gt;
=== System Requirements ===&lt;br /&gt;
&lt;br /&gt;
* Innovaphone firmware: &amp;lt;code&amp;gt;14r1&amp;lt;/code&amp;gt; or later&lt;br /&gt;
* Innovaphone App Platform with myApps&lt;br /&gt;
* PBX Manager for app registration&lt;br /&gt;
&lt;br /&gt;
=== Licensing Activation ===&lt;br /&gt;
&lt;br /&gt;
* Requires license token and file provided by Wecom&lt;br /&gt;
* Insert into Admin interface for activation&lt;br /&gt;
&lt;br /&gt;
== Versions ==&lt;br /&gt;
&amp;lt;!-- Needs further analysis and clarification. --&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Current version:&#039;&#039;&#039; 1.0&lt;br /&gt;
* &#039;&#039;&#039;Latest release:&#039;&#039;&#039; &amp;lt;code&amp;gt;1011 final&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Release date:&#039;&#039;&#039; June 17, 2025&lt;br /&gt;
* &#039;&#039;&#039;Innovaphone compatibility:&#039;&#039;&#039; Yes&lt;br /&gt;
* &#039;&#039;&#039;Architectures supported:&#039;&#039;&#039; &amp;lt;code&amp;gt;arm&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;x86_64&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;arm64&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
Follow the steps below to install the &#039;&#039;&#039;Billboard&#039;&#039;&#039; application in your Innovaphone environment.&lt;br /&gt;
&lt;br /&gt;
=== Option 1: Installing via AP Manager App Store (Recommended) ===&lt;br /&gt;
You can install &#039;&#039;&#039;Billboard&#039;&#039;&#039; directly through the &#039;&#039;&#039;App Platform Manager&#039;&#039;&#039; (AP Manager) by accessing the App Store:&lt;br /&gt;
&lt;br /&gt;
# Open the &#039;&#039;&#039;AP Manager&#039;&#039;&#039;.&lt;br /&gt;
# Click the yellow &#039;&#039;&#039;App Store&#039;&#039;&#039; button in the top-right corner.&lt;br /&gt;
# Search for &#039;&#039;&#039;Billboard&#039;&#039;&#039; in the list.&lt;br /&gt;
# Click on it to open further information&lt;br /&gt;
# Select the latest version and confirm the download.&lt;br /&gt;
# The app will be automatically installed and ready to configure.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;🛈 This is the easiest and fastest way to deploy the app.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
[[File:Innovaphone MyApps Lab AppStore Button in AP Manager.png|none|thumb|436x436px|AppStore Button in AP Manager outlined]]&lt;br /&gt;
[[File:AP Manager Billboard.png|none|thumb|436x436px|AP Manager Appstore interface with actions outlined]]&lt;br /&gt;
&lt;br /&gt;
=== Option 2: Manual Installation via Upload ===&lt;br /&gt;
If you prefer installing manually, follow the steps below:&lt;br /&gt;
&lt;br /&gt;
==== Step 1: Download the App Package ====&lt;br /&gt;
&lt;br /&gt;
# Visit the official [https://appstore.wecom.com.br/release/WecomStore/1410593/download.htm Wecom myApps Downloads Portal].&lt;br /&gt;
# Find the &#039;&#039;&#039;Billboard&#039;&#039;&#039; app.&lt;br /&gt;
# Download the latest available version compatible with your system architecture.&lt;br /&gt;
[[File:Wecom MyApps App Store Billboard.png|none|thumb|418x418px|Billboard on MyApps&#039; Wecom&#039;s App Store]]&lt;br /&gt;
&lt;br /&gt;
==== Step 2: Upload to AP Manager ====&lt;br /&gt;
&lt;br /&gt;
# In &#039;&#039;&#039;AP Manager&#039;&#039;&#039;, click &#039;&#039;&#039;App upload&#039;&#039;&#039; (top right).&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;.app&amp;lt;/code&amp;gt; package you downloaded from the portal.&lt;br /&gt;
# After successful upload, the app will appear in your list and show as &#039;&#039;&#039;Running&#039;&#039;&#039;.&lt;br /&gt;
[[File:App Upload Button on MyApps AP Manager.png|none|thumb|487x487px|App Upload button on AP Manager outlined]]&lt;br /&gt;
[[File:Billboard on AP Manager.png|none|thumb|440x440px|Billboard on AP Manager]]&lt;br /&gt;
[[File:Billboard upload on App Manager.png|none|thumb|440x440px|Uploading Billboard on Ap Manager]]&lt;br /&gt;
&lt;br /&gt;
=== Step 3: Add Application Instance ===&lt;br /&gt;
&lt;br /&gt;
# After uploading the app, click the yellow &#039;&#039;&#039;+ Add&#039;&#039;&#039; button to create an instance of the application.&lt;br /&gt;
# Fill in the required fields:&lt;br /&gt;
#* &#039;&#039;&#039;Name:&#039;&#039;&#039; A recognizable name for the instance.&lt;br /&gt;
#* &#039;&#039;&#039;Domain:&#039;&#039;&#039; The domain for the PBX.&lt;br /&gt;
#* &#039;&#039;&#039;Password:&#039;&#039;&#039; A secure admin password for the app instance.&lt;br /&gt;
#* &#039;&#039;&#039;Webserver path:&#039;&#039;&#039; Optional path (or leave blank).&lt;br /&gt;
#* &#039;&#039;&#039;Database host:&#039;&#039;&#039; Leave empty for local DB or specify IP/DNS if external.&lt;br /&gt;
#* &#039;&#039;&#039;Database name&#039;&#039;&#039; and &#039;&#039;&#039;Database user&#039;&#039;&#039;: Use consistent values for your environment.&lt;br /&gt;
#* &#039;&#039;&#039;Database password:&#039;&#039;&#039; Corresponding DB password.&lt;br /&gt;
# When all values are filled, click &#039;&#039;&#039;Save&#039;&#039;&#039;.&lt;br /&gt;
[[File:AP Manager Billboard App Instance Creation Example.png|none|thumb|440x440px|Example of instance creation screen in AP Manager]]&lt;br /&gt;
&lt;br /&gt;
=== Final Step: Registering the App in PBX Manager ===&lt;br /&gt;
&lt;br /&gt;
# Open the &#039;&#039;&#039;PBX Manager&#039;&#039;&#039;.&lt;br /&gt;
# Go to the &#039;&#039;&#039;Apps&#039;&#039;&#039; section.&lt;br /&gt;
# Click &#039;&#039;&#039;Add App&#039;&#039;&#039; and register:&lt;br /&gt;
#* A &#039;&#039;&#039;Users App&#039;&#039;&#039;&lt;br /&gt;
#* An &#039;&#039;&#039;Admin App&#039;&#039;&#039;&lt;br /&gt;
# Assign access rights as needed.&lt;br /&gt;
[[File:PBX Manager Add an App Billboard Correct.png|none|thumb|440x440px|PBX Manager &#039;&#039;Add an App&#039;&#039; app selection]]&lt;br /&gt;
[[File:PBX Manager Billboard Add an App Config.png|none|thumb|440x440px|PBX Manager &#039;&#039;Add an App&#039;&#039; configuration]]&lt;br /&gt;
[[File:Billboard on PBX Manager Correct.png|none|thumb|440x440px|Billboard on PBX Manager configured]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⇒ After registration, both apps will appear in MyApps and are ready for use.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Copyright ==&lt;br /&gt;
&#039;&#039;Space dedicated to Flowe copyright information.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Contact ==&lt;br /&gt;
* &#039;&#039;&#039;PORTO ALEGRE - RS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Av. Carlos Gomes, 466 / 401&lt;br /&gt;
&lt;br /&gt;
Boa Vista - CEP 90480-000&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tel:&#039;&#039;&#039; +55 51 3079.5000&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;FLORIANÓPOLIS - SC&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SC 401, 8600 - Room 7&lt;br /&gt;
&lt;br /&gt;
Corporate Park - Block 2&lt;br /&gt;
&lt;br /&gt;
Santo Antônio de Lisboa&lt;br /&gt;
&lt;br /&gt;
CEP 88050-001&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tel:&#039;&#039;&#039; +55 48 3112.6200&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mail:&#039;&#039;&#039; [mailto:comercial@wecom.com.br comercial@wecom.com.br]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Support:&#039;&#039;&#039; [mailto:suporte@wecom.com.br suporte@wecom.com.br]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Website:&#039;&#039;&#039; [https://wecom.com.br/ wecom.com.br]&lt;br /&gt;
&lt;br /&gt;
For any questions please refer to [https://wecom.com.br/fale-conosco/ our contact page.]&lt;/div&gt;</summary>
		<author><name>Pablo.montiel</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Howto:Billboard_-_Wecom_-_Partner_App&amp;diff=77250</id>
		<title>Howto:Billboard - Wecom - Partner App</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Howto:Billboard_-_Wecom_-_Partner_App&amp;diff=77250"/>
		<updated>2025-07-01T18:31:13Z</updated>

		<summary type="html">&lt;p&gt;Pablo.montiel: /* 2. Managing the Billboard License */ Changed to viewing licensing billboard information&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FIXME|reason=Work in progress, still incomplete}}&lt;br /&gt;
&amp;lt;!-- Needed to add images: billboard logo, diagrams (2) to the component diagram, functions step-by-step, installation images, . --&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;float:right;&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Partner App Info&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |[[File:Wecom Billboard.png|alt=|center|frameless|200x200px|Billboard Icon]]&lt;br /&gt;
|-&lt;br /&gt;
!Name&lt;br /&gt;
|Billboard&lt;br /&gt;
|-&lt;br /&gt;
!Company&lt;br /&gt;
|Wecom&lt;br /&gt;
|-&lt;br /&gt;
!Version&lt;br /&gt;
|1.0&lt;br /&gt;
|-&lt;br /&gt;
!License&lt;br /&gt;
|Via Innovaphone Pricelist&lt;br /&gt;
|-&lt;br /&gt;
!Languages&lt;br /&gt;
|Czech, English, Estonian, French,&amp;lt;br&amp;gt;German, Italian, Polish, Portuguese,&amp;lt;br&amp;gt;Slovenian, Spanish&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Product Name ==&lt;br /&gt;
&#039;&#039;&#039;Billboard&#039;&#039;&#039; [https://wecom.com.br/ Link]&lt;br /&gt;
&lt;br /&gt;
== Certification Status ==&lt;br /&gt;
&amp;lt;!-- Do not remove comment. Will be added by Innovaphone upon document check &amp;amp; app availablity on app store. --&amp;gt;&lt;br /&gt;
&#039;&#039;Space dedicated to Billboard certification information.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Category ==&lt;br /&gt;
&#039;&#039;Space dedicated to Billboard category information.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Vendor ==&lt;br /&gt;
[[File:Logo wecom.png|alt=|thumb|Wecom&#039;s logo]]&lt;br /&gt;
Wecom&lt;br /&gt;
&lt;br /&gt;
* [https://wecom.com.br/ wecom.com.br]&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&#039;&#039;&#039;Billboard&#039;&#039;&#039; is a Partner App developed by &#039;&#039;&#039;Wecom&#039;&#039;&#039; to modernize internal communications by digitizing traditional bulletin boards. Through a user-friendly interface integrated into Innovaphone’s myApps workspace, departments (referred to as &amp;quot;groups&amp;quot; within the app) can publish announcements with scheduled validity, targeted visibility, and interaction tracking.&lt;br /&gt;
&lt;br /&gt;
Main components:&lt;br /&gt;
* &#039;&#039;&#039;Users App&#039;&#039;&#039; – For general users to access and interact with department posts.&lt;br /&gt;
* &#039;&#039;&#039;Admin App&#039;&#039;&#039; – For administrators to manage groups, posts, and licensing.&lt;br /&gt;
&lt;br /&gt;
== Functions ==&lt;br /&gt;
&amp;lt;!-- Section in analysis. --&amp;gt;&lt;br /&gt;
=== Users App ===&lt;br /&gt;
&lt;br /&gt;
The Users App is the interface where users access, read, create, and manage department posts, based on their permissions (viewer or editor). Each user sees only the groups they are part of.&lt;br /&gt;
&lt;br /&gt;
==== 1. Accessing a Group ====&lt;br /&gt;
&lt;br /&gt;
# Upon opening the Users App, the main screen lists all groups (departments) the user belongs to.&lt;br /&gt;
# To enter a group, simply click on the desired group.&amp;lt;blockquote&amp;gt;Groups are color-coded and may display badges for new or unseen posts.&amp;lt;/blockquote&amp;gt;[[File:Billboard Users Groups Page.png|none|thumb|450x450px|Users App main page with every group you are on]]&lt;br /&gt;
&lt;br /&gt;
==== 2. Creating a Group (Admins only) ====&lt;br /&gt;
&lt;br /&gt;
# Only users assigned with the &amp;quot;create department&amp;quot; permission (via Admin App) will see the &#039;&#039;&#039;Add+&#039;&#039;&#039; button on the main screen.[[File:4. Billboard Users Groups Page Button Outlined.png|none|thumb|450x450px|Groups page with &amp;quot;+ Add&amp;quot; button outlined]]&lt;br /&gt;
# Click &#039;&#039;&#039;Add+&#039;&#039;&#039; to open the group creation modal.&lt;br /&gt;
# Fill in:&lt;br /&gt;
#* Enter the &#039;&#039;&#039;Department Name&#039;&#039;&#039;&lt;br /&gt;
#* Select the color using the color picker&lt;br /&gt;
#* Assign users to roles:&lt;br /&gt;
#** &#039;&#039;&#039;Editor&#039;&#039;&#039; – Can manage posts, see group&#039;s history and edit the department.&lt;br /&gt;
#** &#039;&#039;&#039;Viewer&#039;&#039;&#039; – Can only view posts.&lt;br /&gt;
#* Clicking &amp;quot;Viewer&amp;quot; name label selects all users as viewers.[[File:5. Billboard Group Creation Modal.png|none|thumb|450x450px|Group creation modal with roles selection, color picking and name input]]&lt;br /&gt;
&lt;br /&gt;
==== 3. Viewing a Post ====&lt;br /&gt;
&lt;br /&gt;
# Inside a group, posts are displayed as cards.[[File:2. Billboard Posts Page (of a Group).png|none|thumb|450x450px|Posts inside a group]]&lt;br /&gt;
#* If you are an Editor, the post will also show the visibility period on the bottom of the card.&lt;br /&gt;
#* Unread posts display a red &#039;&#039;&#039;NEW&#039;&#039;&#039; label in the top-left corner of the card.&lt;br /&gt;
#** The label disappears as soon as the post is opened.[[File:2.5. Billboard New Post Card Editor View.png|none|thumb|350x350px|New post with visibility period]]&lt;br /&gt;
# Click on a post to open its details.[[File:3. Billboard Open Post.png|none|thumb|Open post with information and description]]&lt;br /&gt;
# The post view shows:&lt;br /&gt;
#* Type (External or Internal)&lt;br /&gt;
#* Creator&#039;s name&lt;br /&gt;
#* Start and end dates of visibility&lt;br /&gt;
# To close the post, click the &#039;&#039;&#039;X&#039;&#039;&#039; button in the top right corner.&lt;br /&gt;
&lt;br /&gt;
==== 4. Creating a Post ====&lt;br /&gt;
&lt;br /&gt;
# Editors will see an &#039;&#039;&#039;Add+&#039;&#039;&#039; card within the department page.[[File:6. Billboard Posts Page with Add Card.png|none|thumb|450x450px|Posts on a group with Editor view, with &amp;quot;Add+&amp;quot; card]]&lt;br /&gt;
# Click it to open the post creation modal.&lt;br /&gt;
# Fill in the following:&lt;br /&gt;
#* &#039;&#039;&#039;Title&#039;&#039;&#039; (top input)&lt;br /&gt;
#* &#039;&#039;&#039;Description&#039;&#039;&#039; (main text area)&lt;br /&gt;
#* &#039;&#039;&#039;Start and end dates&#039;&#039;&#039;[[File:6.1. Billboard Post Start and End Date Picking.png|none|thumb|350x350px|Post start and end date time picking]]&lt;br /&gt;
#* &#039;&#039;&#039;Type&#039;&#039;&#039; (Internal or External)[[File:6.2. Billboard Post Type Drop Down Select.png|none|thumb|300x300px|Type drop down selection]]&lt;br /&gt;
#* &#039;&#039;&#039;Color&#039;&#039;&#039; (default is black if not selected)[[File:6.3. Billboard Post Color Picker.png|none|thumb|300x300px|Post and group color picker]]&lt;br /&gt;
# Click &#039;&#039;&#039;Insert&#039;&#039;&#039; to save or &#039;&#039;&#039;Close&#039;&#039;&#039; to cancel.[[File:7. Billboard Post Creation Modal.png|none|thumb|400x400px|Post creation and editing modal]]&lt;br /&gt;
&lt;br /&gt;
==== 5. Editing or Deleting a Post ====&lt;br /&gt;
&lt;br /&gt;
# If you are the creator or an editor of the group:&lt;br /&gt;
#* Click the pencil icon to edit – the modal opens pre-filled with existing data.&lt;br /&gt;
#* Click the trash icon to delete – the post is removed immediately.[[File:8. Billboard Post View as Editor Actions Outlined.png|none|thumb|400x400px|Post view as Editor with actions outlined]]&lt;br /&gt;
&lt;br /&gt;
==== 6. Viewing Post History ====&lt;br /&gt;
&lt;br /&gt;
# Inside the post, click the &#039;&#039;&#039;Clock&#039;&#039;&#039; icon to view who has accessed it.&lt;br /&gt;
#* The view shows user names and access timestamps.&lt;br /&gt;
#* A back arrow icon replaces the clock to return to the post details.[[File:9. Billboard Post History.png|none|thumb|350x350px|Post history of who has viewed and when]]&lt;br /&gt;
&lt;br /&gt;
==== 7. Managing Groups (Editor role) ====&lt;br /&gt;
&lt;br /&gt;
* Editors see extra options in the bottom menu of the department page.[[File:10. Billboard Posts Page with Bottom Menu Outlined.png|none|thumb|Posts on a group as an Editor with bottom menu outlined]]&lt;br /&gt;
# Click the trash icon to delete the group.&lt;br /&gt;
# Click the clock icon to access post history.&lt;br /&gt;
#* You can filter posts:&lt;br /&gt;
#** By time period (Today, Last 7 days, Custom...)&lt;br /&gt;
#** By deleted or active status[[File:11. Billboard Posts Time Filter Drop Down.png|none|thumb|Group&#039;s posts history drop down time filter]][[File:12. Billboard Posts Time Filter Custom.png|none|thumb|Group&#039;s posts history time filter with custom period time picking]]&lt;br /&gt;
# Click the gear icon to edit group settings:&lt;br /&gt;
#* Change the name or color&lt;br /&gt;
#* Modify members and their roles[[File:13. Billboard Group Editing.png|none|thumb|Group editing modal with users and their roles that were previous selected ]]&lt;br /&gt;
&lt;br /&gt;
=== Admin App ===&lt;br /&gt;
&lt;br /&gt;
The Admin App provides global management functionalities for users, groups (departments), and posts. Only users marked as administrators via this panel will have access to it.&lt;br /&gt;
&lt;br /&gt;
==== 1. Granting Administrator Access ====&lt;br /&gt;
&lt;br /&gt;
# Access the Admin App – it will open on the &#039;&#039;&#039;Users Page&#039;&#039;&#039; by default.&lt;br /&gt;
# Use the &#039;&#039;&#039;search bar&#039;&#039;&#039; at the top to find the user you wish to promote.&lt;br /&gt;
# Locate the user in the list below.&lt;br /&gt;
# Click the checkbox next to their name to grant administrator privileges.&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Only an existing admin can assign admin rights to another user.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
[[File:A1. Billboard Admin Users Page.png|none|thumb|450x450px|Users Page with search bar and checkboxes for admin privileges]]&lt;br /&gt;
&lt;br /&gt;
==== 2. Viewing the Billboard License Information ====&lt;br /&gt;
&lt;br /&gt;
# In the Admin App sidebar, click on the &#039;&#039;&#039;Licensing&#039;&#039;&#039; tab.&lt;br /&gt;
# The page will display information related to the current license.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;System Token&#039;&#039;&#039;: Unique identifier for the system, used for license validation.&lt;br /&gt;
* &#039;&#039;&#039;Active License&#039;&#039;&#039;: Indicates if the license is active (e.g., Temporary).&lt;br /&gt;
* &#039;&#039;&#039;Billboard Install Date&#039;&#039;&#039;: Shows the exact date and time when the Billboard app was installed.&lt;br /&gt;
* &#039;&#039;&#039;Licenses in Use&#039;&#039;&#039;: Displays the number of users currently using the Billboard Apps.&lt;br /&gt;
&lt;br /&gt;
[[File:License Page Billboard Admin Correct.jpg|none|thumb|450x450px|Licensing page showing all license details]]&lt;br /&gt;
&lt;br /&gt;
==== 3. Managing Departments ====&lt;br /&gt;
&lt;br /&gt;
# In the Admin App sidebar, click on the &#039;&#039;&#039;Departments&#039;&#039;&#039; tab.&lt;br /&gt;
# Browse the list of all departments created in the system.&lt;br /&gt;
# Scroll to locate the department you wish to edit.&lt;br /&gt;
# Click on the &#039;&#039;&#039;color circle&#039;&#039;&#039; next to the department to open the editing modal.&lt;br /&gt;
# In the modal:&lt;br /&gt;
## Update the department&#039;s name.&lt;br /&gt;
## Change its color using the color picker.&lt;br /&gt;
## Add or remove users as &#039;&#039;&#039;Editors&#039;&#039;&#039; or &#039;&#039;&#039;Viewers&#039;&#039;&#039;.&lt;br /&gt;
## Save the changes to apply them.&lt;br /&gt;
[[File:A3.1. Billboard Admin Group Management.png|none|thumb|450x450px|Group management modal]]&lt;br /&gt;
&lt;br /&gt;
* The list includes all departments, including those marked as deleted.&lt;br /&gt;
* Deleted departments are labeled with their deletion date.&lt;br /&gt;
* Each department entry shows:&lt;br /&gt;
** Department name&lt;br /&gt;
** Assigned color&lt;br /&gt;
** Creator&#039;s name&lt;br /&gt;
** Status (active or deleted)&lt;br /&gt;
[[File:A3. Billboard Admin Departments Page.png|none|thumb|450x450px|Departments list with edit modal access]]&lt;br /&gt;
&lt;br /&gt;
==== 4. Managing Posts ====&lt;br /&gt;
&lt;br /&gt;
# Click on the &#039;&#039;&#039;Posts&#039;&#039;&#039; tab in the Admin App sidebar.&lt;br /&gt;
# Browse the full list of posts created across all departments.&lt;br /&gt;
# Scroll to locate a specific post.&lt;br /&gt;
# Click the &#039;&#039;&#039;edit icon&#039;&#039;&#039; next to a post to open the editing modal.&lt;br /&gt;
# In the modal:&lt;br /&gt;
## Modify the title, description, color, type, and visibility period.&lt;br /&gt;
## Save the changes to update the post.&lt;br /&gt;
[[File:A4.1. ABillboard Admin Post Management.png|none|thumb|450x450px|Post management modal]]&lt;br /&gt;
&lt;br /&gt;
* The post list includes:&lt;br /&gt;
** Active posts&lt;br /&gt;
** Expired posts&lt;br /&gt;
** Deleted posts (showing the deletion date)&lt;br /&gt;
* Each post displays:&lt;br /&gt;
** Title&lt;br /&gt;
** Department (group) association&lt;br /&gt;
** Type: Internal or External&lt;br /&gt;
** Start and end dates (visibility period)&lt;br /&gt;
** Creator&#039;s name&lt;br /&gt;
** Current status: active, expired, or deleted&lt;br /&gt;
[[File:A4. Billboard Admin Posts Page.png|none|thumb|450x450px|All posts view with status, creator, and edit access]]&lt;br /&gt;
&lt;br /&gt;
==== 5. Accessing Public Posts ====&lt;br /&gt;
&lt;br /&gt;
# In the sidebar, click on the &#039;&#039;&#039;Public Posts&#039;&#039;&#039; tab.&lt;br /&gt;
# A modal will appear, redirecting you to the Billboard &#039;&#039;&#039;Users App&#039;&#039;&#039; to view a list of posts.&lt;br /&gt;
# Click on any post from this list.&lt;br /&gt;
&lt;br /&gt;
* Only posts with the &amp;quot;External&amp;quot; type selected during creation appear here.&lt;br /&gt;
* This page is read-only and used for quick access to public content.&lt;br /&gt;
[[File:A5. Billboard Admin Public Posts Modal.png|none|thumb|450x450px|Public posts modal with redirect to Users App]]&lt;br /&gt;
&lt;br /&gt;
== Component Diagram ==&lt;br /&gt;
The diagrams below illustrate the architecture of the &#039;&#039;&#039;Billboard&#039;&#039;&#039; application and its interaction with the Innovaphone platform, as well as the various components involved.&lt;br /&gt;
&lt;br /&gt;
=== User and Admin Interaction Flow ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Flow Overview:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;ADMIN:&#039;&#039;&#039; The administrator has the ability to manage groups and posts across the system, including controlling visibility and user access.&lt;br /&gt;
* &#039;&#039;&#039;DEPARTMENT (Group):&#039;&#039;&#039; Represents different groups (like IT and HR), each having specific announcements and user interactions.&lt;br /&gt;
* &#039;&#039;&#039;NOTES:&#039;&#039;&#039; Each group can have specific notes (e.g., IT or HR), which are shown to relevant users.&lt;br /&gt;
* &#039;&#039;&#039;USERS:&#039;&#039;&#039; Users from various groups (IT, HR, and General) can access posts that are published within their allowed groups.&lt;br /&gt;
&lt;br /&gt;
=== Application Architecture ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Flow Overview:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;PBX Platform:&#039;&#039;&#039; Interacts with the &#039;&#039;&#039;Billboard App&#039;&#039;&#039;, managing internal communication and service integration.&lt;br /&gt;
* &#039;&#039;&#039;APP Platform:&#039;&#039;&#039; Hosts the &#039;&#039;&#039;Billboard Service&#039;&#039;&#039;, which manages posts and user interactions, and communicates with the database.&lt;br /&gt;
* &#039;&#039;&#039;Service DWC:&#039;&#039;&#039; Responsible for managing the backend services for the Billboard app, providing routes to interact with both the database and the PBX platform.&lt;br /&gt;
&lt;br /&gt;
This architecture shows how the components integrate within the Innovaphone ecosystem, allowing for seamless communication between groups and users through the &#039;&#039;&#039;Billboard&#039;&#039;&#039; app.&lt;br /&gt;
&lt;br /&gt;
== Licensing ==&lt;br /&gt;
&amp;lt;!-- Needs further analysis and clarification. --&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Billboard&#039;&#039;&#039; is licensed via the Innovaphone Pricelist.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;License type:&#039;&#039;&#039; Innovaphone Pricelist  &lt;br /&gt;
&#039;&#039;&#039;License model:&#039;&#039;&#039; One license per user&lt;br /&gt;
&#039;&#039;&#039;Trial:&#039;&#039;&#039; 30 days temporary license available after installation  &lt;br /&gt;
&#039;&#039;&#039;Listed at:&#039;&#039;&#039; https://www.innovaphone.com/en/services/licenses/partner-apps.html?app=Billboard&amp;amp;type=license#billboard&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
&amp;lt;!-- Needs further analysis and clarification. --&amp;gt;&lt;br /&gt;
=== System Requirements ===&lt;br /&gt;
&lt;br /&gt;
* Innovaphone firmware: &amp;lt;code&amp;gt;14r1&amp;lt;/code&amp;gt; or later&lt;br /&gt;
* Innovaphone App Platform with myApps&lt;br /&gt;
* PBX Manager for app registration&lt;br /&gt;
&lt;br /&gt;
=== Licensing Activation ===&lt;br /&gt;
&lt;br /&gt;
* Requires license token and file provided by Wecom&lt;br /&gt;
* Insert into Admin interface for activation&lt;br /&gt;
&lt;br /&gt;
== Versions ==&lt;br /&gt;
&amp;lt;!-- Needs further analysis and clarification. --&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Current version:&#039;&#039;&#039; 1.0&lt;br /&gt;
* &#039;&#039;&#039;Latest release:&#039;&#039;&#039; &amp;lt;code&amp;gt;1011 final&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Release date:&#039;&#039;&#039; June 17, 2025&lt;br /&gt;
* &#039;&#039;&#039;Innovaphone compatibility:&#039;&#039;&#039; Yes&lt;br /&gt;
* &#039;&#039;&#039;Architectures supported:&#039;&#039;&#039; &amp;lt;code&amp;gt;arm&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;x86_64&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;arm64&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
Follow the steps below to install the &#039;&#039;&#039;Billboard&#039;&#039;&#039; application in your Innovaphone environment.&lt;br /&gt;
&lt;br /&gt;
=== Option 1: Installing via AP Manager App Store (Recommended) ===&lt;br /&gt;
You can install &#039;&#039;&#039;Billboard&#039;&#039;&#039; directly through the &#039;&#039;&#039;App Platform Manager&#039;&#039;&#039; (AP Manager) by accessing the App Store:&lt;br /&gt;
&lt;br /&gt;
# Open the &#039;&#039;&#039;AP Manager&#039;&#039;&#039;.&lt;br /&gt;
# Click the yellow &#039;&#039;&#039;App Store&#039;&#039;&#039; button in the top-right corner.&lt;br /&gt;
# Search for &#039;&#039;&#039;Billboard&#039;&#039;&#039; in the list.&lt;br /&gt;
# Click on it to open further information&lt;br /&gt;
# Select the latest version and confirm the download.&lt;br /&gt;
# The app will be automatically installed and ready to configure.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;🛈 This is the easiest and fastest way to deploy the app.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
[[File:Innovaphone MyApps Lab AppStore Button in AP Manager.png|none|thumb|436x436px|AppStore Button in AP Manager outlined]]&lt;br /&gt;
[[File:AP Manager Billboard.png|none|thumb|436x436px|AP Manager Appstore interface with actions outlined]]&lt;br /&gt;
&lt;br /&gt;
=== Option 2: Manual Installation via Upload ===&lt;br /&gt;
If you prefer installing manually, follow the steps below:&lt;br /&gt;
&lt;br /&gt;
==== Step 1: Download the App Package ====&lt;br /&gt;
&lt;br /&gt;
# Visit the official [https://appstore.wecom.com.br/release/WecomStore/1410593/download.htm Wecom myApps Downloads Portal].&lt;br /&gt;
# Find the &#039;&#039;&#039;Billboard&#039;&#039;&#039; app.&lt;br /&gt;
# Download the latest available version compatible with your system architecture.&lt;br /&gt;
[[File:Wecom MyApps App Store Billboard.png|none|thumb|418x418px|Billboard on MyApps&#039; Wecom&#039;s App Store]]&lt;br /&gt;
&lt;br /&gt;
==== Step 2: Upload to AP Manager ====&lt;br /&gt;
&lt;br /&gt;
# In &#039;&#039;&#039;AP Manager&#039;&#039;&#039;, click &#039;&#039;&#039;App upload&#039;&#039;&#039; (top right).&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;.app&amp;lt;/code&amp;gt; package you downloaded from the portal.&lt;br /&gt;
# After successful upload, the app will appear in your list and show as &#039;&#039;&#039;Running&#039;&#039;&#039;.&lt;br /&gt;
[[File:App Upload Button on MyApps AP Manager.png|none|thumb|487x487px|App Upload button on AP Manager outlined]]&lt;br /&gt;
[[File:Billboard on AP Manager.png|none|thumb|440x440px|Billboard on AP Manager]]&lt;br /&gt;
[[File:Billboard upload on App Manager.png|none|thumb|440x440px|Uploading Billboard on Ap Manager]]&lt;br /&gt;
&lt;br /&gt;
=== Step 3: Add Application Instance ===&lt;br /&gt;
&lt;br /&gt;
# After uploading the app, click the yellow &#039;&#039;&#039;+ Add&#039;&#039;&#039; button to create an instance of the application.&lt;br /&gt;
# Fill in the required fields:&lt;br /&gt;
#* &#039;&#039;&#039;Name:&#039;&#039;&#039; A recognizable name for the instance.&lt;br /&gt;
#* &#039;&#039;&#039;Domain:&#039;&#039;&#039; The domain for the PBX.&lt;br /&gt;
#* &#039;&#039;&#039;Password:&#039;&#039;&#039; A secure admin password for the app instance.&lt;br /&gt;
#* &#039;&#039;&#039;Webserver path:&#039;&#039;&#039; Optional path (or leave blank).&lt;br /&gt;
#* &#039;&#039;&#039;Database host:&#039;&#039;&#039; Leave empty for local DB or specify IP/DNS if external.&lt;br /&gt;
#* &#039;&#039;&#039;Database name&#039;&#039;&#039; and &#039;&#039;&#039;Database user&#039;&#039;&#039;: Use consistent values for your environment.&lt;br /&gt;
#* &#039;&#039;&#039;Database password:&#039;&#039;&#039; Corresponding DB password.&lt;br /&gt;
# When all values are filled, click &#039;&#039;&#039;Save&#039;&#039;&#039;.&lt;br /&gt;
[[File:AP Manager Billboard App Instance Creation Example.png|none|thumb|440x440px|Example of instance creation screen in AP Manager]]&lt;br /&gt;
&lt;br /&gt;
=== Final Step: Registering the App in PBX Manager ===&lt;br /&gt;
&lt;br /&gt;
# Open the &#039;&#039;&#039;PBX Manager&#039;&#039;&#039;.&lt;br /&gt;
# Go to the &#039;&#039;&#039;Apps&#039;&#039;&#039; section.&lt;br /&gt;
# Click &#039;&#039;&#039;Add App&#039;&#039;&#039; and register:&lt;br /&gt;
#* A &#039;&#039;&#039;Users App&#039;&#039;&#039;&lt;br /&gt;
#* An &#039;&#039;&#039;Admin App&#039;&#039;&#039;&lt;br /&gt;
# Assign access rights as needed.&lt;br /&gt;
[[File:PBX Manager Add an App Billboard Correct.png|none|thumb|440x440px|PBX Manager &#039;&#039;Add an App&#039;&#039; app selection]]&lt;br /&gt;
[[File:PBX Manager Billboard Add an App Config.png|none|thumb|440x440px|PBX Manager &#039;&#039;Add an App&#039;&#039; configuration]]&lt;br /&gt;
[[File:Billboard on PBX Manager Correct.png|none|thumb|440x440px|Billboard on PBX Manager configured]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⇒ After registration, both apps will appear in MyApps and are ready for use.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Copyright ==&lt;br /&gt;
&#039;&#039;Space dedicated to Flowe copyright information.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Contact ==&lt;br /&gt;
* &#039;&#039;&#039;PORTO ALEGRE - RS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Av. Carlos Gomes, 466 / 401&lt;br /&gt;
&lt;br /&gt;
Boa Vista - CEP 90480-000&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tel:&#039;&#039;&#039; +55 51 3079.5000&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;FLORIANÓPOLIS - SC&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SC 401, 8600 - Room 7&lt;br /&gt;
&lt;br /&gt;
Corporate Park - Block 2&lt;br /&gt;
&lt;br /&gt;
Santo Antônio de Lisboa&lt;br /&gt;
&lt;br /&gt;
CEP 88050-001&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tel:&#039;&#039;&#039; +55 48 3112.6200&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mail:&#039;&#039;&#039; [mailto:comercial@wecom.com.br comercial@wecom.com.br]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Support:&#039;&#039;&#039; [mailto:suporte@wecom.com.br suporte@wecom.com.br]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Website:&#039;&#039;&#039; [https://wecom.com.br/ wecom.com.br]&lt;br /&gt;
&lt;br /&gt;
For any questions please refer to [https://wecom.com.br/fale-conosco/ our contact page.]&lt;/div&gt;</summary>
		<author><name>Pablo.montiel</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=File:License_Page_Billboard_Admin_Correct.jpg&amp;diff=77249</id>
		<title>File:License Page Billboard Admin Correct.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=File:License_Page_Billboard_Admin_Correct.jpg&amp;diff=77249"/>
		<updated>2025-07-01T18:30:05Z</updated>

		<summary type="html">&lt;p&gt;Pablo.montiel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;License Page Billboard Admin Correct&lt;/div&gt;</summary>
		<author><name>Pablo.montiel</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=File:License_Page_Billboard_Admin.jpg&amp;diff=77248</id>
		<title>File:License Page Billboard Admin.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=File:License_Page_Billboard_Admin.jpg&amp;diff=77248"/>
		<updated>2025-07-01T18:27:00Z</updated>

		<summary type="html">&lt;p&gt;Pablo.montiel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;License Page Billboard Admin&lt;/div&gt;</summary>
		<author><name>Pablo.montiel</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Howto:Gcalendar_-_Wecom_-_Partner_App&amp;diff=77247</id>
		<title>Howto:Gcalendar - Wecom - Partner App</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Howto:Gcalendar_-_Wecom_-_Partner_App&amp;diff=77247"/>
		<updated>2025-07-01T18:17:54Z</updated>

		<summary type="html">&lt;p&gt;Pablo.montiel: /* Installation */ Addition of step 3 - app instance creation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FIXME|reason=Work in progress, still incomplete}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;float:right;&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Partner App Info&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |[[File:Wecom Gcallendar Icon.png|alt=|center|frameless|200x200px|Gcalendar Icon]]&lt;br /&gt;
|-&lt;br /&gt;
!Name&lt;br /&gt;
|Gcalendar&lt;br /&gt;
|-&lt;br /&gt;
!Company&lt;br /&gt;
|Wecom&lt;br /&gt;
|-&lt;br /&gt;
!Version&lt;br /&gt;
|1.0&lt;br /&gt;
|-&lt;br /&gt;
!Compatibility&lt;br /&gt;
|Innovaphone XML Schema&lt;br /&gt;
|-&lt;br /&gt;
!License&lt;br /&gt;
|Via Innovaphone Pricelist&lt;br /&gt;
|-&lt;br /&gt;
!Languages&lt;br /&gt;
|Portuguese, English, Spanish, German&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Product Name ==&lt;br /&gt;
&#039;&#039;&#039;Gcalendar&#039;&#039;&#039; [https://wecom.com.br/ Link]&lt;br /&gt;
&lt;br /&gt;
== Certification Status ==&amp;lt;!--Do not remove comment. Will be added by Innovaphone upon document check &amp;amp; app availablity on app store.--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Space dedicated to Gcalendar certification information.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Category ==&amp;lt;!--Do not change this section and do not remove comments. Will be set by Innovaphone upon document check.--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Category:3rdParty CTI and integrations}}&lt;br /&gt;
&lt;br /&gt;
== Vendor ==&lt;br /&gt;
[[File:Logo wecom.png|thumb|326x326px|Wecom&#039;s logo]]&lt;br /&gt;
Wecom&lt;br /&gt;
&lt;br /&gt;
* [https://wecom.com.br/ wecom.com.br]&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&#039;&#039;&#039;Gcalendar&#039;&#039;&#039; is a Partner App developed by &#039;&#039;&#039;Wecom&#039;&#039;&#039; to integrate Google Calendar events with the Innovaphone presence system.&lt;br /&gt;
&lt;br /&gt;
The app operates through two components:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Users App&#039;&#039;&#039; – Where the users initiate their account linking process via Google login.&lt;br /&gt;
* &#039;&#039;&#039;Admin App&#039;&#039;&#039; – Allows configuration of the integration with editable fields for Google Client ID and Client Secret, along with a dedicated OAuth authorization URL.&lt;br /&gt;
&lt;br /&gt;
This setup enables real-time status synchronization and supports four languages: Portuguese, English, Spanish, and German.&lt;br /&gt;
&lt;br /&gt;
== Functions ==&lt;br /&gt;
This section provides an overview of each core part of the &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; application. It highlights what actions can be performed, and how to navigate through the available features. Additionally, this section provides step-by-step explanations for each functionality.&lt;br /&gt;
&lt;br /&gt;
=== Users App ===&lt;br /&gt;
The &#039;&#039;&#039;Users App&#039;&#039;&#039; is the interface used by users to link their Google Calendar account to the Innovaphone presence system. It focuses only on enabling the connection between the user and their calendar through Google authentication.&lt;br /&gt;
[[File:Gcallendar Users App Interface.png|none|thumb|404x404px|Users app interface with google account pop-up]]&lt;br /&gt;
&lt;br /&gt;
==== Connecting with Google account ====&lt;br /&gt;
&lt;br /&gt;
# Open the &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; Users App.&lt;br /&gt;
# Click the &#039;&#039;&#039;Connect&#039;&#039;&#039; button.&lt;br /&gt;
# A Google login popup will appear.&lt;br /&gt;
#* This popup allows users to choose or log into a Google account.&lt;br /&gt;
# After selecting an account, the integration process will begin automatically.&lt;br /&gt;
#* Once completed, the account will be linked to the Innovaphone system.&lt;br /&gt;
[[File:Gcallendar Connect Button.png|none|thumb|Connect button]]&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⇒ &#039;&#039;&#039;Note:&#039;&#039;&#039; Before starting the connection process, ensure you&#039;re already logged into the correct Google account in your browser. This helps avoid selecting the wrong account and ensures the integration is completed with the intended calendar.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Disconnecting from Google account ====&lt;br /&gt;
&lt;br /&gt;
# Open the &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; Users App.&lt;br /&gt;
# If a Google account is already connected, the &#039;&#039;&#039;Connect&#039;&#039;&#039; button will be replaced by a &#039;&#039;&#039;Disconnect&#039;&#039;&#039; button.&lt;br /&gt;
# Click the &#039;&#039;&#039;Disconnect&#039;&#039;&#039; button to unlink your current Google Calendar account from the Innovaphone presence system.&lt;br /&gt;
# Once disconnected, presence synchronization will be disabled for that user.&lt;br /&gt;
[[File:Gcallendar Disconnect Button.png|none|thumb|392x392px|Disconnect button]]&lt;br /&gt;
&lt;br /&gt;
=== Admin App ===&lt;br /&gt;
The &#039;&#039;&#039;Admin App&#039;&#039;&#039; provides configuration options required to authorize and manage the Google integration. It is intended for system administrators and enables control over OAuth credentials used for user authentication.&lt;br /&gt;
[[File:Gcallendar Admin App.png|none|thumb|453x453px|Admin app interface]]&lt;br /&gt;
&lt;br /&gt;
==== Updating Google OAuth Credentials ====&lt;br /&gt;
To enable or update the integration between Gcalendar and Google Calendar, you’ll need to provide the correct &#039;&#039;&#039;Client ID&#039;&#039;&#039; and &#039;&#039;&#039;Client Secret&#039;&#039;&#039; obtained from your Google Cloud project.&lt;br /&gt;
&lt;br /&gt;
# Open the &#039;&#039;&#039;Gcalendar Admin App&#039;&#039;&#039;.&lt;br /&gt;
# Locate the fields labeled &#039;&#039;&#039;Google Client ID&#039;&#039;&#039; and &#039;&#039;&#039;Client Secret&#039;&#039;&#039;.&lt;br /&gt;
# Paste the values copied from your Google OAuth Credentials into the respective fields.&lt;br /&gt;
# Click the &#039;&#039;&#039;Update&#039;&#039;&#039; button next to each field to save the changes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⇒ &#039;&#039;&#039;Notes:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Ensure both values are correctly copied and properly formatted.&lt;br /&gt;
* Incorrect credentials will prevent users from authenticating.&lt;br /&gt;
* The Client Secret is sensitive—never share or expose it publicly.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
[[File:Gcallendar Google Client ID Update.png|none|thumb|519x519px|Google Client ID input and update button]]&lt;br /&gt;
[[File:Gcallendar Client Secret Update.png|none|thumb|519x519px|Client Secret input and update button]]&lt;br /&gt;
&lt;br /&gt;
== Licensing ==&lt;br /&gt;
The &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; application is licensed via the Innovaphone Pricelist.&lt;br /&gt;
&lt;br /&gt;
Currently, it is not yet listed on the official Innovaphone Partner App Licenses page, but it is expected to be included in future updates.&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;License type:&#039;&#039;&#039; Innovaphone Pricelist&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;License model:&#039;&#039;&#039; One license per user&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Listed at:&#039;&#039;&#039; https://www.innovaphone.com/en/services/licenses/partner-apps.html?app=Gcalendar&amp;amp;type=license#gcalendar&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
Before installing and using Gcalendar, ensure your environment meets the following requirements:&lt;br /&gt;
&lt;br /&gt;
==== System Requirements ====&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Innovaphone firmware:&#039;&#039;&#039; Version &amp;lt;code&amp;gt;14r1&amp;lt;/code&amp;gt; or later&lt;br /&gt;
* &#039;&#039;&#039;App platform:&#039;&#039;&#039; Innovaphone &#039;&#039;&#039;myApps&#039;&#039;&#039; system with &#039;&#039;&#039;App Platform&#039;&#039;&#039; active&lt;br /&gt;
* &#039;&#039;&#039;PBX Manager:&#039;&#039;&#039; Required to register and configure the Users and Admin Apps&lt;br /&gt;
&lt;br /&gt;
==== OAuth Setup ====&lt;br /&gt;
&lt;br /&gt;
* A &#039;&#039;&#039;Google Cloud Project&#039;&#039;&#039; with valid &#039;&#039;&#039;OAuth 2.0 credentials&#039;&#039;&#039; (Client ID and Client Secret)&lt;br /&gt;
* The following URIs must be configured in the Google project:&lt;br /&gt;
** &#039;&#039;&#039;Authorized JavaScript origins:&#039;&#039;&#039; &amp;lt;code&amp;gt;https://app_platform&amp;lt;/code&amp;gt;&lt;br /&gt;
** &#039;&#039;&#039;Authorized redirect URI:&#039;&#039;&#039; &amp;lt;code&amp;gt;https://app_platform/domain/app_name/newToken&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Versions ==&lt;br /&gt;
The &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; application follows the release versioning aligned with the Innovaphone platform.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Initial release version:&#039;&#039;&#039; &amp;lt;code&amp;gt;14r1&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Latest available version:&#039;&#039;&#039; &amp;lt;code&amp;gt;2001 final&amp;lt;/code&amp;gt; (as of May 22, 2025)&lt;br /&gt;
* &#039;&#039;&#039;Build number:&#039;&#039;&#039;&amp;lt;code&amp;gt;14A1149 dvl&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Supported architectures:&#039;&#039;&#039; &amp;lt;code&amp;gt;arm&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;x86_64&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;arm64&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⇒ New versions are published and made available through the Wecom App Store.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
=== Google OAuth Setup (Admin Only) ===&lt;br /&gt;
To enable account linking between the Innovaphone presence system and Google Calendar, administrators must configure OAuth 2.0 credentials using the Google Cloud Platform beforehand.&lt;br /&gt;
&lt;br /&gt;
# Go to [https://console.cloud.google.com/ Google Cloud Console].&lt;br /&gt;
# Select or create a &#039;&#039;&#039;Google Cloud Project&#039;&#039;&#039;.&amp;lt;blockquote&amp;gt;◇ This project will host the credentials used by Gcalendar to access the Google Calendar API. We recommend creating a dedicated project for better control and security.&amp;lt;/blockquote&amp;gt;[[File:Google Cloud Select-Create Project.png|none|thumb|425x425px|Google Cloud Console welcome page with select project button outlined (here the project is already selected)]]&amp;lt;blockquote&amp;gt;Clicking the &#039;&#039;&#039;&amp;quot;Select Project&amp;quot;&#039;&#039;&#039; button will open a &#039;&#039;&#039;modal&#039;&#039;&#039; where you can choose or create a project.&amp;lt;/blockquote&amp;gt;[[File:Google Cloud Select Project If Selected.png|none|thumb|353x353px|Project selection modal]]&amp;lt;blockquote&amp;gt;If a project already exists, click on its name from the list to open it. If not, click &#039;&#039;&#039;&amp;quot;New Project&amp;quot;&#039;&#039;&#039; in the top-right corner to create one.&amp;lt;/blockquote&amp;gt;[[File:Google Cloud New Project Page.png|none|thumb|440x440px|New project creation page]]&lt;br /&gt;
# In the top-left corner, click the &#039;&#039;&#039;hamburger menu icon&#039;&#039;&#039; (☰) to expand the left navigation menu.&lt;br /&gt;
#* Before continuing to the OAuth configuration, you need to make sure the Google Calendar API is enabled.&lt;br /&gt;
# From the sidebar, go to &#039;&#039;&#039;APIs &amp;amp; Services &amp;gt; Enabled APIs &amp;amp; services&#039;&#039;&#039;.[[File:Google Cloud Sidebar API Services.png|none|thumb|450x450px|Opening the APIs &amp;amp; Services section to enable the Calendar API]]&lt;br /&gt;
# At the top of the page, click &#039;&#039;&#039;+ Enable APIs and services&#039;&#039;&#039;.&amp;lt;blockquote&amp;gt;Once enabled, it will appear in the list of active APIs under &#039;&#039;&#039;Enabled APIs &amp;amp; Services&#039;&#039;&#039;.If the Google Calendar API is already enabled, you may skip the steps below and proceed directly to the OAuth configuration.&amp;lt;/blockquote&amp;gt;[[File:Google Cloud Enable APIs Services.jpg|none|thumb|450x450px|Enabling API button and viewing the enabled Google Calendar API]]&lt;br /&gt;
# In the API Library, search for: &amp;lt;code&amp;gt;calendar&amp;lt;/code&amp;gt;.&lt;br /&gt;
#* From the results, click on &#039;&#039;&#039;Google Calendar API&#039;&#039;&#039;.[[File:Google Clou APIs Google Calendar Search.jpg|none|thumb|450x450px|Searching for the Google Calendar API in the API Library]]&lt;br /&gt;
# On the API page, click the blue &#039;&#039;&#039;Enable&#039;&#039;&#039; button to activate it.[[File:Google Cloud Enabling Google Calendar.jpg|none|thumb|450x450px|Enabling the Google Calendar API]]&lt;br /&gt;
# Now click the &#039;&#039;&#039;hamburger menu icon&#039;&#039;&#039; (☰) again to return to the sidebar.&lt;br /&gt;
# Navigate to &#039;&#039;&#039;API &amp;amp; Services &amp;gt; OAuth consent screen&#039;&#039;&#039;.[[File:Google Cloud Left Menu API Outlined.png|none|thumb|482x482px|Left menu: &#039;&#039;&#039;APIs &amp;amp; service -&amp;gt; OAuth consent screen&#039;&#039;&#039;]]&lt;br /&gt;
#* If it&#039;s your first time, configure the consent screen with basic app details (organization name, app name, email, etc.).&lt;br /&gt;
#* Once configured, you&#039;ll be redirected to the &#039;&#039;&#039;Google Auth Platform / Overview&#039;&#039;&#039; page.&lt;br /&gt;
# Click &#039;&#039;&#039;Clients&#039;&#039;&#039; in the left menu and then click &amp;quot;&#039;&#039;&#039;+ Create client&amp;quot;&#039;&#039;&#039;.[[File:Google Cloud new client.jpg|none|thumb|525x525px|Creating client option in Clients page]]&lt;br /&gt;
# Choose &#039;&#039;&#039;Application Type: Web Application&#039;&#039;&#039;.&lt;br /&gt;
# Enter a recognizable &#039;&#039;&#039;name&#039;&#039;&#039; (e.g., &#039;&#039;Gcalendar Integration&#039;&#039;).&lt;br /&gt;
# Add the following values:&lt;br /&gt;
#* &#039;&#039;&#039;Authorized JavaScript origins&#039;&#039;&#039;&lt;br /&gt;
#** &amp;lt;code&amp;gt;https://app_platform&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &#039;&#039;&#039;Authorized redirect URIs&#039;&#039;&#039;&lt;br /&gt;
#** &amp;lt;code&amp;gt;https://app_platform/domain/app_name/newToken&amp;lt;/code&amp;gt;[[File:Google Cloud Create OAuth Client ID.jpg|none|thumb|411x411px|Create OAuth client ID inputs]]&lt;br /&gt;
# After creation, copy the generated:&lt;br /&gt;
#* &#039;&#039;&#039;Client ID&#039;&#039;&#039;&lt;br /&gt;
#* &#039;&#039;&#039;Client Secret&#039;&#039;&#039;[[File:Google Cloud Client ID Client Secret.jpg|none|thumb|434x434px|Client credentials available after creating]]&lt;br /&gt;
# Open the &#039;&#039;&#039;Gcalendar Admin App&#039;&#039;&#039; and insert the values in the respective fields and click &#039;&#039;&#039;Update&#039;&#039;&#039; (see [[#Updating Google OAuth Credentials|Update Google OAuth Credentials]] section above).&amp;lt;blockquote&amp;gt;▷ This links the Google authentication flow to the presence system, allowing users to authorize their calendars.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
# On the left menu, go to &#039;&#039;&#039;Data Access&#039;&#039;&#039; under the &#039;&#039;&#039;Google Auth Platform&#039;&#039;&#039; section.&amp;lt;blockquote&amp;gt;◇ This section lists the sensitive scopes (permissions) your app is requesting during OAuth authorization. These are required for accessing user calendars.&amp;lt;/blockquote&amp;gt;[[File:Google Cloud Add or Remove Scopes.png|none|thumb|510x510px|Click &amp;quot;Add or remove scopes&amp;quot; to open the scope selection menu]]&lt;br /&gt;
# Click the blue &#039;&#039;&#039;Add or remove scopes&#039;&#039;&#039; button.&amp;lt;blockquote&amp;gt;◇ A sidebar will open listing all available scopes from enabled APIs. You can search and select the necessary calendar-related scopes for your application.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
# In the sidebar that appears, search for and select the following calendar scopes:&lt;br /&gt;
#* &amp;lt;code&amp;gt;../auth/calendar.readonly&amp;lt;/code&amp;gt; – View and download calendar data.&lt;br /&gt;
#* &amp;lt;code&amp;gt;../auth/calendar.calendars.readonly&amp;lt;/code&amp;gt; – View calendar metadata.&lt;br /&gt;
#* &amp;lt;code&amp;gt;../auth/calendar.events&amp;lt;/code&amp;gt; – View and edit calendar events.&lt;br /&gt;
#* &amp;lt;code&amp;gt;../auth/calendar.events.owned&amp;lt;/code&amp;gt; – Modify events on owned calendars.&lt;br /&gt;
#* &amp;lt;code&amp;gt;../auth/calendar.events.owned.readonly&amp;lt;/code&amp;gt; – Read-only access to events on owned calendars.&lt;br /&gt;
#* &amp;lt;code&amp;gt;../auth/calendar.events.readonly&amp;lt;/code&amp;gt; – View events only.[[File:Google Cloud Data Access Scopes.jpg|none|thumb|400x400px|Data Access section showing added calendar scopes]]&amp;lt;blockquote&amp;gt;▷ These scopes must be added to your app for Google to allow access to calendar data through the API. Make sure they match the level of access your app requires.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
Follow the steps below to install the &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; application in your Innovaphone environment.&lt;br /&gt;
&lt;br /&gt;
=== Option 1: Installing via AP Manager App Store (Recommended) ===&lt;br /&gt;
You can install &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; directly through the &#039;&#039;&#039;App Platform Manager&#039;&#039;&#039; (AP Manager) by accessing the App Store:&lt;br /&gt;
&lt;br /&gt;
# Open the &#039;&#039;&#039;AP Manager&#039;&#039;&#039;.&lt;br /&gt;
# Click the yellow &#039;&#039;&#039;App Store&#039;&#039;&#039; button in the top-right corner.&lt;br /&gt;
# Search for &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; in the list.&lt;br /&gt;
# Select the latest version and confirm the download.&lt;br /&gt;
# The app will be automatically installed and ready to configure.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;🛈 This is the easiest and fastest way to deploy the app.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
[[File:Innovaphone MyApps Lab AppStore Button in AP Manager.png|none|thumb|436x436px|AppStore Button in AP Manager outlined]]&lt;br /&gt;
[[File:AP Manager Appstore Interface.png|none|thumb|436x436px|AP Manager Appstore interface]]&lt;br /&gt;
&lt;br /&gt;
=== Option 2: Manual Installation via Upload ===&lt;br /&gt;
If the app is not yet listed in the App Store, follow the steps below:&lt;br /&gt;
&lt;br /&gt;
==== Step 1: Download the App Package ====&lt;br /&gt;
&lt;br /&gt;
# Visit the official Wecom myApps Downloads Portal.&lt;br /&gt;
# Find the &#039;&#039;&#039;Gcalendar&#039;&#039;&#039; app.&lt;br /&gt;
# Download the latest available version compatible with your system architecture.&lt;br /&gt;
[[File:Gcalendar myapps wecom appstore.png|none|thumb|418x418px|Gcalendar on MyApps&#039; Wecom&#039;s App Store]]&lt;br /&gt;
&lt;br /&gt;
==== Step 2: Upload to AP Manager ====&lt;br /&gt;
&lt;br /&gt;
# In &#039;&#039;&#039;AP Manager&#039;&#039;&#039;, click &#039;&#039;&#039;App upload&#039;&#039;&#039; (top right).&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;.app&amp;lt;/code&amp;gt; package you downloaded from the portal.&lt;br /&gt;
# After successful upload, the app will appear in your list and show as &#039;&#039;&#039;Running&#039;&#039;&#039;.&lt;br /&gt;
[[File:App Upload Button on MyApps AP Manager.png|none|thumb|485x485px|App Upload button on AP Manager outlined]]&lt;br /&gt;
[[File:Gcallendar on AP Manager Innovaphone.jpg|none|thumb|490x490px|Gcalendar on AP Manager]]&lt;br /&gt;
&lt;br /&gt;
=== Step 3: Add Application Instance ===&lt;br /&gt;
&lt;br /&gt;
# After uploading the app, click the yellow &#039;&#039;&#039;+ Add&#039;&#039;&#039; button to create an instance of the application.&lt;br /&gt;
# Fill in the required fields:&lt;br /&gt;
#* &#039;&#039;&#039;Name:&#039;&#039;&#039; A recognizable name for the instance.&lt;br /&gt;
#* &#039;&#039;&#039;Domain:&#039;&#039;&#039; The domain for the PBX.&lt;br /&gt;
#* &#039;&#039;&#039;Password:&#039;&#039;&#039; A secure admin password for the app instance.&lt;br /&gt;
#* &#039;&#039;&#039;Webserver path:&#039;&#039;&#039; Optional path (or leave blank).&lt;br /&gt;
#* &#039;&#039;&#039;Database host:&#039;&#039;&#039; Leave empty for local DB or specify IP/DNS if external.&lt;br /&gt;
#* &#039;&#039;&#039;Database name&#039;&#039;&#039; and &#039;&#039;&#039;Database user&#039;&#039;&#039;: Use consistent values for your environment.&lt;br /&gt;
#* &#039;&#039;&#039;Database password:&#039;&#039;&#039; Corresponding DB password.&lt;br /&gt;
# When all values are filled, click &#039;&#039;&#039;Save&#039;&#039;&#039;.&lt;br /&gt;
[[File:AP Manager Gcalendar App Instance Creation Example.png|none|thumb|440x440px|Example of instance creation screen in AP Manager]]&lt;br /&gt;
&lt;br /&gt;
=== Final Step: Registering the App in PBX Manager ===&lt;br /&gt;
&lt;br /&gt;
# Open the &#039;&#039;&#039;PBX Manager&#039;&#039;&#039;.&lt;br /&gt;
# Go to the &#039;&#039;&#039;Apps&#039;&#039;&#039; section.&lt;br /&gt;
# Click &#039;&#039;&#039;Add App&#039;&#039;&#039; and register:&lt;br /&gt;
#* A &#039;&#039;&#039;Users App&#039;&#039;&#039;&lt;br /&gt;
#* An &#039;&#039;&#039;Admin App&#039;&#039;&#039;&lt;br /&gt;
# Assign access rights as needed.&lt;br /&gt;
[[File:PBX Manager Add an App flow - part 1.png|none|thumb|440x440px|PBX Manager Add an App select the app]]&lt;br /&gt;
[[File:Gcallendar PBX Manager Add an App flow - part 2.png|none|thumb|440x440px|PBX Manager Add an App configurations]]&lt;br /&gt;
[[File:Gcallendar on PBX Manager Innovaphone.jpg|none|thumb|441x441px|Gcalendar on PBX Manager configured]]&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⇒ After registration, both apps will appear in MyApps and are ready for use.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Copyright ==&lt;br /&gt;
Copyright information.&lt;br /&gt;
&lt;br /&gt;
== Contact ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;PORTO ALEGRE - RS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Av. Carlos Gomes, 466 / 401&lt;br /&gt;
&lt;br /&gt;
Boa Vista - CEP 90480-000&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tel:&#039;&#039;&#039; +55 51 3079.5000&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;FLORIANÓPOLIS - SC&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SC 401, 8600 - Room 7&lt;br /&gt;
&lt;br /&gt;
Corporate Park - Block 2&lt;br /&gt;
&lt;br /&gt;
Santo Antônio de Lisboa&lt;br /&gt;
&lt;br /&gt;
CEP 88050-001&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tel:&#039;&#039;&#039; +55 48 3112.6200&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mail:&#039;&#039;&#039; [mailto:comercial@wecom.com.br comercial@wecom.com.br]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Support:&#039;&#039;&#039; [mailto:suporte@wecom.com.br suporte@wecom.com.br]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Website:&#039;&#039;&#039; [https://wecom.com.br/ wecom.com.br]&lt;br /&gt;
&lt;br /&gt;
For any questions please refer to [https://wecom.com.br/fale-conosco/ our contact page.]&lt;/div&gt;</summary>
		<author><name>Pablo.montiel</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Howto:Flowe_-_Wecom_-_Partner_App&amp;diff=77246</id>
		<title>Howto:Flowe - Wecom - Partner App</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Howto:Flowe_-_Wecom_-_Partner_App&amp;diff=77246"/>
		<updated>2025-07-01T18:17:45Z</updated>

		<summary type="html">&lt;p&gt;Pablo.montiel: /* Installation */ Addition of step 3 - app instance creation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FIXME|reason=Work in progress, still incomplete}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;float:right; margin: 0 0 1em 1em; width: 330px;&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Partner App Info&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |[[File:Flowe Logo Small.png|alt=|center|frameless|Flowe&#039;s logo]]&lt;br /&gt;
|-&lt;br /&gt;
!Name&lt;br /&gt;
|Flowe&lt;br /&gt;
|-&lt;br /&gt;
!Company&lt;br /&gt;
|Wecom&lt;br /&gt;
|-&lt;br /&gt;
!Version&lt;br /&gt;
|1.0&lt;br /&gt;
|-&lt;br /&gt;
!Compatibility&lt;br /&gt;
|[https://www.innovaphone.com/xsd/vm.htm Innovaphone XML Schema]&lt;br /&gt;
|-&lt;br /&gt;
!License&lt;br /&gt;
|Via Innovaphone Pricelist&lt;br /&gt;
|-&lt;br /&gt;
!Languages&lt;br /&gt;
|Portuguese, English, German&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Product Name ==&lt;br /&gt;
&#039;&#039;&#039;Flowe&#039;&#039;&#039; [https://www.innovaphone.com/xsd/vm.htm Link]&lt;br /&gt;
&lt;br /&gt;
== Certification Status ==&lt;br /&gt;
&amp;lt;!-- Do not remove comment. Will be added by Innovaphone upon document check &amp;amp; app availablity on app store. --&amp;gt;&lt;br /&gt;
&#039;&#039;Space dedicated to Flowe certification information.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Category ==&lt;br /&gt;
&amp;lt;!-- Do not change this section and do not remove comments. Will be set by Innovaphone upon document check. --&amp;gt;&lt;br /&gt;
[[Category:Partner Apps|{{PAGENAME}}]]&lt;br /&gt;
{{Category:3rdParty_VoIPSystem_Management}}&lt;br /&gt;
[[Category:3rdParty VoIPSystem Management|{{PAGENAME}}]]&lt;br /&gt;
&lt;br /&gt;
== Vendor ==&lt;br /&gt;
[[File:Logo wecom.png|alt=|thumb|Wecom&#039;s logo]]&lt;br /&gt;
Wecom&lt;br /&gt;
&lt;br /&gt;
* [https://www.wecom.com.br www.wecom.com.br]&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&#039;&#039;&#039;Flowe&#039;&#039;&#039; is a Partner App developed by &#039;&#039;&#039;Wecom&#039;&#039;&#039; for the &#039;&#039;&#039;Innovaphone MyApps&#039;&#039;&#039; platform. It is designed to simplify the creation, edition, and management of XML scripts and Voicemail Objects within the PBX.&lt;br /&gt;
&lt;br /&gt;
With a user-friendly and responsive interface optimized for mobile and desktop use, Flowe allows administrators to:&lt;br /&gt;
&lt;br /&gt;
* Create and edit XML scripts visually&lt;br /&gt;
* Import and export script files&lt;br /&gt;
* Create and assign scripts to IVRs (Interactive Voice Response systems)&lt;br /&gt;
* Manage multi-language content (Portuguese, English, German)&lt;br /&gt;
&lt;br /&gt;
Flowe enhances productivity by abstracting technical complexity and aligning with Innovaphone’s native [https://www.innovaphone.com/xsd/vm.htm schema definitions].&lt;br /&gt;
&lt;br /&gt;
== Functions ==&lt;br /&gt;
This section provides an overview of each core part of the Flowe application. It highlights the purpose of each page, what actions can be performed, and how to navigate through the available features. Additionally, this section provides step-by-step explanations for each functionality.&lt;br /&gt;
&lt;br /&gt;
=== Scripts - Initial Page ===&lt;br /&gt;
[[File:Flowe&#039;s Scripts&#039; Initial Page.png|alt=|thumb|419x419px|Scripts&#039; initial page with outlined features]]&lt;br /&gt;
The Scripts &#039;&#039;&#039;Initial Page&#039;&#039;&#039; section is the main entry point of the Flowe application. Upon launching the app, users are presented with an overview of all existing XML scripts that have been created or imported into the system where users can quickly access, search for and manage scripts.&lt;br /&gt;
&lt;br /&gt;
The interface is divided into a &#039;&#039;&#039;search bar,&#039;&#039;&#039; a &#039;&#039;&#039;list of scripts&#039;&#039;&#039;, and two main action buttons: &#039;&#039;&#039;Add&#039;&#039;&#039; and &#039;&#039;&#039;Import&#039;&#039;&#039;. Each script listed displays essential information such as its filename, creation date, last modification date, file size and a unique identifier.&lt;br /&gt;
&lt;br /&gt;
Additionally, each script entry offers three direct action buttons:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Download&#039;&#039;&#039; – allows the user to download the XML file locally.&lt;br /&gt;
* &#039;&#039;&#039;Edit&#039;&#039;&#039; – redirects the user to the Script Management page, where the script can be fully edited.&lt;br /&gt;
* &#039;&#039;&#039;Delete&#039;&#039;&#039; – opens a confirmation modal for script deletion.&lt;br /&gt;
&lt;br /&gt;
==== 1. Searching for script ====&lt;br /&gt;
&lt;br /&gt;
# Write in the &#039;&#039;&#039;&amp;quot;Type to search...&amp;quot;&#039;&#039;&#039; input area.&lt;br /&gt;
# The results will automatically appear in the list below as you type.&lt;br /&gt;
[[File:Flowe Scripts&#039; Search Bar.png|none|thumb|461x461px|Script list search bar]]&lt;br /&gt;
&lt;br /&gt;
==== 2. Adding new script ====&lt;br /&gt;
&lt;br /&gt;
* Click the &#039;&#039;&#039;Add&#039;&#039;&#039; button next to the search bar.&lt;br /&gt;
** You will be redirected to the [[#Scripts - Management Page|Scripts Management Page]] to create a new script.&lt;br /&gt;
[[File:Flowe Scripts Add Button.png|none|thumb|Add script button]]&lt;br /&gt;
&lt;br /&gt;
==== 3. Importing script ====&lt;br /&gt;
&lt;br /&gt;
# Click the &#039;&#039;&#039;Import&#039;&#039;&#039; button next to the search bar.&lt;br /&gt;
#* An &#039;&#039;&#039;Import Script&#039;&#039;&#039; modal will appear.&lt;br /&gt;
# Select the file by clicking the &#039;&#039;&#039;Select File&#039;&#039;&#039; button.&lt;br /&gt;
#* This will open your computer’s file selection window.&lt;br /&gt;
# Click the &#039;&#039;&#039;Import&#039;&#039;&#039; button in the modal.&lt;br /&gt;
#* The imported script will appear in the list automatically.&lt;br /&gt;
[[File:Flowe Scripts Import Button.png|none|thumb|Import script button]]&lt;br /&gt;
[[File:Flowe Import Script Modal.png|none|thumb|Import script modal]]&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⇒ &#039;&#039;&#039;Note:&#039;&#039;&#039; Only XML script files will be accepted.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 4. Downloading script ====&lt;br /&gt;
&lt;br /&gt;
* Click the &#039;&#039;&#039;Download&#039;&#039;&#039; icon on the right side of the script’s information card.&lt;br /&gt;
** The download will start immediately once clicked.&lt;br /&gt;
[[File:Flowe Download Script Button.png|none|thumb|Download script button]]&lt;br /&gt;
&lt;br /&gt;
==== 5. Editing script ====&lt;br /&gt;
&lt;br /&gt;
* Click the &#039;&#039;&#039;Edit&#039;&#039;&#039; icon on the right side of the script’s information card.&lt;br /&gt;
** You will be redirected to the [[#Scripts - Management Page|Scripts Management Page]], where you can edit the script.&lt;br /&gt;
[[File:Flowe Edit Script Button.png|none|thumb|Edit script button]]&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⇒ &#039;&#039;&#039;Note:&#039;&#039;&#039; All current script data will be loaded automatically into the management page for editing.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 6. Deleting script ====&lt;br /&gt;
&lt;br /&gt;
#Click the &#039;&#039;&#039;Delete (trash icon)&#039;&#039;&#039; icon on the right side of the script’s information card.&lt;br /&gt;
#* A &#039;&#039;&#039;Delete Confirmation&#039;&#039;&#039; confirmation modal will appear.&lt;br /&gt;
# To confirm deletion, click the &#039;&#039;&#039;Delete&#039;&#039;&#039; button on the right.&lt;br /&gt;
#* The script will be permanently deleted and removed from the list.&lt;br /&gt;
# If you misclicked or decide not to delete, click the &#039;&#039;&#039;Cancel&#039;&#039;&#039; button on the left.&lt;br /&gt;
#* The modal will close promptly without any changes.&lt;br /&gt;
[[File:Flowe Delete Script Button.png|none|thumb|Delete script button]]&lt;br /&gt;
[[File:Flowe Delete Script Modal.png|none|thumb|Delete script confirmation modal]]&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⇒ &#039;&#039;&#039;Note:&#039;&#039;&#039; Deletion is permanent and cannot be undone. Make sure to confirm before deleting a script.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Scripts - Management Page ===&lt;br /&gt;
The Scripts &#039;&#039;&#039;Management Page&#039;&#039;&#039; is the core interface for creating and editing XML scripts within the Flowe application. This page is designed to provide users with a intuitive interactive editor where scripts can be built from scratch or modified as needed.&lt;br /&gt;
[[File:Flowe New Script Management Page.png|thumb|447x447px|New script management page with outlined features]]&lt;br /&gt;
[[File:Flowe Scripts Management Page 2.1.png|thumb|447x447px|Script management page with added functions and outlined features]]&lt;br /&gt;
The interface is divided into the following key areas:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Script Name Input&#039;&#039;&#039; – Located at the top of the page, filling this input field in is mandatory. Users must define a unique name for the script before they can save it.&lt;br /&gt;
* &#039;&#039;&#039;Elements List&#039;&#039;&#039; – Positioned on the left side, this section contains all available XML elements, each with a brief description, that can be inserted into the script.&lt;br /&gt;
* &#039;&#039;&#039;Search Bar for Elements&#039;&#039;&#039; – A search bar above the elements list allows users to search through using keywords that match either the element name or its description.&lt;br /&gt;
* &#039;&#039;&#039;Script Body&#039;&#039;&#039; – The main workspace is located on the right side and displays the full structure of the script as collapsed blocks. Each script begins with a pre-created Main Function (automatically provided when starting a new script), the following functions and, inside each function, users can dynamically insert and manage elements.&lt;br /&gt;
* &#039;&#039;&#039;Add New Function&#039;&#039;&#039; – Below the script body, an input field and button allow users to sequentially create new named functions.&lt;br /&gt;
* &#039;&#039;&#039;Action Buttons&#039;&#039;&#039;:&lt;br /&gt;
** &#039;&#039;&#039;Save&#039;&#039;&#039; – Saves the current script, either as a new file or as an update to an existing one.&lt;br /&gt;
** &#039;&#039;&#039;Cancel&#039;&#039;&#039; – Aborts the script creation or editing process and returns the user to the Initial Scripts Page.&lt;br /&gt;
&lt;br /&gt;
Elements are based on the official [https://www.innovaphone.com/xsd/vm.htm Innovaphone XML Schema].&lt;br /&gt;
[[File:Flowe Script Collapsed Functions.png|none|thumb|459x459px|Pre-existing script management page with collapsed functions]]&lt;br /&gt;
&lt;br /&gt;
==== 1. Elements List ====&lt;br /&gt;
The &#039;&#039;&#039;Elements List&#039;&#039;&#039; contains all XML components available for building scripts in the Flowe application. These elements are based on the official [https://www.innovaphone.com/xsd/vm.htm Innovaphone XML Schema], used for managing the script structure and logic within the XML file.&lt;br /&gt;
[[File:Flowe Add Element.png|thumb|383x383px|Add element]]&lt;br /&gt;
[[File:Flowe Assign Element.png|thumb|383x383px|Assign element]]&lt;br /&gt;
[[File:Flowe If Element.png|thumb|381x381px|If element with collapsing button]]&lt;br /&gt;
* &#039;&#039;&#039;How to use the elements:&#039;&#039;&#039; Users can insert elements inside functions and fill out the required fields according to their purpose and the Innovaphone documentation. Each element should be configured with the necessary data to achieve the expected behavior within the script logic.&lt;br /&gt;
* &#039;&#039;&#039;Nested elements:&#039;&#039;&#039; Some elements allow other elements to be placed inside them, supporting nested structures. For example, you can insert a &amp;lt;code&amp;gt;Switch&amp;lt;/code&amp;gt; block inside an &amp;lt;code&amp;gt;If&amp;lt;/code&amp;gt; condition, and within that &amp;lt;code&amp;gt;Switch&amp;lt;/code&amp;gt;, you can have additional &amp;lt;code&amp;gt;If&amp;lt;/code&amp;gt; conditions, and so on. These elements are collapsible, with a collapsing button next to the element&#039;s name.&lt;br /&gt;
* &#039;&#039;&#039;Custom element – &amp;quot;Comment&amp;quot;:&#039;&#039;&#039; In addition to the standard Innovaphone elements, Flowe provides a new custom element named &#039;&#039;&#039;Comment&#039;&#039;&#039; (as of now, shown as &amp;quot;&#039;&#039;Comentário&#039;&#039;&amp;quot;). This element is designed purely for documentation purposes and allows users to insert comments directly into the XML code. These comments have no effect on script execution and serve only as notes or explanations within the file.&lt;br /&gt;
[[File:Flowe Comment Element.png|none|thumb|534x534px|Comment element]]&lt;br /&gt;
* In the examples shown in the images:&lt;br /&gt;
** &#039;&#039;&#039;Add element:&#039;&#039;&#039; one can write two values and the output.&lt;br /&gt;
** &#039;&#039;&#039;Assign element:&#039;&#039;&#039; one can assign a value to a variable&lt;br /&gt;
** &#039;&#039;&#039;If element:&#039;&#039;&#039; one can define the condition and nest an element inside. The else if and else elements are not automatically created.&lt;br /&gt;
** &#039;&#039;&#039;Comment element:&#039;&#039;&#039; with a text input, one can add a comment to the script in the position where the element was added.&lt;br /&gt;
&lt;br /&gt;
==== 2. Searching for element ====&lt;br /&gt;
&lt;br /&gt;
* Type your query into the &#039;&#039;&#039;&amp;quot;Search elements...&amp;quot;&#039;&#039;&#039; input field.&lt;br /&gt;
** Use keywords that match either the element name or its description.&lt;br /&gt;
[[File:Flowe Script Search Element.png|none|thumb|410x410px|Elements list search bar]]&lt;br /&gt;
[[File:Flowe Script Search Element Example.png|none|thumb|Element search example]]&lt;br /&gt;
&lt;br /&gt;
==== 3. Changing script name ====&lt;br /&gt;
&lt;br /&gt;
#Enter the desired name into the &#039;&#039;&#039;&amp;quot;Enter the script name&amp;quot;&#039;&#039;&#039; input field.&lt;br /&gt;
#* The name is required to create or edit a script.&lt;br /&gt;
#Click the &#039;&#039;&#039;Save&#039;&#039;&#039; button to save your changes once you&#039;re done managing the script.&lt;br /&gt;
#*If the name is already in use, the input field will highlight in red and the &#039;&#039;&#039;Save&#039;&#039;&#039; button will be disabled.&lt;br /&gt;
#*If you attempt to save without a name, an alert modal will appear.&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⇒ &#039;&#039;&#039;Note:&#039;&#039;&#039; The script requires a unique name that is not already in use. If the name is duplicated, the Save button will be disabled; if missing, an alert will appear.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
[[File:Flowe Enter Script Name.png|none|thumb|499x499px|Script name input]]&lt;br /&gt;
[[File:Flowe Script Name Already In Use Tooltip.png|none|thumb|499x499px|&#039;&#039;&amp;quot;A script with this name already exists; (...)&amp;quot;&#039;&#039; tooltip alert]]&lt;br /&gt;
[[File:Flowe Name Required Modal.png|none|thumb|258x258px|Name requirement alert modal]]&lt;br /&gt;
&lt;br /&gt;
==== 4. Canceling script management ====&lt;br /&gt;
&lt;br /&gt;
* Click the &#039;&#039;&#039;Cancel&#039;&#039;&#039; button located between the script name input and the &#039;&#039;Save&#039;&#039; button.&lt;br /&gt;
** The page will redirect back to the initial Scripts area, and any unsaved progress will be lost.&lt;br /&gt;
[[File:Flowe Cancel Script Button.png|none|thumb|260x260px|Cancel script management button]]&lt;br /&gt;
&lt;br /&gt;
==== 5. Saving script ====&lt;br /&gt;
&lt;br /&gt;
* Click the &#039;&#039;&#039;Save&#039;&#039;&#039; button beside the Cancel button.&lt;br /&gt;
** The page will redirect back to the Scripts initial page.&lt;br /&gt;
*** The script will be updated on or added to your list.&lt;br /&gt;
[[File:Flowe Save Script Button.png|none|thumb|160x160px|Save script button]]&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⇒ &#039;&#039;&#039;Note:&#039;&#039;&#039; The script can only be saved if it has a unique name that is not already in use.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 6. Adding function to script ====&lt;br /&gt;
&lt;br /&gt;
# Type in the &#039;&#039;&#039;&amp;quot;New function name&amp;quot;&#039;&#039;&#039; input area;&lt;br /&gt;
# Click the &#039;&#039;&#039;Add&#039;&#039;&#039; button on the right.&lt;br /&gt;
#* New functions will be added sequentially below the previous ones.&lt;br /&gt;
[[File:Flowe Script New Function.png|none|thumb|543x543px|Add new function input and button]]&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⇒ &#039;&#039;&#039;Note:&#039;&#039;&#039; A valid name is mandatory to create a new function. Without it, the function won’t be added.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 7. Changing function name ====&lt;br /&gt;
&lt;br /&gt;
# Click the &#039;&#039;&#039;Edit (pencil icon)&#039;&#039;&#039; button next to the red trash icon.&lt;br /&gt;
# Edit the name in the input field.&lt;br /&gt;
# Click outside the input field to save.&lt;br /&gt;
#* The new name will be saved automatically.&lt;br /&gt;
[[File:Flowe Script Function Name Change.png|none|thumb|531x531px|Change function name]]&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⇒ &#039;&#039;&#039;Note:&#039;&#039;&#039; The Main function’s name is fixed and cannot be changed.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 8. Removing function from script ====&lt;br /&gt;
&lt;br /&gt;
* Click the red &#039;&#039;&#039;Delete&#039;&#039;&#039; &#039;&#039;&#039;(trash icon)&#039;&#039;&#039; in the top-right corner of the function block&lt;br /&gt;
** The entire function will be deleted immediately.&lt;br /&gt;
[[File:Flowe Script Delete Function Button.png|none|thumb|266x266px|Remove function button]]&lt;br /&gt;
&lt;br /&gt;
==== 9. Adding element to function ====&lt;br /&gt;
&lt;br /&gt;
# Click the &#039;&#039;&#039;+ dotted area&#039;&#039;&#039; where you want to add an element.&lt;br /&gt;
#* The area will be highlighted when selected.&lt;br /&gt;
# Click on the desired element from the elements list.&lt;br /&gt;
#* You can search for elements using the search bar and simply click to add.&lt;br /&gt;
#* Elements can be added before, after, in between elements.&lt;br /&gt;
#* Elements can also be nested within other elements using the same process.&lt;br /&gt;
[[File:Flowe Add First Element.png|none|thumb|467x467px|Add first element (in the highlighted dotted area)]]&lt;br /&gt;
[[File:Flowe Adding More Elements.png|none|thumb|468x468px|Add more elements (in the dotted areas)]]&lt;br /&gt;
[[File:Flowe Adding Nested Elements.png|none|thumb|467x467px|Add nested elements (in the dotted areas)]]&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⇒ &#039;&#039;&#039;Note:&#039;&#039;&#039; If no insertion point is selected, the element will be &amp;lt;u&amp;gt;added at the end of the function&amp;lt;/u&amp;gt;. If there are no existing elements in the function and no insertion point is selected, the element &amp;lt;u&amp;gt;will not be added&amp;lt;/u&amp;gt;.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 10. Filling element information ====&lt;br /&gt;
&lt;br /&gt;
* Enter the required details in the element’s input fields.&lt;br /&gt;
** Each element has its own specific required inputs, based on the Innovaphone XML Schema.&lt;br /&gt;
[[File:Flowe Add Element Values.png|none|thumb|467x467px|Add element inputs]]&lt;br /&gt;
&lt;br /&gt;
==== 11. Removing element from function ====&lt;br /&gt;
&lt;br /&gt;
* Click the red &#039;&#039;&#039;Delete (trash icon)&#039;&#039;&#039; in the top-right corner of the element block.&lt;br /&gt;
** The entire element will be deleted immediately.&lt;br /&gt;
[[File:Flowe Remove Element.png|none|thumb|469x469px|Remove element button]]&lt;br /&gt;
&lt;br /&gt;
=== IVRs ===&lt;br /&gt;
The &#039;&#039;&#039;IVRs Page&#039;&#039;&#039; is the main interface for managing IVR entries within the Flowe application. It allows users to create, edit, and organize IVRs that are associated with existing XML scripts.&lt;br /&gt;
[[File:Flowe IVR Page.png|thumb|383x383px|IVR page with outlined features]]&lt;br /&gt;
The interface is divided into the following key areas:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;IVR Search Bar&#039;&#039;&#039; – Positioned at the top of the page, this input allows users to search through existing IVRs using keywords and numbers that match either the title, the internal number or SIP.&lt;br /&gt;
* &#039;&#039;&#039;Add IVR Button&#039;&#039;&#039; – Located to the right of the search bar, this button opens a modal window to create a new IVR entry. Every information is required to create the new IVR.&lt;br /&gt;
* &#039;&#039;&#039;IVRs List&#039;&#039;&#039; – Displays all IVRs in a card-based format. Each card contains the following details:&lt;br /&gt;
** &#039;&#039;&#039;Title&#039;&#039;&#039; – The unique name identifying the IVR.&lt;br /&gt;
** &#039;&#039;&#039;Internal Number&#039;&#039;&#039; – The internal extension assigned to the IVR.&lt;br /&gt;
** &#039;&#039;&#039;SIP Number&#039;&#039;&#039; – The SIP number configured for the IVR.&lt;br /&gt;
** &#039;&#039;&#039;Script&#039;&#039;&#039; – The XML script that is linked to the IVR.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Action Buttons on Each IVR&#039;&#039;&#039;:&lt;br /&gt;
** &#039;&#039;&#039;Edit&#039;&#039;&#039; – Opens the same modal used for creation, pre-filled with the IVR’s current data for editing.&lt;br /&gt;
** &#039;&#039;&#039;Delete&#039;&#039;&#039; – Removes the IVR after confirmation.&lt;br /&gt;
IVRs are fully integrated with the Scripts module, ensuring that each IVR is functional only if a valid script is associated with it.&lt;br /&gt;
&lt;br /&gt;
==== 1. Searching for IVR ====&lt;br /&gt;
&lt;br /&gt;
* Type your search query into the &#039;&#039;&#039;&amp;quot;Type to search...&amp;quot;&#039;&#039;&#039; input field.&lt;br /&gt;
** You can use keywords that match the IVR’s title, internal number, or SIP address.&lt;br /&gt;
[[File:Flowe IVR Search Bar.png|none|thumb|522x522px|IVR search bar]]&lt;br /&gt;
&lt;br /&gt;
==== 2. Adding a New IVR ====&lt;br /&gt;
&lt;br /&gt;
# Click the &#039;&#039;&#039;Add&#039;&#039;&#039; button next to the IVR List search bar;&lt;br /&gt;
#* A &#039;&#039;&#039;Create a new IVR&#039;&#039;&#039; modal will appear;&lt;br /&gt;
# Fill in all required fields:&lt;br /&gt;
#* Type the name of the IVR;&lt;br /&gt;
#* Enter the internal number;&lt;br /&gt;
#* Enter the SIP address;&lt;br /&gt;
#* Select a pre-existing script to associate with the IVR;&lt;br /&gt;
# Click the &#039;&#039;&#039;Save&#039;&#039;&#039; button in the bottom-right corner to create the IVR;&lt;br /&gt;
# To cancel the creation process, click the &#039;&#039;&#039;Cancel&#039;&#039;&#039; button in the bottom-left corner.&lt;br /&gt;
[[File:Flowe Add New IVR Button.png|none|thumb|285x285px|Add new IVR button]]&lt;br /&gt;
[[File:Flowe New IVR Modal.png|none|thumb|372x372px|Create a new IVR modal]]&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⇒ &#039;&#039;&#039;Note:&#039;&#039;&#039; All fields are mandatory to successfully add a new IVR.&lt;br /&gt;
&lt;br /&gt;
Once saved, the new IVR will appear in the list automatically, and the modal will close.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 3. Editing an IVR ====&lt;br /&gt;
&lt;br /&gt;
# Click the &#039;&#039;&#039;Edit&#039;&#039;&#039; icon on the bottom-right of the IVR card.&lt;br /&gt;
#* An &#039;&#039;&#039;Update the IVR&#039;&#039;&#039; modal will appear with the current information pre-filled.&lt;br /&gt;
# Update any of the fields as needed:&lt;br /&gt;
#* Enter a new IVR name, internal number, and/or SIP address.&lt;br /&gt;
#* Select a different existing script to associate with the IVR.&lt;br /&gt;
# Click the &#039;&#039;&#039;Save&#039;&#039;&#039; button in the bottom-right corner to apply the changes.&lt;br /&gt;
# To cancel the editing process, click the &#039;&#039;&#039;Cancel&#039;&#039;&#039; button in the bottom-left corner.&lt;br /&gt;
[[File:Flowe IVR Edit Button.png|none|thumb|Edit IVR button]]&lt;br /&gt;
[[File:Flowe Edit IVR Modal.png|none|thumb|Update the IVR modal]]&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⇒ &#039;&#039;&#039;Note:&#039;&#039;&#039; All fields remain mandatory when editing an IVR.&lt;br /&gt;
&lt;br /&gt;
Once saved, the updated IVR will replace the old information in the list, and the modal will close.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 4. Deleting IVR ====&lt;br /&gt;
&lt;br /&gt;
# Click the &#039;&#039;&#039;Delete (trash icon)&#039;&#039;&#039; on the bottom-right of the IVR card.&lt;br /&gt;
#* A &#039;&#039;&#039;Delete IVR&#039;&#039;&#039; confirmation modal displaying the name of the selected IVR will appear.&lt;br /&gt;
# To confirm deletion, click the &#039;&#039;&#039;Delete&#039;&#039;&#039; button on the right.&lt;br /&gt;
#* The IVR will be permanently deleted and removed from the list.&lt;br /&gt;
# If you misclicked or decide not to delete, click the &#039;&#039;&#039;Cancel&#039;&#039;&#039; button on the left.&lt;br /&gt;
#* The modal will close promptly without any changes.&lt;br /&gt;
[[File:Flowe IVR Delete Button.png|none|thumb|301x301px|Delete IVR button]]&lt;br /&gt;
[[File:Flowe Delete IVR Modal.png|none|thumb|Delete IVR confirmation modal]]&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⇒ &#039;&#039;&#039;Note:&#039;&#039;&#039; Deletion is permanent and cannot be undone. Make sure to confirm before deleting a script.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Additional Functions ===&lt;br /&gt;
&lt;br /&gt;
==== Navigation Tab ====&lt;br /&gt;
The &#039;&#039;&#039;navigation tab&#039;&#039;&#039; on the top provides direct access to the main sections of the Flowe application: Scripts initial page, IVRs page, and Licensing information page. Users can quickly navigate between these sections by clicking the corresponding tab. The currently active section is highlighted to indicate the page in view.&lt;br /&gt;
&lt;br /&gt;
The navigation tab remains visible at all times, ensuring easy switching between functionalities within the app.&lt;br /&gt;
[[File:Flowe Top Navigation Tab.png|none|thumb|344x344px|Navigation tab]]&lt;br /&gt;
&lt;br /&gt;
==== Licensing Page ====&lt;br /&gt;
The &#039;&#039;&#039;Licensing page&#039;&#039;&#039; displays essential licensing information related to the Flowe application. This page is purely informational and does not contain interactive elements. It typically shows a message with contact details for inquiries or further licensing procedures.&lt;br /&gt;
[[File:Flowe Licensing Page.png|none|thumb|363x363px|Licensing page]]&lt;br /&gt;
&lt;br /&gt;
==== Language Configuration ====&lt;br /&gt;
The &#039;&#039;&#039;language selector&#039;&#039;&#039; is always visible within the application&#039;s interface, allowing users to seamlessly switch between Portuguese, English, and German at any time. This ensures that the application is accessible and user-friendly across different language preferences, with all texts dynamically updated upon selection.&lt;br /&gt;
[[File:Flowe Language Select.png|none|thumb|195x195px|Language selection]]&lt;br /&gt;
&lt;br /&gt;
== Component Diagram ==&lt;br /&gt;
The diagram below illustrates the architecture of the &#039;&#039;&#039;Flowe&#039;&#039;&#039; application and how its components interact with the &#039;&#039;&#039;Innovaphone PBX&#039;&#039;&#039;, the &#039;&#039;&#039;App Platform&#039;&#039;&#039; and external services.&lt;br /&gt;
[[File:Flowe Component Diagram Fixed.png|none|thumb|425x425px|Flowe&#039;s component diagram]]&lt;br /&gt;
&lt;br /&gt;
=== Component Flow Overview ===&lt;br /&gt;
* &#039;&#039;&#039;Flowe:&#039;&#039;&#039; stores and manages XML-based scripts that define the call flow logic.&lt;br /&gt;
* &#039;&#039;&#039;Files:&#039;&#039;&#039; holds audio files that can be used by scripts during execution.&lt;br /&gt;
* &#039;&#039;&#039;PBX Objects:&#039;&#039;&#039; are linked to scripts created in Flowe. When a call reaches a PBX object, it triggers the associated script.&lt;br /&gt;
* &#039;&#039;&#039;Webserver Routepoint:&#039;&#039;&#039; handles HTTP/HTTPS requests from Flowe:&lt;br /&gt;
** It interacts with external services (e.g. APIs) and returns the response in the expected format.&lt;br /&gt;
** It also stores audio files referenced by the scripts.&lt;br /&gt;
&lt;br /&gt;
== Licensing ==&amp;lt;!-- Needs further analysis and confirmation if more information is needed. --&amp;gt;&lt;br /&gt;
The &#039;&#039;&#039;Flowe&#039;&#039;&#039; application is licensed via the Innovaphone Pricelist. Currently, it is not yet listed on the official Innovaphone Partner App Licenses page, but it is expected to be included in future updates.&lt;br /&gt;
&lt;br /&gt;
The license model is based on the number of created scripts: each script requires one license.&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;License type:&#039;&#039;&#039; Innovaphone Pricelist&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;License model:&#039;&#039;&#039; One license per script&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Listed at:&#039;&#039;&#039; https://www.innovaphone.com/en/services/licenses/partner-apps.html?app=Flowe&amp;amp;type=license#flowe&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&amp;lt;!-- Needs further analysis and confirmation if more information is needed. --&amp;gt;&lt;br /&gt;
Before using Flowe, make sure your environment meets the following requirements:&lt;br /&gt;
&lt;br /&gt;
==== System Requirements ====&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Innovaphone firmware:&#039;&#039;&#039; Version 14r1 or later&lt;br /&gt;
* &#039;&#039;&#039;App Platform:&#039;&#039;&#039; Must be enabled and running in your myApps environment&lt;br /&gt;
* &#039;&#039;&#039;PBX Access:&#039;&#039;&#039; Access to the Admin UI to manage PBX Voicemail Objects&lt;br /&gt;
* &#039;&#039;&#039;Browser access:&#039;&#039;&#039; myApps Web or myApps Windows/Mobile&lt;br /&gt;
* &#039;&#039;&#039;Network access:&#039;&#039;&#039; Outbound access to the App and PBX services&lt;br /&gt;
&lt;br /&gt;
==== Functional Requirements ====&lt;br /&gt;
&lt;br /&gt;
* Must have rights to create/edit/delete &#039;&#039;&#039;Voicemail Objects&#039;&#039;&#039; in the PBX&lt;br /&gt;
* Must have access to manage XML script files through the app interface&lt;br /&gt;
* Users must have login permissions in the App Platform&lt;br /&gt;
&lt;br /&gt;
== Versions ==&lt;br /&gt;
&amp;lt;!-- Needs further analysis and confirmation if more information is needed. --&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Current version:&#039;&#039;&#039; 1.0&lt;br /&gt;
* &#039;&#039;&#039;Latest release:&#039;&#039;&#039; &amp;lt;code&amp;gt;1004 final&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Release date:&#039;&#039;&#039; May 5, 2025&lt;br /&gt;
* &#039;&#039;&#039;Innovaphone compatibility:&#039;&#039;&#039; Yes (Voicemail XML Schema)&lt;br /&gt;
* &#039;&#039;&#039;Architectures supported:&#039;&#039;&#039; &amp;lt;code&amp;gt;arm&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;x86_64&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;arm64&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&amp;lt;!-- Needs further analysis and confirmation if more information is needed. --&amp;gt;&lt;br /&gt;
Once installed, the &#039;&#039;&#039;Flowe&#039;&#039;&#039; app provides a structured and intuitive interface within &#039;&#039;&#039;MyApps&#039;&#039;&#039; for managing &#039;&#039;&#039;Voicemail Objects&#039;&#039;&#039; and their corresponding XML-based call flows. The configuration process is divided into two main areas: using the &#039;&#039;&#039;Flowe editor&#039;&#039;&#039; and linking the flow to the PBX via &#039;&#039;&#039;PBX Manager&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
To apply a script to a PBX Voicemail Object and activate it in the Innovaphone system:&lt;br /&gt;
&lt;br /&gt;
# Open the &#039;&#039;&#039;Devices&#039;&#039;&#039; app in MyApps and go to the &#039;&#039;&#039;Devices&#039;&#039;&#039; tab.&lt;br /&gt;
# Locate your PBX and click &#039;&#039;&#039;Admin UI&#039;&#039;&#039;.&lt;br /&gt;
# In the Admin UI interface, go to the &#039;&#039;&#039;PBX&#039;&#039;&#039; tab and select &#039;&#039;&#039;Objects&#039;&#039;&#039;.&lt;br /&gt;
# In the drop-down menu, choose &#039;&#039;&#039;Voicemail&#039;&#039;&#039;, then click &#039;&#039;&#039;new&#039;&#039;&#039;.&lt;br /&gt;
# Fill in the necessary fields:&lt;br /&gt;
#* &amp;lt;code&amp;gt;Name&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Number&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Display Name&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;Password&amp;lt;/code&amp;gt;&lt;br /&gt;
#* Under the &#039;&#039;&#039;Voicemail&#039;&#039;&#039; tab, provide:&lt;br /&gt;
#** &#039;&#039;&#039;Script URL&#039;&#039;&#039; (e.g., the script created in Flowe)&lt;br /&gt;
# Click &#039;&#039;&#039;Apply&#039;&#039;&#039; to save the object.&lt;br /&gt;
&lt;br /&gt;
[[File:PBX Manager flow for Flowe - voicemails.png|none|thumb|477x477px|PBX Manager flow to configure voicemail objects]]&lt;br /&gt;
[[File:PBX Voicemail Object General Configuration.png|none|thumb|479x479px|PBX voicemail object general configuration]]&lt;br /&gt;
[[File:PBX Voicemail Object Voicemail Configuration with Buttons.png|none|thumb|350x350px|PBX voicemail object voicemail configuration with buttons]]&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
Follow the steps below to install the &#039;&#039;&#039;Flowe&#039;&#039;&#039; application in your Innovaphone environment.&lt;br /&gt;
&lt;br /&gt;
=== Option 1: Installing via AP Manager App Store (Recommended) ===&lt;br /&gt;
You can install &#039;&#039;&#039;Flowe&#039;&#039;&#039; directly through the &#039;&#039;&#039;App Platform Manager&#039;&#039;&#039; (AP Manager) by accessing the App Store:&lt;br /&gt;
&lt;br /&gt;
# Open the &#039;&#039;&#039;AP Manager&#039;&#039;&#039;.&lt;br /&gt;
# Click the yellow &#039;&#039;&#039;App Store&#039;&#039;&#039; button in the top-right corner.&lt;br /&gt;
# Search for &#039;&#039;&#039;Flowe&#039;&#039;&#039; in the list.&lt;br /&gt;
# Select the latest version and confirm the download.&lt;br /&gt;
# The app will be automatically installed and ready to configure.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;🛈 This is the easiest and fastest way to deploy the app.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
[[File:Innovaphone MyApps Lab AppStore Button in AP Manager.png|link=https://wiki.innovaphone.comhttps//wiki.innovaphone.com/File:Innovaphone%20MyApps%20Lab%20AppStore%20Button%20in%20AP%20Manager.png|none|thumb|436x436px|AppStore Button in AP Manager outlined]]&lt;br /&gt;
[[File:AP Manager Appstore Interface.png|link=https://wiki.innovaphone.comhttps//wiki.innovaphone.com/File:AP%20Manager%20Appstore%20Interface.png|none|thumb|436x436px|AP Manager Appstore interface]]&lt;br /&gt;
&lt;br /&gt;
=== Option 2: Manual Installation via Upload ===&lt;br /&gt;
If you prefer installing manually, follow the steps below:&lt;br /&gt;
&lt;br /&gt;
==== Step 1: Download the App Package ====&lt;br /&gt;
&lt;br /&gt;
# Visit the official [https://appstore.wecom.com.br/release/WecomStore/1410593/download.htm Wecom myApps Downloads Portal].&lt;br /&gt;
# Find the &#039;&#039;&#039;Flowe&#039;&#039;&#039; app.&lt;br /&gt;
# Download the latest available version compatible with your system architecture.&lt;br /&gt;
&lt;br /&gt;
[[File:Wecom MyApps App Store Flowe.png|none|thumb|418x418px|Flowe on MyApps&#039; Wecom&#039;s App Store]]&lt;br /&gt;
&lt;br /&gt;
==== Step 2: Upload to AP Manager ====&lt;br /&gt;
&lt;br /&gt;
# In &#039;&#039;&#039;AP Manager&#039;&#039;&#039;, click &#039;&#039;&#039;App upload&#039;&#039;&#039; (top right).&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;.app&amp;lt;/code&amp;gt; package you downloaded from the portal.&lt;br /&gt;
# After successful upload, the app will appear in your list and show as &#039;&#039;&#039;Running&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
[[File:App Upload Button on MyApps AP Manager.png|link=https://wiki.innovaphone.comhttps//wiki.innovaphone.com/File:App%20Upload%20Button%20on%20MyApps%20AP%20Manager.png|none|thumb|487x487px|App Upload button on AP Manager outlined]]&lt;br /&gt;
[[File:Flowe on AP Manager.png|none|thumb|490x490px|Flowe on AP Manager]]&lt;br /&gt;
&lt;br /&gt;
=== Step 3: Add Application Instance ===&lt;br /&gt;
&lt;br /&gt;
# After uploading the app, click the yellow &#039;&#039;&#039;+ Add&#039;&#039;&#039; button to create an instance of the application.&lt;br /&gt;
# Fill in the required fields:&lt;br /&gt;
#* &#039;&#039;&#039;Name:&#039;&#039;&#039; A recognizable name for the instance.&lt;br /&gt;
#* &#039;&#039;&#039;Domain:&#039;&#039;&#039; The domain for the PBX.&lt;br /&gt;
#* &#039;&#039;&#039;Password:&#039;&#039;&#039; A secure admin password for the app instance.&lt;br /&gt;
#* &#039;&#039;&#039;Webserver path:&#039;&#039;&#039; Optional path (or leave blank).&lt;br /&gt;
#* &#039;&#039;&#039;Database host:&#039;&#039;&#039; Leave empty for local DB or specify IP/DNS if external.&lt;br /&gt;
#* &#039;&#039;&#039;Database name&#039;&#039;&#039; and &#039;&#039;&#039;Database user&#039;&#039;&#039;: Use consistent values for your environment.&lt;br /&gt;
#* &#039;&#039;&#039;Database password:&#039;&#039;&#039; Corresponding DB password.&lt;br /&gt;
# When all values are filled, click &#039;&#039;&#039;Save&#039;&#039;&#039;.&lt;br /&gt;
[[File:AP Manager Flowe App Instance Creation Example.png|none|thumb|440x440px|Example of instance creation screen in AP Manager]]&lt;br /&gt;
&lt;br /&gt;
=== Final Step: Registering the App in PBX Manager ===&lt;br /&gt;
&lt;br /&gt;
# Open the &#039;&#039;&#039;PBX Manager&#039;&#039;&#039;.&lt;br /&gt;
# Go to the &#039;&#039;&#039;Apps&#039;&#039;&#039; section.&lt;br /&gt;
# Click &#039;&#039;&#039;Add App&#039;&#039;&#039; and register:&lt;br /&gt;
#* A &#039;&#039;&#039;Users App&#039;&#039;&#039;&lt;br /&gt;
#* An &#039;&#039;&#039;Admin App&#039;&#039;&#039;&lt;br /&gt;
# Assign access rights as needed.&lt;br /&gt;
&lt;br /&gt;
[[File:PBX Manager Add an App Flowe.png|none|thumb|440x440px|PBX Manager Add an App select the app]]&lt;br /&gt;
[[File:PBX Manager Flowe Add an App Config.png|none|thumb|440x440px|PBX Manager Add an App configurations]]&lt;br /&gt;
[[File:Flowe on PBX Manager.png|none|thumb|441x441px|Flowe on PBX Manager configured]]&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⇒ After registration, both apps will appear in MyApps and are ready for use.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Copyright ==&lt;br /&gt;
&#039;&#039;Space dedicated to Flowe copyright information.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Contact ==&amp;lt;!-- Needs further analysis and confirmation if more information is needed. --&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;PORTO ALEGRE - RS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Av. Carlos Gomes, 466 / 401&lt;br /&gt;
&lt;br /&gt;
Boa Vista - CEP 90480-000&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tel:&#039;&#039;&#039; +55 51 3079.5000&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;FLORIANÓPOLIS - SC&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SC 401, 8600 - Room 7&lt;br /&gt;
&lt;br /&gt;
Corporate Park - Block 2&lt;br /&gt;
&lt;br /&gt;
Santo Antônio de Lisboa&lt;br /&gt;
&lt;br /&gt;
CEP 88050-001&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tel:&#039;&#039;&#039; +55 48 3112.6200&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mail:&#039;&#039;&#039; [mailto:comercial@wecom.com.br comercial@wecom.com.br]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Support:&#039;&#039;&#039; [mailto:suporte@wecom.com.br suporte@wecom.com.br]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Website:&#039;&#039;&#039; [https://wecom.com.br/ wecom.com.br]&lt;br /&gt;
&lt;br /&gt;
For any questions please refer to [https://wecom.com.br/fale-conosco/ our contact page.]&lt;/div&gt;</summary>
		<author><name>Pablo.montiel</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Howto:Billboard_-_Wecom_-_Partner_App&amp;diff=77245</id>
		<title>Howto:Billboard - Wecom - Partner App</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Howto:Billboard_-_Wecom_-_Partner_App&amp;diff=77245"/>
		<updated>2025-07-01T18:17:37Z</updated>

		<summary type="html">&lt;p&gt;Pablo.montiel: /* Installation */ Addition of step 3 - app instance creation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FIXME|reason=Work in progress, still incomplete}}&lt;br /&gt;
&amp;lt;!-- Needed to add images: billboard logo, diagrams (2) to the component diagram, functions step-by-step, installation images, . --&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;float:right;&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Partner App Info&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |[[File:Wecom Billboard.png|alt=|center|frameless|200x200px|Billboard Icon]]&lt;br /&gt;
|-&lt;br /&gt;
!Name&lt;br /&gt;
|Billboard&lt;br /&gt;
|-&lt;br /&gt;
!Company&lt;br /&gt;
|Wecom&lt;br /&gt;
|-&lt;br /&gt;
!Version&lt;br /&gt;
|1.0&lt;br /&gt;
|-&lt;br /&gt;
!License&lt;br /&gt;
|Via Innovaphone Pricelist&lt;br /&gt;
|-&lt;br /&gt;
!Languages&lt;br /&gt;
|Czech, English, Estonian, French,&amp;lt;br&amp;gt;German, Italian, Polish, Portuguese,&amp;lt;br&amp;gt;Slovenian, Spanish&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Product Name ==&lt;br /&gt;
&#039;&#039;&#039;Billboard&#039;&#039;&#039; [https://wecom.com.br/ Link]&lt;br /&gt;
&lt;br /&gt;
== Certification Status ==&lt;br /&gt;
&amp;lt;!-- Do not remove comment. Will be added by Innovaphone upon document check &amp;amp; app availablity on app store. --&amp;gt;&lt;br /&gt;
&#039;&#039;Space dedicated to Billboard certification information.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Category ==&lt;br /&gt;
&#039;&#039;Space dedicated to Billboard category information.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Vendor ==&lt;br /&gt;
[[File:Logo wecom.png|alt=|thumb|Wecom&#039;s logo]]&lt;br /&gt;
Wecom&lt;br /&gt;
&lt;br /&gt;
* [https://wecom.com.br/ wecom.com.br]&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&#039;&#039;&#039;Billboard&#039;&#039;&#039; is a Partner App developed by &#039;&#039;&#039;Wecom&#039;&#039;&#039; to modernize internal communications by digitizing traditional bulletin boards. Through a user-friendly interface integrated into Innovaphone’s myApps workspace, departments (referred to as &amp;quot;groups&amp;quot; within the app) can publish announcements with scheduled validity, targeted visibility, and interaction tracking.&lt;br /&gt;
&lt;br /&gt;
Main components:&lt;br /&gt;
* &#039;&#039;&#039;Users App&#039;&#039;&#039; – For general users to access and interact with department posts.&lt;br /&gt;
* &#039;&#039;&#039;Admin App&#039;&#039;&#039; – For administrators to manage groups, posts, and licensing.&lt;br /&gt;
&lt;br /&gt;
== Functions ==&lt;br /&gt;
&amp;lt;!-- Section in analysis. --&amp;gt;&lt;br /&gt;
=== Users App ===&lt;br /&gt;
&lt;br /&gt;
The Users App is the interface where users access, read, create, and manage department posts, based on their permissions (viewer or editor). Each user sees only the groups they are part of.&lt;br /&gt;
&lt;br /&gt;
==== 1. Accessing a Group ====&lt;br /&gt;
&lt;br /&gt;
# Upon opening the Users App, the main screen lists all groups (departments) the user belongs to.&lt;br /&gt;
# To enter a group, simply click on the desired group.&amp;lt;blockquote&amp;gt;Groups are color-coded and may display badges for new or unseen posts.&amp;lt;/blockquote&amp;gt;[[File:Billboard Users Groups Page.png|none|thumb|450x450px|Users App main page with every group you are on]]&lt;br /&gt;
&lt;br /&gt;
==== 2. Creating a Group (Admins only) ====&lt;br /&gt;
&lt;br /&gt;
# Only users assigned with the &amp;quot;create department&amp;quot; permission (via Admin App) will see the &#039;&#039;&#039;Add+&#039;&#039;&#039; button on the main screen.[[File:4. Billboard Users Groups Page Button Outlined.png|none|thumb|450x450px|Groups page with &amp;quot;+ Add&amp;quot; button outlined]]&lt;br /&gt;
# Click &#039;&#039;&#039;Add+&#039;&#039;&#039; to open the group creation modal.&lt;br /&gt;
# Fill in:&lt;br /&gt;
#* Enter the &#039;&#039;&#039;Department Name&#039;&#039;&#039;&lt;br /&gt;
#* Select the color using the color picker&lt;br /&gt;
#* Assign users to roles:&lt;br /&gt;
#** &#039;&#039;&#039;Editor&#039;&#039;&#039; – Can manage posts, see group&#039;s history and edit the department.&lt;br /&gt;
#** &#039;&#039;&#039;Viewer&#039;&#039;&#039; – Can only view posts.&lt;br /&gt;
#* Clicking &amp;quot;Viewer&amp;quot; name label selects all users as viewers.[[File:5. Billboard Group Creation Modal.png|none|thumb|450x450px|Group creation modal with roles selection, color picking and name input]]&lt;br /&gt;
&lt;br /&gt;
==== 3. Viewing a Post ====&lt;br /&gt;
&lt;br /&gt;
# Inside a group, posts are displayed as cards.[[File:2. Billboard Posts Page (of a Group).png|none|thumb|450x450px|Posts inside a group]]&lt;br /&gt;
#* If you are an Editor, the post will also show the visibility period on the bottom of the card.&lt;br /&gt;
#* Unread posts display a red &#039;&#039;&#039;NEW&#039;&#039;&#039; label in the top-left corner of the card.&lt;br /&gt;
#** The label disappears as soon as the post is opened.[[File:2.5. Billboard New Post Card Editor View.png|none|thumb|350x350px|New post with visibility period]]&lt;br /&gt;
# Click on a post to open its details.[[File:3. Billboard Open Post.png|none|thumb|Open post with information and description]]&lt;br /&gt;
# The post view shows:&lt;br /&gt;
#* Type (External or Internal)&lt;br /&gt;
#* Creator&#039;s name&lt;br /&gt;
#* Start and end dates of visibility&lt;br /&gt;
# To close the post, click the &#039;&#039;&#039;X&#039;&#039;&#039; button in the top right corner.&lt;br /&gt;
&lt;br /&gt;
==== 4. Creating a Post ====&lt;br /&gt;
&lt;br /&gt;
# Editors will see an &#039;&#039;&#039;Add+&#039;&#039;&#039; card within the department page.[[File:6. Billboard Posts Page with Add Card.png|none|thumb|450x450px|Posts on a group with Editor view, with &amp;quot;Add+&amp;quot; card]]&lt;br /&gt;
# Click it to open the post creation modal.&lt;br /&gt;
# Fill in the following:&lt;br /&gt;
#* &#039;&#039;&#039;Title&#039;&#039;&#039; (top input)&lt;br /&gt;
#* &#039;&#039;&#039;Description&#039;&#039;&#039; (main text area)&lt;br /&gt;
#* &#039;&#039;&#039;Start and end dates&#039;&#039;&#039;[[File:6.1. Billboard Post Start and End Date Picking.png|none|thumb|350x350px|Post start and end date time picking]]&lt;br /&gt;
#* &#039;&#039;&#039;Type&#039;&#039;&#039; (Internal or External)[[File:6.2. Billboard Post Type Drop Down Select.png|none|thumb|300x300px|Type drop down selection]]&lt;br /&gt;
#* &#039;&#039;&#039;Color&#039;&#039;&#039; (default is black if not selected)[[File:6.3. Billboard Post Color Picker.png|none|thumb|300x300px|Post and group color picker]]&lt;br /&gt;
# Click &#039;&#039;&#039;Insert&#039;&#039;&#039; to save or &#039;&#039;&#039;Close&#039;&#039;&#039; to cancel.[[File:7. Billboard Post Creation Modal.png|none|thumb|400x400px|Post creation and editing modal]]&lt;br /&gt;
&lt;br /&gt;
==== 5. Editing or Deleting a Post ====&lt;br /&gt;
&lt;br /&gt;
# If you are the creator or an editor of the group:&lt;br /&gt;
#* Click the pencil icon to edit – the modal opens pre-filled with existing data.&lt;br /&gt;
#* Click the trash icon to delete – the post is removed immediately.[[File:8. Billboard Post View as Editor Actions Outlined.png|none|thumb|400x400px|Post view as Editor with actions outlined]]&lt;br /&gt;
&lt;br /&gt;
==== 6. Viewing Post History ====&lt;br /&gt;
&lt;br /&gt;
# Inside the post, click the &#039;&#039;&#039;Clock&#039;&#039;&#039; icon to view who has accessed it.&lt;br /&gt;
#* The view shows user names and access timestamps.&lt;br /&gt;
#* A back arrow icon replaces the clock to return to the post details.[[File:9. Billboard Post History.png|none|thumb|350x350px|Post history of who has viewed and when]]&lt;br /&gt;
&lt;br /&gt;
==== 7. Managing Groups (Editor role) ====&lt;br /&gt;
&lt;br /&gt;
* Editors see extra options in the bottom menu of the department page.[[File:10. Billboard Posts Page with Bottom Menu Outlined.png|none|thumb|Posts on a group as an Editor with bottom menu outlined]]&lt;br /&gt;
# Click the trash icon to delete the group.&lt;br /&gt;
# Click the clock icon to access post history.&lt;br /&gt;
#* You can filter posts:&lt;br /&gt;
#** By time period (Today, Last 7 days, Custom...)&lt;br /&gt;
#** By deleted or active status[[File:11. Billboard Posts Time Filter Drop Down.png|none|thumb|Group&#039;s posts history drop down time filter]][[File:12. Billboard Posts Time Filter Custom.png|none|thumb|Group&#039;s posts history time filter with custom period time picking]]&lt;br /&gt;
# Click the gear icon to edit group settings:&lt;br /&gt;
#* Change the name or color&lt;br /&gt;
#* Modify members and their roles[[File:13. Billboard Group Editing.png|none|thumb|Group editing modal with users and their roles that were previous selected ]]&lt;br /&gt;
&lt;br /&gt;
=== Admin App ===&lt;br /&gt;
&lt;br /&gt;
The Admin App provides global management functionalities for users, groups (departments), and posts. Only users marked as administrators via this panel will have access to it.&lt;br /&gt;
&lt;br /&gt;
==== 1. Granting Administrator Access ====&lt;br /&gt;
&lt;br /&gt;
# Access the Admin App – it will open on the &#039;&#039;&#039;Users Page&#039;&#039;&#039; by default.&lt;br /&gt;
# Use the &#039;&#039;&#039;search bar&#039;&#039;&#039; at the top to find the user you wish to promote.&lt;br /&gt;
# Locate the user in the list below.&lt;br /&gt;
# Click the checkbox next to their name to grant administrator privileges.&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Only an existing admin can assign admin rights to another user.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
[[File:A1. Billboard Admin Users Page.png|none|thumb|450x450px|Users Page with search bar and checkboxes for admin privileges]]&lt;br /&gt;
&lt;br /&gt;
==== 2. Managing the Billboard License ====&lt;br /&gt;
&lt;br /&gt;
# In the Admin App sidebar, click on the &#039;&#039;&#039;Licensing&#039;&#039;&#039; tab.&lt;br /&gt;
# Review the license information displayed on the page.&lt;br /&gt;
# If activating a license:&lt;br /&gt;
## Enter the provided &#039;&#039;&#039;License Key&#039;&#039;&#039;.&lt;br /&gt;
## Click on the &#039;&#039;&#039;Ok&#039;&#039;&#039; activation button on the bottom-right corner to validate and enable the license.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;System Token&#039;&#039;&#039;: Unique identifier required to validate the license.&lt;br /&gt;
* &#039;&#039;&#039;License Key&#039;&#039;&#039;: Provided by Wecom for unlocking the application.&lt;br /&gt;
* &#039;&#039;&#039;Active License&#039;&#039;&#039;: Displays whether the license is valid and how many users are supported.&lt;br /&gt;
* &#039;&#039;&#039;Temporary License Expiration&#039;&#039;&#039;: Shows when the 30-day trial period ends.&lt;br /&gt;
* &#039;&#039;&#039;Installation Date&#039;&#039;&#039;: Indicates when the active license was installed.&lt;br /&gt;
* &#039;&#039;&#039;Licenses in Use&#039;&#039;&#039;: Number of users currently connected to the Billboard Users App.&lt;br /&gt;
[[File:A2, Billboard Admin License Page.png|none|thumb|450x450px|Licensing page showing all license details and activation fields]]&lt;br /&gt;
&lt;br /&gt;
==== 3. Managing Departments ====&lt;br /&gt;
&lt;br /&gt;
# In the Admin App sidebar, click on the &#039;&#039;&#039;Departments&#039;&#039;&#039; tab.&lt;br /&gt;
# Browse the list of all departments created in the system.&lt;br /&gt;
# Scroll to locate the department you wish to edit.&lt;br /&gt;
# Click on the &#039;&#039;&#039;color circle&#039;&#039;&#039; next to the department to open the editing modal.&lt;br /&gt;
# In the modal:&lt;br /&gt;
## Update the department&#039;s name.&lt;br /&gt;
## Change its color using the color picker.&lt;br /&gt;
## Add or remove users as &#039;&#039;&#039;Editors&#039;&#039;&#039; or &#039;&#039;&#039;Viewers&#039;&#039;&#039;.&lt;br /&gt;
## Save the changes to apply them.&lt;br /&gt;
[[File:A3.1. Billboard Admin Group Management.png|none|thumb|450x450px|Group management modal]]&lt;br /&gt;
&lt;br /&gt;
* The list includes all departments, including those marked as deleted.&lt;br /&gt;
* Deleted departments are labeled with their deletion date.&lt;br /&gt;
* Each department entry shows:&lt;br /&gt;
** Department name&lt;br /&gt;
** Assigned color&lt;br /&gt;
** Creator&#039;s name&lt;br /&gt;
** Status (active or deleted)&lt;br /&gt;
[[File:A3. Billboard Admin Departments Page.png|none|thumb|450x450px|Departments list with edit modal access]]&lt;br /&gt;
&lt;br /&gt;
==== 4. Managing Posts ====&lt;br /&gt;
&lt;br /&gt;
# Click on the &#039;&#039;&#039;Posts&#039;&#039;&#039; tab in the Admin App sidebar.&lt;br /&gt;
# Browse the full list of posts created across all departments.&lt;br /&gt;
# Scroll to locate a specific post.&lt;br /&gt;
# Click the &#039;&#039;&#039;edit icon&#039;&#039;&#039; next to a post to open the editing modal.&lt;br /&gt;
# In the modal:&lt;br /&gt;
## Modify the title, description, color, type, and visibility period.&lt;br /&gt;
## Save the changes to update the post.&lt;br /&gt;
[[File:A4.1. ABillboard Admin Post Management.png|none|thumb|450x450px|Post management modal]]&lt;br /&gt;
&lt;br /&gt;
* The post list includes:&lt;br /&gt;
** Active posts&lt;br /&gt;
** Expired posts&lt;br /&gt;
** Deleted posts (showing the deletion date)&lt;br /&gt;
* Each post displays:&lt;br /&gt;
** Title&lt;br /&gt;
** Department (group) association&lt;br /&gt;
** Type: Internal or External&lt;br /&gt;
** Start and end dates (visibility period)&lt;br /&gt;
** Creator&#039;s name&lt;br /&gt;
** Current status: active, expired, or deleted&lt;br /&gt;
[[File:A4. Billboard Admin Posts Page.png|none|thumb|450x450px|All posts view with status, creator, and edit access]]&lt;br /&gt;
&lt;br /&gt;
==== 5. Accessing Public Posts ====&lt;br /&gt;
&lt;br /&gt;
# In the sidebar, click on the &#039;&#039;&#039;Public Posts&#039;&#039;&#039; tab.&lt;br /&gt;
# A modal will appear, redirecting you to the Billboard &#039;&#039;&#039;Users App&#039;&#039;&#039; to view a list of posts.&lt;br /&gt;
# Click on any post from this list.&lt;br /&gt;
&lt;br /&gt;
* Only posts with the &amp;quot;External&amp;quot; type selected during creation appear here.&lt;br /&gt;
* This page is read-only and used for quick access to public content.&lt;br /&gt;
[[File:A5. Billboard Admin Public Posts Modal.png|none|thumb|450x450px|Public posts modal with redirect to Users App]]&lt;br /&gt;
&lt;br /&gt;
== Component Diagram ==&lt;br /&gt;
The diagrams below illustrate the architecture of the &#039;&#039;&#039;Billboard&#039;&#039;&#039; application and its interaction with the Innovaphone platform, as well as the various components involved.&lt;br /&gt;
&lt;br /&gt;
=== User and Admin Interaction Flow ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Flow Overview:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;ADMIN:&#039;&#039;&#039; The administrator has the ability to manage groups and posts across the system, including controlling visibility and user access.&lt;br /&gt;
* &#039;&#039;&#039;DEPARTMENT (Group):&#039;&#039;&#039; Represents different groups (like IT and HR), each having specific announcements and user interactions.&lt;br /&gt;
* &#039;&#039;&#039;NOTES:&#039;&#039;&#039; Each group can have specific notes (e.g., IT or HR), which are shown to relevant users.&lt;br /&gt;
* &#039;&#039;&#039;USERS:&#039;&#039;&#039; Users from various groups (IT, HR, and General) can access posts that are published within their allowed groups.&lt;br /&gt;
&lt;br /&gt;
=== Application Architecture ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Flow Overview:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;PBX Platform:&#039;&#039;&#039; Interacts with the &#039;&#039;&#039;Billboard App&#039;&#039;&#039;, managing internal communication and service integration.&lt;br /&gt;
* &#039;&#039;&#039;APP Platform:&#039;&#039;&#039; Hosts the &#039;&#039;&#039;Billboard Service&#039;&#039;&#039;, which manages posts and user interactions, and communicates with the database.&lt;br /&gt;
* &#039;&#039;&#039;Service DWC:&#039;&#039;&#039; Responsible for managing the backend services for the Billboard app, providing routes to interact with both the database and the PBX platform.&lt;br /&gt;
&lt;br /&gt;
This architecture shows how the components integrate within the Innovaphone ecosystem, allowing for seamless communication between groups and users through the &#039;&#039;&#039;Billboard&#039;&#039;&#039; app.&lt;br /&gt;
&lt;br /&gt;
== Licensing ==&lt;br /&gt;
&amp;lt;!-- Needs further analysis and clarification. --&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Billboard&#039;&#039;&#039; is licensed via the Innovaphone Pricelist.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;License type:&#039;&#039;&#039; Innovaphone Pricelist  &lt;br /&gt;
&#039;&#039;&#039;License model:&#039;&#039;&#039; One license per user&lt;br /&gt;
&#039;&#039;&#039;Trial:&#039;&#039;&#039; 30 days temporary license available after installation  &lt;br /&gt;
&#039;&#039;&#039;Listed at:&#039;&#039;&#039; https://www.innovaphone.com/en/services/licenses/partner-apps.html?app=Billboard&amp;amp;type=license#billboard&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
&amp;lt;!-- Needs further analysis and clarification. --&amp;gt;&lt;br /&gt;
=== System Requirements ===&lt;br /&gt;
&lt;br /&gt;
* Innovaphone firmware: &amp;lt;code&amp;gt;14r1&amp;lt;/code&amp;gt; or later&lt;br /&gt;
* Innovaphone App Platform with myApps&lt;br /&gt;
* PBX Manager for app registration&lt;br /&gt;
&lt;br /&gt;
=== Licensing Activation ===&lt;br /&gt;
&lt;br /&gt;
* Requires license token and file provided by Wecom&lt;br /&gt;
* Insert into Admin interface for activation&lt;br /&gt;
&lt;br /&gt;
== Versions ==&lt;br /&gt;
&amp;lt;!-- Needs further analysis and clarification. --&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Current version:&#039;&#039;&#039; 1.0&lt;br /&gt;
* &#039;&#039;&#039;Latest release:&#039;&#039;&#039; &amp;lt;code&amp;gt;1011 final&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Release date:&#039;&#039;&#039; June 17, 2025&lt;br /&gt;
* &#039;&#039;&#039;Innovaphone compatibility:&#039;&#039;&#039; Yes&lt;br /&gt;
* &#039;&#039;&#039;Architectures supported:&#039;&#039;&#039; &amp;lt;code&amp;gt;arm&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;x86_64&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;arm64&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
Follow the steps below to install the &#039;&#039;&#039;Billboard&#039;&#039;&#039; application in your Innovaphone environment.&lt;br /&gt;
&lt;br /&gt;
=== Option 1: Installing via AP Manager App Store (Recommended) ===&lt;br /&gt;
You can install &#039;&#039;&#039;Billboard&#039;&#039;&#039; directly through the &#039;&#039;&#039;App Platform Manager&#039;&#039;&#039; (AP Manager) by accessing the App Store:&lt;br /&gt;
&lt;br /&gt;
# Open the &#039;&#039;&#039;AP Manager&#039;&#039;&#039;.&lt;br /&gt;
# Click the yellow &#039;&#039;&#039;App Store&#039;&#039;&#039; button in the top-right corner.&lt;br /&gt;
# Search for &#039;&#039;&#039;Billboard&#039;&#039;&#039; in the list.&lt;br /&gt;
# Click on it to open further information&lt;br /&gt;
# Select the latest version and confirm the download.&lt;br /&gt;
# The app will be automatically installed and ready to configure.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;🛈 This is the easiest and fastest way to deploy the app.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
[[File:Innovaphone MyApps Lab AppStore Button in AP Manager.png|none|thumb|436x436px|AppStore Button in AP Manager outlined]]&lt;br /&gt;
[[File:AP Manager Billboard.png|none|thumb|436x436px|AP Manager Appstore interface with actions outlined]]&lt;br /&gt;
&lt;br /&gt;
=== Option 2: Manual Installation via Upload ===&lt;br /&gt;
If you prefer installing manually, follow the steps below:&lt;br /&gt;
&lt;br /&gt;
==== Step 1: Download the App Package ====&lt;br /&gt;
&lt;br /&gt;
# Visit the official [https://appstore.wecom.com.br/release/WecomStore/1410593/download.htm Wecom myApps Downloads Portal].&lt;br /&gt;
# Find the &#039;&#039;&#039;Billboard&#039;&#039;&#039; app.&lt;br /&gt;
# Download the latest available version compatible with your system architecture.&lt;br /&gt;
[[File:Wecom MyApps App Store Billboard.png|none|thumb|418x418px|Billboard on MyApps&#039; Wecom&#039;s App Store]]&lt;br /&gt;
&lt;br /&gt;
==== Step 2: Upload to AP Manager ====&lt;br /&gt;
&lt;br /&gt;
# In &#039;&#039;&#039;AP Manager&#039;&#039;&#039;, click &#039;&#039;&#039;App upload&#039;&#039;&#039; (top right).&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;.app&amp;lt;/code&amp;gt; package you downloaded from the portal.&lt;br /&gt;
# After successful upload, the app will appear in your list and show as &#039;&#039;&#039;Running&#039;&#039;&#039;.&lt;br /&gt;
[[File:App Upload Button on MyApps AP Manager.png|none|thumb|487x487px|App Upload button on AP Manager outlined]]&lt;br /&gt;
[[File:Billboard on AP Manager.png|none|thumb|440x440px|Billboard on AP Manager]]&lt;br /&gt;
[[File:Billboard upload on App Manager.png|none|thumb|440x440px|Uploading Billboard on Ap Manager]]&lt;br /&gt;
&lt;br /&gt;
=== Step 3: Add Application Instance ===&lt;br /&gt;
&lt;br /&gt;
# After uploading the app, click the yellow &#039;&#039;&#039;+ Add&#039;&#039;&#039; button to create an instance of the application.&lt;br /&gt;
# Fill in the required fields:&lt;br /&gt;
#* &#039;&#039;&#039;Name:&#039;&#039;&#039; A recognizable name for the instance.&lt;br /&gt;
#* &#039;&#039;&#039;Domain:&#039;&#039;&#039; The domain for the PBX.&lt;br /&gt;
#* &#039;&#039;&#039;Password:&#039;&#039;&#039; A secure admin password for the app instance.&lt;br /&gt;
#* &#039;&#039;&#039;Webserver path:&#039;&#039;&#039; Optional path (or leave blank).&lt;br /&gt;
#* &#039;&#039;&#039;Database host:&#039;&#039;&#039; Leave empty for local DB or specify IP/DNS if external.&lt;br /&gt;
#* &#039;&#039;&#039;Database name&#039;&#039;&#039; and &#039;&#039;&#039;Database user&#039;&#039;&#039;: Use consistent values for your environment.&lt;br /&gt;
#* &#039;&#039;&#039;Database password:&#039;&#039;&#039; Corresponding DB password.&lt;br /&gt;
# When all values are filled, click &#039;&#039;&#039;Save&#039;&#039;&#039;.&lt;br /&gt;
[[File:AP Manager Billboard App Instance Creation Example.png|none|thumb|440x440px|Example of instance creation screen in AP Manager]]&lt;br /&gt;
&lt;br /&gt;
=== Final Step: Registering the App in PBX Manager ===&lt;br /&gt;
&lt;br /&gt;
# Open the &#039;&#039;&#039;PBX Manager&#039;&#039;&#039;.&lt;br /&gt;
# Go to the &#039;&#039;&#039;Apps&#039;&#039;&#039; section.&lt;br /&gt;
# Click &#039;&#039;&#039;Add App&#039;&#039;&#039; and register:&lt;br /&gt;
#* A &#039;&#039;&#039;Users App&#039;&#039;&#039;&lt;br /&gt;
#* An &#039;&#039;&#039;Admin App&#039;&#039;&#039;&lt;br /&gt;
# Assign access rights as needed.&lt;br /&gt;
[[File:PBX Manager Add an App Billboard Correct.png|none|thumb|440x440px|PBX Manager &#039;&#039;Add an App&#039;&#039; app selection]]&lt;br /&gt;
[[File:PBX Manager Billboard Add an App Config.png|none|thumb|440x440px|PBX Manager &#039;&#039;Add an App&#039;&#039; configuration]]&lt;br /&gt;
[[File:Billboard on PBX Manager Correct.png|none|thumb|440x440px|Billboard on PBX Manager configured]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⇒ After registration, both apps will appear in MyApps and are ready for use.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Copyright ==&lt;br /&gt;
&#039;&#039;Space dedicated to Flowe copyright information.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Contact ==&lt;br /&gt;
* &#039;&#039;&#039;PORTO ALEGRE - RS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Av. Carlos Gomes, 466 / 401&lt;br /&gt;
&lt;br /&gt;
Boa Vista - CEP 90480-000&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tel:&#039;&#039;&#039; +55 51 3079.5000&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;FLORIANÓPOLIS - SC&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SC 401, 8600 - Room 7&lt;br /&gt;
&lt;br /&gt;
Corporate Park - Block 2&lt;br /&gt;
&lt;br /&gt;
Santo Antônio de Lisboa&lt;br /&gt;
&lt;br /&gt;
CEP 88050-001&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tel:&#039;&#039;&#039; +55 48 3112.6200&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mail:&#039;&#039;&#039; [mailto:comercial@wecom.com.br comercial@wecom.com.br]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Support:&#039;&#039;&#039; [mailto:suporte@wecom.com.br suporte@wecom.com.br]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Website:&#039;&#039;&#039; [https://wecom.com.br/ wecom.com.br]&lt;br /&gt;
&lt;br /&gt;
For any questions please refer to [https://wecom.com.br/fale-conosco/ our contact page.]&lt;/div&gt;</summary>
		<author><name>Pablo.montiel</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=File:AP_Manager_Gcalendar_App_Instance_Creation_Example.png&amp;diff=77244</id>
		<title>File:AP Manager Gcalendar App Instance Creation Example.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=File:AP_Manager_Gcalendar_App_Instance_Creation_Example.png&amp;diff=77244"/>
		<updated>2025-07-01T18:15:52Z</updated>

		<summary type="html">&lt;p&gt;Pablo.montiel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;AP Manager Gcalendar App Instance Creation Example&lt;/div&gt;</summary>
		<author><name>Pablo.montiel</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=File:AP_Manager_Flowe_App_Instance_Creation_Example.png&amp;diff=77243</id>
		<title>File:AP Manager Flowe App Instance Creation Example.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=File:AP_Manager_Flowe_App_Instance_Creation_Example.png&amp;diff=77243"/>
		<updated>2025-07-01T18:14:55Z</updated>

		<summary type="html">&lt;p&gt;Pablo.montiel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;AP Manager Flowe App Instance Creation Example&lt;/div&gt;</summary>
		<author><name>Pablo.montiel</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=File:AP_Manager_Billboard_App_Instance_Creation_Example.png&amp;diff=77242</id>
		<title>File:AP Manager Billboard App Instance Creation Example.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=File:AP_Manager_Billboard_App_Instance_Creation_Example.png&amp;diff=77242"/>
		<updated>2025-07-01T18:13:20Z</updated>

		<summary type="html">&lt;p&gt;Pablo.montiel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;AP Manager Billboard App Instance Creation Example&lt;/div&gt;</summary>
		<author><name>Pablo.montiel</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Howto:Billboard_-_Wecom_-_Partner_App&amp;diff=77237</id>
		<title>Howto:Billboard - Wecom - Partner App</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Howto:Billboard_-_Wecom_-_Partner_App&amp;diff=77237"/>
		<updated>2025-07-01T11:17:33Z</updated>

		<summary type="html">&lt;p&gt;Pablo.montiel: /* Installation */ Image addition fixed&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FIXME|reason=Work in progress, still incomplete}}&lt;br /&gt;
&amp;lt;!-- Needed to add images: billboard logo, diagrams (2) to the component diagram, functions step-by-step, installation images, . --&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;float:right;&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Partner App Info&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |[[File:Wecom Billboard.png|alt=|center|frameless|200x200px|Billboard Icon]]&lt;br /&gt;
|-&lt;br /&gt;
!Name&lt;br /&gt;
|Billboard&lt;br /&gt;
|-&lt;br /&gt;
!Company&lt;br /&gt;
|Wecom&lt;br /&gt;
|-&lt;br /&gt;
!Version&lt;br /&gt;
|1.0&lt;br /&gt;
|-&lt;br /&gt;
!License&lt;br /&gt;
|Via Innovaphone Pricelist&lt;br /&gt;
|-&lt;br /&gt;
!Languages&lt;br /&gt;
|Czech, English, Estonian, French,&amp;lt;br&amp;gt;German, Italian, Polish, Portuguese,&amp;lt;br&amp;gt;Slovenian, Spanish&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Product Name ==&lt;br /&gt;
&#039;&#039;&#039;Billboard&#039;&#039;&#039; [https://wecom.com.br/ Link]&lt;br /&gt;
&lt;br /&gt;
== Certification Status ==&lt;br /&gt;
&amp;lt;!-- Do not remove comment. Will be added by Innovaphone upon document check &amp;amp; app availablity on app store. --&amp;gt;&lt;br /&gt;
&#039;&#039;Space dedicated to Billboard certification information.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Category ==&lt;br /&gt;
&#039;&#039;Space dedicated to Billboard category information.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Vendor ==&lt;br /&gt;
[[File:Logo wecom.png|alt=|thumb|Wecom&#039;s logo]]&lt;br /&gt;
Wecom&lt;br /&gt;
&lt;br /&gt;
* [https://wecom.com.br/ wecom.com.br]&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&#039;&#039;&#039;Billboard&#039;&#039;&#039; is a Partner App developed by &#039;&#039;&#039;Wecom&#039;&#039;&#039; to modernize internal communications by digitizing traditional bulletin boards. Through a user-friendly interface integrated into Innovaphone’s myApps workspace, departments (referred to as &amp;quot;groups&amp;quot; within the app) can publish announcements with scheduled validity, targeted visibility, and interaction tracking.&lt;br /&gt;
&lt;br /&gt;
Main components:&lt;br /&gt;
* &#039;&#039;&#039;Users App&#039;&#039;&#039; – For general users to access and interact with department posts.&lt;br /&gt;
* &#039;&#039;&#039;Admin App&#039;&#039;&#039; – For administrators to manage groups, posts, and licensing.&lt;br /&gt;
&lt;br /&gt;
== Functions ==&lt;br /&gt;
&amp;lt;!-- Section in analysis. --&amp;gt;&lt;br /&gt;
=== Users App ===&lt;br /&gt;
&lt;br /&gt;
The Users App is the interface where users access, read, create, and manage department posts, based on their permissions (viewer or editor). Each user sees only the groups they are part of.&lt;br /&gt;
&lt;br /&gt;
==== 1. Accessing a Group ====&lt;br /&gt;
&lt;br /&gt;
# Upon opening the Users App, the main screen lists all groups (departments) the user belongs to.&lt;br /&gt;
# To enter a group, simply click on the desired group.&amp;lt;blockquote&amp;gt;Groups are color-coded and may display badges for new or unseen posts.&amp;lt;/blockquote&amp;gt;[[File:Billboard Users Groups Page.png|none|thumb|450x450px|Users App main page with every group you are on]]&lt;br /&gt;
&lt;br /&gt;
==== 2. Creating a Group (Admins only) ====&lt;br /&gt;
&lt;br /&gt;
# Only users assigned with the &amp;quot;create department&amp;quot; permission (via Admin App) will see the &#039;&#039;&#039;Add+&#039;&#039;&#039; button on the main screen.[[File:4. Billboard Users Groups Page Button Outlined.png|none|thumb|450x450px|Groups page with &amp;quot;+ Add&amp;quot; button outlined]]&lt;br /&gt;
# Click &#039;&#039;&#039;Add+&#039;&#039;&#039; to open the group creation modal.&lt;br /&gt;
# Fill in:&lt;br /&gt;
#* Enter the &#039;&#039;&#039;Department Name&#039;&#039;&#039;&lt;br /&gt;
#* Select the color using the color picker&lt;br /&gt;
#* Assign users to roles:&lt;br /&gt;
#** &#039;&#039;&#039;Editor&#039;&#039;&#039; – Can manage posts, see group&#039;s history and edit the department.&lt;br /&gt;
#** &#039;&#039;&#039;Viewer&#039;&#039;&#039; – Can only view posts.&lt;br /&gt;
#* Clicking &amp;quot;Viewer&amp;quot; name label selects all users as viewers.[[File:5. Billboard Group Creation Modal.png|none|thumb|450x450px|Group creation modal with roles selection, color picking and name input]]&lt;br /&gt;
&lt;br /&gt;
==== 3. Viewing a Post ====&lt;br /&gt;
&lt;br /&gt;
# Inside a group, posts are displayed as cards.[[File:2. Billboard Posts Page (of a Group).png|none|thumb|450x450px|Posts inside a group]]&lt;br /&gt;
#* If you are an Editor, the post will also show the visibility period on the bottom of the card.&lt;br /&gt;
#* Unread posts display a red &#039;&#039;&#039;NEW&#039;&#039;&#039; label in the top-left corner of the card.&lt;br /&gt;
#** The label disappears as soon as the post is opened.[[File:2.5. Billboard New Post Card Editor View.png|none|thumb|350x350px|New post with visibility period]]&lt;br /&gt;
# Click on a post to open its details.[[File:3. Billboard Open Post.png|none|thumb|Open post with information and description]]&lt;br /&gt;
# The post view shows:&lt;br /&gt;
#* Type (External or Internal)&lt;br /&gt;
#* Creator&#039;s name&lt;br /&gt;
#* Start and end dates of visibility&lt;br /&gt;
# To close the post, click the &#039;&#039;&#039;X&#039;&#039;&#039; button in the top right corner.&lt;br /&gt;
&lt;br /&gt;
==== 4. Creating a Post ====&lt;br /&gt;
&lt;br /&gt;
# Editors will see an &#039;&#039;&#039;Add+&#039;&#039;&#039; card within the department page.[[File:6. Billboard Posts Page with Add Card.png|none|thumb|450x450px|Posts on a group with Editor view, with &amp;quot;Add+&amp;quot; card]]&lt;br /&gt;
# Click it to open the post creation modal.&lt;br /&gt;
# Fill in the following:&lt;br /&gt;
#* &#039;&#039;&#039;Title&#039;&#039;&#039; (top input)&lt;br /&gt;
#* &#039;&#039;&#039;Description&#039;&#039;&#039; (main text area)&lt;br /&gt;
#* &#039;&#039;&#039;Start and end dates&#039;&#039;&#039;[[File:6.1. Billboard Post Start and End Date Picking.png|none|thumb|350x350px|Post start and end date time picking]]&lt;br /&gt;
#* &#039;&#039;&#039;Type&#039;&#039;&#039; (Internal or External)[[File:6.2. Billboard Post Type Drop Down Select.png|none|thumb|300x300px|Type drop down selection]]&lt;br /&gt;
#* &#039;&#039;&#039;Color&#039;&#039;&#039; (default is black if not selected)[[File:6.3. Billboard Post Color Picker.png|none|thumb|300x300px|Post and group color picker]]&lt;br /&gt;
# Click &#039;&#039;&#039;Insert&#039;&#039;&#039; to save or &#039;&#039;&#039;Close&#039;&#039;&#039; to cancel.[[File:7. Billboard Post Creation Modal.png|none|thumb|400x400px|Post creation and editing modal]]&lt;br /&gt;
&lt;br /&gt;
==== 5. Editing or Deleting a Post ====&lt;br /&gt;
&lt;br /&gt;
# If you are the creator or an editor of the group:&lt;br /&gt;
#* Click the pencil icon to edit – the modal opens pre-filled with existing data.&lt;br /&gt;
#* Click the trash icon to delete – the post is removed immediately.[[File:8. Billboard Post View as Editor Actions Outlined.png|none|thumb|400x400px|Post view as Editor with actions outlined]]&lt;br /&gt;
&lt;br /&gt;
==== 6. Viewing Post History ====&lt;br /&gt;
&lt;br /&gt;
# Inside the post, click the &#039;&#039;&#039;Clock&#039;&#039;&#039; icon to view who has accessed it.&lt;br /&gt;
#* The view shows user names and access timestamps.&lt;br /&gt;
#* A back arrow icon replaces the clock to return to the post details.[[File:9. Billboard Post History.png|none|thumb|350x350px|Post history of who has viewed and when]]&lt;br /&gt;
&lt;br /&gt;
==== 7. Managing Groups (Editor role) ====&lt;br /&gt;
&lt;br /&gt;
* Editors see extra options in the bottom menu of the department page.[[File:10. Billboard Posts Page with Bottom Menu Outlined.png|none|thumb|Posts on a group as an Editor with bottom menu outlined]]&lt;br /&gt;
# Click the trash icon to delete the group.&lt;br /&gt;
# Click the clock icon to access post history.&lt;br /&gt;
#* You can filter posts:&lt;br /&gt;
#** By time period (Today, Last 7 days, Custom...)&lt;br /&gt;
#** By deleted or active status[[File:11. Billboard Posts Time Filter Drop Down.png|none|thumb|Group&#039;s posts history drop down time filter]][[File:12. Billboard Posts Time Filter Custom.png|none|thumb|Group&#039;s posts history time filter with custom period time picking]]&lt;br /&gt;
# Click the gear icon to edit group settings:&lt;br /&gt;
#* Change the name or color&lt;br /&gt;
#* Modify members and their roles[[File:13. Billboard Group Editing.png|none|thumb|Group editing modal with users and their roles that were previous selected ]]&lt;br /&gt;
&lt;br /&gt;
=== Admin App ===&lt;br /&gt;
&lt;br /&gt;
The Admin App provides global management functionalities for users, groups (departments), and posts. Only users marked as administrators via this panel will have access to it.&lt;br /&gt;
&lt;br /&gt;
==== 1. Granting Administrator Access ====&lt;br /&gt;
&lt;br /&gt;
# Access the Admin App – it will open on the &#039;&#039;&#039;Users Page&#039;&#039;&#039; by default.&lt;br /&gt;
# Use the &#039;&#039;&#039;search bar&#039;&#039;&#039; at the top to find the user you wish to promote.&lt;br /&gt;
# Locate the user in the list below.&lt;br /&gt;
# Click the checkbox next to their name to grant administrator privileges.&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Only an existing admin can assign admin rights to another user.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
[[File:A1. Billboard Admin Users Page.png|none|thumb|450x450px|Users Page with search bar and checkboxes for admin privileges]]&lt;br /&gt;
&lt;br /&gt;
==== 2. Managing the Billboard License ====&lt;br /&gt;
&lt;br /&gt;
# In the Admin App sidebar, click on the &#039;&#039;&#039;Licensing&#039;&#039;&#039; tab.&lt;br /&gt;
# Review the license information displayed on the page.&lt;br /&gt;
# If activating a license:&lt;br /&gt;
## Enter the provided &#039;&#039;&#039;License Key&#039;&#039;&#039;.&lt;br /&gt;
## Click on the &#039;&#039;&#039;Ok&#039;&#039;&#039; activation button on the bottom-right corner to validate and enable the license.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;System Token&#039;&#039;&#039;: Unique identifier required to validate the license.&lt;br /&gt;
* &#039;&#039;&#039;License Key&#039;&#039;&#039;: Provided by Wecom for unlocking the application.&lt;br /&gt;
* &#039;&#039;&#039;Active License&#039;&#039;&#039;: Displays whether the license is valid and how many users are supported.&lt;br /&gt;
* &#039;&#039;&#039;Temporary License Expiration&#039;&#039;&#039;: Shows when the 30-day trial period ends.&lt;br /&gt;
* &#039;&#039;&#039;Installation Date&#039;&#039;&#039;: Indicates when the active license was installed.&lt;br /&gt;
* &#039;&#039;&#039;Licenses in Use&#039;&#039;&#039;: Number of users currently connected to the Billboard Users App.&lt;br /&gt;
[[File:A2, Billboard Admin License Page.png|none|thumb|450x450px|Licensing page showing all license details and activation fields]]&lt;br /&gt;
&lt;br /&gt;
==== 3. Managing Departments ====&lt;br /&gt;
&lt;br /&gt;
# In the Admin App sidebar, click on the &#039;&#039;&#039;Departments&#039;&#039;&#039; tab.&lt;br /&gt;
# Browse the list of all departments created in the system.&lt;br /&gt;
# Scroll to locate the department you wish to edit.&lt;br /&gt;
# Click on the &#039;&#039;&#039;color circle&#039;&#039;&#039; next to the department to open the editing modal.&lt;br /&gt;
# In the modal:&lt;br /&gt;
## Update the department&#039;s name.&lt;br /&gt;
## Change its color using the color picker.&lt;br /&gt;
## Add or remove users as &#039;&#039;&#039;Editors&#039;&#039;&#039; or &#039;&#039;&#039;Viewers&#039;&#039;&#039;.&lt;br /&gt;
## Save the changes to apply them.&lt;br /&gt;
[[File:A3.1. Billboard Admin Group Management.png|none|thumb|450x450px|Group management modal]]&lt;br /&gt;
&lt;br /&gt;
* The list includes all departments, including those marked as deleted.&lt;br /&gt;
* Deleted departments are labeled with their deletion date.&lt;br /&gt;
* Each department entry shows:&lt;br /&gt;
** Department name&lt;br /&gt;
** Assigned color&lt;br /&gt;
** Creator&#039;s name&lt;br /&gt;
** Status (active or deleted)&lt;br /&gt;
[[File:A3. Billboard Admin Departments Page.png|none|thumb|450x450px|Departments list with edit modal access]]&lt;br /&gt;
&lt;br /&gt;
==== 4. Managing Posts ====&lt;br /&gt;
&lt;br /&gt;
# Click on the &#039;&#039;&#039;Posts&#039;&#039;&#039; tab in the Admin App sidebar.&lt;br /&gt;
# Browse the full list of posts created across all departments.&lt;br /&gt;
# Scroll to locate a specific post.&lt;br /&gt;
# Click the &#039;&#039;&#039;edit icon&#039;&#039;&#039; next to a post to open the editing modal.&lt;br /&gt;
# In the modal:&lt;br /&gt;
## Modify the title, description, color, type, and visibility period.&lt;br /&gt;
## Save the changes to update the post.&lt;br /&gt;
[[File:A4.1. ABillboard Admin Post Management.png|none|thumb|450x450px|Post management modal]]&lt;br /&gt;
&lt;br /&gt;
* The post list includes:&lt;br /&gt;
** Active posts&lt;br /&gt;
** Expired posts&lt;br /&gt;
** Deleted posts (showing the deletion date)&lt;br /&gt;
* Each post displays:&lt;br /&gt;
** Title&lt;br /&gt;
** Department (group) association&lt;br /&gt;
** Type: Internal or External&lt;br /&gt;
** Start and end dates (visibility period)&lt;br /&gt;
** Creator&#039;s name&lt;br /&gt;
** Current status: active, expired, or deleted&lt;br /&gt;
[[File:A4. Billboard Admin Posts Page.png|none|thumb|450x450px|All posts view with status, creator, and edit access]]&lt;br /&gt;
&lt;br /&gt;
==== 5. Accessing Public Posts ====&lt;br /&gt;
&lt;br /&gt;
# In the sidebar, click on the &#039;&#039;&#039;Public Posts&#039;&#039;&#039; tab.&lt;br /&gt;
# A modal will appear, redirecting you to the Billboard &#039;&#039;&#039;Users App&#039;&#039;&#039; to view a list of posts.&lt;br /&gt;
# Click on any post from this list.&lt;br /&gt;
&lt;br /&gt;
* Only posts with the &amp;quot;External&amp;quot; type selected during creation appear here.&lt;br /&gt;
* This page is read-only and used for quick access to public content.&lt;br /&gt;
[[File:A5. Billboard Admin Public Posts Modal.png|none|thumb|450x450px|Public posts modal with redirect to Users App]]&lt;br /&gt;
&lt;br /&gt;
== Component Diagram ==&lt;br /&gt;
The diagrams below illustrate the architecture of the &#039;&#039;&#039;Billboard&#039;&#039;&#039; application and its interaction with the Innovaphone platform, as well as the various components involved.&lt;br /&gt;
&lt;br /&gt;
=== User and Admin Interaction Flow ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Flow Overview:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;ADMIN:&#039;&#039;&#039; The administrator has the ability to manage groups and posts across the system, including controlling visibility and user access.&lt;br /&gt;
* &#039;&#039;&#039;DEPARTMENT (Group):&#039;&#039;&#039; Represents different groups (like IT and HR), each having specific announcements and user interactions.&lt;br /&gt;
* &#039;&#039;&#039;NOTES:&#039;&#039;&#039; Each group can have specific notes (e.g., IT or HR), which are shown to relevant users.&lt;br /&gt;
* &#039;&#039;&#039;USERS:&#039;&#039;&#039; Users from various groups (IT, HR, and General) can access posts that are published within their allowed groups.&lt;br /&gt;
&lt;br /&gt;
=== Application Architecture ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Flow Overview:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;PBX Platform:&#039;&#039;&#039; Interacts with the &#039;&#039;&#039;Billboard App&#039;&#039;&#039;, managing internal communication and service integration.&lt;br /&gt;
* &#039;&#039;&#039;APP Platform:&#039;&#039;&#039; Hosts the &#039;&#039;&#039;Billboard Service&#039;&#039;&#039;, which manages posts and user interactions, and communicates with the database.&lt;br /&gt;
* &#039;&#039;&#039;Service DWC:&#039;&#039;&#039; Responsible for managing the backend services for the Billboard app, providing routes to interact with both the database and the PBX platform.&lt;br /&gt;
&lt;br /&gt;
This architecture shows how the components integrate within the Innovaphone ecosystem, allowing for seamless communication between groups and users through the &#039;&#039;&#039;Billboard&#039;&#039;&#039; app.&lt;br /&gt;
&lt;br /&gt;
== Licensing ==&lt;br /&gt;
&amp;lt;!-- Needs further analysis and clarification. --&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Billboard&#039;&#039;&#039; is licensed via the Innovaphone Pricelist.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;License type:&#039;&#039;&#039; Innovaphone Pricelist  &lt;br /&gt;
&#039;&#039;&#039;License model:&#039;&#039;&#039; One license per user&lt;br /&gt;
&#039;&#039;&#039;Trial:&#039;&#039;&#039; 30 days temporary license available after installation  &lt;br /&gt;
&#039;&#039;&#039;Listed at:&#039;&#039;&#039; https://www.innovaphone.com/en/services/licenses/partner-apps.html?app=Billboard&amp;amp;type=license#billboard&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
&amp;lt;!-- Needs further analysis and clarification. --&amp;gt;&lt;br /&gt;
=== System Requirements ===&lt;br /&gt;
&lt;br /&gt;
* Innovaphone firmware: &amp;lt;code&amp;gt;14r1&amp;lt;/code&amp;gt; or later&lt;br /&gt;
* Innovaphone App Platform with myApps&lt;br /&gt;
* PBX Manager for app registration&lt;br /&gt;
&lt;br /&gt;
=== Licensing Activation ===&lt;br /&gt;
&lt;br /&gt;
* Requires license token and file provided by Wecom&lt;br /&gt;
* Insert into Admin interface for activation&lt;br /&gt;
&lt;br /&gt;
== Versions ==&lt;br /&gt;
&amp;lt;!-- Needs further analysis and clarification. --&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Current version:&#039;&#039;&#039; 1.0&lt;br /&gt;
* &#039;&#039;&#039;Latest release:&#039;&#039;&#039; &amp;lt;code&amp;gt;1011 final&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Release date:&#039;&#039;&#039; June 17, 2025&lt;br /&gt;
* &#039;&#039;&#039;Innovaphone compatibility:&#039;&#039;&#039; Yes&lt;br /&gt;
* &#039;&#039;&#039;Architectures supported:&#039;&#039;&#039; &amp;lt;code&amp;gt;arm&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;x86_64&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;arm64&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
Follow the steps below to install the &#039;&#039;&#039;Billboard&#039;&#039;&#039; application in your Innovaphone environment.&lt;br /&gt;
&lt;br /&gt;
=== Option 1: Installing via AP Manager App Store (Recommended) ===&lt;br /&gt;
You can install &#039;&#039;&#039;Billboard&#039;&#039;&#039; directly through the &#039;&#039;&#039;App Platform Manager&#039;&#039;&#039; (AP Manager) by accessing the App Store:&lt;br /&gt;
&lt;br /&gt;
# Open the &#039;&#039;&#039;AP Manager&#039;&#039;&#039;.&lt;br /&gt;
# Click the yellow &#039;&#039;&#039;App Store&#039;&#039;&#039; button in the top-right corner.&lt;br /&gt;
# Search for &#039;&#039;&#039;Billboard&#039;&#039;&#039; in the list.&lt;br /&gt;
# Click on it to open further information&lt;br /&gt;
# Select the latest version and confirm the download.&lt;br /&gt;
# The app will be automatically installed and ready to configure.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;🛈 This is the easiest and fastest way to deploy the app.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
[[File:Innovaphone MyApps Lab AppStore Button in AP Manager.png|none|thumb|436x436px|AppStore Button in AP Manager outlined]]&lt;br /&gt;
[[File:AP Manager Billboard.png|none|thumb|436x436px|AP Manager Appstore interface with actions outlined]]&lt;br /&gt;
&lt;br /&gt;
=== Option 2: Manual Installation via Upload ===&lt;br /&gt;
If you prefer installing manually, follow the steps below:&lt;br /&gt;
&lt;br /&gt;
==== Step 1: Download the App Package ====&lt;br /&gt;
&lt;br /&gt;
# Visit the official [https://appstore.wecom.com.br/release/WecomStore/1410593/download.htm Wecom myApps Downloads Portal].&lt;br /&gt;
# Find the &#039;&#039;&#039;Billboard&#039;&#039;&#039; app.&lt;br /&gt;
# Download the latest available version compatible with your system architecture.&lt;br /&gt;
[[File:Wecom MyApps App Store Billboard.png|none|thumb|418x418px|Billboard on MyApps&#039; Wecom&#039;s App Store]]&lt;br /&gt;
&lt;br /&gt;
==== Step 2: Upload to AP Manager ====&lt;br /&gt;
&lt;br /&gt;
# In &#039;&#039;&#039;AP Manager&#039;&#039;&#039;, click &#039;&#039;&#039;App upload&#039;&#039;&#039; (top right).&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;.app&amp;lt;/code&amp;gt; package you downloaded from the portal.&lt;br /&gt;
# After successful upload, the app will appear in your list and show as &#039;&#039;&#039;Running&#039;&#039;&#039;.&lt;br /&gt;
[[File:App Upload Button on MyApps AP Manager.png|none|thumb|487x487px|App Upload button on AP Manager outlined]]&lt;br /&gt;
[[File:Billboard on AP Manager.png|none|thumb|440x440px|Billboard on AP Manager]]&lt;br /&gt;
[[File:Billboard upload on App Manager.png|none|thumb|440x440px|Uploading Billboard on Ap Manager]]&lt;br /&gt;
&lt;br /&gt;
=== Final Step: Registering the App in PBX Manager ===&lt;br /&gt;
&lt;br /&gt;
# Open the &#039;&#039;&#039;PBX Manager&#039;&#039;&#039;.&lt;br /&gt;
# Go to the &#039;&#039;&#039;Apps&#039;&#039;&#039; section.&lt;br /&gt;
# Click &#039;&#039;&#039;Add App&#039;&#039;&#039; and register:&lt;br /&gt;
#* A &#039;&#039;&#039;Users App&#039;&#039;&#039;&lt;br /&gt;
#* An &#039;&#039;&#039;Admin App&#039;&#039;&#039;&lt;br /&gt;
# Assign access rights as needed.&lt;br /&gt;
[[File:PBX Manager Add an App Billboard Correct.png|none|thumb|440x440px|PBX Manager &#039;&#039;Add an App&#039;&#039; app selection]]&lt;br /&gt;
[[File:PBX Manager Billboard Add an App Config.png|none|thumb|440x440px|PBX Manager &#039;&#039;Add an App&#039;&#039; configuration]]&lt;br /&gt;
[[File:Billboard on PBX Manager Correct.png|none|thumb|440x440px|Billboard on PBX Manager configured]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⇒ After registration, both apps will appear in MyApps and are ready for use.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Copyright ==&lt;br /&gt;
&#039;&#039;Space dedicated to Flowe copyright information.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Contact ==&lt;br /&gt;
* &#039;&#039;&#039;PORTO ALEGRE - RS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Av. Carlos Gomes, 466 / 401&lt;br /&gt;
&lt;br /&gt;
Boa Vista - CEP 90480-000&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tel:&#039;&#039;&#039; +55 51 3079.5000&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;FLORIANÓPOLIS - SC&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SC 401, 8600 - Room 7&lt;br /&gt;
&lt;br /&gt;
Corporate Park - Block 2&lt;br /&gt;
&lt;br /&gt;
Santo Antônio de Lisboa&lt;br /&gt;
&lt;br /&gt;
CEP 88050-001&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tel:&#039;&#039;&#039; +55 48 3112.6200&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mail:&#039;&#039;&#039; [mailto:comercial@wecom.com.br comercial@wecom.com.br]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Support:&#039;&#039;&#039; [mailto:suporte@wecom.com.br suporte@wecom.com.br]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Website:&#039;&#039;&#039; [https://wecom.com.br/ wecom.com.br]&lt;br /&gt;
&lt;br /&gt;
For any questions please refer to [https://wecom.com.br/fale-conosco/ our contact page.]&lt;/div&gt;</summary>
		<author><name>Pablo.montiel</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=File:Billboard_on_PBX_Manager_Correct.png&amp;diff=77236</id>
		<title>File:Billboard on PBX Manager Correct.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=File:Billboard_on_PBX_Manager_Correct.png&amp;diff=77236"/>
		<updated>2025-07-01T11:16:43Z</updated>

		<summary type="html">&lt;p&gt;Pablo.montiel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Billboard on PBX Manager Correct&lt;/div&gt;</summary>
		<author><name>Pablo.montiel</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=File:PBX_Manager_Add_an_App_Billboard_Correct.png&amp;diff=77235</id>
		<title>File:PBX Manager Add an App Billboard Correct.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=File:PBX_Manager_Add_an_App_Billboard_Correct.png&amp;diff=77235"/>
		<updated>2025-07-01T11:15:57Z</updated>

		<summary type="html">&lt;p&gt;Pablo.montiel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;PBX Manager Add an App Billboard Correct&lt;/div&gt;</summary>
		<author><name>Pablo.montiel</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Howto:Billboard_-_Wecom_-_Partner_App&amp;diff=77234</id>
		<title>Howto:Billboard - Wecom - Partner App</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Howto:Billboard_-_Wecom_-_Partner_App&amp;diff=77234"/>
		<updated>2025-07-01T11:11:51Z</updated>

		<summary type="html">&lt;p&gt;Pablo.montiel: /* Installation */ Image additions for installation step by step&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FIXME|reason=Work in progress, still incomplete}}&lt;br /&gt;
&amp;lt;!-- Needed to add images: billboard logo, diagrams (2) to the component diagram, functions step-by-step, installation images, . --&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;float:right;&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Partner App Info&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |[[File:Wecom Billboard.png|alt=|center|frameless|200x200px|Billboard Icon]]&lt;br /&gt;
|-&lt;br /&gt;
!Name&lt;br /&gt;
|Billboard&lt;br /&gt;
|-&lt;br /&gt;
!Company&lt;br /&gt;
|Wecom&lt;br /&gt;
|-&lt;br /&gt;
!Version&lt;br /&gt;
|1.0&lt;br /&gt;
|-&lt;br /&gt;
!License&lt;br /&gt;
|Via Innovaphone Pricelist&lt;br /&gt;
|-&lt;br /&gt;
!Languages&lt;br /&gt;
|Czech, English, Estonian, French,&amp;lt;br&amp;gt;German, Italian, Polish, Portuguese,&amp;lt;br&amp;gt;Slovenian, Spanish&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Product Name ==&lt;br /&gt;
&#039;&#039;&#039;Billboard&#039;&#039;&#039; [https://wecom.com.br/ Link]&lt;br /&gt;
&lt;br /&gt;
== Certification Status ==&lt;br /&gt;
&amp;lt;!-- Do not remove comment. Will be added by Innovaphone upon document check &amp;amp; app availablity on app store. --&amp;gt;&lt;br /&gt;
&#039;&#039;Space dedicated to Billboard certification information.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Category ==&lt;br /&gt;
&#039;&#039;Space dedicated to Billboard category information.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Vendor ==&lt;br /&gt;
[[File:Logo wecom.png|alt=|thumb|Wecom&#039;s logo]]&lt;br /&gt;
Wecom&lt;br /&gt;
&lt;br /&gt;
* [https://wecom.com.br/ wecom.com.br]&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&#039;&#039;&#039;Billboard&#039;&#039;&#039; is a Partner App developed by &#039;&#039;&#039;Wecom&#039;&#039;&#039; to modernize internal communications by digitizing traditional bulletin boards. Through a user-friendly interface integrated into Innovaphone’s myApps workspace, departments (referred to as &amp;quot;groups&amp;quot; within the app) can publish announcements with scheduled validity, targeted visibility, and interaction tracking.&lt;br /&gt;
&lt;br /&gt;
Main components:&lt;br /&gt;
* &#039;&#039;&#039;Users App&#039;&#039;&#039; – For general users to access and interact with department posts.&lt;br /&gt;
* &#039;&#039;&#039;Admin App&#039;&#039;&#039; – For administrators to manage groups, posts, and licensing.&lt;br /&gt;
&lt;br /&gt;
== Functions ==&lt;br /&gt;
&amp;lt;!-- Section in analysis. --&amp;gt;&lt;br /&gt;
=== Users App ===&lt;br /&gt;
&lt;br /&gt;
The Users App is the interface where users access, read, create, and manage department posts, based on their permissions (viewer or editor). Each user sees only the groups they are part of.&lt;br /&gt;
&lt;br /&gt;
==== 1. Accessing a Group ====&lt;br /&gt;
&lt;br /&gt;
# Upon opening the Users App, the main screen lists all groups (departments) the user belongs to.&lt;br /&gt;
# To enter a group, simply click on the desired group.&amp;lt;blockquote&amp;gt;Groups are color-coded and may display badges for new or unseen posts.&amp;lt;/blockquote&amp;gt;[[File:Billboard Users Groups Page.png|none|thumb|450x450px|Users App main page with every group you are on]]&lt;br /&gt;
&lt;br /&gt;
==== 2. Creating a Group (Admins only) ====&lt;br /&gt;
&lt;br /&gt;
# Only users assigned with the &amp;quot;create department&amp;quot; permission (via Admin App) will see the &#039;&#039;&#039;Add+&#039;&#039;&#039; button on the main screen.[[File:4. Billboard Users Groups Page Button Outlined.png|none|thumb|450x450px|Groups page with &amp;quot;+ Add&amp;quot; button outlined]]&lt;br /&gt;
# Click &#039;&#039;&#039;Add+&#039;&#039;&#039; to open the group creation modal.&lt;br /&gt;
# Fill in:&lt;br /&gt;
#* Enter the &#039;&#039;&#039;Department Name&#039;&#039;&#039;&lt;br /&gt;
#* Select the color using the color picker&lt;br /&gt;
#* Assign users to roles:&lt;br /&gt;
#** &#039;&#039;&#039;Editor&#039;&#039;&#039; – Can manage posts, see group&#039;s history and edit the department.&lt;br /&gt;
#** &#039;&#039;&#039;Viewer&#039;&#039;&#039; – Can only view posts.&lt;br /&gt;
#* Clicking &amp;quot;Viewer&amp;quot; name label selects all users as viewers.[[File:5. Billboard Group Creation Modal.png|none|thumb|450x450px|Group creation modal with roles selection, color picking and name input]]&lt;br /&gt;
&lt;br /&gt;
==== 3. Viewing a Post ====&lt;br /&gt;
&lt;br /&gt;
# Inside a group, posts are displayed as cards.[[File:2. Billboard Posts Page (of a Group).png|none|thumb|450x450px|Posts inside a group]]&lt;br /&gt;
#* If you are an Editor, the post will also show the visibility period on the bottom of the card.&lt;br /&gt;
#* Unread posts display a red &#039;&#039;&#039;NEW&#039;&#039;&#039; label in the top-left corner of the card.&lt;br /&gt;
#** The label disappears as soon as the post is opened.[[File:2.5. Billboard New Post Card Editor View.png|none|thumb|350x350px|New post with visibility period]]&lt;br /&gt;
# Click on a post to open its details.[[File:3. Billboard Open Post.png|none|thumb|Open post with information and description]]&lt;br /&gt;
# The post view shows:&lt;br /&gt;
#* Type (External or Internal)&lt;br /&gt;
#* Creator&#039;s name&lt;br /&gt;
#* Start and end dates of visibility&lt;br /&gt;
# To close the post, click the &#039;&#039;&#039;X&#039;&#039;&#039; button in the top right corner.&lt;br /&gt;
&lt;br /&gt;
==== 4. Creating a Post ====&lt;br /&gt;
&lt;br /&gt;
# Editors will see an &#039;&#039;&#039;Add+&#039;&#039;&#039; card within the department page.[[File:6. Billboard Posts Page with Add Card.png|none|thumb|450x450px|Posts on a group with Editor view, with &amp;quot;Add+&amp;quot; card]]&lt;br /&gt;
# Click it to open the post creation modal.&lt;br /&gt;
# Fill in the following:&lt;br /&gt;
#* &#039;&#039;&#039;Title&#039;&#039;&#039; (top input)&lt;br /&gt;
#* &#039;&#039;&#039;Description&#039;&#039;&#039; (main text area)&lt;br /&gt;
#* &#039;&#039;&#039;Start and end dates&#039;&#039;&#039;[[File:6.1. Billboard Post Start and End Date Picking.png|none|thumb|350x350px|Post start and end date time picking]]&lt;br /&gt;
#* &#039;&#039;&#039;Type&#039;&#039;&#039; (Internal or External)[[File:6.2. Billboard Post Type Drop Down Select.png|none|thumb|300x300px|Type drop down selection]]&lt;br /&gt;
#* &#039;&#039;&#039;Color&#039;&#039;&#039; (default is black if not selected)[[File:6.3. Billboard Post Color Picker.png|none|thumb|300x300px|Post and group color picker]]&lt;br /&gt;
# Click &#039;&#039;&#039;Insert&#039;&#039;&#039; to save or &#039;&#039;&#039;Close&#039;&#039;&#039; to cancel.[[File:7. Billboard Post Creation Modal.png|none|thumb|400x400px|Post creation and editing modal]]&lt;br /&gt;
&lt;br /&gt;
==== 5. Editing or Deleting a Post ====&lt;br /&gt;
&lt;br /&gt;
# If you are the creator or an editor of the group:&lt;br /&gt;
#* Click the pencil icon to edit – the modal opens pre-filled with existing data.&lt;br /&gt;
#* Click the trash icon to delete – the post is removed immediately.[[File:8. Billboard Post View as Editor Actions Outlined.png|none|thumb|400x400px|Post view as Editor with actions outlined]]&lt;br /&gt;
&lt;br /&gt;
==== 6. Viewing Post History ====&lt;br /&gt;
&lt;br /&gt;
# Inside the post, click the &#039;&#039;&#039;Clock&#039;&#039;&#039; icon to view who has accessed it.&lt;br /&gt;
#* The view shows user names and access timestamps.&lt;br /&gt;
#* A back arrow icon replaces the clock to return to the post details.[[File:9. Billboard Post History.png|none|thumb|350x350px|Post history of who has viewed and when]]&lt;br /&gt;
&lt;br /&gt;
==== 7. Managing Groups (Editor role) ====&lt;br /&gt;
&lt;br /&gt;
* Editors see extra options in the bottom menu of the department page.[[File:10. Billboard Posts Page with Bottom Menu Outlined.png|none|thumb|Posts on a group as an Editor with bottom menu outlined]]&lt;br /&gt;
# Click the trash icon to delete the group.&lt;br /&gt;
# Click the clock icon to access post history.&lt;br /&gt;
#* You can filter posts:&lt;br /&gt;
#** By time period (Today, Last 7 days, Custom...)&lt;br /&gt;
#** By deleted or active status[[File:11. Billboard Posts Time Filter Drop Down.png|none|thumb|Group&#039;s posts history drop down time filter]][[File:12. Billboard Posts Time Filter Custom.png|none|thumb|Group&#039;s posts history time filter with custom period time picking]]&lt;br /&gt;
# Click the gear icon to edit group settings:&lt;br /&gt;
#* Change the name or color&lt;br /&gt;
#* Modify members and their roles[[File:13. Billboard Group Editing.png|none|thumb|Group editing modal with users and their roles that were previous selected ]]&lt;br /&gt;
&lt;br /&gt;
=== Admin App ===&lt;br /&gt;
&lt;br /&gt;
The Admin App provides global management functionalities for users, groups (departments), and posts. Only users marked as administrators via this panel will have access to it.&lt;br /&gt;
&lt;br /&gt;
==== 1. Granting Administrator Access ====&lt;br /&gt;
&lt;br /&gt;
# Access the Admin App – it will open on the &#039;&#039;&#039;Users Page&#039;&#039;&#039; by default.&lt;br /&gt;
# Use the &#039;&#039;&#039;search bar&#039;&#039;&#039; at the top to find the user you wish to promote.&lt;br /&gt;
# Locate the user in the list below.&lt;br /&gt;
# Click the checkbox next to their name to grant administrator privileges.&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Only an existing admin can assign admin rights to another user.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
[[File:A1. Billboard Admin Users Page.png|none|thumb|450x450px|Users Page with search bar and checkboxes for admin privileges]]&lt;br /&gt;
&lt;br /&gt;
==== 2. Managing the Billboard License ====&lt;br /&gt;
&lt;br /&gt;
# In the Admin App sidebar, click on the &#039;&#039;&#039;Licensing&#039;&#039;&#039; tab.&lt;br /&gt;
# Review the license information displayed on the page.&lt;br /&gt;
# If activating a license:&lt;br /&gt;
## Enter the provided &#039;&#039;&#039;License Key&#039;&#039;&#039;.&lt;br /&gt;
## Click on the &#039;&#039;&#039;Ok&#039;&#039;&#039; activation button on the bottom-right corner to validate and enable the license.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;System Token&#039;&#039;&#039;: Unique identifier required to validate the license.&lt;br /&gt;
* &#039;&#039;&#039;License Key&#039;&#039;&#039;: Provided by Wecom for unlocking the application.&lt;br /&gt;
* &#039;&#039;&#039;Active License&#039;&#039;&#039;: Displays whether the license is valid and how many users are supported.&lt;br /&gt;
* &#039;&#039;&#039;Temporary License Expiration&#039;&#039;&#039;: Shows when the 30-day trial period ends.&lt;br /&gt;
* &#039;&#039;&#039;Installation Date&#039;&#039;&#039;: Indicates when the active license was installed.&lt;br /&gt;
* &#039;&#039;&#039;Licenses in Use&#039;&#039;&#039;: Number of users currently connected to the Billboard Users App.&lt;br /&gt;
[[File:A2, Billboard Admin License Page.png|none|thumb|450x450px|Licensing page showing all license details and activation fields]]&lt;br /&gt;
&lt;br /&gt;
==== 3. Managing Departments ====&lt;br /&gt;
&lt;br /&gt;
# In the Admin App sidebar, click on the &#039;&#039;&#039;Departments&#039;&#039;&#039; tab.&lt;br /&gt;
# Browse the list of all departments created in the system.&lt;br /&gt;
# Scroll to locate the department you wish to edit.&lt;br /&gt;
# Click on the &#039;&#039;&#039;color circle&#039;&#039;&#039; next to the department to open the editing modal.&lt;br /&gt;
# In the modal:&lt;br /&gt;
## Update the department&#039;s name.&lt;br /&gt;
## Change its color using the color picker.&lt;br /&gt;
## Add or remove users as &#039;&#039;&#039;Editors&#039;&#039;&#039; or &#039;&#039;&#039;Viewers&#039;&#039;&#039;.&lt;br /&gt;
## Save the changes to apply them.&lt;br /&gt;
[[File:A3.1. Billboard Admin Group Management.png|none|thumb|450x450px|Group management modal]]&lt;br /&gt;
&lt;br /&gt;
* The list includes all departments, including those marked as deleted.&lt;br /&gt;
* Deleted departments are labeled with their deletion date.&lt;br /&gt;
* Each department entry shows:&lt;br /&gt;
** Department name&lt;br /&gt;
** Assigned color&lt;br /&gt;
** Creator&#039;s name&lt;br /&gt;
** Status (active or deleted)&lt;br /&gt;
[[File:A3. Billboard Admin Departments Page.png|none|thumb|450x450px|Departments list with edit modal access]]&lt;br /&gt;
&lt;br /&gt;
==== 4. Managing Posts ====&lt;br /&gt;
&lt;br /&gt;
# Click on the &#039;&#039;&#039;Posts&#039;&#039;&#039; tab in the Admin App sidebar.&lt;br /&gt;
# Browse the full list of posts created across all departments.&lt;br /&gt;
# Scroll to locate a specific post.&lt;br /&gt;
# Click the &#039;&#039;&#039;edit icon&#039;&#039;&#039; next to a post to open the editing modal.&lt;br /&gt;
# In the modal:&lt;br /&gt;
## Modify the title, description, color, type, and visibility period.&lt;br /&gt;
## Save the changes to update the post.&lt;br /&gt;
[[File:A4.1. ABillboard Admin Post Management.png|none|thumb|450x450px|Post management modal]]&lt;br /&gt;
&lt;br /&gt;
* The post list includes:&lt;br /&gt;
** Active posts&lt;br /&gt;
** Expired posts&lt;br /&gt;
** Deleted posts (showing the deletion date)&lt;br /&gt;
* Each post displays:&lt;br /&gt;
** Title&lt;br /&gt;
** Department (group) association&lt;br /&gt;
** Type: Internal or External&lt;br /&gt;
** Start and end dates (visibility period)&lt;br /&gt;
** Creator&#039;s name&lt;br /&gt;
** Current status: active, expired, or deleted&lt;br /&gt;
[[File:A4. Billboard Admin Posts Page.png|none|thumb|450x450px|All posts view with status, creator, and edit access]]&lt;br /&gt;
&lt;br /&gt;
==== 5. Accessing Public Posts ====&lt;br /&gt;
&lt;br /&gt;
# In the sidebar, click on the &#039;&#039;&#039;Public Posts&#039;&#039;&#039; tab.&lt;br /&gt;
# A modal will appear, redirecting you to the Billboard &#039;&#039;&#039;Users App&#039;&#039;&#039; to view a list of posts.&lt;br /&gt;
# Click on any post from this list.&lt;br /&gt;
&lt;br /&gt;
* Only posts with the &amp;quot;External&amp;quot; type selected during creation appear here.&lt;br /&gt;
* This page is read-only and used for quick access to public content.&lt;br /&gt;
[[File:A5. Billboard Admin Public Posts Modal.png|none|thumb|450x450px|Public posts modal with redirect to Users App]]&lt;br /&gt;
&lt;br /&gt;
== Component Diagram ==&lt;br /&gt;
The diagrams below illustrate the architecture of the &#039;&#039;&#039;Billboard&#039;&#039;&#039; application and its interaction with the Innovaphone platform, as well as the various components involved.&lt;br /&gt;
&lt;br /&gt;
=== User and Admin Interaction Flow ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Flow Overview:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;ADMIN:&#039;&#039;&#039; The administrator has the ability to manage groups and posts across the system, including controlling visibility and user access.&lt;br /&gt;
* &#039;&#039;&#039;DEPARTMENT (Group):&#039;&#039;&#039; Represents different groups (like IT and HR), each having specific announcements and user interactions.&lt;br /&gt;
* &#039;&#039;&#039;NOTES:&#039;&#039;&#039; Each group can have specific notes (e.g., IT or HR), which are shown to relevant users.&lt;br /&gt;
* &#039;&#039;&#039;USERS:&#039;&#039;&#039; Users from various groups (IT, HR, and General) can access posts that are published within their allowed groups.&lt;br /&gt;
&lt;br /&gt;
=== Application Architecture ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Flow Overview:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;PBX Platform:&#039;&#039;&#039; Interacts with the &#039;&#039;&#039;Billboard App&#039;&#039;&#039;, managing internal communication and service integration.&lt;br /&gt;
* &#039;&#039;&#039;APP Platform:&#039;&#039;&#039; Hosts the &#039;&#039;&#039;Billboard Service&#039;&#039;&#039;, which manages posts and user interactions, and communicates with the database.&lt;br /&gt;
* &#039;&#039;&#039;Service DWC:&#039;&#039;&#039; Responsible for managing the backend services for the Billboard app, providing routes to interact with both the database and the PBX platform.&lt;br /&gt;
&lt;br /&gt;
This architecture shows how the components integrate within the Innovaphone ecosystem, allowing for seamless communication between groups and users through the &#039;&#039;&#039;Billboard&#039;&#039;&#039; app.&lt;br /&gt;
&lt;br /&gt;
== Licensing ==&lt;br /&gt;
&amp;lt;!-- Needs further analysis and clarification. --&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Billboard&#039;&#039;&#039; is licensed via the Innovaphone Pricelist.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;License type:&#039;&#039;&#039; Innovaphone Pricelist  &lt;br /&gt;
&#039;&#039;&#039;License model:&#039;&#039;&#039; One license per user&lt;br /&gt;
&#039;&#039;&#039;Trial:&#039;&#039;&#039; 30 days temporary license available after installation  &lt;br /&gt;
&#039;&#039;&#039;Listed at:&#039;&#039;&#039; https://www.innovaphone.com/en/services/licenses/partner-apps.html?app=Billboard&amp;amp;type=license#billboard&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
&amp;lt;!-- Needs further analysis and clarification. --&amp;gt;&lt;br /&gt;
=== System Requirements ===&lt;br /&gt;
&lt;br /&gt;
* Innovaphone firmware: &amp;lt;code&amp;gt;14r1&amp;lt;/code&amp;gt; or later&lt;br /&gt;
* Innovaphone App Platform with myApps&lt;br /&gt;
* PBX Manager for app registration&lt;br /&gt;
&lt;br /&gt;
=== Licensing Activation ===&lt;br /&gt;
&lt;br /&gt;
* Requires license token and file provided by Wecom&lt;br /&gt;
* Insert into Admin interface for activation&lt;br /&gt;
&lt;br /&gt;
== Versions ==&lt;br /&gt;
&amp;lt;!-- Needs further analysis and clarification. --&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Current version:&#039;&#039;&#039; 1.0&lt;br /&gt;
* &#039;&#039;&#039;Latest release:&#039;&#039;&#039; &amp;lt;code&amp;gt;1011 final&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Release date:&#039;&#039;&#039; June 17, 2025&lt;br /&gt;
* &#039;&#039;&#039;Innovaphone compatibility:&#039;&#039;&#039; Yes&lt;br /&gt;
* &#039;&#039;&#039;Architectures supported:&#039;&#039;&#039; &amp;lt;code&amp;gt;arm&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;x86_64&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;arm64&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
Follow the steps below to install the &#039;&#039;&#039;Billboard&#039;&#039;&#039; application in your Innovaphone environment.&lt;br /&gt;
&lt;br /&gt;
=== Option 1: Installing via AP Manager App Store (Recommended) ===&lt;br /&gt;
You can install &#039;&#039;&#039;Billboard&#039;&#039;&#039; directly through the &#039;&#039;&#039;App Platform Manager&#039;&#039;&#039; (AP Manager) by accessing the App Store:&lt;br /&gt;
&lt;br /&gt;
# Open the &#039;&#039;&#039;AP Manager&#039;&#039;&#039;.&lt;br /&gt;
# Click the yellow &#039;&#039;&#039;App Store&#039;&#039;&#039; button in the top-right corner.&lt;br /&gt;
# Search for &#039;&#039;&#039;Billboard&#039;&#039;&#039; in the list.&lt;br /&gt;
# Click on it to open further information&lt;br /&gt;
# Select the latest version and confirm the download.&lt;br /&gt;
# The app will be automatically installed and ready to configure.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;🛈 This is the easiest and fastest way to deploy the app.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
[[File:Innovaphone MyApps Lab AppStore Button in AP Manager.png|none|thumb|436x436px|AppStore Button in AP Manager outlined]]&lt;br /&gt;
[[File:AP Manager Billboard.png|none|thumb|436x436px|AP Manager Appstore interface with actions outlined]]&lt;br /&gt;
&lt;br /&gt;
=== Option 2: Manual Installation via Upload ===&lt;br /&gt;
If you prefer installing manually, follow the steps below:&lt;br /&gt;
&lt;br /&gt;
==== Step 1: Download the App Package ====&lt;br /&gt;
&lt;br /&gt;
# Visit the official [https://appstore.wecom.com.br/release/WecomStore/1410593/download.htm Wecom myApps Downloads Portal].&lt;br /&gt;
# Find the &#039;&#039;&#039;Billboard&#039;&#039;&#039; app.&lt;br /&gt;
# Download the latest available version compatible with your system architecture.&lt;br /&gt;
[[File:Wecom MyApps App Store Billboard.png|none|thumb|418x418px|Billboard on MyApps&#039; Wecom&#039;s App Store]]&lt;br /&gt;
&lt;br /&gt;
==== Step 2: Upload to AP Manager ====&lt;br /&gt;
&lt;br /&gt;
# In &#039;&#039;&#039;AP Manager&#039;&#039;&#039;, click &#039;&#039;&#039;App upload&#039;&#039;&#039; (top right).&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;.app&amp;lt;/code&amp;gt; package you downloaded from the portal.&lt;br /&gt;
# After successful upload, the app will appear in your list and show as &#039;&#039;&#039;Running&#039;&#039;&#039;.&lt;br /&gt;
[[File:App Upload Button on MyApps AP Manager.png|none|thumb|487x487px|App Upload button on AP Manager outlined]]&lt;br /&gt;
[[File:Billboard on AP Manager.png|none|thumb|440x440px|Billboard on AP Manager]]&lt;br /&gt;
[[File:Billboard upload on App Manager.png|none|thumb|440x440px|Uploading Billboard on Ap Manager]]&lt;br /&gt;
&lt;br /&gt;
=== Final Step: Registering the App in PBX Manager ===&lt;br /&gt;
&lt;br /&gt;
# Open the &#039;&#039;&#039;PBX Manager&#039;&#039;&#039;.&lt;br /&gt;
# Go to the &#039;&#039;&#039;Apps&#039;&#039;&#039; section.&lt;br /&gt;
# Click &#039;&#039;&#039;Add App&#039;&#039;&#039; and register:&lt;br /&gt;
#* A &#039;&#039;&#039;Users App&#039;&#039;&#039;&lt;br /&gt;
#* An &#039;&#039;&#039;Admin App&#039;&#039;&#039;&lt;br /&gt;
# Assign access rights as needed.&lt;br /&gt;
[[File:PBX Manager Add an App Billboard.png|none|thumb|440x440px|PBX Manager &#039;&#039;Add an App&#039;&#039; app selection]]&lt;br /&gt;
[[File:PBX Manager Billboard Add an App Config.png|none|thumb|440x440px|PBX Manager &#039;&#039;Add an App&#039;&#039; configuration]]&lt;br /&gt;
[[File:Billboard on PBX Manager.png|none|thumb|440x440px|Billboard on PBX Manager configured]]&lt;br /&gt;
&amp;lt;blockquote&amp;gt;⇒ After registration, both apps will appear in MyApps and are ready for use.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Copyright ==&lt;br /&gt;
&#039;&#039;Space dedicated to Flowe copyright information.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Contact ==&lt;br /&gt;
* &#039;&#039;&#039;PORTO ALEGRE - RS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Av. Carlos Gomes, 466 / 401&lt;br /&gt;
&lt;br /&gt;
Boa Vista - CEP 90480-000&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tel:&#039;&#039;&#039; +55 51 3079.5000&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;FLORIANÓPOLIS - SC&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
SC 401, 8600 - Room 7&lt;br /&gt;
&lt;br /&gt;
Corporate Park - Block 2&lt;br /&gt;
&lt;br /&gt;
Santo Antônio de Lisboa&lt;br /&gt;
&lt;br /&gt;
CEP 88050-001&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tel:&#039;&#039;&#039; +55 48 3112.6200&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mail:&#039;&#039;&#039; [mailto:comercial@wecom.com.br comercial@wecom.com.br]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Support:&#039;&#039;&#039; [mailto:suporte@wecom.com.br suporte@wecom.com.br]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Website:&#039;&#039;&#039; [https://wecom.com.br/ wecom.com.br]&lt;br /&gt;
&lt;br /&gt;
For any questions please refer to [https://wecom.com.br/fale-conosco/ our contact page.]&lt;/div&gt;</summary>
		<author><name>Pablo.montiel</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=File:Billboard_on_PBX_Manager.png&amp;diff=77233</id>
		<title>File:Billboard on PBX Manager.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=File:Billboard_on_PBX_Manager.png&amp;diff=77233"/>
		<updated>2025-07-01T11:09:51Z</updated>

		<summary type="html">&lt;p&gt;Pablo.montiel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Billboard on PBX Manager&lt;/div&gt;</summary>
		<author><name>Pablo.montiel</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=File:PBX_Manager_Billboard_Add_an_App_Config.png&amp;diff=77232</id>
		<title>File:PBX Manager Billboard Add an App Config.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=File:PBX_Manager_Billboard_Add_an_App_Config.png&amp;diff=77232"/>
		<updated>2025-07-01T11:08:17Z</updated>

		<summary type="html">&lt;p&gt;Pablo.montiel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;PBX Manager Billboard Add an App Config&lt;/div&gt;</summary>
		<author><name>Pablo.montiel</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=File:PBX_Manager_Add_an_App_Billboard.png&amp;diff=77230</id>
		<title>File:PBX Manager Add an App Billboard.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=File:PBX_Manager_Add_an_App_Billboard.png&amp;diff=77230"/>
		<updated>2025-07-01T11:07:09Z</updated>

		<summary type="html">&lt;p&gt;Pablo.montiel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;PBX Manager Add an App Billboard&lt;/div&gt;</summary>
		<author><name>Pablo.montiel</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=File:Billboard_on_AP_Manager.png&amp;diff=77226</id>
		<title>File:Billboard on AP Manager.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=File:Billboard_on_AP_Manager.png&amp;diff=77226"/>
		<updated>2025-06-30T18:20:31Z</updated>

		<summary type="html">&lt;p&gt;Pablo.montiel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Billboard on AP Manager&lt;/div&gt;</summary>
		<author><name>Pablo.montiel</name></author>
	</entry>
</feed>