Appointly - User Documentation

Getting Started

Introduction

Introduction to Appointly - Appointments module for Perfex CRM

Appointly fits perfectly for any type of appointment with ability to integrate a form on your websites.


Appointly is a module for Perfex CRM that you can schedule appointments to your CRM and from external form and manage your Appointments with ease, the module is designed for fast creating appointments to ease your communication with your contacts and also you can include staff as attendees, subject, description, date and time and many other features. Appointly offers users to add request appointment form to any of your websites and clients can directly ask for an appointment.Appointments can be created with a specific start time and location with option to include Internal, External Contact or Lead and also include staff as attendees. The module is flexbile with simple nice looking design and easy to use. Offers options as External Form can be embed(added) to any website, Internal, Internal Contact, External Contact, Lead, Email and SMS Notifications, Name, Email, Location, Approve Appointment, Cancel Appointment (Reason), Confirm as Finished and many more other features to come. Custom Fields, Email Tracking, and Feedbacks are also available for Appointment which also support live notification and email templates.

Installation

Installation and upgrade guide for Appointly - Appointments module for Perfex CRM

Features

Additional Information

Service Management System

The new Service Management System allows you to create and manage different types of services that clients can book. Each service can have its own duration, price, availability, and assigned staff members.

Key Features

Managing Services

To access the service management system:

  1. Navigate to Appointly → Services in the main menu
  2. Click on New Service to create a new service
  3. Fill in the required information:
    • Name - The name of the service
    • Description - A detailed description of what the service includes
    • Duration - How long the service takes (in minutes)
    • Price - The cost of the service
    • Color - Choose a color for easy identification in the calendar
    • Working Hours - Set specific hours when this service is available
    • Staff Members - Assign staff who can provide this service
  4. Click Save to create the service

The module comes with three pre-configured services that you can use as templates:

Client Booking Experience

When clients book appointments through the external form or client portal, they will now be able to:

Analytics Dashboard

The new Analytics Dashboard provides comprehensive statistics and reporting on your appointments, allowing you to make data-driven decisions about your business.

Key Features

Accessing the Dashboard

To access the analytics dashboard:

  1. Navigate to Appointly → Analytics Dashboard in the main menu
  2. Use the date filters at the top to view statistics for specific time periods
  3. Explore the various charts and tables to analyze your appointment data

The dashboard requires the "View Reports" permission, which can be assigned to staff members in the permissions settings.

Google Calendar Setup Guide

NOTE: This feature does not sync your Perfex CRM calendar events with your Google Calendar. Google Calendar feature will not fetch your current added events to your Google Calendar and implement them into appointments. Google Calendar feature will fetch all busy appointment date / times and add them to your current appointments busy hours internally and externally even when external clients are booking from Perfex CRM external form your Google Calendar busy dates that are already taken will be available and displayed in Calendar datetime picker.

Google calendar feature allows you to choose (checked by default) when you are creating an appointment to add this appointment also to your Google Calendar. Same applies if you delete the appointment previously created in your CRM and it is added to your Google Calendar and if is enabled in Setup->Settings->Appointment (Before appointment is deleted also delete created appointment in your Google Calendar) is set to Yes appointment (event) will be removed from your Google Calendar also and all emails from google connected with your current appointment their event will be deleted from theire Google Calendar also because your appointment is not existing anymore in your Google Calendar. When editing the appointmenet it will be also updated in your Google Calendar

When external appointment is approved before approving if you want to sync / add this appointment to your Google Calendar you can click edit appointment assign more attendees perhaps and click save, appointment will be auto added to your Google Calendar.

Infomation: Every staff member will be able to sync their Google Calendar with Appointly separately and manage their events / appointments with their Google Calendar. All of the above will be applied if you are only CONNECTED to your Google Calendar API

Note: If you already have setup your application with Google APIS & Services and have OAuth credentials you will need only to copy you Client secret and navigate in Setup->Settings->Appointments in your CRM and paste your secret key and click save to save your changes. Assuming that your Client ID is already saved in Setup->Settings->Google if yes it will be fetched from there and applied in Setup->Settings->Appointments, if that is not the case then you will need to copy your Client ID also and insert in Setup->Settings->Google or directly in Setup->Settings->Appointments.

After you have entered your Client ID and Client Secret, you will need to open google console Google Developers Console find your OAuth 2.0 Client IDs and click edit on the same OAuth that you are using for your CRM and add Authorization URLS so your Google calendar can be authenticated directly from your CRM.

OAuth Consent Screen

OAuth Consent Screen Scrolled Down


Scopes

Test Users

If any of the above doesen't apply for you then you should follow these steps to setup your Google Calendar

First you will need to create a project that will be associated with your Google Calendar API open Google Developers Console

Enter your project name and click create.

After your project is created successfully you will be redirected to APIS & Services. Now you need to enable the Google Calendar API library in the application project you created, to achieve this, click on the top left menu toggle then APIs & Services->Library and search for Google Calendar API, click on the library and then click Enable.

Now your Google Calendar API is enabled, next step will be to create OAuth consent screen for Google Calendar API, in menu sidebar click on OAuth consent screen and click Create.

Now you will need to setup your OAuth consent screen by entering your application name and authorized domains.

OAuth Consent Screen

OAuth Consent Screen Scrolled Down

Publish App

Back To Dashboard

After you are all done with OAuth consent screen now you need to navigate to create credentials for you newly created app.

Now your credentials are created but you need to add authorization and redirect urls for Google Calendar API. Authorization login url can be found in your CRM in Setup->Settings->Appointments

Click on Credentials and click the edit icon on your newly created OAuth Client ID

Connecting to Google Calendar API

Firstly navigate in your CRM in Setup->Settings->Appointments and fillout the fields Google Calendar API Client Id and Google Calendar API Secret and click save Now you can click on Appointments and Dashboard in your sidebar menu.

After you click Sign In in your appointments dashboard if you setup your Google Calendar correctly and inserted your credentials correctly you should get something like this. A new popup will be shown to choose your Google account that you will grant access for the application.

After you select your account, probably you will see a message "This app isn't verified", it's your responsibility to ensure that the Project/App you created is verified, you can click here to read more how to verify your application, otherwise click on Advanced then  Go to [App Name] (unsafe) just to test this feature for your own account.

The verification process is clearly explained by Google and all the steps how you can verify your app, as Perfex CRM does not hold any data for your company, you will need to verify this on your own as you will use the Google Calendar API.

You are all done and ready to use Google Calendar API, congratulation.

Some additional informations to consider

By default Google Calendar events are fetched from the past 12 months starting from current month.

1. After you create an appointment and sync it to your Google Calendar events in appointments dashbaord will be shown small google icon. Note that every user who have synced his appointment with google will be able only to access this link, links will be only shown to the user who have added / created the meeting. If an appointment is submitted via external form when responsible person click edit appointment and saves the appointment, the appointment will be automatically added to your google calendar events if checked.

2. If you want to remove your verified application from your browser or have any login issue with Google Calendar API open https://myaccount.google.com/u/0/permissions and remove your added app and you will be able to sync again. This can happen if you have changed your gmail password recently or removed your application from google apps then loogged in from another PC or maybe haven't been active for 6 months.

Known errors: { "error": "invalid_grant", "error_description": "Token has been expired or revoked." }. About this refer to No.1

Outlook Calendar Setup Guide

NOTE: Outlook API Calendar feature allows each separate staff when appointment is created via Perfex CRM if checked option for Outlook will be also added to your Outlook calendar, if you edit or delete the existing appointment from CRM Apointments it will be also updated directly to your Outlook calendar.

Please follow this guide carefully and step by step how to create your Outlook Calendar API application and connected Perfex CRM with the same.

Step 1: Go to Microsoft Azure https://portal.azure.com/#home

Step 2: If you have created an account with Microsoft Azure, enter your credentials to login, else create an account

Step 3: Register you application

Step 3: Register you application

Step 4: Select like shown in images and click register


Step 5: After your application is registered now you need to add a platform and configure the same.

Outlook Authorization and Redirect URI can be found in Setup->Settings->Appointments

Step 6: Adding permissions.

Click delegated permissions and scroll down and search Calendar

Select all Calendar permission values and click Add permissions. Permissions are really not needed but we will add them just in case the API changes from outlook and they are required and for the sake of the application and further development.

Step 7: After permissions are added and saved you need to go back to overview and copy your application client (ID) and add it to Setup->Settings->Appointments Outlook Calendar API and click save.

This means that you have successfully configured your Outlook Calendar api and now can be synchronized with Perfex CRM

It is recommended that you wait 5 min while your API config and URIs to propagate and then try login and use your Outlook Calendar API

After everything is configured click Sign in to Outlook in Appointments dashboard, a popup window will shop if you configured the application correctly and will ask for your outlook email and password. You will be asked to confirm calendar outlook permissions click allow or accept. You are done, now you can use your Outlook Calendar API.

Known errors / bugs:

If you sometimes get unexpected crash which can happen rarely but it can, open your browser console (Chrome CTLR+SHIFT+I or Right click and click inspect) and navigate to Application -> Storage -> Cookies find your domain name and remove all cookies that stars with msal. or just remove all cookies and re-login.

Another issue that may happen that outlook api doesn't handle well is if you create a new brand account you API may not work or crash untill you verify your account with Outlook, by phone number or email. Just keep that in mind if your appointment are not saved in your Outlook Calendar.

Screenshots Overview


Appointment Dashboard Widget


Appointment Calendar

Appointment Clients Calendar

Table View


New Appointment


Leads included


Create Task from appointment and Lead


Appointment View


Custom Fields and Email Tracking


Appointment Send Early Reminders, Notes


Appointment Feedbacks


Edit Appointment


Logged In Contact Appointment Request


Appointment Settings, Filters, Types


Appointment External iFrame Form


Appointment Public URL


Appointment Cancelled


Appointment Cancelled


Client Appointment Cancelled


Mobile Ready



Changelog

Version 1.2.5 - April 15, 2023

  • New: Complete Services Management System replacing appointment types
  • New: Services with customizable durations, pricing, and staff assignments
  • New: Analytics Dashboard with comprehensive reporting and statistics
  • New: Customizable external form heading and description
  • New: Provider assignment for better staff management
  • New: End hour field added to appointments for better scheduling
  • New: Enhanced timezone support with automatic conversion
  • New: Direct appointment feedback collection system
  • New: Additional language support (Vietnamese, Russian, Romanian, Turkish)
  • New: Improved notification controls with per-appointment settings
  • New: Status tracking with color-coded visual indicators
  • New: Optimized calendar views for mobile devices
  • Improved: Modernized UI with better user experience
  • Improved: Integration with Tailwind CSS for better styling
  • Improved: Google Calendar and Outlook synchronization
  • Improved: Staff availability management
  • Improved: Appointment reminder system with configurable timing
  • Improved: Client booking interface with service selection
  • Improved: Performance for large appointment datasets
  • Updated: Database structure for better performance
  • Updated: Email and SMS notification templates
  • Updated: Google API integration for enhanced reliability
  • Removed: Callbacks feature has been completely removed
  • Removed: 'view_own' permission in favor of a simpler permissions model

Version 1.2.4 - July 25, 2023

  • Updated: PHP 8.2 compatibility with optimized dynamic properties
  • Updated: Full compatibility with Perfex CRM version 3.0.6
  • Fixed: Appointment creation from leads, staff, and customer interfaces
  • Updated: Google API and Calendar API libraries
  • Improved: Overall code quality and performance

Version 1.2.3 - November 3, 2022

  • Added: Export functionality (PDF, Excel, CSV) with custom fields
  • Added: Custom fields visibility in appointment tables
  • Added: Google Meet integration in email templates
  • Fixed: Weekend booking restrictions and notification delivery
  • Updated: Brazilian Portuguese translation

Version 1.1.4

  • New: Added Custom Fields support in admin and appointments external form area
  • New: Added Email Tracking (is appointment email to client read or not read), applies for appointment approved email
  • New: Added Feedback and comments for finished appointment
  • New: Added Feedback custom statuses, total 7 min 1 (can be translated)
  • New: Email templates for appointments feedbacks, New feedback Received, Existing feedback Updated, Request feedback from client
  • New: Added option to Convert and relate appointment to Lead
  • New: Added option to Convert and relate appointment Task from appointment (can be related to Project, Invoice, Customer, Estimate, Contract, Ticket, Expense, Lead and Proposal)
  • Fixed: Appointments->Settings minor fix when there is no staff members added
  • Fixed: Bug when updating internal appointment to Google Calendar attendees (was not updated properly)
  • Fixed: Minor fix in when appointments are exported initiated by heading if created by admin name was shown in list
  • Improved: Fully refactored responsible person permissions for Appointments, now responsible person will have full permissions over appointments, except delete permissons that will be require as added from permissions.

Version 1.1.3 03/01/2020

  • New: Callbacks feature for Appointly
  • New: Callbacks email templates and live notifications
  • New: Callbacks assignee's
  • New: Callbacks Responsible Person
  • New: Callbacks notes
  • New: Appointments reCAPTCHA
  • New: Added option to disable / enable Appointments busy times
  • New: Added new email template / feature so responsible person will receive email when new appointment is submitted via external form
  • Fixed: Applied date time fix for specific date format time zones

Version 1.1.2 02/13/2020

  • Fixed: minor fix with language files

Version 1.1.1 02/13/2020

  • New: Google Calendar API Integration
  • New: Options to add appointment to own Google Calendar (separate for each staff member) (Requires Google Authenticated)
  • New: Options when appointment is updated or deleted will be also applied directly in your Google Calendar (Requires Google Authenticated)
  • New: Google Calendar busy dates shown with yellowish color
  • New: Option to add own booking hours (Admin)
  • New: Option to disable weekends (Admin)
  • New: Option to enable hours buffering (Admin)
  • New: Option to auto approve external appointments (Admin)
  • New: Appointment types (if any) are now shown in clients external form
  • New: Feature if appointment is in my Google Calendar will be shown as icon link in dashboard (Only for own appointments, requires Google authenticated)
  • New: Google busy date / time are now synced from Google Calendar API (Requires Google Authenticated)
  • New: Added option to click SMS or Email and call or send sms in appointment single view appointment
  • New: Added option to click client address and separately open in Google Maps in appointment single view
  • Improved: UI / UX
  • Changed: Reversed font back to Roboto
  • Updated: French and Portuguese language to full translation
  • Fixed: Busy hours not always shown minor bug
  • Fixed: Reminders feature minor bug
  • Fixed: Appointment cancellation description not included in staff view after client requested cancellation, fixed minor bug when client is trying to cancel an appointment there is no response

Version 1.1.0 01/22/2020

  • New: Added busy dates (booked hours) lookup in clients external form and calendar language
  • New: Customers can book appointments if not logged in from customers area (Admin can enable disable this option)
  • New: Customers can book appointments when logged in from customers area (Admin can enable disable this option)
  • New: Added meeting notes with WYSIWYG editor, option to upload images.
  • New: Added new option to set default table filter (per user)
  • New: Added new option Appointments Summary can be enabled or disabled (per user)
  • New: Added staff roles in appointment external clients view
  • New: Added new option Send Early Appointment reminders Email and SMS (Can be reused per your needs)
  • New: Appointment Types (Option to create custom appointment types)
  • New: Appointment types will be shown in staff and clients calendar (own if not Admin)
  • New: Added new languages German, French, Italian, Portuguese Brazil and Polish
  • Improved: Changed date format for all appointments according to default date format due to better and global readability for all clients.Date format is in Setup->Settings->Localization
  • Improved: Added half hours to already existing booking hours
  • Fixed: Notification not send always when creating internal meeting

Date published 01/13/2020

Initial release compatible with latest version of Perfex CRM 2.4.1 and PHP 7.X.X


© - All Rights Reserved

iDev