logo

Zoom Integration Documentation

A comprehensive guide for integrating Zoom with IzI Techs Co. services

  • Overview
  • Setup Guide
  • API Reference
  • Code Examples
  • Troubleshooting

Overview

IzI Techs Co. offers seamless integration with Zoom's powerful video conferencing platform. This integration allows you to:

  • Schedule and manage Zoom meetings directly from your IzI Techs dashboard
  • Automatically create Zoom meetings for calendar events
  • Send branded meeting invitations to your clients and team members
  • Access meeting recordings and transcripts
  • Generate comprehensive analytics and reports

Requirements

To use the Zoom integration, you'll need:

  • An active IzI Techs Co. account with admin privileges
  • A Zoom account (Pro, Business, or Enterprise plan recommended)
  • Zoom API credentials (Client ID and Client Secret)
  • Secure HTTPS connection for your website/application
The integration is compatible with Zoom API v2.0 and above. For older versions, please contact our support team.

Integration Architecture

Our Zoom integration uses OAuth 2.0 for secure authentication and the Zoom REST API for all operations. The integration operates as follows:

  1. User authorizes IzI Techs to access their Zoom account
  2. Zoom provides access tokens that IzI Techs securely stores
  3. IzI Techs makes API calls to Zoom on behalf of the user
  4. Zoom Webhooks notify IzI Techs of relevant events

Setup Guide

Step 1: Create a Zoom App

First, you'll need to create an OAuth app in the Zoom Marketplace:

  1. Log in to the Zoom Marketplace
  2. Click "Develop" in the top-right corner and select "Build App"
  3. Choose "OAuth" as the app type
  4. Enter app name, company name, and contact information
  5. Set the Redirect URL to: https://your-izitechs-domain.com/api/zoom/callback
  6. Add the necessary scopes:
    • meeting:read
    • meeting:write
    • recording:read
    • user:read
  7. Save your Client ID and Client Secret

Step 2: Configure IzI Techs Integration

Now, set up the integration in your IzI Techs dashboard:

  1. Log in to your IzI Techs dashboard
  2. Navigate to "Settings" > "Integrations"
  3. Find "Zoom" and click "Configure"
  4. Enter your Zoom Client ID and Client Secret
  5. Click "Connect to Zoom"
  6. Follow the prompts to authorize the connection
  7. Set your preferences for meeting defaults

Step 3: Set Up Webhooks (Optional)

For real-time updates from Zoom:

  1. In your Zoom App, navigate to the Features section
  2. Select "Event Subscriptions" and click "Add Event Subscription"
  3. Enter a name for your subscription
  4. Set the Endpoint URL to: https://your-izitechs-domain.com/api/zoom/webhook
  5. Select relevant events:
    • Meeting Started/Ended
    • Participant Joined/Left
    • Recording Completed
  6. Save your changes
Keep your Client Secret secure! Never share it or expose it in client-side code.

API Reference

Endpoints

IzI Techs provides the following API endpoints for the Zoom integration:

Endpoint Method Description
/api/zoom/meetings GET List all scheduled meetings
/api/zoom/meetings POST Create a new Zoom meeting
/api/zoom/meetings/{id} GET Get meeting details by ID
/api/zoom/meetings/{id} PUT Update a meeting
/api/zoom/meetings/{id} DELETE Delete a meeting
/api/zoom/recordings GET List all recordings
/api/zoom/users GET List all Zoom users

Request Parameters

Here's an example of creating a Zoom meeting:

// POST /api/zoom/meetings
{
  "topic": "Strategy Meeting",
  "type": 2,  // Scheduled meeting
  "start_time": "2025-09-15T10:00:00Z",
  "duration": 60,  // minutes
  "timezone": "America/New_York",
  "settings": {
    "host_video": true,
    "participant_video": true,
    "join_before_host": false,
    "mute_upon_entry": true,
    "watermark": false,
    "approval_type": 0,
    "registration_type": 1,
    "audio": "both",
    "auto_recording": "cloud"
  }
}

Response Format

Successful responses return JSON with the following structure:

{
  "success": true,
  "data": {
    // Response data varies by endpoint
  },
  "meta": {
    // Pagination info, if applicable
  }
}

Error Handling

Errors return with appropriate HTTP status codes and a JSON response:

{
  "success": false,
  "error": {
    "code": "error_code",
    "message": "Human-readable error message",
    "details": {
      // Additional error details, if available
    }
  }
}

Code Examples

JavaScript/Node.js

Example of creating a meeting using the IzI Techs API:

const axios = require('axios');

async function createZoomMeeting() {
  try {
    const response = await axios.post(
      'https://your-izitechs-domain.com/api/zoom/meetings',
      {
        topic: 'Project Kickoff',
        type: 2,  // Scheduled meeting
        start_time: '2025-09-20T14:00:00Z',
        duration: 45,
        timezone: 'UTC',
        settings: {
          host_video: true,
          participant_video: true,
          join_before_host: false,
          mute_upon_entry: true,
          auto_recording: 'cloud'
        }
      },
      {
        headers: {
          'Authorization': 'Bearer ' + YOUR_API_TOKEN,
          'Content-Type': 'application/json'
        }
      }
    );
    
    console.log('Meeting created:', response.data);
    return response.data;
  } catch (error) {
    console.error('Error creating meeting:', error.response.data);
    throw error;
  }
}

PHP

Example of fetching meetings using PHP:

<?php
function getZoomMeetings() {
  $apiUrl = 'https://your-izitechs-domain.com/api/zoom/meetings';
  $token = 'YOUR_API_TOKEN';
  
  $ch = curl_init($apiUrl);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Authorization: Bearer ' . $token,
    'Content-Type: application/json'
  ]);
  
  $response = curl_exec($ch);
  $statusCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
  curl_close($ch);
  
  if ($statusCode === 200) {
    return json_decode($response, true);
  } else {
    $error = json_decode($response, true);
    throw new Exception('API Error: ' . $error['error']['message']);
  }
}
?>

Python

Example of updating a meeting using Python:

import requests
import json

def update_zoom_meeting(meeting_id, new_data):
    api_url = f'https://your-izitechs-domain.com/api/zoom/meetings/{meeting_id}'
    headers = {
        'Authorization': f'Bearer {YOUR_API_TOKEN}',
        'Content-Type': 'application/json'
    }
    
    try:
        response = requests.put(
            api_url,
            headers=headers,
            data=json.dumps(new_data)
        )
        response.raise_for_status()
        return response.json()
    except requests.exceptions.HTTPError as err:
        print(f'HTTP Error: {err}')
        print(f'Response: {response.text}')
        raise

Webhook Processing

Example of handling a Zoom webhook in Node.js:

const express = require('express');
const app = express();
app.use(express.json());

app.post('/api/zoom/webhook', (req, res) => {
  const event = req.body;
  
  // Verify webhook signature (implementation depends on Zoom webhook security)
  
  switch (event.event) {
    case 'meeting.started':
      console.log(`Meeting started: ${event.payload.object.topic}`);
      // Handle meeting started event
      break;
    case 'meeting.ended':
      console.log(`Meeting ended: ${event.payload.object.topic}`);
      // Handle meeting ended event
      break;
    case 'recording.completed':
      console.log(`Recording ready for meeting: ${event.payload.object.topic}`);
      // Handle new recording
      break;
    default:
      console.log(`Unhandled event type: ${event.event}`);
  }
  
  // Acknowledge receipt of webhook
  res.status(200).send();
});

Troubleshooting

Common Issues

Authentication Errors

Symptoms: 401 Unauthorized responses, "Invalid token" errors

Possible causes:

  • Expired access token
  • Incorrect Client ID or Secret
  • Insufficient OAuth scopes

Solutions:

  1. Check that your Client ID and Secret are correct
  2. Verify OAuth scopes include all required permissions
  3. Try reconnecting your Zoom account
  4. Check that your refresh token flow is working correctly

Webhook Events Not Received

Symptoms: Webhook events not being received or processed

Possible causes:

  • Incorrect webhook endpoint URL
  • Server not properly configured to receive webhooks
  • Webhook verification failing

Solutions:

  1. Verify your webhook endpoint URL is correct and accessible from the internet
  2. Check server logs for any errors when receiving webhooks
  3. Ensure your endpoint correctly responds with HTTP 200
  4. Test webhook reception with Zoom's webhook testing tool

Meeting Creation Failures

Symptoms: Unable to create meetings, error responses from API

Possible causes:

  • Invalid meeting parameters
  • Zoom account limitations
  • Permission issues

Solutions:

  1. Check that all required meeting parameters are valid
  2. Verify that your Zoom account allows creating the requested meeting type
  3. Ensure the OAuth token has meeting:write scope
  4. Check for conflicts with existing meetings

Support Resources

If you continue to experience issues, please utilize the following resources:

  • Contact IzI Techs Support at support@izitechs.com
  • Check the Support Center for additional assistance
  • Refer to Zoom API Documentation for specific Zoom API questions
  • Join our Developer Community Forum to connect with other developers
When contacting support, please include your Zoom App Client ID (not the Secret), any error codes you received, and steps to reproduce the issue.
Back to Homepage
Copyright 2024 | All Rights Reserved. Privacy Policy | Terms of Use | Support | Zoom Integration