Okay
  Public Ticket #2848518
Amelia Rest API
Closed

Comments

  •  10
    Daniel Schindlower started the conversation

    Hi, is there a way to interact with Amelia via a rest API?

    For example to create an appointment, get availability, reschedule, etc.

    If not, are you planning it? Any release date estimate?

    In today's multichannel world is a must being able to communicate via apis with services as important as the scheduling tool.


    Thanks

  • [deleted] replied

    Hi Daniel,

    thank you for reaching out to ussmile.png

    Yes we have API Routes for the Amelia app, but most of them are protected depends on of the permissions that is set in WordPress Accounts. You can check those API Routs in our free version of Amelia. Amelia Lite is a free WordPress booking plugin that allows to set up a fully-featured automated WordPress booking system on your website. It is a handy tool for small businesses and individuals that depend on stable appointment-booking processes. You can download it from this link.

    When you download Lite version you can find all API Routs in this file ../wp-content/plugins/ameliabooking/src/Infrastructure/Routes/Routes.php

    At the moment we have some JavaScript hooks that triggers after confirm booking, before confirm booking.


  •  3
    Filippos Sdralias replied

    Is there any update on this?

  •  2,498
    Aleksandar replied

    Hello Filippos.

    We have API, but unfortunately, we don't have documentation for it, but you can inspect request/response HTTP headers in our Lite version.

    You can check these routes:

    For fetching entities: /wp-admin/admin-ajax.php?action=wpamelia_api&call=/entities&types[]=locations&types[]=employees&types[]=categories&types[]=custom_fields

    For fetching time slots: /wp-admin/admin-ajax.php?action=wpamelia_api&call=/slots&locationId=[LOCATION_ID]&serviceId=[SERVICE_ID]&providerIds[]=[PROVIDER_ID]&group=1&persons=1

    For booking: /wp-admin/admin-ajax.php?action=wpamelia_api&call=/bookings

    For notification after successfull booking: /wp-admin/admin-ajax.php?action=wpamelia_api&call=/bookings/success/[BOOKING_ID]e.g. 

    Booking made with ajax request:

    <script>
    jQuery.ajax({
       type: "POST",
       url: "/wp-admin/admin-ajax.php?action=wpamelia_api&call=/bookings",
       data: JsonData,
       contentType: "application/json; charset=utf-8",
       dataType: "json",
       success: function(data){},
       failure: function(errMsg) {}
    });
    </script>
    

    Kind Regards, 

    Aleksandar Vuković
    [email protected]

    Rate my support

    wpDataTables: FAQ | Facebook | Twitter | InstagramFront-end and back-end demo | Docs

    Amelia: FAQ | Facebook | Twitter | InstagramAmelia demo sites | Docs | Discord Community

    You can try wpDataTables add-ons before purchasing on these sandbox sites:

    Powerful Filters | Gravity Forms Integration for wpDataTables | Formidable Forms Integration for wpDataTables | Master-Detail Tables

  •  3
    Filippos Sdralias replied

    Is on your roadmap a full documentation to be implemented? It would be pretty helpful. 

  •  2,498
    Aleksandar replied

    Hi again Filippos.

    The developers' documentation is planned to be released, but I don't have an ETA on that yet.

    Hopefully, within a month or two, but I can't promise anything.

    Kind Regards, 

    Aleksandar Vuković
    [email protected]

    Rate my support

    wpDataTables: FAQ | Facebook | Twitter | InstagramFront-end and back-end demo | Docs

    Amelia: FAQ | Facebook | Twitter | InstagramAmelia demo sites | Docs | Discord Community

    You can try wpDataTables add-ons before purchasing on these sandbox sites:

    Powerful Filters | Gravity Forms Integration for wpDataTables | Formidable Forms Integration for wpDataTables | Master-Detail Tables

  • Adam replied

    Hi Aleksander,

    Looking forward to hearing about the API documentation.

    I'm curious what the scope of customization will be once the API is available - I'd like to start developing a few custom features I have in mind to improve the process for my customers and myself.

    For example, if I have a customer that purchases a package of 5 classes, they are assigned 5 credits to book those classes later. If they decide to bring a friend (or multiple friends) to one of those classes, I'd like to give them the option to use the credits from their package to do so (bring 2 friends - deduct 3 credits [one for self and 1 for each friend]).

    Will the API enable 3rd party developers like myself to build out these features?

    Thanks!

    Adam

  •  2,498
    Aleksandar replied

    Hello Adam.

    I honestly don't know if you'll have abilities like this, but I doubt it. We don't know (nor are authorized to disclose) how future development will work until a couple of days before the release.

    JS files are modified (minimized) in the public version of the plugin (in our development environment is accessible). 

    All those files that have extension .vue are compressed and minimized in JS files which is very hard and not recommended for modification. So in order to add some other features you can unminify the js and customize it.

    I'm not sure if the developers' documentation will help you in this regard.

    Kind Regards, 

    Aleksandar Vuković
    [email protected]

    Rate my support

    wpDataTables: FAQ | Facebook | Twitter | InstagramFront-end and back-end demo | Docs

    Amelia: FAQ | Facebook | Twitter | InstagramAmelia demo sites | Docs | Discord Community

    You can try wpDataTables add-ons before purchasing on these sandbox sites:

    Powerful Filters | Gravity Forms Integration for wpDataTables | Formidable Forms Integration for wpDataTables | Master-Detail Tables

  • Andrew replied

    Hey Aleksander, thanks for your comments around checking API routes and sample ajax request, it's been helpful for me trying upgrade from a very old version of Amelia to latst.

    Your examples don't include anything around nonce, which is something that is required from what I understand to be able to make API calls. We've tried a few different ways to interact with the API but are continually getting a 500 response with "reauthorise = true" from external (postman) or internal wordpress.

    Would appreciate any advice you could give.


    Thanks.

  •  2,498
    Aleksandar replied

    Hello Andrew.

    The example I sent doesn't require a nonce. For which routes are you inquiring, exactly?

    Kind Regards, 

    Aleksandar Vuković
    [email protected]

    Rate my support

    wpDataTables: FAQ | Facebook | Twitter | InstagramFront-end and back-end demo | Docs

    Amelia: FAQ | Facebook | Twitter | InstagramAmelia demo sites | Docs | Discord Community

    You can try wpDataTables add-ons before purchasing on these sandbox sites:

    Powerful Filters | Gravity Forms Integration for wpDataTables | Formidable Forms Integration for wpDataTables | Master-Detail Tables

  • Andrew replied

    There were a few routes I was looking at that required authentication, but I think if I could solve my nonce issue for say the `appointments` route I should be able to work out the rest

  •  3
    Lana replied

    Hi Aleks,

    I'm also interested in Andrews question. Can you please respond?

    Thanks

  •  2,498
    Aleksandar replied

    Hi Andrew and Lana.

    I forwarded the question to our developers and as soon as I hear from them I will get back to you.

    Sorry for the delay.

    Kind Regards, 

    Aleksandar Vuković
    [email protected]

    Rate my support

    wpDataTables: FAQ | Facebook | Twitter | InstagramFront-end and back-end demo | Docs

    Amelia: FAQ | Facebook | Twitter | InstagramAmelia demo sites | Docs | Discord Community

    You can try wpDataTables add-ons before purchasing on these sandbox sites:

    Powerful Filters | Gravity Forms Integration for wpDataTables | Formidable Forms Integration for wpDataTables | Master-Detail Tables

  •  2,498
    Aleksandar replied

    Hello again.

    At the time, we can only provide you guys with the script that ignores the nonce. It is attached to my response, and all you need to do is replace the file ../wp-content/plugins/ameliabooking/src/Application/Commands/Command.php with the file attached to my response.

    Our developers are currently working on a new feature where you'll be able to use the API key, so until then, this should work fine.

    Please let me know if you have any further questions or issues.

    Attached files:  src (2).zip

    Kind Regards, 

    Aleksandar Vuković
    [email protected]

    Rate my support

    wpDataTables: FAQ | Facebook | Twitter | InstagramFront-end and back-end demo | Docs

    Amelia: FAQ | Facebook | Twitter | InstagramAmelia demo sites | Docs | Discord Community

    You can try wpDataTables add-ons before purchasing on these sandbox sites:

    Powerful Filters | Gravity Forms Integration for wpDataTables | Formidable Forms Integration for wpDataTables | Master-Detail Tables

  • Gonzalo replied

    Hello Aleksandar!,

    Are there any news about an API for developers ?


  •  2,498
    Aleksandar replied

    Hey, Gonzalo.

    Unfortunately, not yet.

    As you saw with the last update, we're in the middle of redesigning all booking forms, so that's currently a priority.

    I'll definitely reach out to our developers and ask them if they will release the aforementioned feature in the near future.

    Kind Regards, 

    Aleksandar Vuković
    [email protected]

    Rate my support

    wpDataTables: FAQ | Facebook | Twitter | InstagramFront-end and back-end demo | Docs

    Amelia: FAQ | Facebook | Twitter | InstagramAmelia demo sites | Docs | Discord Community

    You can try wpDataTables add-ons before purchasing on these sandbox sites:

    Powerful Filters | Gravity Forms Integration for wpDataTables | Formidable Forms Integration for wpDataTables | Master-Detail Tables

  •  1
    Emanuel replied

    Hi Aleksander, thanks for updating us on the rest API matter. I am also very much looking fwd for the API feature to be ready, so we can connect an AI bot and improve our services and clients experience. Do you have an ETA?

    Thanks

  •  2,498
    Aleksandar replied

    Hey Emanuel.

    Our developers informed me that this is almost done. It's going through testing at the moment, so I believe it will be included in the near future.

    Kind Regards, 

    Aleksandar Vuković
    [email protected]

    Rate my support

    wpDataTables: FAQ | Facebook | Twitter | InstagramFront-end and back-end demo | Docs

    Amelia: FAQ | Facebook | Twitter | InstagramAmelia demo sites | Docs | Discord Community

    You can try wpDataTables add-ons before purchasing on these sandbox sites:

    Powerful Filters | Gravity Forms Integration for wpDataTables | Formidable Forms Integration for wpDataTables | Master-Detail Tables

  •  1
    Emanuel replied

    Hi Aleksandar, that's good news and I can't wait for it to be released.

    I am sure many of us here, will be able to take the booking service experience to a whole different level.

    Thanks for the update.

  •  3
    Mike replied

    Also looking forward to this. 

  •  10
    Daniel Schindlower replied

    me too!!!!

  •  2,498
    Aleksandar replied

    I'm glad to hear that adding the developers' documentation will be so beneficial for all of you.

    We'll add it to our change log as soon as it's out and if you guys have any questions in the meantime, please feel free to ask.

    Kind Regards, 

    Aleksandar Vuković
    [email protected]

    Rate my support

    wpDataTables: FAQ | Facebook | Twitter | InstagramFront-end and back-end demo | Docs

    Amelia: FAQ | Facebook | Twitter | InstagramAmelia demo sites | Docs | Discord Community

    You can try wpDataTables add-ons before purchasing on these sandbox sites:

    Powerful Filters | Gravity Forms Integration for wpDataTables | Formidable Forms Integration for wpDataTables | Master-Detail Tables

  •  1
    Fox replied

    Hey Aleksandar, 

    I was wondering if there's any news on the api. Ensuring that the inspected routes are stable would be a huge help. Thanks!

  •  2,498
    Aleksandar replied

    Hey Fox,

    Sorry but not yet. Our lead developer (who's in charge of the API) is currently on vacation, so I can't provide you with an estimate until he gets back. I know they are working on it, but at this time, I don't know when it will be included.

    Would you like me to inform you via this ticket when he gets back?

    Kind Regards, 

    Aleksandar Vuković
    [email protected]

    Rate my support

    wpDataTables: FAQ | Facebook | Twitter | InstagramFront-end and back-end demo | Docs

    Amelia: FAQ | Facebook | Twitter | InstagramAmelia demo sites | Docs | Discord Community

    You can try wpDataTables add-ons before purchasing on these sandbox sites:

    Powerful Filters | Gravity Forms Integration for wpDataTables | Formidable Forms Integration for wpDataTables | Master-Detail Tables

  •  1
    Fox replied

    Yeah that would be great.

  •  2,498
    Aleksandar replied

    Alright, Fox, I'll get back to you when I hear from him.

    Sorry for the delay.

    Kind Regards, 

    Aleksandar Vuković
    [email protected]

    Rate my support

    wpDataTables: FAQ | Facebook | Twitter | InstagramFront-end and back-end demo | Docs

    Amelia: FAQ | Facebook | Twitter | InstagramAmelia demo sites | Docs | Discord Community

    You can try wpDataTables add-ons before purchasing on these sandbox sites:

    Powerful Filters | Gravity Forms Integration for wpDataTables | Formidable Forms Integration for wpDataTables | Master-Detail Tables

  •  2,498
    Aleksandar replied

    Hello again Fox.

    I just wanted to let you know that our developers are currently working on API that will be included in Amelia's Developer licenses.

    At this time, we don't have plans to include the API in Pro and Basic licenses, but if that changes, it will be mentioned on our Pricing Page and in our Newsletter.

    Kind Regards, 

    Aleksandar Vuković
    [email protected]

    Rate my support

    wpDataTables: FAQ | Facebook | Twitter | InstagramFront-end and back-end demo | Docs

    Amelia: FAQ | Facebook | Twitter | InstagramAmelia demo sites | Docs | Discord Community

    You can try wpDataTables add-ons before purchasing on these sandbox sites:

    Powerful Filters | Gravity Forms Integration for wpDataTables | Formidable Forms Integration for wpDataTables | Master-Detail Tables

  •  10
    Daniel Schindlower replied

    Hi Aleksandar,

    I initiated this conversation over 2 years ago. If my memory serves me right, the "developer" plan wasn't available at that time. During those years, I've purchased a lifetime pro license. Currently, I only operate one site. To my understanding, the developer plan is primarily designed for agencies, starting at a minimum of 20 sites.

    With that said, I'm deeply disappointed. After patiently waiting for 2 years for this crucial feature, and it feels like loyal customers like myself are being sidelined. Expecting us to pay for 20 sites when we only need one is unreasonable.

    I strongly request that you reconsider this approach and integrate the API access within the pro plan. Loyal customers should feel valued, not sidelined.

    Regards,

  •  2
    Mike replied

    Its bizarre to me how locked down Amelia is to any kind of customization.   

    1. Seperate user system (which is insanity)
    2. Hidden away hooks
    3. JS minified, hardly any events to listen for, for instance if a customer logs into Amelia in the portal there is no way to tell they are logged in
    4. No attributes on anything in the front end so no ability to do things like customise the employee portal
    5. Documentation scattered through a ticketing systems replies
    6. Feature voting system is a total mess of 100s of features and no categorization
    7. Super basic custom fields, only available on appointments.  Cant user WP users, cant create custom fields on users, cant even hack the UI for the employees.  Super frustrating.  

    Now you're talking about hiding the API in a dev plan?  This is crazy.  WordPress is the biggest CMS in the world because of how easy it is to adapt to client needs.  

    There are developers out there who will make your product better for free(!) if you just let them.  They will create addons,  pull requests, snippets, theme customisations etc etc. They will market your product for you.  

    There are collections of plugins like BuddyBoss / LearnDash / WooCommerce / Gravity forms that form super configurable, adaptable solutions that can work for most businesses.  They all promote each other and lift each other up by focussing on their core features and making sure they can easily operate together.  You guys could so easily slot into this.  

    Making the API available to pro accounts is table stakes, in my opinion, but the real opportunity is to open it up and let people help build your product out.  
       

  •  3
    Mike replied

    @mike Agreed. 

    Over the last few years I've had some really strange conversations with the team here.
    They feel like one of the most inflexible teams out there at the moment. I don't bother posting feature requests or suggestions for improvement because they either get ignored or stuck in development hell for years. 

    Up until a year ago they had the licence key showing in plain sight. I offered code for them to hide it. They waited almost another year because they had a better idea.

    I could understand hiding the API behind a certain tier if Amelia wasn't self-hosted, but it is, so it comes at literally zero extra cost to TMS, and, as you say, opens the platform up to an entire community of imagination and talent, making the entire platform so much more attractive. 

    Strange behaviour 🤷

  •  2,498
    Aleksandar replied

    Hi all!

    @Daniel, I'm sorry to hear you're disappointed, I truly am. As mentioned in March:

    We don't know (nor are authorized to disclose) how future development will work until a couple of days before the release.

    The latest information I received is that the API will be added only to the "Developer" licenses. The Developer License plan was added in 2019 and, at the moment, the only difference between it and the Pro and Basic License plans was the number of domains. Unlike our competition, we don't charge for integrations and features, so you don't have to purchase Amelia for (example) $119, then purchase Google Calendar Integration for $20, or Online Payments for $30, or Custom Notifications for $20, and so on. Every digital product that has different licenses differentiates between those licenses in features, number of users, number of websites, and so on. The Basic license was the first to have excluded features (Packages, Resources, WhatsApp, and Refunds), but since this will be API for developers, it makes sense to include this in the Developer license plans. I, of course, understand that there are developers who would want to use this for a single website, or a handful of sites, and I will ask our management to reconsider the decision and include the API support in the Pro licenses as well, but I can't make any promises.

    We've released the "For Developers" documentation section, and the 1st section in it is the hooks for Amelia. We'll be adding new pages in time, of course.

    Amelia deliberately doesn't have Add-ons. Firstly, we want to keep Amelia at the top of the list of the booking plugins, but keep the price low and affordable for anyone. As mentioned above, unlike our competition (which I don't want to mention), we don't sell features and integrations. Whatever we develop is going to be included in the plugin. In which license they are going to be included is (as per our Terms & Conditions) our decision, and I quote:

    Please note that Price Plans differ in terms of the number of domains on which you can use the license, the scope of the Service, and/or available features. Please note that it is at our discretion to decide which Price Plan includes which feature, as well as which feature will be included in the upgrade.

    There are tens of thousands of Amelia customers who post their ideas on our feature requests page and there are less than 20 people working on Amelia (developers, QA, support, managers, marketing, sales, designers, etc.) and we can't possibly satisfy the world and please everyone with their requests. The features do have a lot of votes, that's true, but you can't imagine how many times we started to work on something that proved to be too difficult to accomplish in time. We need to include new features, fix issues with existing ones, change the logic of certain points in the plugin, improve the usability, and so on, so ditching all that to work on an extremely difficult feature in order to (no intention to insult anyone) satisfy a handful of people while thousands of others may not have the need for that is simply not what we practice. I don't want you to believe that feature requests are ignored, but they may be postponed because of multiple reasons, not just the one mentioned here.

    I agree with you that many features take time to develop and in your mind, that's too long, but please note that our developers have a "To Do" list that would have them work for 2 years, 24/7/365. We are working as fast as possible, and what you see coming from us is the best we have to offer.

    Again, I'll check with our managers about the API for Developers feature, which sparked this discussion and I will get back to you, but again, I can't promise anything.

    Kind Regards, 

    Aleksandar Vuković
    [email protected]

    Rate my support

    wpDataTables: FAQ | Facebook | Twitter | InstagramFront-end and back-end demo | Docs

    Amelia: FAQ | Facebook | Twitter | InstagramAmelia demo sites | Docs | Discord Community

    You can try wpDataTables add-ons before purchasing on these sandbox sites:

    Powerful Filters | Gravity Forms Integration for wpDataTables | Formidable Forms Integration for wpDataTables | Master-Detail Tables

  •  3
    Mike replied

    @Aleksander

    Everything you've written here is why it's a GOOD idea to open the API up to everyone.

    Don't want to release addons? Let customers do it instead.

    Only a small team of devs? Let customers help you.

    New features take time to implement? The community is here for you.


    Why limit who can help you?

  •  1
    Steph replied


    I'm also quite confused why the api is likely to only be released as a part of the developer plan. Your ideal customer for the developer plan seems to be agencies and yet Amelia is marketed as an enterprise level booking tool. A lot of large businesses/enterprise companies will have their own internal development teams. That is certainly the case at my company.

    We don't need to run Amelia on say 20 domains, 3 is enough for us. We do however really need the ability to customise the booking forms as it doesn't give us enough control on the design and user experience for our specific use cases. I had kind of assumed that the Amelia api would allow us to build a custom booking form that we then connect to the rest of backend booking system. 

    I would gladly have our website continue to use the backend/management side of Amelia but with our own custom frontend. Having to purchase a license for 20 domains to get access to the api is definitely going to make us reconsider if Amelia is the right product for our specific use case.

    I really do hope this decision is still up for review internally at your company.


  •  2,498
    Aleksandar replied

    Hi again guys.

    There are multiple options that our developers are working on, so I'll check with them and get back to you. From what I understand, standard WP hooks and filters should be available in all licenses and they will allow extending the functionality of the plugin on the server side, like any other plugin inside the current WP installation, but there are also PHP/WP API, JS callbacks and hooks for the frontend, and REST API that need to be considered.

    I don't want to put a decisive "It is only going to be included in the Developer license" response here, as we need to check the details with the development and management teams.

    After we have a meeting about this, I'll get back to you with defined options that will be developed for Amelia.

    Kind Regards, 

    Aleksandar Vuković
    [email protected]

    Rate my support

    wpDataTables: FAQ | Facebook | Twitter | InstagramFront-end and back-end demo | Docs

    Amelia: FAQ | Facebook | Twitter | InstagramAmelia demo sites | Docs | Discord Community

    You can try wpDataTables add-ons before purchasing on these sandbox sites:

    Powerful Filters | Gravity Forms Integration for wpDataTables | Formidable Forms Integration for wpDataTables | Master-Detail Tables

  •  2,498
    Aleksandar replied

    Hi all. A quick update on this topic before we release an official update of the plugin:

    There are different options that are currently planned and/or developed that will allow extending the plugin:

    • Standard WP hooks and filters (will be available in all licenses), will allow extending the functionality of the plugin on the server side, like any other plugin inside the current WP installation.
    • We are also considering a “PHP/WP API” (server-side functions that can be called from within the same WP installation, something similar to what Gravity Forms have). If we decide in favor of adding this, it will also be available in all licenses, and serve as a framework for addons.
    • JS callbacks and hooks for the front end (will be available in all licenses). When available, these should allow extending some of the front-end logic on the JavaScript side.
    • REST API integration with the plugin, soon to be launched, will allow e.g. calling the plugin’s actions from external systems (not necessarily from WP and from the same server overall). This one will be available only in the developer license. It requires creating an oAuth key for authentication, for security purposes, that should work only on the current installation.

    With regards to the pricing plan: the number of domains was the only difference for the developer license initially, but it won’t be the only one going forward. Similarly, as with most other plugins and other online products, the pricing tiers are adjusted to different use cases and customer categories, and every tier is going to have an appropriate set of features and other included benefits, the number of domains is just one of those. It doesn’t mean that we are going to add new features only to higher tiers: all tiers will receive new features and updates same as it happened since the launch.

    For the addon and integrations developers: We are always happy and endorse building new addons and extended features (the API key feature that is in development is not blocking that), in fact we plan to publish an open call for those, and an open library of the best addons - we’re happy to collaborate! If you, or someone you know, would like to develop an add-on for Amelia, please contact us to discuss this further.

    Kind Regards, 

    Aleksandar Vuković
    [email protected]

    Rate my support

    wpDataTables: FAQ | Facebook | Twitter | InstagramFront-end and back-end demo | Docs

    Amelia: FAQ | Facebook | Twitter | InstagramAmelia demo sites | Docs | Discord Community

    You can try wpDataTables add-ons before purchasing on these sandbox sites:

    Powerful Filters | Gravity Forms Integration for wpDataTables | Formidable Forms Integration for wpDataTables | Master-Detail Tables

  •   Daniel Schindlower replied privately
  •   Aleksandar replied privately
  •   Daniel Schindlower replied privately
  •   Aleksandar replied privately