These are instructions on how to generate Single Sign-On tokens on your server. These token can be used to authenticate your users with
bookafy.
Here’s how it works:
To find your private key, login to partner dashboard as a White label Admin and
Store your private key on your server and don’t share it.
When a user wants to use the bookafy, send a request to your server to generate an SSO token.
On your server, generate a token using the snippet below.
Pass the token back to your app
We’ll use that token to authenticate your user.
1. Install a JWT library:
We use JSON Web Tokens to securely authenticate your users. First, install the appropriate JWT library for your server.
sudo gem install jwt
2. Generate tokens on your server:
Following sample code is in ruby.
require ‘jwt’
PrivateKey = ‘UNIQUE PRIVATE KEY’
3. SSO Signup:
You’ll create on your side for signup.
def createBookafyToken(user)
userData = {
iss: “abcd” , # or abcd
exp: Time.now.to_i + 900, # Time.now(in seconds) + 15 min(in seconds)
iat: Time.now.to_i, # Time.now(in seconds)
business_name: user.business_name,
email: user.email,
name: user.name,
time_zone: time_zone # default Pacific Time (US & Canada)
}
sso_token = JWT.encode(userData, PrivateKey, ‘HS276’)
end
After generating the token, You hit on http://app.examplescheduler.com/sso/signup?token=#{sso_token}
You’ll get in response.
Success Response:
Code: 201
User will be created.
Failure Response:
Send an error in response.
Error Response sample (in json):
{« status »: »forbidden », »error »: »Validation failed: User email has already been taken »}
Once user created successfully, you’ll generate other token for login.
4. SSO login:
You’ll create on your side for sign in.
def createBookafyToken(user)
userData = {
email: user.email,
iss: “abcd”, # or abcd
logout_redirect_url: ‘https://xyz.com’,
exp: Time.now.to_i + 900,# Time.now(in seconds) + 15 min(in seconds)
iat: Time.now.to_i # Time.now(in seconds)
}
sso_token = JWT.encode(userData, PrivateKey, ‘HS276’)
end
http://app.exampleschedule.com/sso/login?token=#{sso_token}
You’ll get in response.
Success Case:
Code: 200
Redirected to home page if calendar connected otherwise redirected to calendar page.
Failure Response:
Send error message in response
Validation: If user not exist or you are trying with different iss
Code: 404
Error Response sample (in json)
{« status »: »forbidden », »error »: »Validation failed: User email has already been taken »}
Note:
On logout, When User logout from the account and it will be redirected to logout_redirect_url
5. Time Zone list:
« American Samoa », « America/Asuncion », « Midway Island », « Hawaii », « Alaska », « Pacific Time (US & Canada) », « Tijuana », « Arizona », « Chihuahua »,
« Mazatlan », « Mountain Time (US & Canada) », « Central America », « Central Time (US & Canada) », « Guadalajara », « Mexico City », « Monterrey »,
« Saskatchewan », « Bogota », « Eastern Time (US & Canada) », « Indiana East », « Lima », « Quito », « Atlantic Time (Canada) », « Caracas », « Georgetown »,
« La Paz », « Santiago », « Newfoundland », « Brasilia », « Buenos Aires », « Greenland », « Montevideo », « Mid-Atlantic », « Azores », « Cape Verde Is. »,
« Casablanca », « Dublin », « Edinburgh », « Lisbon », « London », « Monrovia », « UTC », « Amsterdam », « Belgrade », « Berlin », « Bern », « Bratislava », « Brussels »,
« Budapest », « Copenhagen », « Ljubljana », « Madrid », « Paris », « Prague », « Rome », « Sarajevo », « Skopje », « Stockholm », « Vienna », « Warsaw », « West
Central Africa », « Zagreb », « Athens », « Bucharest », « Cairo », « Harare », « Helsinki », « Jerusalem », « Kyiv », « Pretoria », « Riga », « Sofia », « Tallinn », « Vilnius »,
« Baghdad », « Istanbul », « Kuwait », « Minsk », « Moscow », « Nairobi », « Riyadh », « St. Petersburg », « Volgograd », « Tehran », « Abu Dhabi », « Baku », « Muscat »,
« Tbilisi », « Yerevan », « Kabul », « Ekaterinburg », « Islamabad », « Karachi », « Tashkent », « Chennai », « Kolkata », « Mumbai », « New Delhi », « Sri
Jayawardenepura », « Kathmandu », « Almaty », « Astana », « Dhaka », « Urumqi », « Rangoon », « Bangkok », « Hanoi », « Jakarta », « Krasnoyarsk »,
« Novosibirsk », « Beijing », « Chongqing », « Hong Kong », « Irkutsk », « Kuala Lumpur », « Perth », « Singapore », « Taipei », « Ulaanbaatar », « Osaka », « Sapporo »,
« Seoul », « Tokyo », « Yakutsk », « Adelaide », « Darwin », « Brisbane », « Canberra », « Guam », « Hobart », « Melbourne », « Port Moresby », « Sydney »,
« Vladivostok », « Magadan », « New Caledonia », « Solomon Is. », « Auckland », « Fiji », « Kamchatka », « Marshall Is. », « Wellington », « Chatham Is. »,
« Nuku’alofa », « Samoa », « Tokelau Is. »
Send appointment invites to team members based on skills.
Book as many customers as you want to a single event.
Send out appointment invites through round-robin scheduling.
Schedule meetings between one customer and several staff members.
Send up to two SMS reminders for scheduled meetings.
Set a limit on how far into the future customers can book appointments.
Customize your emails with unique brand elements such as text, colors, and more.
Display only the calendar dates when staff is available for appointments.
Display global time zones and schedule meetings based on your customer’s time zone.
Set up a minimum lead time before an appointment can be scheduled.
Establish the starting time (and day) for each booked appointment.
Add extra time before and/or after the appointment.
Access our open software APIs or let us build a custom booking system integration for your company software.
Store all meetings and customer data in a separate Azure Server.
Create one set of sign-in credentials for the entire company.
Let customers see your logo, icon(s), URL, and email address before booking.
Arabic - Bengali - Chinese - Croatian - Czech - Danish - Estonian - Finish - French - German - Hindi - Hungarian - Italian - Japanese - Korean - Malay - Norwegian - Polish - Portuguese - Romanian - Russian - Spanish - Swedish - Turkish - Ukranian - United Kingdom - Vietnamese
Receive automated confirmation emails after booking and sync to calendars.
Automatically send customers a message asking for reviews/feedback, with links to major review sites.
Send a simple SMS or add a Zoom link, personal messaging, branding, etc.
Schedule up to two reminders (email and text) at set intervals prior to the appointment.
Embed our appointment scheduling software widget into your profiles on Facebook, Twitter, LinkedIn, etc.
Add a link button to your email signature.
Copy & paste code to integrate our free appointment booking service widget on your website.
Each scheduling software account comes with a free mini-website. Create a meeting profile with available hours, company details, and more.
Meeting staff can log in to their own schedules from anywhere, at any time.
Bring all the staff meeting calendars together in one employee scheduling platform.
Add as many users as you like. Made for enterprises of any size, from small businesses to corporations.
An automated review/feedback request is sent after each appointment. Use for both internal and public reviews.
Business owners and staff can sync appointments to and from Google calendar on the Bookafy app.
You can integrate the free scheduling tool directly into your website via iframe, or link from your site to your private subdomain.
Create your own set of customer information fields and add-ons. Choose from a list of pre-defined fields or create your own.
Set up a seamless email marketing system by syncing all your customers to Mailchimp.
Get custom integration options and/or features with a convenient WordPress API.
Admin and customers can view booked appointments for staff members, currently working staff, and more.
Sync all customers through Constant Contact integration.
Each scheduling software plan comes with an SMS reminder facility. Prevent no-shows and cancelations with timely text reminders.
Establish automated breaks between scheduled appointment time slots. Add custom buffer times for each service.
Create brand-specific messaging and send a post-confirmation message for each appointment. Add reminders for customers into each message.
Include as many staff members, customers, and appointments as your business needs.
Customers can use our free scheduling app to schedule appointments from anywhere in the world through Apple iOS and Android.
Set your preferred time and frequency of text and email reminder messages. Create a custom appointment reminder schedule for each service.
Customize your scheduling calendar on our appointment booking page according to your unique branding. Choose your calendar and text color, and button design from a color picker or an HTML color code.
Customize your scheduling calendar on our appointment booking page according to your unique branding. Choose your calendar and text color, and button design from a color picker or an HTML color code.
Set a different appointment start time for each of your services, or multiple start times for a single service.
Our free scheduling mobile app supports up to 35 national and regional languages. Set different display languages for different customers.
Bring all of your existing customers and their details into our scheduling software for free.