Welcome,

"Name"

Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.
đŸ›Ąī¸ MODERATOR MODE

Loading Admin Meeting...

Initializing with moderator privileges.

VideoSDK Meeting Admin - Labor

VideoSDK Meeting Admin

Create and manage meetings for your Labor community

Quick Setup Guide

âš ī¸ Important: Get Your VideoSDK Token First

To create meetings, you need a token from VideoSDK:

  1. Login to app.videosdk.live
  2. Go to "API Keys" in the sidebar
  3. Create or copy your token (starts with "eyJ...")

Method 1: Get Your Token & Create Meetings

📝 First, Get Your Token:

  1. Login to app.videosdk.live
  2. Go to "API Keys" section (in the sidebar)
  3. Click "Create API Key" if you don't have one
  4. Copy the Token (starts with "eyJ...")

Create Meeting Room

Use your token to instantly create a meeting room:

📌 Your API Credentials:

API Key: 72574b36-8f16-4992-a948-78c41bc0e37f
Token: Already pre-filled above (expires: 2030)

You can create multiple meeting rooms with this token. Each room ID can be reused for recurring meetings.

Method 2: Server-Side API Integration

Use this Node.js code on your server or cloud function to automatically create meetings.

// Node.js/Express endpoint for creating VideoSDK meetings
const axios = require('axios');
const jwt = require('jsonwebtoken');

// Your VideoSDK credentials (Labor Party account)
const VIDEOSDK_API_KEY = '72574b36-8f16-4992-a948-78c41bc0e37f';
const VIDEOSDK_SECRET = 'your_secret_key_here'; // Get from VideoSDK dashboard

// OR use the pre-generated token directly:
const VIDEOSDK_TOKEN = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhcGlrZXkiOiI3MjU3NGIzNi04ZjE2LTQ5OTItYTk0OC03OGM0MWJjMGUzN2YiLCJwZXJtaXNzaW9ucyI6WyJhbGxvd19qb2luIl0sImlhdCI6MTc1NjYxODE3NywiZXhwIjoxOTE0NDA2MTc3fQ.it6EQL0T2ZV-5VEk0KEGvt-uE1wYzcoJrYS1qyX2HUo';

// Create meeting endpoint
app.post('/api/create-meeting', async (req, res) => {
    try {
        // Option 1: Use the pre-generated token
        const token = VIDEOSDK_TOKEN;
        
        // Option 2: Generate a new token (if you have the secret)
        /* 
        const token = jwt.sign(
            {
                apikey: VIDEOSDK_API_KEY,
                permissions: ['allow_join', 'allow_mod'],
                version: 2,
                roomId: null,
                participantId: null,
                roles: ['crawler', 'rtc']
            },
            VIDEOSDK_SECRET,
            {
                algorithm: 'HS256',
                expiresIn: '24h'
            }
        );
        */

        // Create meeting room using the V2 API
        const response = await axios.post(
            'https://api.videosdk.live/v2/rooms',
            {
                // Optional parameters
                // region: 'us-west-2',
                // customRoomId: req.body.customRoomId
            },
            {
                headers: {
                    'Authorization': token, // Don't use "Bearer" prefix
                    'Content-Type': 'application/json'
                }
            }
        );

        const roomId = response.data.roomId;

        // Optional: Save to your database or Webflow CMS via API
        // await saveToWebflowCMS(roomId, req.body.eventName);

        res.json({
            success: true,
            roomId: roomId,
            token: token // Send this to your frontend
        });

    } catch (error) {
        console.error('Error creating meeting:', error.response?.data || error.message);
        res.status(500).json({ 
            error: 'Failed to create meeting',
            details: error.response?.data || error.message
        });
    }
});

// Function to update Webflow CMS (optional)
async function saveToWebflowCMS(roomId, eventName) {
    const webflowToken = 'your_webflow_api_token';
    
    // Using Webflow API v2
    await axios.patch(
        `https://api.webflow.com/v2/collections/YOUR_COLLECTION_ID/items/YOUR_ITEM_ID`,
        {
            fieldData: {
                'meeting-id': roomId,
                'name': eventName
            }
        },
        {
            headers: {
                'Authorization': `Bearer ${webflowToken}`,
                'Content-Type': 'application/json'
            }
        }
    );
}

Frontend Integration

// Call this when creating a new event in your admin panel
async function createMeetingForEvent(eventName) {
    try {
        const response = await fetch('/api/create-meeting', {
            method: 'POST',
            headers: {
                'Content-Type': 'application/json'
            },
            body: JSON.stringify({ eventName })
        });

        const data = await response.json();
        
        if (data.success) {
            console.log('Meeting created:', data.meetingId);
            // Update your form or CMS with the meeting ID
            document.getElementById('meeting-id-field').value = data.meetingId;
            
            // Store the token for the embed
            localStorage.setItem('videosdk_token', data.token);
        }
    } catch (error) {
        console.error('Error:', error);
    }
}

Method 3: Zapier/Make.com Integration

Automate meeting creation when new events are added to Webflow CMS.

Zapier Setup Steps:

  1. Trigger: Webflow - New Collection Item (in Meetings collection)
  2. Action: Webhooks by Zapier - Custom Request
  3. Configure the Webhook:
// Zapier Webhook Configuration for VideoSDK V2 API
URL: https://api.videosdk.live/v2/rooms
Method: POST
Headers:
    Authorization: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhcGlrZXkiOiI3MjU3NGIzNi04ZjE2LTQ5OTItYTk0OC03OGM0MWJjMGUzN2YiLCJwZXJtaXNzaW9ucyI6WyJhbGxvd19qb2luIl0sImlhdCI6MTc1NjYxODE3NywiZXhwIjoxOTE0NDA2MTc3fQ.it6EQL0T2ZV-5VEk0KEGvt-uE1wYzcoJrYS1qyX2HUo
    Content-Type: application/json
Body: {}

// The response will contain:
{
    "roomId": "abcd-efgh-ijkl",
    "disabled": false,
    "createdAt": "2024-01-01T00:00:00.000Z",
    "updatedAt": "2024-01-01T00:00:00.000Z"
}

// Map the response to Webflow:
// response.roomId → Update Webflow CMS "meeting-id" field

Make.com (Integromat) Setup:

1. Watch Webflow CMS Items (Meetings collection)
2. HTTP - Make a Request:
   - URL: https://api.videosdk.live/v2/rooms
   - Method: POST
   - Headers:
     â€ĸ Authorization: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhcGlrZXkiOiI3MjU3NGIzNi04ZjE2LTQ5OTItYTk0OC03OGM0MWJjMGUzN2YiLCJwZXJtaXNzaW9ucyI6WyJhbGxvd19qb2luIl0sImlhdCI6MTc1NjYxODE3NywiZXhwIjoxOTE0NDA2MTc3fQ.it6EQL0T2ZV-5VEk0KEGvt-uE1wYzcoJrYS1qyX2HUo
     â€ĸ Content-Type: application/json
   - Body: {}
3. Webflow - Update Item:
   - Item ID: {{1.item_id}}
   - meeting-id: {{2.data.roomId}}

🔄 Automatic Workflow

Once set up, every new meeting event in your Webflow CMS will automatically get a VideoSDK meeting room created and the ID stored.

Recent Meetings

abcd-efgh-ijkl Active
Created 2 hours ago
mnop-qrst-uvwx Scheduled
Created yesterday
Update Account
"Name"
"Name"
Join a
State Party
Bio

Write an introduction about yourself.

Your Birth Date and Gender