Loading Admin Meeting...
Initializing with moderator privileges.
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:
- Login to app.videosdk.live
- Go to "API Keys" in the sidebar
- Create or copy your token (starts with "eyJ...")
Method 1: Get Your Token & Create Meetings
đ First, Get Your Token:
- Login to app.videosdk.live
- Go to "API Keys" section (in the sidebar)
- Click "Create API Key" if you don't have one
- Copy the Token (starts with "eyJ...")
Create Meeting Room
Use your token to instantly create a meeting room:
Room ID:
Next steps:
- Copy this Room ID
- Go to your Webflow CMS
- Edit your meeting event
- Paste the Room ID in the "meeting-id" field
- Publish your changes
đ 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:
- Trigger: Webflow - New Collection Item (in Meetings collection)
- Action: Webhooks by Zapier - Custom Request
- 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
Write an introduction about yourself.
