Skip to main content

🚀 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

  1. Open Workflow Studio
  2. Navigate to Zoom/Calendly Connection dialog
  3. Enter your Zoom API token from https://developers.zoom.us/
  4. Click Save

Step 2: Create a Workflow

  1. Drag Zoom Meeting Module onto canvas
  2. Click module to open configuration UI
  3. Select Action: "create"
  4. Fill in:
    • Topic: "Team Meeting"
    • Duration: 60 minutes
    • Timezone: America/New_York
  5. 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

  1. Open Workflow Studio
  2. Navigate to Zoom/Calendly Connection dialog
  3. Enter your Calendly API token from https://developer.calendly.com/
  4. Click Save

Step 2: List Events Workflow

  1. Drag Calendly Scheduling Module onto canvas
  2. Select Action: "get_events"
  3. Fill in:
  4. Click Test
  5. See all your upcoming Calendly events

Step 3: Schedule Event Workflow

  1. Drag Calendly Scheduling Module onto canvas
  2. Select Action: "schedule_event"
  3. Fill in:
    • Event Type ID: (from Calendly settings)
    • Guest Email: client@example.com
    • Guest Name: John Doe
    • Timezone: America/New_York
  4. Click Save Config
  5. Click Test to schedule

Step 4: Cancel Event Workflow

  1. Drag Calendly Scheduling Module onto canvas
  2. Select Action: "cancel_event"
  3. Fill in:
    • Event ID: (from a previous get_events call)
  4. 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

  1. Always Test Credentials First

    • Use "Test" button before using in workflows
    • Verify API tokens are current
  2. Handle Timezones Consistently

    • Always specify timezone in config
    • Use ISO 8601 format for dates
  3. Use Real-World Workflows

    • Example workflows are production-ready
    • Customize for your use case
  4. Monitor Errors

    • Check logs for API rate limits
    • Implement retry logic for network issues
  5. 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 build in frontend
  • Restart backend with mvn spring-boot:run
  • Clear browser cache

"Test Failing"

  • Run mvn test (backend) or npm test (frontend)
  • Check console for detailed error
  • Verify test data matches expectations

📚 Additional Resources


Ready to use! Questions? Check DELIVERY_SUMMARY.md for complete details. 🚀