See llms.txt for all machine-readable content.

Back to Templates

Optimize ASO keywords and app copy with Gemini, Apify, Google Sheets and Slack

Quick overview

Youtube Video: https://youtu.be/iAwueeYikXI

This workflow accepts a Google Play or Apple App Store URL via an n8n form, scrapes the app listing with Apify, uses Google Gemini to extract and expand ASO keywords, then saves optimized title/description/keywords to Google Sheets and posts results to Slack.

How it works

  1. Receives an app URL from an n8n form submission.
  2. Checks a Google Sheets tracking sheet for an existing row matching the same App URL.
  3. If the URL already exists, posts a “workflow skipped” message to a Slack channel and stops.
  4. If the URL is new, writes/updates a row in Google Sheets with Status = Processing and a submission timestamp.
  5. Detects whether the URL is from Google Play or the Apple App Store and scrapes the listing details via Apify accordingly.
  6. Sends the scraped metadata to Google Gemini to extract the app name, category, primary seed keyword, and the current keywords targeted in the listing.
  7. Uses Apify keyword research on the seed keyword, then asks Google Gemini to generate an ASO-optimized title, short description, full description, and target keyword list.
  8. Updates the same Google Sheets row with the optimized copy and sets Status = Completed, then posts a completion summary to Slack.

Setup

  1. Connect a Google Sheets service account credential and set the correct spreadsheet ID and sheet name for the tracking sheet.
  2. Ensure the Google Sheet includes columns for App URL, Status, Submitted At, Updated At, Optimized Title, Optimized Short Description, Optimized Description, Target Keywords, and ASO Strategy Notes.
  3. Add an Apify HTTP Header Auth credential (API token) for the two Apify scraping actors and the keyword research actor.
  4. Add a Google Gemini (Google PaLM) API credential for both Gemini chat model steps.
  5. Add a Slack OAuth credential and select the target channel for both the “skipped” and “complete” notifications.