In order for Appointly module Email Notifications, SMS Notifications and Pusher live push notifications to work note that:
Perfex CRM Cron Job must be configured in order reminders to be sent: Read more...
Note: If cron job is not set reminder will not be sent for appointments
Perfex CRM SMS provider must be configured in order SMS messages to be sent: Read more...
Note: If SMS provider is not set SMS notification will not be sent for appointments to contacts
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, also 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.Appoinly also includes extra option Callbacks that is new feature in Appointly where external clients or internal can request a callback from your company, because not all clients are located
in the same country as we work in. Callbacks can be managed from admins or responsible person for callbacks callbacks assignee’s can be assigned to manage an individual callbacks and take notes. This option can be enabled / disabled per your
needs. Custom Fields, Email Tracking, and Feedbacks are also available for Appointment from version 1.1.4 which also support live notification and email templates.
Installation
Installation and upgrade guide for Appointly - Appointments module for Perfex CRM
Option 1: Installation time (1-2 min)
Extract downloaded zip contents from CodeCanyon. Navigate in Setup->Modules in sidebar menu upload appointly.zip to modules section and click install. Navigate to your module and click Activate.
If database upgrade is required click Upgrade Database and you are set to go. If database upgrade is required click Upgrade Database and you are set to go.
Option 2: Installation time (1-2 min)
Open your downloaded zip fodler from CodeCanyon and unzip appointly.zip directly into your modules folder on your server eg. it should be unzipped inside your modules folder like this modules/appointly/[other
folders] and reload your browser. Navigate to your module and click Activate. If database upgrade is required click Upgrade Database and you are set to go.
IMPORTANT: Always clear your browser cache after installing or upgrading Depending on your operating system all you need to do is the following key combination: Windows: ctrl + F5 Mac/Apple: Apple + R or command + R Linux: F5
Features
Google Calendar API
Request a Callback
Callbacks
Callbacks assignees
Callbacks notes
Custom Fields
Email Tracking
Convert to task (can be related to Project, Invoice, Customer, Estimate, Contract, Ticket, Expense, Lead and Proposal)
Convert to lead
Appointment Feedacks. Clients with finished appointments can add feedback rating and comment. Staff can request a feedback.
Embed (iFrame) form to any of your websites (can be added to multiple websites)
Live push notifications (Reminders, New Appointment, Appointment Cancelled, Request Cancellation, Updated, Fedback notifications, Callbacks notifications)
Dashboard Widget
Google Calendar API
Today's Appointments Calendar sync
Option to Edit Appointment
Option to Delete Appointment
Option to Cancel appointment
Option set default table filter
Option set clients to book appointments logged in or before login
Calendar type events
Appointment Notes
Appointment Types
Calendar type color events in staff and clients area
Books appointments directly from customers area
General appointment view
General appointment view separate for external public client url client (hashed and unique)
General appointment view separate for internal staff private CRM url attendee
Assign Multiple Staff Attendees
Internal Appointment (Contacts)
Internal Appointment (Leads)
External Appointment
External iFrame Form (Contact)
SMS Notifications and Notification reminders
Email Notifications and email reminders
Reminder Notifications
Send Early Reminder
Access Logs
Reschedule appointment (Mark as Ongoing)
Email Templates
Appointment Approved to (Staff and Attendees)
Appointment Cancelled to (Staff and Attendees)
Appointment Approved to (Contact)
Appointment Cancelled to (Contact)
Appointment reminder to (Staff and Attendees)
Appointment reminder to (Contact)
Callbacks Assigned to (Staff)
New Callback to (Staff)
Feedback recieved to (Staff)
Feedback updated to (Staff)
SMS Templates
Note: Make sure that all your SMS templates in Setup->Setting->SMS are filled with some content as given in the example below or SMS will not be sent if your SMS templae is empty.
Appointment Approved to (Contact)
Appointment Cancelled to (Contact)
Appointment Reminder to (Contact)
Dashboard Todays Appointments Widget
Add today's appointments widget to your dashboard
All your appointments are shown and synced with your calendar
Directly open appointment from calendar
Calendar colored events
Flexible date and time manipulation
Busy hours and dates indicator
Also available in external form
Email and SMS notifications :
Send Email and SMS notifications to contact / attendees on creation, approval or editing existing appointment
Email Templates for Appointments (translate ready)
Custom content and subject
Custom Fields
Feedbacks
Callbacks
Custom admin email templates and SMS
Appointment Confirmation
Appointment Cancellation
HTML content via TinyMCE editor in Email Templates
Custom statuses for different status of appointments : pending, approved, cancelled, confirmed, upcoming
Template merge fields, in SMS and Email templates
Action Hooks
Table Filters
All
Approved
Not Approved
Cancelled
Finished
Live Search, Live Search Leads
Source: eg. Internal (Contact) / External / Lead (Can be marked as External from Inside CRM or External Contact from any website you added Appointly embed form)
Appointment due date pointers
Appointment busy dates pointers (can be disabled)
Responsive Bootstrap Layout
Available languages: English, German, French, Italian, Portuguese Brazil and Polish
Translate ready
Additional Information
When new appointment is created from outside External Form (iFrame) if you have not selected any attendees and click Approve appointment, you will be set as default appointment attendee. Notification for approval will be sent to all attendees and contact.
If you edit and existing External Appointment and change current contact, when new contact is added email and SMS will be sent to the newly added contact, also if staff attendees are added they will recieve notifications also.
Date and time are fetched automatically directly from your CRM setup in Setup->Setting->Localization
Appointment can be created internally from inside CRM.
Internal (Lead)
Internal (Contact)
External (Contact)
External appointment
External Client from embed form added to any of your websites. See in
Setup->Setting->Appointments
Adding action hook to external form, this is (Optional)
If you still haven't created my_function_helper.php file, you need to create it and insert your code inside.
Example:
hooks()->add_action('appointly_form_header','my_custom_header_and_logo');
function my_custom_header_and_logo()
{
echo get_company_name();
echo get_company_logo();
}
Now in your external iFrame form you will have a new header.
Read more here...
Overwriting default language
1. Navigate in your modules folder and into appointly folder
2. Navigate in languages folder and copy and paste english folder
3. Rename english folder copy to your language eg. french (must starts with small letters)
4. File inside french folder appointly_lang.php now can be overwriten with your translations.
5. After your change Perfex CRM default language to eg. French, Appointly module language will be automatically changed to French.
This is just an example how language folders should look.
Google Calendar Setup Guide
NOTE: This feature does not sync your Perfex CRM calendar events with your Google Calendar. Gooogle 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 entred 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.
If any of the above doesent 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 succsessfully 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.
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
You will need to enter your authorized redirect URIs, this is important make sure that you enter these urls CORRECTLY
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
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
Callbacks
Mobile Ready
Changelog
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 Recieved, 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 (separete 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 appointmnets (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