Amelia

Contents

1. Licenses, Purchase, and Activation

2. Installation

3. Appointments are automatically canceled

4. Upgrading Licenses

5. Using Amelia in Elementor Popup

6. Updating the plugin to the latest version

7. TMS Store

8. WooCommerce payments lead Amelia to the home page

9. Are You Getting “The link you followed has expired” Error in WordPress?

10. Amelia Pricing

11. Klarna Payment plugin fails

12. Setting up SMTP with Microsoft (hotmail, outlook, live, and office365 emails)

13. Disappearing Notification Templates (PARTIALLY RESOLVED)

14. Time Zones with Amelia

15. Recurring VS multi-day events

16. New Services not seen on the front-end

17. Amelia Shortcodes and Front-end Implementation

18. "Unable to connect to Google Calendar" error in Employee's Profile

19. Default Time Slot Step (custom durations in Services, work hours, breaks...)

20. Setting up SMTP with Gmail

21. Popup creation in Amelia

22. Outlook Calendar blank calendar in Employee Profile

23. Using Multiple Languages in Amelia

24. Google Calendar - Redirect URI Mismatch (error 400)

25. Refund Policy

26. Notification Placeholders

1. Licenses, Purchase, and Activation

Edited Date: July 14th, 2023


Licenses

Our products can be purchased through the Envato marketplace, and through our websites:

Please note: Envato licenses are lifetime licenses, but they are limited to 6 months of support. Also, there are no plans (Basic, Pro, and Developer), like in TMS Store Licenses, and all licenses purchased through Envato are equal to the Basic licenses found on our websites.

TMS Store licenses can be yearly subscription-based licenses or Lifetime licenses. For differences in pricing and license details, please refer to our pricing pages:

License plans

Basic - Provides you with a purchase code that can be activated on one domain and an unlimited number of subdomains

Pro - Provides you with a purchase code that can be activated on 1 - 3 domains, and an unlimited number of subdomains.

Developer - Provides you with a purchase code that can be activated on multiple domains and subdomains.

Please note: Basic license of the Amelia plugin doesn't include the Packages feature, the Resources featureRefunds for Online Payments, and WhatsApp integration. For specific license plans, please refer to our pricing pages listed above.

Prices are subject to change without prior notice.


Purchasing and obtaining a purchase code

When you purchase our products through our website, you will be redirected to our store, where you will need to generate your password:

You will also receive two e-mails:

  1. An e-mail from us (TMS) that contains your purchase code, a download link, the email used for the purchase, and the link for our store.



  2. An e-mail from our reseller (Paddle - [email protected]), which contains the receipt:

Some hosting providers consider these e-mails as SPAM, so if you don't see them in your inbox, please check your SPAM and JUNK folders, and if you still can't see the emails received, please feel free to open a support ticket, and our support managers will gladly help.

The download link in our e-mail expires after 5 downloads, but you are able to download the plugin at any time by logging into our store.

When you obtain the purchase code from our e-mail, or from the store, you can activate it when you install the plugin.

You can read more about plugin installation in our Installation Article


Activation

All plugins and add-ons are activated through the Settings tab for that specific plugin:

Amelia:

wpDataTables and wpDataTables Add-ons:

If you purchased the plugin through the Envato marketplace, you don't actually need the purchase code to activate the license. The "Purchase Code" field is reserved for purchases made through our website and needs to stay blank when you're activating with Envato.

So, all you need to do is click on the green "ACTIVATE WITH ENVATO" button, and the plugin will take you to the Envato log-in page (if you're not logged in already), and the license will be activated.

As for purchases made through our website, you need to enter the purchase code in its designated field, and click on the blue "ACTIVATE" button.

If you don't see the Activation tab in Settings, that means that you're running the Lite version of the plugin. It needs to be deactivated/deleted, and the full version installed in order to activate the license.

Please note: Formidable Forms integration for wpDataTables and Gravity Forms Integration for wpDataTables are add-ons that require wpDataTables and the core forms plugins to be installed (Gravity Forms and Formidable Forms). When you're activating these add-ons, please note that the core plugin needs to be activated as well.


This completes the license activation, and if you configured your WordPress website to receive automatic plugin updates, it will always show when a new update is available. If you wish to manually update the plugin, you will need to download the latest version from our store (the download button always acquires the most recent version). If you don't have auto-updates enabled, you can always subscribe to our newsletters, to be informed about plugin updates, new features, promotions, giveaways, or freebies:

Amelia Newsletter

wpDataTables Newsletter

2. Installation

Detailed instructions for plugin installation through WordPress, and through FTP.

The installation process for our plugins and add-ons is simple and straightforward, and shouldn’t cause you any trouble. Regardless of your previous experiences with WordPress plugins, you aren’t likely to have any problems if you follow these simple steps:

  1. Download the file from our store 
    Once you purchase our products, you can download the ZIP file from our TMS Store or from the email that you received when you made the purchase (some hosting providers treat it as Spam, so please check your Spam folder as well). Also, in that e-mail you will find the credentials for TMS Store, where you can download the full version of the plugin. The zip file always contains the latest version of plugins and add-ons.
  2. Upload the plugin into WordPress - there are two ways you can do this:

    Option 1 (easiest) - Open your WordPress admin panel, go to Plugins ->


    Add new ->

    Upload -> and under "Choose File" select the zip file that you downloaded from our TMS Store:

    Option 2 (in case the first option doesn’t work) – Unzip the file that you downloaded from our TMS Store. Open your WordPress installation folder to an FTP manager (it could be CyberDuck, FileZilla, Total Commander, or some other), go to wp-content/plugins/, and upload the folder you previously downloaded and unzipped.

  3. Activate the plugin

    If you've missed the "Activate" option that comes up when you install the plugin, just go to your WordPress admin panel -> Plugins, find the plugin you just installed, and click “Activate”. Plugin installed!

  4. Optional – enter your purchase code for auto-updates
    This is only necessary if you want to receive auto-updates for the plugin. Every purchase on our TMS Store has a unique purchase code: you can check it whenever you need it in the Downloads section. We use this purchase code for auto-update feature authentication.

    For wpDataTables and all wpDataTables add-ons, go to your WordPress Admin, open wpDataTables -> Settings -> Activation tab, paste the Item Purchase Code in the corresponding input box, and click on the blue "Activate" button.

    For Amelia, go to your WordPress Admin, open Amelia -> Settings -> Activation, paste the Item Purchase Code in the corresponding input box, and click on the blue "Activate" button.

    For the Amelia plugin - if you see the following image in Settings/Activation, that means that you have the Lite version of the plugin installed. It needs to be removed, and the full version installed in order for the Activation field to become available:



    For the wpDataTables plugin - If the Activation tab is missing in the Settings, this means that you have the Lite version installed. It needs to be deactivated and deleted, and the full version installed in order to activate the license:


Please note: If you purchased the plugin through the Envato marketplace, the activation procedure doesn't require you to enter your purchase code. We have an API for that, so to activate your Envato license leave the Purchase code field blank, and click on "ACTIVATE WITH ENVATO".

If you have any problems when uploading your file into WordPress, please check your server permissions. You'll know there are issues if WordPress displays this message:

Please note that wpDataTables is around 13 MB in size, and Amelia is around 7 MB in size, so if you are not able to upload it through WordPress Plugins page, you will probably need to increase the following:

upload_max_file size,

post_max_size,

max_execution_time

You should be able to find these values in your php.ini file or on your hosting panel. If you can’t find it yourself please ask your hosting provider to provide it.

3. Appointments are automatically canceled

Date: April 19th, 2022


If your customers are showing up for appointments you see as canceled, and if there are instances where appointments are automatically canceled a few minutes after they're booked, please note that it's not caused by any errors or bugs in Amelia. 

Amelia can't cancel any appointments on its own. If the appointments were not canceled manually by the client, yourself, another admin, the employee, or any Amelia Managers you may have on your site, the only other option that's left is a link checker.

If you include the %appointment_cancel_url% placeholder in the email, there's a possibility that the link that's sent to your customers is automatically activated by the link checker, and the appointment gets canceled like this.

What link checkers do is they validate each URL that's in the email, and in order to do that they have to visit the URL. Those can be built into the end user's mailing platform, or they could be add-ons for the browser or the email provider (Gmail, Yahoo, Outlook, etc). When they visit the cancelation URL (to check for potential viruses), they cancel the appointment. Unfortunately, there's nothing we can do in this case. The only workaround would be to create a Front-end Customer Panel and explain the procedure in the email, like:

"To cancel your appointment, please log in to your Customer panel, and click on the pencil symbol. There you'll see the "Cancel" option."

4. Upgrading Licenses

Updated: July 14th, 2023.


Licenses can be upgraded to higher tiers through our store, by clicking on the "Upgrade" button:

A new modal opens up where you can choose available upgrade plans:

Please note that the Lifetime purchases can't be upgraded to Subscription plans, so if you have a Pro Lifetime plan, you cannot upgrade to Developer Subscription. Also, depending on the license you currently have, different options will be offered in the modal.

What you should know about the upgrade:

The price that you will pay for the upgrade will be a pro-rated charge, meaning you won't be paying for the price difference between licenses, since we cannot refund the time spent on the license you currently have.


Example:

You bought a Basic Yearly license for Amelia, which costs $69 (roughly $0.19 per day). 

After 100 days, you want to upgrade to 3-domain Pro Yearly, which costs $199 (roughly $0.55 per day). 

Time remaining on Basic (what going to reduce the upgrade price): $50.35 (265 * 0.19)

Time spent on Basic: $55 (100 * 0.55)

Time remaining on Pro: $145.75 (265 * 0.55)

So, the price is not Pro - Basic (199-69=130), but instead a pro-rated charge, and you are going to be charged around $147.75 - $50.35 = $97.4.


If you're upgrading from a yearly subscription license to a yearly subscription license, it still renews on the same date (1 year after purchase) and your purchase code remains the same. This is basically why the prices are pro-rated.

Please note: Directly upgrading Lifetime licenses purchased after June 1st, 2021 is currently not possible, but you can, of course, acquire a new license and receive a refund for the previous purchase. You would need to purchase a new Lifetime License and reach out to us through a ticket, posting both purchase codes in a PRIVATE ticket, and our support managers will refund the amount of the originally purchased license retroactively.

Please check your receipt for the old purchase and verify that the card number or the PayPal account you used is still the same.

Please note: The prices are subject to change without prior notice and the prices listed above are to be used solely for the explanation of how upgrades work.

5. Using Amelia in Elementor Popup

Date: November 5th, 2021


When you have created Employees, services and/or events in Amelia, you can add them on front-end using
our shortcodes, which are explained in detail in the article "Amelia Shortcodes and Front-end implementation".

In Elementor widgets, simply search for “Amelia” in Elementor’s side bar, and drag the widget onto a page:

When it’s dragged into the page, the same parameter options seen in the Gutenberg block are shown in
Elementor’s side panel:

So, to cover all options in here real quick:

  1. Select Category – allows you to select a specific category you have created in Amelia. 
  2. Select Service – allows you to select a specific service created in Amelia;
  3. Select Employee – selection which filters the form per selected employee;
  4. Select Location – if your employees are working on multiple locations, you can choose which location’s
    bookings will appear in the window.
  5. Show All refers to “Services” and “Packages”, and is only available in Amelia’s Pro license (since
    packages are not included in the Basic license). With this option, you can choose if the form will show both
    services and packages (all), only services, or only packages.
    All these can be combined, but please be careful that you’re selecting actual values. For example, if you select [ameliacatalog category=1 employee=3 location=2], and there’s no Employee #3 working on Category 1, or on Location #2, the booking form will continuously load, and will not display anything.
  6. Load booking form manually – this is used for popups within Elementor, and that’s what we’re going to explain now.

First, you need to actually create a Popup in Elementor, following Elementor's tutorial here.

We added a shortcode for the popup - it needs to have the ID of the button that is calling the popup, so this is
how one of the shortcodes should look like in the Elementor pop-up:


[ameliabooking trigger=amelia-button-id]

So, if the button ID is "my-popup-button" it will be:

[ameliabooking trigger=my-popup-button]


So, you create a Popup and add this shortcode in the popup.

Please note: At the moment, you cannot use Elementor's Amelia widgets in the popup, so when configuring the popup, make sure to add the "Shortcode" widget, and manually type the shortcode you need:

On the bottom-left part of the screen, click on the gear symbol to access Popup Settings:

In there, go to "Advanced", and enable "Prevent Closing on Overlay":

Then, on the page - add a button, on which the popup will be called, next to the "Link" field click on "Dynamic Tags" and select "Popup" from the drop-down:

Then, click on "Popup" in the link field, and you'll see the settings for the popup. Click on the "All" drop-down, and type the name of the popup you previously created. Select it, and click away to close the settings:

In the same form, below, you will see the "Button ID" field, where you need to add the ID for the trigger (from Amelia's shortcode):

That is it - once you publish this page, when you click on the button, it will open a popup which will manually trigger the "my-popup-button" and open Amelia's booking form.

6. Updating the plugin to the latest version

Updated on: February 21st, 2024


PLEASE NOTE: TMS (our company) currently has two WordPress plugins and 6 wpDataTables add-ons:

This article provides comprehensive instructions on updating these plugins/add-ons to their latest versions, as the process is similar for all of them. If you do not have a specific plugin installed or it does not require an update, feel free to disregard the instructions related to that plugin.


If you activated the purchase code in Amelia Settings/Activation, or in wpDataTables Settings/Activation, the update should be offered in the Plugins section. On some WordPress installations, you need to deactivate the plugin first in order to see the update offered, so please try that.

If that doesn't work, try going through Dashboard/Updates. See if you can update the plugin through there, and if that doesn't work either, you can follow the manual update procedures below.


MANUAL METHOD 1:

Log into our store with the credentials you received when you purchased the plugin, and download the installation file from there, or from Envato (depending on where you purchased the plugin from).

Amelia:

Go to Amelia Settings/Activation, and make sure that the "Delete Amelia content" slider is disabled

wpDataTables:

Go to wpDataTables Settings, and make sure that the "Prevent deleting tables in database" checkbox is enabled.

Then, go to your Plugins section and deactivate the plugin. If you're using WordPress 5.8+, you'll be able to go to the Plugins section/Add New, and upload the file you previously downloaded.

When you upload the file, WordPress will inform you that you're replacing the plugin with the new version, so just confirm that. After the plugin is installed, activate it, and make sure to purge all cache from your website.


MANUAL METHOD 2:

Log into our store with the credentials you received when you purchased the plugin, and download the installation file from there, or from Envato (depending on where you purchased the plugin from).

  1. Use FTP to open /yourwordpressfolder/wp-content/plugins
  2. Delete the existing plugin folder ("ameliabooking" or "wpdatatables")
  3. Open the zipped file, and extract the "ameliabooking" or "wpdatatables" folder you see in the zip file into ../wp-content/plugins/ folder
  4. Go to the WP-admin panel and open the Plugins section
  5. Deactivate the plugin, and then activate it again
  6. Clear server and browser cache

MANUAL METHOD 3:

Log into our store with the credentials you received when you purchased the plugin, and download the installation file from there, or from Envato (depending on where you purchased the plugin from).

Amelia:

Go to Amelia Settings/Activation, and make sure that the "Delete Amelia content" slider is disabled. 

wpDataTables:

Go to wpDataTables Settings, and make sure that the "Prevent deleting tables in database" checkbox is enabled.

  1. Go to the Plugins section, deactivate the plugin, and then delete it (you will not lose your data because you made sure the database tables are not deleted).
  2. Click on "Add New" in the Plugins section, and upload the previously downloaded file.
  3. Activate it and make sure to purge the server and browser cache

7. TMS Store

Date: December 8th, 2021


Overview:

Through our store, you can see all your purchased licenses, buy new licenses, contact support, access the main websites, official documentation, demos, add-ons, and pricing, change your password, submit refund requests, cancel subscriptions, view your purchase codes, and download the installation files.


Header:

Clicking on the "Support" button will open up the ticketing platform where you can submit a new ticket or respond to an existing ticket you may have raised with us.

Amelia opens up a few options:

From here, you can visit our main site, view our official documentation, view and play around with our demos, and view the pricing page.

wpDataTables offers similar options, but since wpDataTables has paid add-ons, they are listed as well:

So, similar to Amelia, you can visit the Main site of the plugin, view the official documentation, access the Add-ons page, and view pricing.

The Profile button, where you see your email address, offers an option to change your password, and log out of the store:

Clicking on "Change Password" opens a new window, where you can change the password you use to log into the store:

Please note: Since you're purchasing our plugins through a reseller (Paddle), you are not able to change the email address associated with the purchase because we cannot modify the email on their end automatically. If you need to change the email address associated with your purchase, please email us at [email protected] from the email address that was used to purchase the plugin, and let us know what the new email address will be associated with the purchase. If you're transferring the ownership to someone else, please make sure to update your billing data through the store (only valid for Subscription-based licenses, described below).


My Licenses:

Here you can see all licenses you have purchased. Clicking on the down arrow on the right-hand side expands each license. There are differences between how Lifetime and Subscription licenses are displayed:

The Lifetime license shows the purchase date, the number of domains in use (domains where the license is active), the status of your license, and the purchase code which can be copied by clicking on the copy icon on the right of the field where the purchase code is displayed. This code can be pasted in the plugin's Settings/Activation section, in order to activate the purchase code. After activation, the "Domains in use" will be updated in the store.

Please note: The purchase code activation is only possible through your WordPress website, under the plugin's Settings/Activation tab, not through the store.


The Subscription license shows the date when the license will expire, what the next payment amount will be, the purchase date, domains in use, status, and the purchase code. 

Please note: Every subscription-based license is set to renew every year, on the date of purchase, unless you unsubscribe through the store. If you unsubscribe, you will not be charged on the next renewal date, and after that date passes, you will still be able to use the plugin (the version you updated to last before the subscription expired), but you won't be able to receive new updates, and you won't have access to premium support.

Manage Domains:

Clicking on the "Manage Domains" button shows you the websites (domains and subdomains) on which the purchase code has been activated:

From this screen, you can remotely deactivate the license on any registered domain.

Upgrade:

Clicking on this button, you're able to upgrade your license to a higher tier (Basic to Pro, or Developer, or Basic Lifetime, Pro Lifetime, or Developer Lifetime, and so on). For more details about upgrading the license, please take a look at this article.

The Three Dots:

From here, you can:

8. WooCommerce payments lead Amelia to the home page

Date: November 8th, 2021


If you enabled WooCommerce as a payment method, and you see that Amelia redirects you to the home page, or a non-existing page, instead of the WooCommerce Cart, or Checkout, most likely the "Cart" and "Checkout" pages have not been defined in WooCommerce's Advanced Settings:

You need to create two pages:

  1. For the cart - where you'll add [woocommerce_cart] shortcode
  2. For the checkout - where you'll add [woocommerce_checkout] shortcode

After you do this, Amelia will forward appointment info (customer's name, last name, email, phone number, date, duration, etc) to WooCommerce's Cart, and then to the Checkout.

9. Are You Getting “The link you followed has expired” Error in WordPress?

The message, ‘the link you followed has expired,’ is most often received when you’re uploading either a WordPress plugin or theme.

With all standard WordPress installations, there is a server setting that limits the upload of files over a certain size. There is also a setting that prevents scripts from running for too long, causing any script that exceeds the limit to timeout.

This means that when you try to upload a file that’s over the size limit, or the upload takes too long, you’ll get an error message. This is the one that reads “the link you followed has expired”.

To find out the size of the upload limit, you can go to the Media section of the WordPress dashboard, then click ‘Add New’. At the bottom of this page, you will see the text: “Maximum upload file size: …”

The default file size limit is usually pre-configured at 2MB which is quite low, especially for WordPress theme uploads. In the following sections, we’ll show you how to change this to a higher value, as well as set a more reasonable script timeout limit.

How to Fix the Error

So, if the link expired, what do you do? The answer is clear —if the setting is too low, you need to increase the limit. Luckily, this is not too tricky to do, even for a beginner.

There’s more than one way of increasing the limit to avoid ‘the link you followed has expired’ message. Don’t get scared, but they all include adding some code. This isn’t as hard as it sounds —if you can copy and paste, then you have all the necessary skills.

At the same time, we’ll also be increasing the time your site allows a file to execute (in this case, how long it takes to upload a file, theme, or plugin).

We will provide a step by step guide, making this as easy as possible. Follow along and make sure you complete all the steps for the method you are attempting. Try the methods one at a time.

If a method doesn’t work you will need to undo what you did before trying a new method. This is important to make sure your website continues working smoothly.

Method 1: Change the functions.php file

The functions.php file is a core file for WordPress sites. Do remember that the file is linked to the theme you use. So, if you change your theme later, you’ll need to repeat this method to increase the upload size.

It’s a simple file to edit but if you’re considering a new theme, try a different method. Solve the ‘link you followed has expired’ error with the following steps.

Steps

@ini_set( 'upload_max_size' , '100M' );
@ini_set( 'post_max_size', '100M');
@ini_set( 'max_execution_time', '300' );

It might be tempting to make these limits massive but be careful as hackers can use this against you. If the timeout value is really high and they get into your website, they could run all sorts of dangerous, long-running scripts. In other cases, a bug might cause a script to take abnormally long to process, which can slow your site down to a standstill.

Method 2: Increase limits in the .htaccess file

It’s also possible to change the .htaccess file to solve your issue.

Here are the steps:

php_value upload_max_filesize 128M
php_value post_max_size 128M
php_value max_execution_time 300
php_value max_input_time 300

Method 3: Edit the php.ini file

If you can’t find the functions.php or .htaccess files or don’t like to edit them, there’s another method. To solve the issue of “the link you followed has expired”message, you can edit the php.ini file, which contains settings for your server’s implementation of PHP.

Some shared website hosting companies don’t give access to the file, which may be a roadblock for you. If that’s the case for you, it’s best to contact your hosting provider directly.

If you’re sure you have access, you can perform the following steps:

memory_limit
upload_max_filesize
upload_max_size
max_input_time
post_max_size
max_execution_time
memory_limit = 256M
upload_max_filesize = 64M
upload_max_size = 64M
max_input_time = 1000
post_max_size = 64M
max_execution_time = 300

Method 4: Contact your hosting provider

You can always contact your host provider to change these settings. They’ll likely ask for a screenshot of the ‘the link you followed has expired’ message so ensure you take one when it happens. If you didn’t, you can recreate the error to get a screenshot.

You could also choose to send them an email explaining the issue. Request that they increase the limits of the following:

memory_limit
upload_max_size
post_max_size
upload_max_filesize
max_execution_time
max_input_time

Try again to see if your file will now upload.

10. Amelia Pricing

The price of our plugins and add-ons depends on where you're purchasing them from.

Prices are subject to change without prior notice.

Amelia

If you want to buy the plugin through our website, there are three options you can choose from:

Starter - Premium plugin that can only be used on one domain and only has basic features while lacking more advanced Amelia features.

Standard - Premium plugin that can be used only for one domain or project. Please note that this license does not include the Packages Feature, WhatsApp Integration, Refunds for Online Payments, and Resources.

Pro - The premium plugin that can be used for 1, or 5 domains.

Elite - The premium plugin that can be used on 20 or an Unlimited number of domains.

The prices for these licenses are all based on a yearly subscription and all licenses include support and monthly updates the whole time the subscription lasts. All three licenses can be used on an unlimited number of subdomains.


There are also lifetime deals:

Starter Lifetime - Full plugin that can only be used on one domain and only has basic features while lacking more advanced Amelia features.

Standard Lifetime - Full plugin that can be used only for one domain or project. Please note that this license does not include the Packages Feature, WhatsApp Integration, Refunds for Online Payments, and Resources.

Pro Lifetime - Full plugin that can be used for 1, 2, or 3 domains. 

Elite Lifetime - Full plugin that can be used on 5, 10, and 20 domains.

The prices for all lifetime licenses include lifetime support and monthly updates. All three licenses can be used on an unlimited number of subdomains.

You can see the prices for all plans here.

Prices are subject to change without prior notice.


If you are looking at the Envato marketplace, there are two licenses:

Regular - Full plugin with a lifetime license that can be used by you or one client, in a single end product which end users are not charged with - price $299. There is an option to extend the support period up to 12 months upon purchase, and in that case, the price is $409.25.

Extended - Full plugin with a lifetime license that can be used by you or one client, in a single end product which end users can be charged with - price $1495. There is an option to extend the support period up to 12 months upon purchase, and in that case, the price is $2046.25.

The total price includes the item price and a buyer's fee. It includes 6 months of support and ensures you will receive all future updates of the plugin even after the support period expires.

11. Klarna Payment plugin fails

Date: November 16th, 2021


Manifestation:

A fatal error is displayed when Amelia is active and when trying to use WooCommerce's Klarna Checkout plugin. The checkout never loads, and it keeps spinning.

The error in the console may be similar to this:

Fatal error: Maximum execution time of 30 seconds exceeded in ../wp-content/plugins/woocommerce/includes/wc-core-functions.php on line 1898

Resolution:

Access your database and go to the wp_options table. In it, search for "amelia_settings" in the "option_name" column. That will return only one row, so I'll ask you to edit that, and in the JSON (under "option_value") search for "skipCheckoutGetValueProcessing". The default value is "false", so please change it to "true", so it looks like this:

"skipCheckoutGetValueProcessing":true

Please note that our development team has this task created in their "to-do" list, so hopefully, this will be resolved for good soon.

This change that you've applied in the database will not revert after you update the plugin.

12. Setting up SMTP with Microsoft (hotmail, outlook, live, and office365 emails)

Date: 5th October, 2023


PLEASE NOTE: As of September 2023, Office365 accounts that use MFA (Multi-Factor Authentication) do not need to create App Passwords. Check out Microsoft's reference here.


If you have 2-step verification turned on, on your Microsoft mailing account, you'll need to configure an App password to be able to use SMTP with Amelia.

App Passwords can only be used with accounts that have 2-Step Verification turned on in the Security Basics section of your Microsoft account.

When you enable the 2-step verification on your Microsoft account, please follow these steps to configure the App Password for Amelia:

1. Go to the Security basics page and sign in to your Microsoft account.

2. Select Advanced Security Options:

3. Under "Additional Security" make sure the Two-step verification is on:

4. Once it's on, you'll see the "App Passwords" section below it:

5. Click on "Create a new app password" and on the next page, you'll see the password. Copy it and save the password somewhere safe just in case you need it again; then click on "Done":

6. In Amelia Settings/Notifications use these details for SMTP:

"Mail Service" - SMTP

"SMTP Host" - smtp-mail.outlook.com

"SMTP Port" - 587

"SMTP Secure" - TLS

"SMTP Username" - your email address

"SMTP Password" - the App Password you previously created


Please note: The majority of servers will not allow different sender and username, so you need to make sure that the "SMTP Username" and the "Sender Email" in Amelia are the same:


13. Disappearing Notification Templates (PARTIALLY RESOLVED)

Updated: February 1st, 2022


PLEASE NOTE: Grammarly resolved the issue that is described below, so please make sure that you're using the latest version of this add-on. If you're using some other grammar tool, and this issue is still present on your end, please check out the article below.


In some cases, Amelia can face an issue with browser extensions that are used for grammar checks (Grammarly, Language Tool, etc).

Manifestation:

Email templates disappear when you switch between them (but they are still available when you refresh the page unless you save them).

If you save a template with a grammar tool enabled, a blank template will be saved, and all your work will be lost.

Solution:

Make sure to turn the browser extension off for your back-end site, and you'll be able to modify and save the notifications without any issues.

Check out the video below to see how it behaves and what you need to do in order to create and save email templates. We've reached out to Grammarly about this, and their developers did resolve the issue, but we can't guarantee it's been resolved for other grammar checker browser add-ons.

14. Time Zones with Amelia

Date: November 19th, 2021


Amelia doesn't have any time zone settings, and it relies on WordPress' General settings. Here's how it works:

All times in the back-end of Amelia will be shown exactly how you save them, so (for example) if your employee works from 09:00 - 17:00, or if there's an appointment from 09:00 - 10:00, that's how you will see them in the back-end.

If you enable "Show booking slots in client time zone" in Amelia's General settings, though, that may not be what your customers see, depending on where they're located, and to what your WordPress site has been configured.

If this option in Amelia's General settings is disabled, all times on the front-end will be the same as times in the back-end. So, if your employee's work hours are from 09:00 - 17:00 in UTC+1, with this option disabled, regardless if your customer is in UTC+1, or in UTC+10 - they will still see times from 09:00 - 17:00, so if you have customers in multiple time zones, it's advisable to enable this option in Amelia's General Settings.

Important: In order for Amelia to store correct appointment times in the database (which is almost always in UTC time zone), you need to edit the WordPress' time zone to show the city you're in (or the city in your time zone), like this:

This way, when Daylight Savings Time starts (or ends), the times will be adjusted accordingly and you won't have to worry about them anymore.

If you save your Time Zone in UTC+/- format, you may experience issues with the Daylight Savings Time:

Explanation: When you configure the time zone to be "UTC+1" it will always be UTC+1. So, if we take Belgrade, Serbia as an example - without Daylight Savings Time, it is in UTC+1 time zone, but when Daylight Savings Time starts, Belgrade is in UTC+2. If you leave the time zone to be hard-coded to UTC+1, the times that your customers book on the front-end will not be properly adjusted to what you see in the back-end. 

Example with UTC+1 configured: It is mid-summer, and Belgrade is in UTC+2. "Show booking slots in client time zone" is enabled, and a customer from Belgrade opens your website to book an appointment. The working hours of your employee are set from 09:00 - 17:00 (in UTC+1), but the customer sees them as 10:00 - 18:00. This is because the time zone is hard-coded in the back-end, while on the front-end it shows the time in UTC+2. So, a customer books an appointment for 10:00, and shows up at 10:00, while you expect to see them at 09:00.

Please note: If you hard-coded the time zone, and you have booked appointments, once you switch the time zone in WordPress to your city, it will adjust the times in Amelia's appointments to fit the time zone your city is currently in. This happens because (as mentioned above) the times are saved in UTC in the database, and it's adjusted in the plugin programmatically. So, if you have a hard-coded time zone set to UTC+1, and someone booked an appointment for 09:00, that time is saved as 08:00 in the database. When you change the time zone to your city (which is now in UTC+2), the appointment time will be adjusted to the time saved in the database 08:00 + 2:00, so the appointment time will switch to 10:00. The only solution, in this case, is to manually modify the appointment times, but it's the only way to make sure your time zone is properly configured, and that the future appointments will be saved and displayed correctly both for you and your customers on the front-end.

Summary: When you select the city you're in, in WordPress' General Settings, the system automatically calculates the Daylight Savings Time, and shifts the clock accordingly, so if you have any issues with what you see on the front-end vs what you see in the back-end, always check the Time Zone in WordPress

15. Recurring VS multi-day events

Date: November 23, 2021


Recurring Events:

Think of recurring events as a lecture. For example, you have an event called "Evolution 101" which is a recurring event that recurs every week, on Mondays, from 10:00 - 14:00. Every week, the "Staff" (employee) provides the same lecture, so there'd be no reason why a single customer would want to book the same lecture for X number of weeks (because it is the same lecture every week).

Because of this, every recurring event is considered a separate event, and when a customer books one event, they are not automatically added to all recurring events.


Multi-Day Events:

You can create an event that spans between Monday and Friday, or that includes multiple dates (November 23rd, then November 25th, then December 12th, then January 2nd, and so on). Think of this as a course that either offers different content on every date, or it continues from the last date. For example, a multi-day event that happens on November 22nd, November 29th, December 6th, December 13th, and December 20th is a 5-class CSS course. On November 22nd, you'd learn basics, on November 29th, you'd move to another stage, on December 6th - to another stage, and finally, on December 20th, you'd complete the course.

A customer would book this event to register for the CSS course, and they would automatically be assigned to all 5 dates within this one event.

16. New Services not seen on the front-end

Date: November 12, 2021


If you added a service, and you don't see it on the front-end, please check these points:

  1. Is the service visible?


    1. Each service has a slider "Show Service on Site" - make sure that's enabled:
  2. If this slider is enabled - check if the employee is assigned to the service.


    1. When you create a service, you need to assign it to an employee, but the employee can be unassigned from the service in Amelia/Employees/Employee's Profile/Assigned Services tab - check if the box next to the new service is checked.
  3. If the employee is assigned to the service, switch to the Work Hours tab of the employee, and see how the work hours have been configured.


    1. Work hours can be configured per individual services, or periods, so if you created working hours for your employee, and assigned services to those working hours, the new service will not be added in there by default. An example of work hours with assigned services looks like this:
    2. When you click on the pencil symbol and expand the "Services" drop-down, you can actually see that there's a service that's not been selected (the new service, titled "Second" in the screenshot):

  4. Is the employee maybe assigned to another location?
    1. Each employee needs to be assigned to a default location. If you hide that Location in Amelia/Locations, the employee will not be able to provide services on that location, so either go to Amelia/Locations and un-hide the location or assign the employee to another location.
  5. Check the shortcode on the front end.
    1. Amelia has Services and Categories, so you could've added a category-specific shortcode on the front-end, which doesn't include the new service. For example, if you used [ameliabooking category=1], and you added the service to Category with ID: 2, the new service from category 2 will not appear in the front-end.
    2. Is the shortcode on the front-end, maybe employee-specific. Check for [ameliacatalog employee=1] and make sure that the employee is assigned to the service, or if you don't want that - set the default shortcode [ameliacatalog].

[ameliabooking category=1] and [ameliacatalog employee=1] are just examples of our shortcodes, and they're used to provide examples in this Article.

17. Amelia Shortcodes and Front-end Implementation

Date: November 5th, 2021


At the moment, the plugin has integration with Elementor and Divi builder, but we plan to add a lot more in the future. Adding specific (multiple) employees, categories, services, or locations through shortcodes is not possible (for example [ameliabooking services=1, 2, 3] is not possible).

Amelia's booking forms and panels can be added to pages using:

1. Gutenberg blocks:

On the right-hand side, there's a slider that you can enable "Preselect Booking Parameters" where you would be able to filter the available services, categories, employees, locations, and whether you're going to display only services, or only packages, or all:


2. Elementor widgets:

When you select the form, you'll be able to select booking parameters, just like in the Gutenberg editor:


3. Divi modules:

When you select the form, you'll be able to select booking parameters, like in Gutenberg and Elementor:


4. Shortcodes. Below is the list of shortcodes available in Amelia:

For Step-by-Step Booking Wizard view:

  1. [ameliabooking] if you want to show the basic Step-by-step Booking wizard,
  2. [ameliabooking category=1] if you want to show only the services from a category with ID 1,
  3. [ameliabooking service=1] if you want to show the booking form for the service with ID 1.
  4. [ameliabooking employee=1] if you want to show the booking form for the employee with ID 1,
  5. [ameliabooking location=1] if you want to show the booking form for the location with ID 1,
  6. [ameliabooking category=1 employee=1] if you want to show only the services from a category with ID 1 that are assigned to the employee with ID 1,
  7. [ameliabooking category=1 location=1] if you want to show only the services from a category with ID 1 that are provided on the location with ID,
  8. [ameliabooking show=services] if you have Packages enabled, but you only want to show services in the form,
  9. [ameliabooking show=packages] if you have Packages enabled, and you only want to show packages, without services in the form.
  10. [ameliabooking trigger=custom-id] if you're adding Amelia in the Elementor popup (explained in detail in the "Using Amelia in Elementor Popup" article), you need to add the button ID (class) to the button that triggers the popup, and then define it using "trigger=the-custom-id-of-your-button". "custom-id" is just an example, but you can add any ID you want, so if you add "my-button", the shortcode would be [ameliabooking trigger=my-button].

Please note: Service Description will not be displayed in [ameliabooking] form (it is only available in [ameliacatalog] form), nor will you be able to see the Category selection drop-down in this form

For the Service Catalog view:

  1. [ameliacatalog] if you want to show the basic Service Catalog view,
  2. [ameliacatalog category=1] if you want to show only the services from a category with ID 1,
  3. [ameliacatalog service=1] if you want to show this form for the service with ID 1,
  4. [ameliacatalog employee=1] if you want to show the services of one specific employee with ID 1,
  5. [ameliacatalog location=1] if you want to show the services of one specific location with ID 1,
  6. [ameliacatalog category=1 employee=1] if you want to show only the services from a category with ID 1 that are assigned to the employee with ID 1,
  7. [ameliacatalog category=1 location=1] if you want to show only the services from a category with ID 1 that are provided on the location with ID 1,
  8. [ameliacatalog show=services] if you have Packages enabled, but you only want to show services in the form,
  9. [ameliacatalog show=packages] if you have Packages enabled, and you only want to show packages in the form.
  10. [ameliacatalog trigger=custom-id] - similar to the #10 under "Step-By-Step" booking form (check above)

For the Search view:

  1. [ameliasearch] if you want to show the basic search view,
  2. [ameliasearch today=1] if you want to show the search view with a preselected current date,
  3. [ameliasearch show=services] if you have Packages enabled, but you only want to show services in the form,
  4. [ameliasearch show=packages] if you have Packages enabled, and you only want to show packages in the form.

Please note: The Amelia Search booking form cannot include filters like Step-by-Step and Catalog booking forms do, so you can't add something like [ameliasearch service=1].

For the Event booking:

  1. [ameliaevents] or [ameliaevents type=list] if you want to show a list of all your events,
  2. [ameliaevents tag='name'] if you want to show just the events that belong to the same tag defined during the creation of events, where “name” will be replaced with the tag name,
  3. [ameliaevents event=1] if you want to show only the event with ID 1 without its recurring events,
  4. [ameliaevents event=1 recurring=1] if you want to show the event with ID 1 with all his recurring events.
  5. [ameliaevents type=calendar] if you want to show events in a calendar view.

Please note: If you're using tags in the shortcode, make sure to copy the single quotes from #2 in the list above because of issues with different keyboard layouts that may not apply the tag if used.

Amelia Front-end Customer Panel

  1. [ameliacustomerpanel appointments=1 events=1] if you want to show both Appointments and Events,
  2. [ameliacustomerpanel events=1] if you want to show only Events,
  3. [ameliacustomerpanel appointments=1] if you want to show only Appointments in the Customer Panel.

Amelia Front-end Employee Panel

  1. [ameliaemployeepanel appointments=1 events=1] if you want to show both Appointments and Events,
  2. [ameliaemployeepanel events=1] if you want to show only Events,
  3. [ameliaemployeepanel appointments=1] if you want to show only Appointments in the Employee Panel.
  4. [ameliaemployeepanel appointments=1 events=1 profile-hidden=1] - if you want the employee to see all his booked appointments and events, but prevent the employee from accessing the profile, where they can adjust their working hours, days off, special days, and assigned services

18. "Unable to connect to Google Calendar" error in Employee's Profile

Date: November 15th, 2021


If you see an error in the top right, that says "Unable to connect to Google Calendar" when you enter your employee's profile, you probably already connected this employee to the Google Calendar, but (s)he dropped out.

They usually drop out when the App you created in Google Developers Console is not published, so first access your Google Developers Console, and go to the OAuth Consent Screen. In there, make sure the app is published:

After you do this, you'll need to access your database (via phpMyAdmin, or some other database management tool) and access the wp_amelia_providers_to_google_calendar table (please note that wp_ is the default database prefix, but on your end, it could be anything, so look for your_prefix_amelia_providers_to_google_calendar table). Delete all rows from that table, and after that, you should be able to connect your employees to the Google Calendar.

19. Default Time Slot Step (custom durations in Services, work hours, breaks...)

If you want to create a 5-minute, 10-minute, 15-minute, etc. Service and you only see 30-minute, 1hr, 1:30 durations, or you want your employee to work from 09:15 - 10:20 all you need to do is change the Default Time Slot step in Amelia's General Settings:

The Time Slot Step applies to all times in Amelia (Service durations, buffer times, employee's working hours and breaks), and if you want to shorten the duration, you need to change the Default Time Slot step.

For example, if you want a 45-minute service, a 1-hour long service, and a 10-minute long service, you need to set the default time slot step to "5 minutes" because all times in Amelia need to be dividable by the default time slot step (you can add 15-minute time slot step, but in that case, you won't be able to make a 10-minute long service).

20. Setting up SMTP with Gmail

Date: March 28th, 2022


Since 30 May 2022, Google no longer supports the use of third-party apps or devices that ask you to sign in to your Google Account using only your username and password.

In order to continue using SMTP with Gmail, you will need to set up an App Password for Amelia.

App Passwords can only be used with accounts that have 2-Step Verification turned on.

When you enable the 2-step verification on your Google account, please follow these steps to configure the App Password for Amelia:

1. Go to your Google Account.

2. Select Security:

3. Under "Signing in to Google," select App Passwords. (You may need to sign in again)

Please note: 

If you don’t have this option, it might be because:

  1. 2-Step Verification is not set up for your account.
  2. 2-Step Verification is only set up for security keys.
  3. Your account is through work, school, or another organization that doesn't allow 2-step verification.
  4. You turned on Advanced Protection.

4. At the bottom, under "Select app" choose "Other (custom name)":


5. Enter the name (for example "Amelia SMTP"), and click on Generate:

6. You'll see a new popup, where the App Password is the 16-character code in the yellow bar:

7. Save the password somewhere safe just in case you need it again (without the spaces).

8. In Amelia Settings/Notifications use these details for SMTP:

"Mail Service" - SMTP

"SMTP Host" - smtp.gmail.com

"SMTP Port" - 587

"SMTP Secure" - TLS

"SMTP Username" - your email address

"SMTP Password" - the 16-digit App Password you previously created (again, without the spaces)

21. Popup creation in Amelia

In this article, we will demonstrate how to create a Popup directly in Amelia (it had to be done in Elementor before).

Here are a few steps for a seamless creation of a Popup.

Creating the Trigger

In order to start creating the form in a popup you need to add a trigger. For example, if you’re using Gutenberg, you need to search for the Buttons block and add it to your page:

gutenberg-buttons

Click on the button to edit the text, and then click on the Advanced tab in the right-side menu. In there, define the class for the button (trigger).

button-class

This completes the creation of the trigger. Yes, it’s that simple. Now, you need to add the desired form to the page and add the trigger (class) to the form.

Adding the Form

Now you need to add the form to the page. It doesn’t matter where the form is added since defining it through the builder block, or through the shortcode will hide it until the popup is triggered.

All new Amelia forms work in the popup, so you can choose the form you want from the builder’s menu or you can manually type in the shortcode followed by the trigger, its type, and the command to enable the popup.

In the example above, the trigger is “amelia-popup”, the trigger type is “class”, and the command for the popup is “in_dialog=1” so if you’re manually adding the shortcode for Amelia’s Step-by-Step booking form, it’d be:

[ameliastepbooking trigger=amelia-popup trigger_type=class in_dialog=1]

If you’re using a builder, it’s much simpler than that. Type “Amelia” in the search field of the builder, and select (or drag-and-drop) the form to the page.

In the side-menu that appears, you can define the trigger (amelia-popup), select its type (class), and enable “Show in Amelia Popup”:

define-the-form

You’re done! All you need to do now is publish the page and check out how it works.

Additional Notes

hyperlink

As you can see, the hyperlink #thisWorksToo doesn’t really redirect a user anywhere, but simply creates a clickable text that includes the same class “amelia-popup” that triggers the popup.

AmeliaPopup

22. Outlook Calendar blank calendar in Employee Profile

Date: November 16th, 2021


Please make sure you go through our Outlook Calendar Integration documentation, and check out the video instructions in there.

It can happen that you connected your employee to his/her Outlook Calendar, but the calendar dropdown in the Employee's profile in Amelia is blank and showing "No Data":

This happens only if you copied the wrong credentials from Azure into Amelia.

1. Go to Amelia Settings/Integrations/Outlook Calendar, and verify that the Redirect URI is this: https://yourwebsite.com/wp-admin/ (please note that you have to replace "yourwebsite.com" with your actual website's URL, and make sure to close "wp-admin" with /)

2. Access Azure, go to "Azure Active Directory/App Registrations", and delete the existing App Registration.

3. Click on "New Registration". In the “Who can use this application or access this API?” check the option “Accounts in any organizational directory (Any Azure AD directory – Multitenant) and personal Microsoft accounts (e.g. Skype, Xbox)

4. Below that, under Redirect URI, paste your redirect URI from Amelia: https://yourwebsite.com/wp-admin/ and click on "Register"

5. Copy the "Application (client) ID" and paste it into Amelia Settings/Integrations/Outlook Calendar:

4923181915.png

6. On the left-hand side menu, access "Certificates & Secrets” and click on the “New Client Secret”

7. When you add the description ("Amelia" for example), select the expiration to be the longest possible choice (I believe 24 months is currently the longest option), and click on "Add".

8. Copy the "Value" field:

And paste it into Amelia Settings/Integrations/Outlook Calendar:

2087608321.png

That should be it. Go to Amelia/Employees, and if the employee is still connected to the non-existing calendar, click on "Sign out of Outlook", delete all cache from your website, and then try again.

23. Using Multiple Languages in Amelia

Date: November 23, 2021


Please note that we do not have translators in our company, so all translated languages Amelia has have been translated by our customers. If you find any inconsistencies with the translation, please feel free to correct them using POEdit, or Loco Translate, open a ticket and send us the corrected translation, so we can add it to the plugin.

At the moment we have Spanish, German, Dutch, Russian, Romanian, French, Finnish, Italian, Swedish, Brazilian Portuguese, Portuguese, Greek, Arabic, Slovak, Hungarian, Danish, Belgian, Japanese, Polish, Hebrew, and Chinese translation. Approximately 90-95% of the plugin is translated into the languages stated above.

To apply any of these languages, all you need to do is go to WordPress' General settings and set the site language to your language.


Please note that the languages mentioned above work only for certain locales. For example, we have Spanish (Spain) translation, which is saved with es_ES locale, but if you set your site language to be Spanish (Mexico), Amelia will not pick up the translation, since the locale is es_MX. 

The solution here would be to either change WordPress' language from Spanish (Mexico) to Spanish (Spain), or access ../wp-content/plugins/ameliabooking/languages/ folder, and to copy the "es_ES" folder. Paste it in the same path (ameliabooking/languages) and rename the folder to "es_MX". Then, access the folder, and rename the two files from "ameliabooking-es_ES.po" and "ameliabooking-es_ES.mo" to "ameliabooking-es_MX.po" and "ameliabooking-es_MX.mo".


NOTIFICATIONS:

Notification templates are not included in the translations mentioned above, so when you access Amelia/Notifications, all templates will be in English. However, if your site is set to German (for example), the de_DE locale will be applied, and Amelia will use the templates you see in Amelia/Notifications, so if you don't translate these, all email notifications will be sent in English.

In cases like this, DO NOT add your language as a secondary language in Amelia. It is the primary language of your website, and Amelia will use it as a primary language.

Since your site is configured to your language in WordPress General Settings (German in this example), you only need to translate the templates you see when you land in Amelia/Notifications. The language drop-down you see in the top right is used only for additional languages (so, if the site is in German, you will add English, Spanish, Dutch, etc) through this menu:

So, if you have issues with emails coming in in English, instead of the language your WordPress site is set to, make sure you haven't added your language as the additional language, and translate the templates you see when you land in Amelia/Notifications.

24. Google Calendar - Redirect URI Mismatch (error 400)

Date: November 16th, 2021


PLEASE NOTE: Google Developer Console might look different from your end as Google makes changes to their interface frequently, but functionality is still the same and remains intact.

If you see a "Redirect URI mismatch", the URI in Amelia and the URI in Google Developers Console are not the same.

Please go to Amelia Settings/Integrations/Google Calendar and make sure that the URI you see in there is your website's URL, ending with "wp-admin/admin.php?page=wpamelia-employees". For example, if your website is "yourwebsite.com", the redirect URI needs to be this:

https://yourwebsite.com/wp-admin/admin.php?page=wpamelia-employees

Is your website in HTTP or HTTPS? Please note that Google doesn't allow HTTP at this time, so if it's HTTP, you'll need to install an SSL certificate and move your site to HTTPS before you can continue.

After verifying that, please go to Google Developers Console, and in "APIs & Services" go to "Credentials". Under "OAuth 2.0 Client IDs" click on the name of your app:

In there, check the "Authorized redirect URIs" on the bottom of the page. Make sure that the URL has to be the same as it is in Amelia/Settings/Integrations/Google Calendar.


25. Refund Policy

Customer satisfaction and long-term relationship is our primary goal here at TMS. So, even though we are pretty confident in the quality of Amelia, and are pretty sure you won’t ever need a refund, we have established a straightforward customer-friendly refund policy.

When a refund might be given

If you are experiencing technical difficulties with your copy of Amelia, please feel free to open a ticket on this platform, so our support managers can help. They are able to resolve the problems in almost all cases.

However, if you feel that the product just doesn’t work for you, you can request a refund. As Amelia is a digital non-revokable product, we issue refunds only within 15 days after purchase. In case you decide to use this option, please provide us with feedback as it is vital for us to make Amelia better with each release.

When a refund might not be given

We do not issue refunds when 15 days after the purchase have passed. Please note that it is customers responsibility to understand this upon purchasing products from us.

How to submit a refund request

Please log in to http://store.tms-plugins.com/ and under "My Licenses" click on the Three Dots in the right-hand side of the license you want to submit a refund request for:

If you don't see it, that means that the 15-day money-back guarantee period ended, and as per our refund policies (Amelia Refund PolicywpDataTables Refund Policy), you're no longer eligible for a refund. After you submit a refund request, you will not receive any confirmation emails, but you will see that the button is grayed out:

That means that the refund request is successfully submitted and that you will receive your refund in 5 - 7 business days.

26. Notification Placeholders

Date: November 23, 2021


Amelia has placeholders for email notifications which are supposed to be replaced with real data from your employees, customers, extras, custom fields, and other booking data. For example, %customer_full_name% will be replaced with the customer's First Name, and the Last Name, that they entered when they booked the appointment, so if John Doe booked an appointment, you can configure an email notification that says "Dear %customer_full_name%" and they'll receive an email that says "Dear John Doe".

Note: All linked placeholders like %customer_panel_url%, %employee_panel_url%, %appointment_cancel_url%, %event_cancel_url%, and Zoom placeholders are programmatically generated URLs, and if you want to create a hyperlink to these URLs, they need to be added as placeholders, not direct URLs.

For example, when you configure the Customer Panel and add its URL to Amelia Settings/Roles/Customer, and you want to add a line in the email like "To access your Customer Panel, please click here", the template needs to look like this:

This is because the Customer Panel URL that's sent to the customer appends a login token to the URL, so a customer either logs in with this token (if you disabled the password as being mandatory in Amelia Settings/Roles/Customer) or sends the customer to the password creation form.


These placeholders can be used in titles and descriptions of Amelia Settings/Integrations (Google Calendar, Outlook Calendar, Zoom, Lesson Space, Facebook Pixel, and Google Analytics), along with Payment MetaData and description, in Amelia Settings/Payments.

Please note: Zoom placeholders are already being forwarded as Hyperlinks, so don’t add them behind any text. If you do, the URLs will not be forwarded, and your customers and employees won’t be able to access the meeting from the email.

List of Notification placeholders (self-explanatory placeholders like %customer_first_name%, %appointment_date%, etc. will be skipped):


1. Customer - Appointments:

%appointment_cancel_url% - An automatically generated cancelation URL. Please check out the Note above.

%appointment_deposit_payment% - Appointment deposit amount

%appointment_duration% - The duration of the appointment - this combines all durations within the appointment, so service duration along with potential Extras Durations and/or buffer times

%appointment_notes% - Notes added to the appointment by an employee, Amelia Manager, or the Administrator

%appointment_price% - The price of the appointment - this combines the price of the service, along with the price of additional people or extras.

%appointment_status% - The status of the appointment (Approved, Pending, Canceled, or Rejected)

%category_name% - The name of the category in which the booked service is

%coupon_1% - The ID of the coupon. Each coupon has its own ID, so it could go from %coupon_1% to %coupon_n%. Hover over each placeholder to see the coupon and its deduction.

%custom_field_1% - The ID of the custom field. Each custom field has its own ID, so it could go from %custom_field_1% to %custom_field_n%. Hover over each placeholder to see the name of the custom field.

%customer_note% - The note added to the Customer's profile in Amelia/Customers

%customer_panel_url% - The programmatically generated Customer Panel URL. Please check out the Note above.

%employee_note% - The note added to the Employee's profile in Amelia/Employees

%google_meet_url% - The programmatically generated Google Meet URL. Please check out the Note above.

%lesson_space_url% - The programmatically generated Lesson Space URL. Please check out the Note above.

%recurring_appointments_details% - This placeholder needs to be predefined. You can access it below Appointment Approved or Appointment Pending appointment templates:

In there, you'd enter all details that would be defining the recurring appointments your customers booked.

%service_extra_1_name% - The name of the extra a customer may have added to the appointment

%service_extra_1_price% - The price of the extra a customer may have added to the appointment

%service_extra_1_quantity% - The quantity of the extra a customer may have added to the appointment

%service_extras% - The list of all selected extras for the appointment (just the names of these extras, without the price, or the quantity)

%zoom_join_url% - The programmatically generated Zoom URL for the customer. Please check out the Note above.


2. Customer - Events:

%attendee_code% - The code associated with the customer (attendee)

%event_cancel_url% - An automatically generated cancelation URL. Please check out the Note above.

%event_period_date% - If the event spans multiple dates, this placeholder displays that date period.

%event_period_date_time% - If the event spans multiple dates, this placeholder displays that date and the times within this period.

%lesson_space_url_date% - The programmatically generated Lesson Space URL that shows just the date. Please check out the Note above.

%lesson_space_url_date_time% - The programmatically generated Lesson Space URL that shows both the date and the time. Please check out the Note above.

%zoom_join_url_date% - The programmatically generated Zoom URL for the customer that shows just the date. Please check out the Note above.

%zoom_join_url_date_time% - The programmatically generated Zoom URL for the customer that shows both the date and the time. Please check out the Note above.


3. Employees - Appointments:

%booked_customer% - This placeholder replaces these three placeholders: %customer_full_name%, %customer_email% and %customer_phone%. It is mainly used for group appointments (Appointments that can be booked by multiple customers). If you add the 3 placeholders mentioned above, with every new booking, the employee will receive the full name, email, and phone of all previously booked customers, along with the last one that just booked the appointment. If you want your employees to see just the last customer that booked the appointment, use the %booked_customer% placeholder.

%coupon_used% - The coupon that the customer used to book the appointment

%employee_panel_url% - The programmatically generated Employee Panel URL. Please check out the Note above.

%group_appointment_details% - This placeholder needs to be configured. You can access it below the “Appointment Approved” or “Appointment Pending” appointment templates:

%zoom_host_url% - The programmatically generated Zoom URL for the employee. Please check out the Note above


4. Employees - Events:

%zoom_host_url_date% - The programmatically generated Zoom URL for the employee that shows just the date. Please check out the Note above.

%zoom_host_url_date_time% - The programmatically generated Zoom URL for the employee that shows both the date and the time. Please check out the Note above.