{ "id": "fEJliGTxbsE0G8z2", "meta": { "instanceId": "workflow-2e865b02", "versionId": "1.0.0", "createdAt": "2025-09-29T07:07:50.184021", "updatedAt": "2025-09-29T07:07:50.184076", "owner": "n8n-user", "license": "MIT", "category": "automation", "status": "active", "priority": "high", "environment": "production" }, "name": "Create Google Creds", "tags": [ "automation", "n8n", "production-ready", "excellent", "optimized" ], "nodes": [ { "id": "92174182-12ab-4903-aa1c-d7a872fcadc0", "name": "When clicking ‘Test workflow’", "type": "n8n-nodes-base.manualTrigger", "position": [ 0, 0 ], "parameters": {}, "typeVersion": 1, "notes": "This manualTrigger node performs automated tasks as part of the workflow." }, { "id": "e78da252-0302-42d6-b067-aaeb75f4ee3b", "name": "Services", "type": "n8n-nodes-base.set", "position": [ 600, 0 ], "parameters": { "options": {}, "assignments": { "assignments": [ { "id": "33c46c17-3b0d-43eb-a9c9-3d1b8a71728f", "name": "services", "type": "array", "value": "\n[\n {\n \"service\": \"googleDocsOAuth2Api\"\n },\n {\n \"service\": \"googleSheetsOAuth2Api\"\n },\n {\n \"service\": \"googleSlidesOAuth2Api\"\n },\n {\n \"service\": \"googleDriveOAuth2Api\"\n },\n {\n \"service\": \"gmailOAuth2\"\n },\n {\n \"service\": \"googleCalendarOAuth2Api\"\n },\n {\n \"service\": \"googleContactsOAuth2Api\"\n }\n]" } ] } }, "typeVersion": 3.4, "notes": "This set node performs automated tasks as part of the workflow." }, { "id": "1a387d21-b7a0-426b-bacb-6bcd5ec389a7", "name": "Google JSON", "type": "n8n-nodes-base.set", "notes": "Include the entire Google JSON file, which can be obtained either when creating the OAuth 2.0 credentials or afterward from the Credentials page.", "position": [ 180, 0 ], "parameters": { "mode": "raw", "options": {}, "jsonOutput": " {\n \"web\": {\n \"client_id\": \"\",\n \"project_id\": \"\",\n \"auth_uri\": \"\",\n \"token_uri\": \"\",\n \"auth_provider_x509_cert_url\": \"\",\n \"client_secret\": \"\",\n \"redirect_uris\": [\n \"\"\n ]\n }\n }" }, "notesInFlow": true, "typeVersion": 3.4 }, { "id": "07096943-ab80-4915-ab59-7e1166303f66", "name": "Split Out", "type": "n8n-nodes-base.splitOut", "position": [ 820, 0 ], "parameters": { "options": {}, "fieldToSplitOut": "services" }, "typeVersion": 1, "notes": "This splitOut node performs automated tasks as part of the workflow." }, { "id": "a30743a5-f817-43d2-8b9c-df95b8bb2b81", "name": "Google Email", "type": "n8n-nodes-base.set", "notes": "Set to your email address.", "position": [ 380, 0 ], "parameters": { "options": {}, "assignments": { "assignments": [ { "id": "18e7a65f-904a-47be-94b6-06c7167c2c62", "name": "Google Email", "type": "string", "value": "username@gmail.com" } ] } }, "notesInFlow": true, "typeVersion": 3.4 }, { "id": "8a24e96a-b3c5-4073-abfc-8177671f7f6c", "name": "n8n Create Credentials", "type": "n8n-nodes-base.n8n", "position": [ 1100, 0 ], "parameters": { "data": "={\n \"clientId\":\"{{ $('Google JSON').item.json.web.client_id }}\",\n \"clientSecret\": \"{{ $('Google JSON').item.json.web.client_secret }}\"\n}", "name": "={{ $('Google Email').item.json['Google Email'] }} - {{ $json.service }}", "resource": "credential", "requestOptions": {}, "credentialTypeName": "YOUR_CREDENTIAL_HERE" }, "credentials": { "n8nApi": { "id": "XMAqFWjBVgTU7khS", "name": "n8n account" } }, "typeVersion": 1, "notes": "This n8n node performs automated tasks as part of the workflow." }, { "id": "55c3814c-e08f-4541-8229-a197fa0fd0ba", "name": "Sticky Note", "type": "n8n-nodes-base.stickyNote", "position": [ -460, -460 ], "parameters": { "color": 6, "width": 360, "height": 520, "content": "## Create Google Creds\nI found manually creating credentials for multiple google accounts to be rather tedious, and if not named well hard to identify later. \n\nThis will create credentials with the email address for all of the basic services. \n\n### Set the values of:\n* Google JSON\nInclude the entire Google JSON file, which can be obtained either when creating the OAuth 2.0 credentials or afterward from the Credentials page.\n\n* Google Email\nSet to your email address\n\n*n8n\nSet your API connection\n\n### Sign In\nYou still need to sign in to each credential that was created." }, "typeVersion": 1, "notes": "This stickyNote node performs automated tasks as part of the workflow." }, { "id": "error-0fe23532", "name": "Error Handler", "type": "n8n-nodes-base.stopAndError", "typeVersion": 1, "position": [ 1000, 400 ], "parameters": { "message": "Workflow execution error", "options": {} } } ], "active": false, "pinData": {}, "settings": { "callerPolicy": "workflowsFromSameOwner", "executionOrder": "v1", "executionTimeout": 3600, "saveManualExecutions": true, "errorWorkflow": null, "timezone": "UTC", "maxExecutions": 1000, "retryOnFail": true, "retryCount": 3, "retryDelay": 1000 }, "versionId": "8924dfed-07be-4f42-8665-d6f4b1dcbd58", "connections": {}, "description": "Automated workflow: Create Google Creds. This workflow integrates 5 different services: stickyNote, splitOut, n8n, set, manualTrigger. It contains 7 nodes and follows best practices for error handling and security.", "notes": "Excellent quality workflow: Create Google Creds. This workflow has been optimized for production use with comprehensive error handling, security, and documentation." }