Overview\nAutomates event promotion across 5 social media platforms (Twitter, LinkedIn, Instagram, Facebook, Discord). Generates a promotional image via Gemini and platform-specific copy via LLM, then posts sequentially to each platform.\n\n## How It Works\n1. Generates a promotional image using Gemini (or reuses a provided image URL)\n2. Uses LLM to generate platform-specific copy tailored to each platform's style\n3. Posts to each platform sequentially with auto-discovery of user IDs\n\n## Key Features\n- Auto-discovers LinkedIn URN and Instagram User ID\n- Graceful degradation: skips platforms with missing credentials\n- Optional image_url input to reuse existing images\n- Platform-specific copy generation\n\n## Step-by-Step Flow\n1. Image Generation: Create promotional graphic via Gemini or reuse provided URL\n2. Copy Generation: LLM generates 5 platform-specific posts\n3. Twitter: Post with hashtags and optional image\n4. LinkedIn: Auto-discover URN, post professional content\n5. Instagram: 3-step flow (create container, poll status, publish)\n6. Facebook: Post to page (requires page_id)\n7. Discord: Post with markdown formatting (requires channel_id)\n\n## Apps & Integrations\n| App | Purpose |\n|-----|----------|\n| Gemini | Promotional image generation |\n| Twitter | Post event announcement |\n| LinkedIn | Post professional event content |\n| Instagram | Post image with caption |\n| Facebook | Post to page |\n| Discord | Post to channel |\n\n## Inputs Required\n| Input | Description | Format |\n|-------|-------------|--------|\n| event_title | Event name | Plain text |\n| event_date | Event date | e.g. "January 25, 2025" |\n| event_time | Event time with timezone | e.g. "6:00 PM EST" |\n| event_location | Venue or address | Plain text |\n| event_description | Event description | Plain text |\n| event_url | Primary RSVP link | Full URL |\n| discord_channel_id | Discord channel ID (optional) | Channel ID string |\n| facebook_page_id | Facebook page ID (optional) | Page ID string |\n| skip_platforms | Platforms to skip (optional) | Comma-separated, e.g. "facebook,discord" |\n| image_url | Reuse existing image (optional) | Full URL to image |\n\n## Output\nJSON with per-platform status (success/skipped/failed), image URL, and summary.\n\n## Notes & Limitations\n- Instagram requires Business/Creator account\n- Facebook requires page_manage_posts permission\n- Discord requires bot in server with send message permission\n- Posts execute sequentially (Rube runtime does not support threading)"