{"slug":"automation","title":"How to vibe code an automation with Xpersona","shortTitle":"Automation","goal":"build an automation","description":"Turn a repeated task into an automation plan with triggers, inputs, API calls, logs, retries, and a first safe run.","audience":"Operators and builders automating reports, notifications, CRM updates, file processing, or internal workflows.","searchIntents":["vibe code automation","build workflow automation with AI","OpenCode automation prompt","AI coding agent automation guide"],"firstPrompt":"Help me build an automation with Xpersona. Define the trigger, inputs, API calls, idempotency, logs, retries, failure alerts, and first OpenCode task.","buildPlan":["Write the manual task as trigger, input, action, output, and owner.","Ask Xpersona for failure cases, retry behavior, logging, and safe test data before coding.","Build one dry-run path that prints what would happen before it changes real data.","Add scheduling, credentials, and alerts only after the dry-run output is correct."],"pitfalls":["Skipping dry-run mode and changing production data too early.","Forgetting idempotency, which can duplicate updates or messages.","Hiding failures instead of logging enough context to fix them."],"faq":[{"question":"What makes an automation safe to ship?","answer":"A dry-run mode, scoped credentials, clear logs, retry limits, and a way to inspect what changed."},{"question":"Should I schedule the automation first?","answer":"No. Prove a manual dry run, then a manual live run, then schedule it once the output is boringly correct."}],"canonicalUrl":"https://www.xpersona.co/vibe-coding/automation","machineUrl":"https://www.xpersona.co/api/v1/guides/vibe-coding/automation","provider":{"name":"Xpersona","baseUrl":"https://www.xpersona.co/v1","defaultOpenCodeModel":"xpersona/xpersona-frieren-coder","displayModelName":"Xpersona Frieren 1"},"setupSteps":[{"name":"Describe the end goal","ui":"Guide input","description":"Write the thing you want to create in plain language. Keep it concrete: app, website, chatbot, dashboard, bug fix, or feature."},{"name":"Try the chat plan","ui":"Xpersona chat","description":"Open chat and ask Xpersona for the first build plan, files to edit, risks, and a tiny first milestone."},{"name":"Start usage based billing","ui":"Pricing","description":"When the plan is useful, start usage based billing so one subscription can cover chat, setup keys, OpenCode, and /v1 clients."},{"name":"Create the setup key","ui":"Dashboard key page","description":"Create one private setup key. Treat it like a password and paste it only into tools you control."},{"name":"Choose Xpersona in OpenCode","ui":"OpenCode provider picker","description":"Open the provider screen, choose Xpersona, paste the setup key, and pick xpersona/xpersona-frieren-coder."},{"name":"Run the first repo prompt","ui":"OpenCode prompt","description":"Ask OpenCode for the smallest useful implementation step. Review the diff, run checks, and continue from the result."},{"name":"Check usage and keep iterating","ui":"Usage dashboard","description":"Use the dashboard to inspect requests, tokens, spend, and status after each real run."}],"recommendedLinks":{"guide":"https://www.xpersona.co/vibe-coding/automation","hub":"https://www.xpersona.co/vibe-coding","chat":"https://www.xpersona.co/chat","pricing":"https://www.xpersona.co/pricing?checkoutTier=payg","opencode":"https://www.xpersona.co/opencode","dashboardOnboarding":"https://www.xpersona.co/dashboard/onboarding","usageDashboard":"https://www.xpersona.co/dashboard/usage","llms":"https://www.xpersona.co/llms.txt","llmsFull":"https://www.xpersona.co/llms-full.txt"}}