Hey everyone! I’m trying to build a voice automation system but I’m stuck on the OAuth configuration part.
My goal: When I say “Hey Google, talk to my AI assistant” followed by a question, I want Google Home to send that request to my self-hosted n8n server. Then n8n should call the OpenAI API, get the response, and send it back to Google Home so it can speak the answer out loud.
Current status: The integration isn’t working at all. Google Home can’t communicate with my n8n setup.
What I’ve completed:
Created an n8n workflow with webhook endpoints
Got my OpenAI API credentials working
Set up Google Cloud Console project and Actions Console
Configured SSL certificates using Let’s Encrypt
Opened necessary firewall ports (80, 443)
Partially completed Google’s OAuth2 application review (left some fields empty but it was accepted)
Generated OAuth2 client ID and secret in n8n
Where I’m stuck:
Google is asking for OAuth scopes when I try to configure the connection, but I have no idea which ones to select. Also, I’m not sure if my overall approach is correct.
Questions:
Which OAuth scopes should I configure for this type of integration?
What’s the proper step-by-step process to connect n8n with Google Home for voice queries?
Additional concern: Most tutorials I find mention Dialogflow, but that service was discontinued in June 2023. Is this type of integration still possible with current Google services? If anyone has a working guide or can point me toward the right documentation, I’d really appreciate it!
Your integration approach has a fundamental flaw that’s causing the OAuth confusion. Google Home doesn’t talk directly to external services through OAuth - you need something like Google Assistant Actions in between. Since Dialogflow ES got deprecated, you’d need Actions on Google with Conversational Actions (though that’s getting phased out too) or migrate to Google Assistant SDK. Those OAuth scopes you’re seeing are probably for Actions on Google, which needs https://www.googleapis.com/auth/assistant-sdk-prototype at minimum. But here’s an easier way: use IFTTT or Zapier as your bridge instead of building direct Google Home integration. Create an IFTTT applet that triggers on a specific Google Assistant phrase, sends a webhook to your n8n instance, which calls OpenAI and returns the response via text-to-speech. This skips the complex OAuth setup entirely and Google’s increasingly restrictive third-party policies. The response won’t be as smooth as native Google Home speech, but it’s way more reliable to build and maintain.
I built this exact setup last year. The OAuth scope confusion happens because you’re mixing two different auth flows. For n8n to Google Home, you need https://www.googleapis.com/auth/actions.fulfillment.conversation scope, plus https://www.googleapis.com/auth/assistant-sdk-prototype if you’re using Assistant SDK. Here’s the real problem though - Google killed most direct third-party integrations for security reasons. What worked for me: create a Google Action using Actions Builder (not the old Actions Console), then point the fulfillment webhook to your n8n endpoint. Your n8n workflow gets the intent, runs it through OpenAI, and sends back a properly formatted response with speech markup. The tricky part is response formatting. Google wants specific JSON structure with fulfillmentResponse containing messages array. Mess this up and Google just says “something went wrong”. Also, your webhook has to respond within Google’s 30-second timeout or the conversation dies. I’ve been running this setup for months without major issues, though Google’s constant policy changes mean you’ll need updates occasionally.
You’re having trouble integrating your self-hosted n8n server with Google Home to create a voice-activated AI assistant. The core issue lies in the complexity of setting up OAuth 2.0 authentication between Google Home, n8n, and the OpenAI API, particularly given the deprecation of Dialogflow ES. You’re unsure which OAuth scopes to use and are encountering difficulties with the overall integration process. Many existing tutorials are outdated due to changes in Google’s services.
TL;DR: The Quick Fix:
Instead of directly integrating with Google Home’s OAuth system, use a simpler intermediary platform like IFTTT or Zapier. This bypasses complex OAuth configuration and provides a more straightforward solution for connecting Google Home voice commands to your n8n workflow, which then interacts with the OpenAI API.
Understanding the “Why” (The Root Cause):
Directly connecting Google Home to external services using OAuth 2.0 is now significantly more challenging due to Google’s evolving security policies and the deprecation of Dialogflow ES. The OAuth scopes you’re seeing are related to Google Assistant Actions, a service designed for creating custom voice interactions, but it is a complex path with frequent updates to the associated platforms. This requires extensive configuration and a deep understanding of Google’s Actions on Google platform, including the handling of fulfillment requests and their specific JSON response structure. The alternative recommended approach greatly simplifies the overall integration process.
Step-by-Step Guide:
Choose an Intermediary Platform: Select a no-code integration platform like IFTTT or Zapier. Both offer a user-friendly interface for connecting different services. IFTTT tends to have a simpler workflow for basic integrations, while Zapier provides more advanced features and extensive service coverage.
Create an Applet (IFTTT) or Zap (Zapier):
IFTTT: Create a new applet. Select “Google Assistant” as the trigger and set it to trigger when a specific phrase is spoken (e.g., “Hey Google, talk to my AI assistant”). Select “Webhooks” as the action and use your n8n webhook URL as the target. Configure the Webhooks action to send the user’s voice query as part of the POST data.
Zapier: Create a new Zap. Choose “Google Assistant” as the trigger and set up the phrase, similar to the IFTTT steps. Then select “Webhooks” as the action. Provide your n8n webhook URL and configure the POST data to send the user’s voice query.
Configure your n8n Webhook: Ensure your n8n workflow has a webhook node set up to receive POST requests from either IFTTT or Zapier. This node will capture the voice query sent by the platform.
Process the Query with OpenAI in n8n: Your n8n workflow will then proceed to use the captured query to call the OpenAI API, obtain the response, and process it.
Send the Response (IFTTT/Zapier): Finally, you’ll need to format the OpenAI’s text response and send it back via the same IFTTT or Zapier integration. For IFTTT, you’ll most likely use the “Maker Webhooks” feature to send the formatted response as a Maker Webhooks POST request to another n8n webhook. For Zapier, you’ll likely use a dedicated “Text” or notification service to relay your response back to your device.
Testing: Rigorously test your entire chain (Google Home → IFTTT/Zapier → n8n → OpenAI → IFTTT/Zapier → Output device) to ensure the full flow works flawlessly.
Common Pitfalls & What to Check Next:
Webhook URLs: Double-check that all webhook URLs are correct and accessible. Ensure that your n8n server is publicly accessible or properly configured for forwarding if necessary.
Data Formatting: Carefully format the data sent between each service. The request body sent to your n8n webhook must be correctly structured, and the response sent back must be in a format that is understood by the intermediary platform.
Error Handling: Implement robust error handling in your n8n workflow to catch potential issues with API calls and data processing. Log errors appropriately for debugging purposes.
Rate Limits: Be aware of rate limits for both the IFTTT/Zapier platform and the OpenAI API. Implement delays if needed to avoid exceeding these limits.
Still running into issues? Share your (sanitized) config files, the exact command you ran, and any other relevant details. The community is here to help!
Been down this rabbit hole before and here’s what actually worked for me. That OAuth scope issue happens because Google Assistant wants specific permissions, but there’s an easier way that skips most of the headache. Don’t fight with Actions on Google directly. Instead, set up a webhook receiver in n8n that takes POST requests from Google Assistant through a custom routine. Make a Google Assistant routine that triggers on your phrase, then use “Custom action” to send an HTTP request to your n8n webhook URL. Your n8n workflow gets the request, runs it through OpenAI, and sends back a JSON response that converts to speech. The key is formatting your response right so Google can read it back - use the “fulfillmentText” field in your JSON. This completely skips OAuth since you’re just making HTTP calls. Make sure your SSL cert’s configured properly and test the webhook endpoint on its own first. I’ve been running this for months without any of those authentication headaches.
honestly the oauth headache isn’t worth it anymore since google keeps changing their apis. try using home assistant instead - it has built-in openai integration and works with google home through the cloud component. way simpler setup and no oauth mess to deal with.