Add Google Calendar integration via Supabase Edge Functions
- 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>
This commit is contained in:
89
n8n-workflows/create-google-meet-event.json
Normal file
89
n8n-workflows/create-google-meet-event.json
Normal file
@@ -0,0 +1,89 @@
|
||||
{
|
||||
"name": "Create Google Meet Event - Access Hub",
|
||||
"nodes": [
|
||||
{
|
||||
"parameters": {
|
||||
"httpMethod": "POST",
|
||||
"path": "create-meet",
|
||||
"responseMode": "responseNode",
|
||||
"options": {}
|
||||
},
|
||||
"id": "webhook-trigger",
|
||||
"name": "Webhook",
|
||||
"type": "n8n-nodes-base.webhook",
|
||||
"typeVersion": 1.1,
|
||||
"position": [250, 300],
|
||||
"webhookId": "create-meet-webhook"
|
||||
},
|
||||
{
|
||||
"parameters": {
|
||||
"operation": "create",
|
||||
"calendarId": "={{ $json.calendar_id }}",
|
||||
"title": "=Konsultasi: {{ $json.topic }} - {{ $json.client_name }}",
|
||||
"description": "=Client: {{ $json.client_email }}\n\nNotes: {{ $json.notes }}\n\nSlot ID: {{ $json.slot_id }}",
|
||||
"location": "Google Meet",
|
||||
"attendees": "={{ $json.client_email }}",
|
||||
"startsAt": "={{ $json.date }}T{{ $json.start_time }}",
|
||||
"endsAt": "={{ $json.date }}T{{ $json.end_time }}",
|
||||
"sendUpdates": "all",
|
||||
"conferenceDataVersion": 1,
|
||||
"options": {}
|
||||
},
|
||||
"id": "google-calendar",
|
||||
"name": "Google Calendar",
|
||||
"type": "n8n-nodes-base.googleCalendar",
|
||||
"typeVersion": 2,
|
||||
"position": [470, 300],
|
||||
"credentials": {
|
||||
"googleCalendarApi": {
|
||||
"id": "REPLACE_WITH_YOUR_CREDENTIAL_ID",
|
||||
"name": "Google Calendar account (Service Account)"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"parameters": {
|
||||
"respondWith": "json",
|
||||
"responseBody": "={{ { \"meet_link\": $json.hangoutLink, \"event_id\": $json.id, \"html_link\": $json.htmlLink } }}"
|
||||
},
|
||||
"id": "respond-to-webhook",
|
||||
"name": "Respond to Webhook",
|
||||
"type": "n8n-nodes-base.respondToWebhook",
|
||||
"typeVersion": 1.1,
|
||||
"position": [690, 300]
|
||||
}
|
||||
],
|
||||
"connections": {
|
||||
"Webhook": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Google Calendar",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Google Calendar": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Respond to Webhook",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
}
|
||||
},
|
||||
"pinData": {},
|
||||
"settings": {
|
||||
"executionOrder": "v1"
|
||||
},
|
||||
"staticData": null,
|
||||
"tags": [],
|
||||
"triggerCount": 1,
|
||||
"updatedAt": "2025-12-23T00:00:00.000Z",
|
||||
"versionId": "1"
|
||||
}
|
||||
Reference in New Issue
Block a user