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.
11 KiB
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:
- Make sure everything kicks off correctly
- Fill in a few details the robots can't know
- Verify everything worked
- 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
- Open the Opportunity record for this deal
- Click Edit
- Change Stage to:
Closed Won - 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)
- 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
- Go back to the Opportunity in Salesforce
- Scroll down to Related → Projects
- 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
- Click the Asana Project URL from the Salesforce Project record (opens Asana)
- You should see a project with sections: Discovery, Architecture, Build, Testing, Go-Live
- Go to the Discovery section
- Click the task: "Confirm domain + DNS with client"
- Assign it to yourself
- Add a comment with:
- Client's preferred domain/subdomain
- Any special requests (custom branding, integrations, etc.)
- Primary contact info
- Click the task: "Gather branding assets"
- Assign it to Design team
- Add a comment with:
- "Client: [Company Name]"
- "Contact: [Name, Email]"
- "Need: Logo, brand colors, fonts"
Where: Salesforce Project
- Go back to the Project record in Salesforce
- Click Edit
- 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
- 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:
- Our team will reach out within 24 hours to confirm your domain and branding.
- We'll send you a staging link within 3-5 business days for initial review.
- 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)
- Open the Asana project for this client
- 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)
- Open the Project record
- 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:
- Schedule a 30-minute call with the client
- Walk them through their staging environment
- Get their final approval:
- Design looks good
- Functionality works as expected
- They're ready to go live
- In the Asana task, add a comment: "Client approved on [Date]. Ready for production."
- 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:
- Go to the Project record in Salesforce
- Copy the Project Key (e.g.,
ACME-X7K9) - Go to GitHub: https://github.com/blackboxprogramming
- Search for repos with that Project Key in the name
- 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"
- 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:
- Manually create an Asana project:
- Go to Asana
- Click + New Project
- Name it:
[Account Name] - [Project Key] - Choose Board view
- Copy the project URL
- Paste it into the Salesforce Project record → Asana Project URL field
- Add these sections manually:
- Discovery
- Architecture
- Build
- Testing
- Go-Live
- Post in #ops: "Asana automation failed for [Project Key] – created manually"
Problem: "Engineers are asking me technical questions I don't understand"
Fix:
- Don't guess. It's okay to say "I don't know, let me find out."
- Ask the client for clarification
- Post the question + client's answer in the Asana project under the relevant task
- Tag the engineer who asked
Problem: "Client is frustrated / things are taking too long"
Fix:
- Look at the Asana project → find which tasks are overdue
- Post in #ops: "[Project Key] is delayed – [Task Name] is overdue. Can someone help?"
- Schedule a call with the client to explain:
- What's blocking us
- New timeline
- What we're doing to unblock
- 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