🚀 Quick Start Guide — Zoom + Calendly ExecModules
Status: ✅ Ready to Use
📋 Installation & Setup
Step 1: Backend (Java)
cd web/java
mvn clean install
mvn test # Verify all 16 tests pass
mvn spring-boot:run # Start backend server
Step 2: Frontend (TypeScript/React)
cd web/typescript/valkyr_labs_com
npm install
npm test # Verify all 20 tests pass
npm run dev # Start dev server (http://localhost:5173)
🎯 Using Zoom Module
Step 1: Register Credentials
- Open Workflow Studio
- Navigate to Zoom/Calendly Connection dialog
- Enter your Zoom API token from https://developers.zoom.us/
- Click Save
Step 2: Create a Workflow
- Drag Zoom Meeting Module onto canvas
- Click module to open configuration UI
- Select Action: "create"
- Fill in:
- Topic: "Team Meeting"
- Duration: 60 minutes
- Timezone: America/New_York
- Click Save Config
Step 3: Configure Additional Settings
- Enable Host Video: ✓
- Enable Participant Video: ✓
- Mute on Entry: ✗
- Join Before Host: ✗
- Auto Recording: "none"
Step 4: Preview & Test
- Click Preview to see real-time config (JSON)
- Click Test to verify credentials
- Look for meeting ID in response
Step 5: Connect to Other Modules
- Drag Email Notification module after Zoom
- Connect with:
{meeting.join_url} - Send meeting link to attendees
🎯 Using Calendly Module
Step 1: Register Credentials
- Open Workflow Studio
- Navigate to Zoom/Calendly Connection dialog
- Enter your Calendly API token from https://developer.calendly.com/
- Click Save
Step 2: List Events Workflow
- Drag Calendly Scheduling Module onto canvas
- Select Action: "get_events"
- Fill in:
- Email: your@email.com
- Limit: 10
- Click Test
- See all your upcoming Calendly events
Step 3: Schedule Event Workflow
- Drag Calendly Scheduling Module onto canvas
- Select Action: "schedule_event"
- Fill in:
- Event Type ID: (from Calendly settings)
- Guest Email: client@example.com
- Guest Name: John Doe
- Timezone: America/New_York
- Click Save Config
- Click Test to schedule
Step 4: Cancel Event Workflow
- Drag Calendly Scheduling Module onto canvas
- Select Action: "cancel_event"
- Fill in:
- Event ID: (from a previous get_events call)
- Click Test to cancel
🔗 Common Workflows
Workflow 1: Schedule Meeting + Notify Attendees
Trigger (Manual)
↓
[Zoom] Create Meeting
↓
[Calendly] Schedule Event
↓
[Email] Send Notification
↓
Success
Data Flow:
Zoom Output: {meeting_id, join_url, start_url}
↓
Email Template: "Join: {zoom.join_url}"
↓
Attendee receives link
Workflow 2: Daily Calendar Sync
Trigger (Scheduled - Daily)
↓
[Calendly] Get Events
↓
[Filter] Confirmed Events Only
↓
[Looper] For Each Event
↓
[Slack] Notify Team
↓
Success
Workflow 3: Reschedule Meeting
Trigger (Manual)
↓
[Zoom] Get Meeting
↓
[Zoom] Update Meeting
↓
[Calendly] Cancel Event
↓
[Calendly] Schedule Event (New Time)
↓
[Email] Notify New Time
↓
Success
📊 Configuration Examples
Example 1: Weekly Team Standup
{
"action": "create",
"topic": "Weekly Team Standup",
"meeting_type": 2,
"duration_minutes": 30,
"timezone": "America/New_York",
"start_time": "2025-10-24T10:00:00Z",
"settings": {
"host_video": true,
"participant_video": true,
"join_before_host": false,
"mute_upon_entry": true,
"auto_recording": "none"
}
}
Example 2: Client Meeting Scheduling
{
"action": "schedule_event",
"event_type_id": "client-meeting-60",
"email": "client@company.com",
"name": "Client Manager",
"start_time": "2025-10-24T14:00:00",
"timezone": "America/New_York",
"notes": "Q4 Review Discussion"
}
🧪 Running Tests
Run All Java Tests
cd web/java
mvn test # All 16 tests
mvn test -Dtest=ZoomMeetingModuleTest # Zoom unit tests
mvn test -Dtest=CalendlySchedulingModuleTest # Calendly unit tests
mvn test -Dtest=ZoomCalendlyIntegrationTest # Integration tests
Run All React Tests
cd web/typescript/valkyr_labs_com
npm test # All 20 tests
npm test -- ZoomModuleDesigner.test.tsx # Zoom UI tests
npm test -- CalendlyModuleDesigner.test.tsx # Calendly UI tests
🔐 Security Notes
- API Tokens: Stored securely in IntegrationAccount (encrypted)
- RBAC: Full role-based access control
- Data: Never logged or exposed
- Errors: Actionable without sensitive info
📈 Best Practices
-
Always Test Credentials First
- Use "Test" button before using in workflows
- Verify API tokens are current
-
Handle Timezones Consistently
- Always specify timezone in config
- Use ISO 8601 format for dates
-
Use Real-World Workflows
- Example workflows are production-ready
- Customize for your use case
-
Monitor Errors
- Check logs for API rate limits
- Implement retry logic for network issues
-
Document Custom Workflows
- Add comments to complex workflows
- Share templates with team
🆘 Troubleshooting
"Invalid API Token"
- Verify token in Zoom/Calendly developer console
- Check token hasn't expired
- Re-save credentials
"Timezone Not Recognized"
- Use IANA timezone (e.g., "America/New_York")
- See full list
"Module Not Found"
- Run
npm run buildin frontend - Restart backend with
mvn spring-boot:run - Clear browser cache
"Test Failing"
- Run
mvn test(backend) ornpm test(frontend) - Check console for detailed error
- Verify test data matches expectations
📚 Additional Resources
- Zoom API Docs: https://developers.zoom.us/docs/api/
- Calendly API Docs: https://developer.calendly.com/
- Integration Guide:
web/typescript/valkyr_labs_com/src/components/WorkflowStudio/ZOOM_CALENDLY_INTEGRATION.md - Version History:
CHANGELOG.md - Delivery Summary:
DELIVERY_SUMMARY.md
Ready to use! Questions? Check DELIVERY_SUMMARY.md for complete details. 🚀