28. Calendly Integration
Pixally CRMCalendly Integration
Calendly Integration
Functional Requirement Document
BA & Ideation: Dakshraj Jhala
Reviewed By: KG (Project Manager)
Updated Date: 22 September 2025
Status: Approved
Version 1.0
Functional Requirements Document (FRD) - Calendly Integration
1. Module Overview
- Module Name: Calendly Integration
- Purpose: Enable integration between the Pixally CRM and Calendly to allow agency users to connect their Calendly accounts and facilitate meeting scheduling with clients through Calendly functionality
- Business Goal: Streamline the meeting scheduling process by leveraging Calendly's scheduling capabilities while maintaining project-based visibility and role-based access controls within the Pixally CRM ecosystem
2. User Roles & Permissions
Role
Description
Key Permissions
Agency Owner
System owner with full access
Connect/disconnect Calendly, schedule meetings if Calendly is integrated, and view all meetings across all projects of the agency
Agency Admin
System administrator
Connect/disconnect Calendly, schedule meetings if Calendly is integrated, and view all meetings across all projects of the agency
Project Manager
Team leader for specific projects
Users can connect or disconnect Calendly, schedule meetings only if Calendly is integrated, and view meetings only in projects they are members of — where they are the host, a participant, or when a client has scheduled a meeting with the Project Manager
Client
Client portal users
Clients can view all project meetings in which they are participants, hosts, or where an agency member has scheduled a meeting with them, and they can schedule meetings with agency users of the project who have integrated Calendly
3. User Flow
3.1 Connect Calendly Flow (Agency Users)
From Integration Module:
From Project Details or Client Management:
From Agency Dashboard
3.2 Calendly Disconnect Flow
3.3 Client Portal Meeting Scheduling Flow
3.4 Agency Portal Meeting Scheduling Flow
From Project Details → Meetings Tab AND
From Client Management → Client Profile → Meetings Tab —> Select Project & From Client Management → Client Profile → Overview Tab → Schedule Meeting Button:
4. Functional Logic
4.1 If Calendly is Not Integrated by anyone in the agency:
Agency members cannot schedule meetings with clients through Pixally CRM
Clients cannot schedule meetings with agency users (associated with the project) through the client portal
- Agency > Client Management > Client profile > Meeting tab→Project should display “Connect Calendly” CTA. Refer - Click Here
4.2 Project Details Meeting Tab Visibility Rules
- If no project team member has integrated Calendly, the Meetings tab will not appear in the project details > Overview of the Client Portal for the client associated with the project
- The Meetings tab appears in the Client Portal > Project details only if at least one agency’s project member has successfully integrated Calendly, and the client can schedule meetings. Refer - Click Here
- After successful Calendly integration, the agency user can schedule meetings. Refer - Click Here
- Client users can only see meetings related to their associated project in which they are participants, or meetings they have scheduled
- All (Past and upcoming) meetings are displayed in the meeting section (Agency/Client portal)
- The user who is scheduling the meeting will be displayed as the organiser
4.3 Guest Auto-Population Logic (Client Scheduling)
- When the client schedules a meeting, the system auto-populates all project team members as guests in Calendly
- The client can remove any pre-populated guests and can add additional email addresses manually
- Participant avatars in the meeting table are shown only for emails matching the project team members
- Non-project-member guests whose emails do not match project members are hidden from the avatar display, but remain as event attendees
4.4 Integration Status Logic
- When a client clicks the “+ New Meeting” CTA to schedule a project meeting, Non-Calendly–integrated agency users will not appear in the team member selection list in the client portal for the project
4.5 Meeting Mode Display Logic
- Action buttons vary based on the meeting mode configured by the organizer during scheduling
- Video Call: CTA - "Join Meeting" (video icon) →On click, opens meeting link (Google / Zoom) in new tab
- Phone Call: CTA - "View Call Details" (phone icon) →On click, opens phone details pop-up. Refer - Click Here
- In-Person: CTA - "In Person" (location icon) → On click, opens location details pop-up. Refer - Click Here
- No Info: CTA - "Meeting Info" → On click, opens general info pop-up. Refer - Click Here
4.6 Calendly Meetings Display in Pixally Calendar
- All scheduled meetings of the agency user automatically appear in the Tools Module → Calendar Sub Module
- The calendar continuously syncs new and updated meetings from Calendly as long as the integration is active
- Calendly Meetings display in the Pixally calendar
- On clicking a meeting in the calendar, it will display Title, Date & Time, Meeting mode info (Google Meet/phone number/location), participants
- If a user disconnects their Calendly account:
- Existing meetings already synced remain visible in the calendar
- No new meetings will be synced after disconnection
Calendly Filter Panel:
After syncing Calendly to Pixally, a "Calendly" section appears in Pixally's calendar filter panel
The filter shows a single checkbox labeled “Calendly Meetings”.
The user can select/deselect the checkbox, and the updates are reflected in the Pixally calendar.
Select/Deselect Behavior:
Checked (selected): Calendly meetings will appear in the Pixally calendar.
Unchecked (deselected): Calendly meetings will be hidden from the Pixally calendar.
4.7 Client Portal > Overview Tab (Side Menu - Meetings Count)
- Meetings count shows the total number of upcoming meetings scheduled for that specific project
- When there is no meeting scheduled, it will display “--”
- Count updates automatically when meetings are added or removed from the project
4.8 Auto-Population Name & Email Logic
- Client Scheduling from Client Portal: Client name and email are auto-populated into the Calendly meeting scheduling form
- Agency Scheduling from Project Details: Selected client name and email are auto-filled in the Calendly meeting scheduling form after the agency user selects the client from the pop-up list of all the clients of the project
- Agency Scheduling from Client Management > Client Profile: Current client's name and email are automatically pre-filled in the Calendly meeting scheduling form
- Client Portal > Client Scheduling: All project team members are automatically added as guests when the client schedules a meeting, with the option to remove unwanted participants
4.9 Disconnect Functionality Impact
- After Calendly is disconnected successfully, on click, the "+ New Meeting" button shows a pop-up: "To schedule a meeting, please integrate Calendly first," with the "Connect Calendly" button
- User removed from the client-portal user selection lists for scheduling a meeting
- All existing scheduled meetings remain visible in Pixally CRM, but any updates made outside in Calendly will not be synced in Pixally
- The Calendly integration card shows the "Connect" button instead of the "Disconnect" button, and the user will be able to re-integrate the Calendly
5. Field Details & Validations
5.1 Calendly Not Integrated - Meetings Tab (Project details/Client Profile)
Field Name
Type
Validation Rules
Heading
Text
"To schedule a meeting, Integrate Calendly first."
Connect Calendly
Button
On click, it opens the Calendly integration pop-up
5.2 Calendly Integrated - (Project details/Client Profile) - No Meetings Yet
Field Name
Type
Validation Rules
Heading
Text
"No meetings yet"
New Meeting
Button
Project details - On click, open the list of all clients of the project. Refer - Click Here
Client Management - Client profile > Select project > On click, the “New Meeting” button opens the user's Calendly screen to schedule a meeting with the client. Refer - Click Here
5.3 Meeting List Table Fields (Project details/ Client Profile/ Client Portal)
Field Name
Type
Validation Rules
Sort
Dropdown
- Default: "Latest", Options: "Latest", "Oldest"
- "Latest" shows the nearest upcoming meetings first, while "Oldest" shows the farthest meetings first
Date & Time
DateTime
Display in viewer's local timezone, format: "Aug 2, 2024 08:30 AM - 9:30 AM"
Meeting Title
Text
From the Calendly event type
Meeting Description
Text
Below title, truncated with ellipses if it exceeds the width
Participants
Avatar
Display the profile of the organizer and meeting participants
Action
Button
Refer - Click Here
5.4 Agency Dashboard - Calendar Widget
Field Name
Type
Validation Rules
Date & Time
DateTime
Display the recent upcoming meeting first in the viewer's local timezone, format: "Aug 2, 2024 08:30 AM - 9:30 AM"
Meeting Title
Text
From the Calendly event type
Phone Call Details pop-up
Field Name
Type
Validation Rules
Pop-Up Title
Text
"Phone Call Details"
Title
Text
From the Calendly event
Date
Date
Display format: "Aug 2, 2024"
Time
Time
Display format: "8:30 AM - 9:30 AM"
Dial
Number
Display the phone number of the invitee
Participants Section
Avatar List
The participants section displays all meeting attendees with their names and profile pictures. The meeting organizer is highlighted with an "Organizer" label
Close
Button
On click, it closes the pop-up
In-Person Meeting Details pop-up
Field Name
Type
Validation Rules
Pop-Up Title
Text
"In-Person Meeting Details"
Title
Text
From the Calendly event
Date
Date
Display format: "Aug 2, 2024"
Time
Time
Display format: "8:30 AM - 9:30 AM"
Location
Text
Full address from Calendly settings
Participants Section
Avatar List
The participants section displays all meeting attendees with their names and profile pictures. The meeting organizer is highlighted with an "Organizer" label
Show on Google Maps Button
Button
Opens the meeting location in Google Maps
Close Button
Button
Closes the Pop-Up
General Meeting Info Pop-Up
Field Name
Type
Validation Rules
Pop-up Title
Text
"Meeting Info"
Date Field
Date
Display format: "Aug 2, 2024"
Time Field
Time
Display format: "8:30 AM - 9:30 AM"
Participants Section
Avatar List
All participants with names
Close Button
Button
Closes pop-up
6. Success Message Handling
Validation Scenario
Success Message
Calendly connected successfully
"Calendly account has been connected successfully."
Calendly disconnected successfully
"Calendly account has been disconnected successfully."
Meeting scheduled successfully
"Meeting has been scheduled successfully."
7. Error Message Handling
Field
Validation Scenario
Error Message
Calendly Connection
OAuth authorization failed
"Failed to connect to Calendly. Please try again."
General
Calendly service unavailable
"Something went wrong."
8. Edge Cases
Scenario
Expected Behavior
Meeting scheduled for the removed project member
The meeting remains visible in the project details
Client tries to schedule with a Calendly disconnected user
User not available in the team member selection pop-up
Multiple users schedule the same time slot
Calendly handles conflicts
Project member removed after scheduling meetings
Meetings remain in project view
A large number of participants added
Truncate participant display with "+X more" indicator in the table view
Network interruption during scheduling
Show "Something went wrong" error message
9. Test Cases
- Link:
10. Acceptance Criteria
- No Integration: Only Pixally events shown; “Connect Calendly” button displayed
- Calendly Connection: Success message confirms integration
- Calendly Events in Pixally: All scheduled meetings auto-sync into the Pixally calendar and meetings tab
- Meetings Tab in Client Portal: The Meetings tab will not appear in the client portal if no agency user of that project has Calendly integrated
- Client Scheduling: Clients can schedule a meeting only with project members who have Calendly connected
- Agency Scheduling: Agency users with Calendly connected can schedule via the Project or Client profile meeting tab
- Guest Handling: Project members auto-populated; clients can remove/add guests; non-project members hidden in the participants column
- Meeting Display: Meetings show title, date/time, participants, description, and mode-based action buttons
- Filtering: Pixally calendar shows Calendly Meetings checkbox; dashboard widget shows next meeting
- Disconnection: On disconnect, no new meetings can be scheduled, and the Connect button is shown in Tools > Integration > Calendly; existing meetings remain visible in Pixally
11. Dependencies
Module/System
Dependency Type
Impact if Unavailable
OAuth Service
Authentication dependency
Cannot connect Calendly accounts
Calendly API
External API dependency
No scheduling functionality, sync failures
Project Management System
Data dependency
Cannot determine project associations
User Management System
Authentication dependency
Cannot verify user permissions
Calendar Module
Feature dependency
Meetings not visible in calendar view
Client Portal
Platform dependency
Clients cannot access scheduling features
Time Zone Service
Utility dependency
Incorrect time display across zones
12. References
- Figma Design Link: Calendly Integration
No tickets linked — generate test cases directly from this FRD instead.