- Create new create-google-meet-event edge function - Use service account authentication (no OAuth needed) - Add google_service_account_json field to platform_settings - Add admin UI for service account JSON configuration - Include test connection button in Integrasi tab - Add comprehensive setup documentation - Keep n8n workflows as alternative option Features: - Direct Google Calendar API integration - JWT authentication with service account - Auto-create Google Meet links - No external dependencies needed - Simple configuration via admin panel 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
n8n Workflows for Access Hub
Workflows
1. Create Google Meet Event (Simple)
File: create-google-meet-event.json
A simple 3-node workflow that:
- Receives webhook POST from Supabase Edge Function
- Creates event in Google Calendar using Google Calendar node
- Returns the meet link
Best for: Quick setup with minimal configuration
2. Create Google Meet Event (Advanced)
File: create-google-meet-event-advanced.json
An advanced workflow with more control:
- Receives webhook POST from Supabase Edge Function
- Prepares event data with Code node (custom formatting)
- Creates event using Google Calendar API directly
- Returns the meet link
Best for: More customization, error handling, and control
Import Instructions
Option 1: Import from File
- In n8n, click + Import from File
- Select the JSON file
- Click Import
Option 2: Copy-Paste
- In n8n, click + New Workflow
- Click ... (menu) → Import from URL
- Paste the JSON content
- Click Import
Setup Instructions
1. Configure Webhook
- Path:
create-meet(already set) - Method: POST
- Production URL: Will be auto-generated when you activate the workflow
2. Configure Google Calendar Credentials
For Simple Workflow:
- Click on the Google Calendar node
- Click Create New Credential
- Select Service Account authentication
- Paste the entire JSON content from your service account file
- Give it a name: "Google Calendar (Service Account)"
- Click Create
For Advanced Workflow:
- Click on the Google Calendar API node
- Click Create New Credential
- Select Service Account authentication for Google API
- Paste the service account JSON
- Give it a name: "Google Calendar API (Service Account)"
- Click Create
3. Activate Workflow
- Click Active toggle in top right
- n8n will generate your webhook URL
- Your webhook URL will be:
https://api.backoffice.biz.id/webhook-test/create-meet
Test the Workflow
Manual Test with Curl:
curl -X POST https://api.backoffice.biz.id/webhook-test/create-meet \
-H "Content-Type: application/json" \
-d '{
"slot_id": "test-123",
"date": "2025-12-25",
"start_time": "14:00:00",
"end_time": "15:00:00",
"client_name": "Test Client",
"client_email": "test@example.com",
"topic": "Test Topic",
"notes": "Test notes",
"calendar_id": "your-email@gmail.com",
"brand_name": "Your Brand",
"test_mode": true
}'
Expected Response:
{
"meet_link": "https://meet.google.com/abc-defg-hij",
"event_id": "event-id-from-google-calendar",
"html_link": "https://www.google.com/calendar/event?eid=..."
}
Workflow Variables
The webhook receives these fields from your Supabase Edge Function:
| Field | Description | Example |
|---|---|---|
slot_id |
Unique slot identifier | uuid-here |
date |
Event date (YYYY-MM-DD) | 2025-12-25 |
start_time |
Start time (HH:MM:SS) | 14:00:00 |
end_time |
End time (HH:MM:SS) | 15:00:00 |
client_name |
Client's full name | John Doe |
client_email |
Client's email | john@example.com |
topic |
Consultation topic | Business Consulting |
notes |
Additional notes | Discuss project roadmap |
calendar_id |
Google Calendar ID | your-email@gmail.com |
brand_name |
Your brand name | Access Hub |
test_mode |
Test mode flag | true |
Troubleshooting
Error: 403 Forbidden
- Make sure calendar is shared with service account email
- Service account email format:
xxx@project-id.iam.gserviceaccount.com - Calendar permissions: "Make changes to events"
Error: 401 Unauthorized
- Check service account JSON is correct
- Verify Calendar API is enabled in Google Cloud Console
Error: 400 Invalid
- Check date format (YYYY-MM-DD)
- Check time format (HH:MM:SS)
- Verify calendar ID is correct
Webhook not triggering
- Make sure workflow is Active
- Check webhook URL matches:
/webhook-test/create-meet - Verify webhook method is POST not GET
Calendar ID
To find your Calendar ID:
- Go to Google Calendar Settings
- Scroll to Integrate calendar
- Copy the Calendar ID
- For primary calendar: your Gmail address
Production vs Test
- Test Mode: Uses
/webhook-test/path - Production: Uses
/webhook/path - Toggle in Admin Settings → Integrasi → Mode Test n8n
Next Steps
- Import workflow JSON
- Set up Google Calendar credentials with service account
- Activate workflow
- Test with curl command above
- Check your Google Calendar for the event
- Verify meet link is returned
Support
If you need help:
- Check n8n workflow execution logs
- Check Google Calendar API logs
- Verify service account permissions
- Check calendar sharing settings