Strategic planning often feels like a paradox. Teams spend weeks in offsites and meetings, meticulously crafting Objectives and Key Results (OKRs), only to see them immortalized in a spreadsheet or slide deck. The plan is perfect, aspirational, and... completely static. The moment it's finished, it begins to drift away from the reality of daily operations.
What if your strategic plan wasn't a static document? What if it were a living, breathing part of your operational toolkit, updated in real-time by the very work your teams are doing?
This is the promise of treating your strategy as software. By using a Strategic Planning API, you can bridge the chasm between high-level goals and the data generated by your business applications every second. Welcome to the world of real-time strategy, where your OKRs are always in sync with reality.
The traditional planning cycle is broken. It creates a fundamental disconnect:
This manual process is not just inefficient; it's ineffective. By the time you realize a key result is off track, it's often too late to course-correct. The strategy lives in a spreadsheet, while the execution lives in your apps. They rarely talk to each other.
At Plans.do, we believe in a new paradigm: Business-as-Code. This means your strategic plan becomes a version-controlled, testable, and executable piece of software. It’s no longer a document you read, but a service you can query, update, and integrate.
It starts by defining your plan programmatically. Instead of filling out a template, you describe your objectives with code.
import { plans } from 'do-sdk';
// Define the high-level strategy as a 'Plan' object
const q3Plan = await plans.create({
name: 'Q3 2025: Scale Customer Acquisition',
owner: 'marketing@example.com',
timeframe: {
start: '2025-07-01',
end: '2025-09-30'
},
objectives: [
{
objective: 'Increase qualified leads by 20%',
keyResults: [
{ id: 'kr_1', name: 'Generate 5,000 MQLs', value: 0, target: 5000 },
// ... more key results
]
},
{
objective: 'Reduce Customer Acquisition Cost (CAC) by 10%',
keyResults: [
{ id: 'kr_3', name: 'Decrease cost-per-click to $2.50', value: 3.10, target: 2.50 },
// ... more key results
]
}
]
});
console.log('New Plan ID:', q3Plan.id);
// plan_abc123xyz
This simple act of defining your plan as code is transformative. Your strategy now has an ID. It has state. It lives within your tech stack, ready to be automated.
Once your plan is an object in a system, you can use the OKR API to automate progress tracking. This is where the magic happens. You can create simple scripts, serverless functions, or webhook listeners that push data from your operational systems directly to your plan.
Let's see how this works for the key results we defined.
Key Result: kr_1 - Generate 5,000 MQLs.
Your MQL data likely lives in a CRM like HubSpot or a data warehouse connected to Segment. Instead of manually checking it, you can set up a daily automated job.
The Workflow:
// This is a simplified example of the update logic
import { plans } from 'do-sdk';
import { getMqlCountFromCRM } from './your-crm-connector';
async function updateLeadGenKR() {
const planId = 'plan_abc123xyz';
const currentMqlCount = await getMqlCountFromCRM('2025-07-01');
await plans.update(planId, {
keyResults: [
{ id: 'kr_1', value: currentMqlCount }
]
});
console.log(`Updated KR 'kr_1' to ${currentMqlCount}`);
}
// Schedule this function to run daily
Now, your progress towards the MQL target is updated automatically every day without anyone lifting a finger.
Key Result: kr_3 - Decrease cost-per-click to $2.50.
Your CPC data comes from platforms like Google Ads or Facebook Ads. You can use their reporting APIs to feed this data directly into your strategy.
The Workflow:
// Simplified update logic for the CPC key result
import { plans } from 'do-sdk';
import { getAverageCPCFromAdsPlatform } from './google-ads-connector';
async function updateCpcKR() {
const planId = 'plan_abc123xyz';
const currentCpc = await getAverageCPCFromAdsPlatform(); // e.g., 2.95
await plans.update(planId, {
keyResults: [
{ id: 'kr_3', value: currentCpc }
]
});
console.log(`Updated KR 'kr_3' with current CPC of $${currentCpc}`);
}
When your strategy is dynamically linked to your operations, your entire organization benefits.
By adopting Execution as Code, you transform your strategy from a well-intentioned wish list into a powerful, automated engine for growth and accountability.
Ready to stop chasing data and start automating your success? Explore what's possible when you treat your business plan as actionable code at Plans.do.