SSO Documentation

Enterprise solutions to fully integrate via API

Single sign on - sso | bookafy

SSO Tokens implementation


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.»

One App for All Types of Bookings

Book Group Events, One-on-One appointments, recurring meetings and more.

Click Here
Click Here
Click Here
Click Here
Click Here
Click Here
Previous slide
Next slide

Automatically Schedule and Run Meetings

Fetch a unique meeting link with each new appointment booked with Zoom, Gotomeeting others.

Single sign on - sso | bookafy

Start booking appointments today with your 7-day Pro Plan trial

No strings attached. No credit card required. No contracts to sign. And you can cancel anytime.

No credit card required. No spam. Cancel anytime.

Authorize and Accepts Payments During Booking

Connect your account with Stripe or Authorize.net to receive payment at booking.

Single sign on - sso | bookafy

Free Meeting Scheduling for the Whole Team

Connect your account with Stripe or Authorize.net to receive payment at booking.

Single sign on - sso | bookafy

Skill-Based Scheduling

Send appointment invites to team members based on skills.

Group Event Scheduling

Book as many customers as you want to a single event.

Round Robin Routing

Send out appointment invites through round-robin scheduling.

Multi-User Appointments

Schedule meetings between one customer and several staff members.

Customize the Scheduling Experience

SMS Reminders

Send up to two SMS reminders for scheduled meetings.

Set Future Appointment Limits

Set a limit on how far into the future customers can book appointments.

Email Notifications

Customize your emails with unique brand elements such as text, colors, and more.

Show Staff Availability

Display only the calendar dates when staff is available for appointments.

Multiple Time Zones

Display global time zones and schedule meetings based on your customer’s time zone.

Set Lead Times

Set up a minimum lead time before an appointment can be scheduled.

Set Starting Times

Establish the starting time (and day) for each booked appointment.

Set Meeting Buffer Times

Add extra time before and/or after the appointment.

Start booking appointments today with your 7-day Pro Plan trial

No strings attached. No credit card required. No contracts to sign. And you can cancel anytime.

No credit card required. No spam. Cancel anytime.

Enterprise Scheduling Software Solutions

Single sign on - sso | bookafy

Custom APIs and Webhooks

Access our open software APIs or let us build a custom booking system integration for your company software.

Private Data Server

Store all meetings and customer data in a separate Azure Server.

Single Sign-In Credentials

Create one set of sign-in credentials for the entire company.


White Label Company Profile

Let customers see your logo, icon(s), URL, and email address before booking.

Speaking Your Language

Bookafy is currently available in 32 languages and has users in 180 countries.

Book appointments in one language, or in multiple languages with Bookafy.

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

Automated Meeting-Specific Messaging

Automated Meeting Confirmation

Receive automated confirmation emails after booking and sync to calendars.

Customer Reviews

Automatically send customers a message asking for reviews/feedback, with links to major review sites.

Customized Text Messages

Send a simple SMS or add a Zoom link, personal messaging, branding, etc.

Pre-Meeting Reminders

Schedule up to two reminders (email and text) at set intervals prior to the appointment.

Single sign on - sso | bookafy

Start booking appointments today with your 7-day Pro Plan trial

No strings attached. No credit card required. No contracts to sign. And you can cancel anytime.

No credit card required. No spam. Cancel anytime.

Ways to Book Via Our Free Scheduling App

Social Media Profiles

Embed our appointment scheduling software widget into your profiles on Facebook, Twitter, LinkedIn, etc.


Access via Email Signature

Add a link button to your email signature.

Integrate via Iframe

Copy & paste code to integrate our free appointment booking service widget on your website.


Mini Scheduling Website

Each scheduling software account comes with a free mini-website. Create a meeting profile with available hours, company details, and more.

Single sign on - sso | bookafy

1-Way AND 2-Way Calendar Sync

Set your calendars to sync 1-way OR 2-way to prevent double booking and to show real time availability.

Single sign on - sso | bookafy

Easy and Stress-Free Booking with our Free Scheduling App

STAFF ACCESS

Meeting staff can log in to their own schedules from anywhere, at any time.

ADMIN ACCESS

Bring all the staff meeting calendars together in one employee scheduling platform.

UNLIMITED USERS

Add as many users as you like. Made for enterprises of any size, from small businesses to corporations.

CUSTOMER REVIEWS

An automated review/feedback request is sent after each appointment. Use for both internal and public reviews.

2-Way Sync with Google Calendar

Business owners and staff can sync appointments to and from Google calendar on the Bookafy app. 

2-Way Sync with Outlook

Sync appointments with Outlook.com, Exchange, and Office 365.

Recurring Appointments

Set up recurring appointment schedules for your customers, with unlimited customization and rescheduling frequency.

Site Integration with Iframe

You can integrate the free scheduling tool directly into your website via iframe, or link from your site to your private subdomain. 

Custom Meeting Info

Create your own set of customer information fields and add-ons. Choose from a list of pre-defined fields or create your own. 

Mailchimp Email Integration

Set up a seamless email marketing system by syncing all your customers to Mailchimp. 

Custom Integration APIs

Get custom integration options and/or features with a convenient WordPress API. 

Custom Schedules for Staff

Admin and customers can view booked appointments for staff members, currently working staff, and more. 

Constant Contact Integration

Sync all customers through Constant Contact integration. 

SMS Appointment Alerts

Each scheduling software plan comes with an SMS reminder facility. Prevent no-shows and cancelations with timely text reminders. 

Buffering Between Appointments

Establish automated breaks between scheduled appointment time slots. Add custom buffer times for each service. 

Customized Messaging

Create brand-specific messaging and send a post-confirmation message for each appointment. Add reminders for customers into each message. 

Unlimited Appointments

Include as many staff members, customers, and appointments as your business needs. 

Mobile Appointment Scheduling

Customers can use our free scheduling app to schedule appointments from anywhere in the world through Apple iOS and Android. 

Custom Reminder Frequency

Set your preferred time and frequency of text and email reminder messages. Create a custom appointment reminder schedule for each service. 

Custom Calendar Interface

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.

Custom Calendar Interface

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 Multiple Start Times for Services

Set a different appointment start time for each of your services, or multiple start times for a single service.

Multi-Language Support

Our free scheduling mobile app supports up to 35 national and regional languages. Set different display languages for different customers. 

Import Existing Customers

Bring all of your existing customers and their details into our scheduling software for free. 

Start booking appointments today with your 7-day Pro Plan trial

No strings attached. No credit card required. No contracts to sign. And you can cancel anytime.

No credit card required. No spam. Cancel anytime.