Bloody Bloody Mary - Automating Restaurant Social Copy

2024-12-30

Building a Google Sheets + OpenAI solution to generate varied restaurant promotional copy

When managing social media for multiple restaurant locations, creating fresh content for recurring promotions becomes a significant challenge. This project explores how to leverage AI to generate unique, on-brand social media copy while maintaining variety and engagement.

The Challenge

As a copywriter managing social media for an expanding restaurant chain, I faced a unique problem: creating fresh, engaging content for the same promotions across multiple locations. With 8 restaurants each requiring: - Daily Bloody Mary specials - 4 weekly chef specials per month - Other recurring promotional content

The traditional approach of manual writing became unsustainable and risked content becoming repetitive.

The Solution

I developed two versions of an AI-powered content generation system using Google Sheets and OpenAI's GPT-4:

Version 1: Basic Generation

  • Integrated Google Sheets with OpenAI's API
  • Input parameters: restaurant name, tone of voice, post type, and specific details
  • Simple prompt-based generation without memory of previous content

Version 2: Context-Aware Generation

  • Enhanced version with memory of previous outputs
  • Maintains variety by avoiding repetition of themes and phrasings
  • Improved prompt engineering for more diverse results

Technical Implementation

The Stack

  • Google Sheets: Chosen for its collaboration features and ease of sharing with clients
  • OpenAI GPT-4: Selected as the industry standard for text generation
  • Apps Script: Connects the spreadsheet interface to OpenAI's API

Spreadsheet Structure

The system uses a simple but effective spreadsheet layout: - Column A: Restaurant Name (e.g., "Smashing Grapes") - Column B: Voice/Tone (e.g., "Cheery, inviting") - Column C: Theme (e.g., "vine time happy hour", "brunch", "food post") - Column D: Specific Details (e.g., "promote both times", "SAUSAGE & KALE SOUP") - Column E: Generated Result

Features

  • Spreadsheet-based interface for easy content management
  • API integration with OpenAI's GPT-4
  • Customizable tone and style per restaurant
  • Automated content generation with manual review
  • Version 2: Content memory to prevent repetition

Results and Impact

The implementation of this system achieved significant workflow improvements: - 50% reduction in content creation time - Eliminated "blank page syndrome" by providing strong first drafts - Maintained consistent brand voice across multiple locations - Enabled copywriters to focus on refinement rather than initial creation - Improved collaboration with clients through shared Google Sheets interface

The key insight was that AI isn't meant to replace the copywriter but rather to handle the repetitive first draft, allowing human creativity to focus on refinement and personalization. This hybrid approach proved particularly valuable for recurring promotions like daily specials and regular events.

Example Outputs

Here are some real examples showing how the system handles different types of content while maintaining brand voice and variety:

Happy Hour Promotion

Input Parameters: - Restaurant: Smashing Grapes - Voice/Tone: Cheery, inviting - Theme: vine time happy hour - Details: promote both times

Generated Output: "Tick-tock, it's wine o'clock! Swing by Smashing Grapes for our Vine Time Happy Hour from 3PM - 6PM, Monday - Thursday, and 9PM - 12AM on Friday and Saturday. Your favorite bottled beers and wines by the glass are just $5 and our signature drafts are $4. Don't forget to pair your drinks with our delicious snacks. Come for the great times, stay for the grape times!"

Valentine's Day Special

Input Parameters: - Restaurant: Smashing Grapes - Voice/Tone: Cheery, inviting - Theme: valentine's day - Details: prix fixe menu (it's january)

Generated Output: "Love is in the air, and it's carrying a hint of Cabernet! At Smashing Grapes we'll be preparing a special prix fixe menu for Valentine's Day. Since it's January, time is of essence, so start booking your tables now. Don't miss out on a memorable date night filled with fine wines and a whole lot of charm. Reserve now through OpenTable!"

Featured Dish

Input Parameters: - Restaurant: Smashing Grapes - Voice/Tone: Cheery, inviting - Theme: food post - Details: SAUSAGE & KALE SOUP

Generated Output: "You deserve a winter crush that knows how to warm you up like our Sausage & Kale Soup! Italian sausage and tender kale in savory broth, topped with crispy sourdough croutons. Pair it with wine and thank us later."

Code Implementation

The complete code for this project is available on GitHub: Bloody-Bloody-Mary Version 2

To use this code: 1. Create a new Google Sheet 2. Open Apps Script from the Extensions menu 3. Copy the code from the repository 4. Replace the API key with your own OpenAI key 5. Save and run the script

Future Improvements & Tips for Success

While I'm no longer actively maintaining this project, I'm sharing it as a resource for other copywriters and restaurant marketers. Here are the key insights for getting the most value from this system:

Maximizing Output Quality

The secret to great results is rich, creative input. The more detail you provide, the better the output:

  • Voice/Tone: Be specific about your restaurant's personality. Instead of just "casual," try "warm and witty with a hint of sass"
  • Promotional Details: Include specific menu items, prices, and unique selling points
  • Context: Add seasonal touches, local references, or tie-ins to events

Potential Applications

This code could be packaged and expanded to help restaurants:

  1. Maintain consistency across multiple locations while avoiding repetition
  2. Generate first drafts for regular promotional content
  3. Create a foundation for multi-platform social media strategies

Remember: AI isn't meant to replace the copywriter but to handle the repetitive first drafts. Human creativity and finesse are still essential for that final polish that makes content truly shine.