Add complete automation SOP system for BlackRoad ERP

This implements the "Automate The Company" initiative with comprehensive
Standard Operating Procedures for GitHub + Salesforce + Asana integration.

New directory: sop/
├── workflows/ - End-to-end process documentation
│   ├── new-client-kickoff.md - Flagship workflow from deal → repos → Asana
│   └── release-pipeline.md - Deploy → update Salesforce + Asana
├── playbooks/ - Human-friendly checklists
│   └── brenda-new-client-checklist.md - Non-technical operator guide
├── salesforce/ - Salesforce automation specifications
│   ├── flows/opp-automation-onstagechange.md - Trigger on Closed Won
│   └── orchestrations/new-client-kickoff-orchestration.md - Multi-stage process
├── integrations/ - API integration specifications
│   ├── salesforce-to-github.md - Create repos from Salesforce
│   ├── github-to-salesforce.md - Update Salesforce after deploy
│   └── salesforce-to-asana.md - Create Asana projects from Salesforce
└── templates/ - Reusable templates
    ├── github-actions/ - CI/CD workflows (ci.yml, deploy.yml, safety.yml)
    └── repo-template/ - Standard repo config (PR template, labels, branch protection)

Key Features:
- Event-driven automation (Closed Won → repos + Asana creation)
- GitHub Actions templates for CI/CD baseline
- Salesforce Flow & Orchestration specs
- Complete API integration documentation
- Operator-friendly playbooks
- Two-view approach (operator + engineer)
- No manual status syncing across systems

This provides the complete backbone for next-gen ERP automation.
This commit is contained in:
Claude
2025-11-17 08:17:51 +00:00
parent 9b137af555
commit 7cde897040
18 changed files with 6077 additions and 0 deletions

View File

@@ -0,0 +1,347 @@
# New Client Kickoff Checklist (Brenda Edition)
**For:** Operations, Customer Success, Account Managers
**Time:** 30 minutes of your time, 5-10 minutes of robot time
**Last Updated:** 2025-11-17
---
## What This Is
This is your **simple, step-by-step guide** for onboarding a new client after a deal closes. Most of the work happens automatically, but you need to:
1. Make sure everything kicks off correctly
2. Fill in a few details the robots can't know
3. Verify everything worked
4. Communicate with the customer
**No technical knowledge required.** If something breaks, there are clear instructions for who to ask for help.
---
## Before You Start
You'll need:
- [ ] Access to Salesforce
- [ ] Access to Asana
- [ ] Client's primary contact info (name, email, phone)
- [ ] Client's domain preference (if custom)
- [ ] Package type they purchased (OS / Console / Custom)
---
## The Checklist
### 📋 **Part 1: Mark the Deal Closed (Day 0)**
**Where:** Salesforce
1. Open the **Opportunity** record for this deal
2. Click **Edit**
3. Change **Stage** to: `Closed Won`
4. Fill in these fields if they're empty:
- **Account Name:** Company name
- **Primary Contact:** Main person at the company
- **Domain/Subdomain:** What they want their site to be called (e.g., `acme-portal`)
- **Package Type:** OS / Console / Custom (what they bought)
- **Service Tier:** Starter / Pro / Enterprise
- **Start Date:** Today (or agreed start date)
5. Click **Save**
**What happens next (automatically):**
- A **Project** record gets created in Salesforce (within 2 minutes)
- Repos appear in GitHub (within 5-10 minutes)
- An **Asana project** gets created with all tasks (within 5-10 minutes)
- You get a **Slack notification** in #ops saying everything is ready
**⏱️ Wait 10 minutes**, then move to Part 2.
---
### ✅ **Part 2: Verify the Magic Happened (Day 0)**
**Where:** Salesforce → Project record
1. Go back to the **Opportunity** in Salesforce
2. Scroll down to **Related****Projects**
3. You should see a new **Project** record with a name like `ACME-X7K9`
**Click into the Project record and check:**
- [ ] **Project Key** is filled in (e.g., `ACME-X7K9`)
- [ ] **Status** says: `Setup In Progress`
- [ ] **Backend Repo URL** is filled in (a GitHub link)
- [ ] **Frontend Repo URL** is filled in (a GitHub link)
- [ ] **Ops Repo URL** is filled in (a GitHub link)
- [ ] **Asana Project URL** is filled in (an Asana link)
**If any of these are empty after 15 minutes:**
→ Something broke. Skip to "Troubleshooting" section below.
**If everything is filled in:**
→ 🎉 You're golden! Move to Part 3.
---
### 📝 **Part 3: Add Client-Specific Details (Day 0)**
**Where:** Asana
1. Click the **Asana Project URL** from the Salesforce Project record (opens Asana)
2. You should see a project with sections: Discovery, Architecture, Build, Testing, Go-Live
3. Go to the **Discovery** section
4. Click the task: **"Confirm domain + DNS with client"**
5. Assign it to **yourself**
6. Add a comment with:
- Client's preferred domain/subdomain
- Any special requests (custom branding, integrations, etc.)
- Primary contact info
7. Click the task: **"Gather branding assets"**
8. Assign it to **Design team**
9. Add a comment with:
- "Client: [Company Name]"
- "Contact: [Name, Email]"
- "Need: Logo, brand colors, fonts"
**Where:** Salesforce Project
1. Go back to the **Project** record in Salesforce
2. Click **Edit**
3. Fill in:
- **Primary Contact:** Lookup the Contact record
- **Technical Owner:** Assign to a developer (or leave blank for now)
- **Customer Notes:** Any special context about this client
4. Click **Save**
---
### 📧 **Part 4: Notify the Client (Day 0-1)**
**Where:** Email / Phone
Send the client a friendly kickoff message:
**Template:**
> Subject: Welcome to BlackRoad! Your Project is Live 🚀
>
> Hi [Client Name],
>
> Great news! We've kicked off your project. Here's what's happening:
>
> **Your Project:** [Project Key, e.g., ACME-X7K9]
> **Package:** [OS / Console / Custom]
> **Next Steps:**
> 1. Our team will reach out within 24 hours to confirm your domain and branding.
> 2. We'll send you a staging link within 3-5 business days for initial review.
> 3. Your primary point of contact is [Technical Owner Name] for technical questions, and me for everything else.
>
> **Need anything?**
> Just reply to this email or call me at [your number].
>
> Looking forward to building something great together!
>
> [Your Name]
> [Your Title]
> BlackRoad
---
### 👀 **Part 5: Monitor Progress (Ongoing)**
**Where:** Asana (check daily)
1. Open the **Asana project** for this client
2. Look at tasks:
-**Green checkmarks** = Done automatically or by the team
-**In Progress** = Someone's working on it
- 🔴 **Overdue** = Needs attention
**What to watch for:**
- Tasks marked "blocked" → Check the comments, see what's blocking, help unblock
- Tasks overdue by > 2 days → Ping the assignee in Slack or Asana
- Client reaches out with questions → Add a task in Asana under "Discovery" section
**Where:** Salesforce Project (check weekly)
1. Open the **Project** record
2. Look at **Last Deploy At** field:
- Should update every few days (means engineers are deploying)
- If it's been > 1 week with no deploys → Ask in #ops "Is [Project Key] blocked?"
---
### 🎯 **Part 6: Final Review & Go-Live (Day 14-30)**
**Where:** Asana → "Go-Live" section
When you see the task **"Final client walkthrough"** assigned to you:
1. Schedule a 30-minute call with the client
2. Walk them through their staging environment
3. Get their final approval:
- [ ] Design looks good
- [ ] Functionality works as expected
- [ ] They're ready to go live
4. In the Asana task, add a comment: "Client approved on [Date]. Ready for production."
5. Assign the task **"Deploy to production"** to **DevOps**
**What happens next (automatically):**
- Engineers deploy to production
- Your Asana task auto-completes when deploy succeeds
- Salesforce updates with production URL
- You get a Slack notification: "✅ [Project Key] is live!"
**Where:** Email the client
Send the go-live notification:
> Subject: You're Live! 🎉
>
> Hi [Client Name],
>
> Exciting news your BlackRoad site is now **live in production**!
>
> **Your URL:** https://[their-domain].blackroad.app
> **Login credentials:** [sent separately via secure method]
>
> **What's next:**
> - We'll monitor the site 24/7 for the first week
> - If you notice anything unusual, email support@blackroad.com or reply here
> - We'll check in with you in 1 week to see how things are going
>
> Congratulations! 🚀
>
> [Your Name]
---
## Troubleshooting
### Problem: "Project record was created, but repos/Asana are empty after 15 minutes"
**Fix:**
1. Go to the **Project** record in Salesforce
2. Copy the **Project Key** (e.g., `ACME-X7K9`)
3. Go to GitHub: https://github.com/blackboxprogramming
4. Search for repos with that Project Key in the name
5. **If repos exist but URLs aren't in Salesforce:**
- Manually copy the repo URLs into the Salesforce Project fields
- Post in #ops: "Automation hiccup for [Project Key] repos created but didn't sync to Salesforce"
6. **If repos DON'T exist:**
- Post in #ops: "Urgent: GitHub repos not created for [Project Key]. Need manual setup."
- Tag @devops
---
### Problem: "Asana project was never created"
**Fix:**
1. Manually create an Asana project:
- Go to Asana
- Click **+ New Project**
- Name it: `[Account Name] - [Project Key]`
- Choose **Board** view
2. Copy the project URL
3. Paste it into the Salesforce **Project** record → **Asana Project URL** field
4. Add these sections manually:
- Discovery
- Architecture
- Build
- Testing
- Go-Live
5. Post in #ops: "Asana automation failed for [Project Key] created manually"
---
### Problem: "Engineers are asking me technical questions I don't understand"
**Fix:**
1. **Don't guess.** It's okay to say "I don't know, let me find out."
2. Ask the client for clarification
3. Post the question + client's answer in the **Asana project** under the relevant task
4. Tag the engineer who asked
---
### Problem: "Client is frustrated / things are taking too long"
**Fix:**
1. Look at the **Asana project** → find which tasks are overdue
2. Post in #ops: "[Project Key] is delayed [Task Name] is overdue. Can someone help?"
3. Schedule a call with the client to explain:
- What's blocking us
- New timeline
- What we're doing to unblock
4. Follow up in **Salesforce** → Project record → add a note in **Customer Notes**
---
## Pro Tips
**Tip 1: Check Asana every morning**
Spend 5 minutes scanning all your active client projects. Catch issues early.
**Tip 2: Use Slack for quick questions**
If a task is blocked, post in #ops or #dev with the Asana task link. Much faster than email.
**Tip 3: Keep clients in the loop**
Send a quick "Hey, we deployed X this week" update every Friday. Clients love visibility.
**Tip 4: Use the Salesforce Activity feed**
Log every client call, email, or decision in Salesforce. Future-you will thank you.
**Tip 5: Trust the automation**
The robots are good at their job. If something doesn't auto-complete, it's probably because it's waiting on something manual (like your approval or client input). Check the task comments.
---
## Quick Reference
| I need to... | Go here... |
|-------------|-----------|
| Mark a deal closed | Salesforce → Opportunity → Change Stage to "Closed Won" |
| Check if automation worked | Salesforce → Project record → Check if URLs are filled |
| See what tasks need doing | Asana → Open the project for that client |
| Find GitHub repos | Salesforce → Project record → Click the repo URL links |
| See latest deploys | Salesforce → Project record → "Last Deploy At" field |
| Report a broken automation | Slack → #ops → Tag @devops |
| Ask a technical question | Slack → #dev → Include Asana task link |
---
## Who to Ask for Help
| If you need... | Ask... | Where... |
|---------------|--------|----------|
| Automation isn't working | @devops | Slack #ops |
| Task is blocked / unclear | The task assignee | Asana comment or Slack |
| Client has technical questions | @technical-owner (from Salesforce Project) | Slack or tag in Asana |
| Client is unhappy / escalation | Your manager | Slack DM or meeting |
---
## Remember
**You are the glue between the client and the robots.**
Your job is NOT to understand how GitHub Actions work or what a "CI pipeline" is.
Your job IS to:
- Make sure clients feel heard and informed
- Catch things that fall through the cracks
- Keep Asana and Salesforce up to date with client context
- Escalate technical issues to technical people
**The system is designed to make your life easier.** If it's not, tell us and we'll fix it.
---
**Questions?**
Post in #ops or email ops@blackroad.com