Grow
Grow
Grow your business through marketing, sales, and customer acquisition strategies
Grow your business through data-driven marketing, sales automation, and customer acquisition strategies powered by Business-as-Code.
Overview
The Grow phase focuses on systematic business growth through marketing automation, lead generation, sales workflows, and customer acquisition. Using Business-as-Code patterns, you can build scalable growth engines that compound over time.
This phase emphasizes:
- Marketing Automation: Automated campaigns and funnels
- Lead Generation: Attract and convert leads systematically
- Sales Workflows: Automate sales processes
- Customer Acquisition: Optimize acquisition channels
- Growth Loops: Build self-reinforcing growth mechanisms
Growth Primitives
Marketing Automation
Automate marketing campaigns:
// Email nurture sequence
on($.User.signup, async (user, $) => {
await $.Campaign.start({
type: 'email-sequence',
user,
sequence: [
{ delay: '0 days', template: 'welcome', goal: 'engagement' },
{ delay: '2 days', template: 'getting-started', goal: 'activation' },
{ delay: '5 days', template: 'use-cases', goal: 'education' },
{ delay: '7 days', template: 'upgrade-benefits', goal: 'conversion' },
],
})
})
// Behavioral targeting
on($.User.views.PricingPage, async (user, $) => {
if (user.plan === 'free' && user.visits > 5) {
await send($.Email.send, {
to: user.email,
template: 'upgrade-incentive',
discount: '20%',
expires: '+7 days',
})
}
})Lead Scoring
Score and prioritize leads:
// Automated lead scoring
on($.Lead.activity, async (lead, $) => {
const score = calculateLeadScore({
email_opened: 5,
link_clicked: 10,
pricing_page_viewed: 20,
demo_requested: 50,
feature_used: 30,
})
await db.update($.Lead, lead.id, {
score,
status: score > 70 ? 'hot' : score > 40 ? 'warm' : 'cold',
})
// Route hot leads to sales
if (score > 70) {
await send($.Sales.assign, {
lead: lead.id,
priority: 'high',
})
}
})Growth Loops
Build self-reinforcing growth:
// Referral loop
on($.User.refers.Friend, async (referral, $) => {
// Reward referrer
await db.update($.User, referral.referrerId, {
credits: user.credits + 100,
})
// Track referral source
await db.update($.User, referral.friendId, {
acquisition_channel: 'referral',
referrer: referral.referrerId,
})
// Reward on friend upgrade
on($.User.upgrades, async (user) => {
if (user.referrer) {
await db.update($.User, user.referrer, {
credits: referrer.credits + 500,
})
}
})
})
// Viral loop
on($.User.shares.Content, async (share, $) => {
await send($.Analytics.track, {
event: 'content_shared',
userId: share.userId,
platform: share.platform,
contentId: share.contentId,
})
// Track viral coefficient
const signups = await db.count($.User, {
where: { referralSource: share.id },
})
if (signups > 0) {
await $.Metrics.update('viral_coefficient', signups / 1)
}
})Channel Optimization
Optimize acquisition channels:
// Track channel performance
on($.User.signup, async (user, $) => {
await send($.Analytics.track, {
event: 'signup',
channel: user.acquisition_channel,
cost: await getChannelCost(user.acquisition_channel),
})
})
// Calculate LTV:CAC ratio by channel
on($.Schedule.weekly, async () => {
const channels = await db.list($.Channel, {})
for (const channel of channels) {
const users = await db.list($.User, {
where: { acquisition_channel: channel.name },
})
const ltv = calculateAverageLTV(users)
const cac = calculateCAC(channel)
const ratio = ltv / cac
await db.update($.Channel, channel.id, {
ltv,
cac,
ratio,
status: ratio > 3 ? 'scale' : ratio > 1 ? 'optimize' : 'pause',
})
}
})Growth Strategies
Content Marketing
Automate content distribution:
// Content publishing workflow
on($.Content.published, async (content, $) => {
// Distribute across channels
await Promise.all([
send($.Social.post, { platform: 'twitter', content }),
send($.Social.post, { platform: 'linkedin', content }),
send($.Email.broadcast, { segment: 'subscribers', content }),
send($.SEO.index, { content }),
])
// Track performance
on($.User.views.Content, async (view) => {
await send($.Analytics.track, {
event: 'content_view',
contentId: content.id,
userId: view.userId,
source: view.source,
})
})
})Paid Acquisition
Optimize ad spend:
// Campaign budget optimization
on($.Campaign.performance, async (campaign, $) => {
const roi = campaign.revenue / campaign.spend
if (roi > 3) {
// Scale winning campaigns
await $.Campaign.update(campaign.id, {
budget: campaign.budget * 1.5,
})
} else if (roi < 1) {
// Pause losing campaigns
await $.Campaign.pause(campaign.id)
}
})Best Practices
Do's
- Track everything - Measure all growth activities
- Test systematically - A/B test channels and messages
- Focus on loops - Build self-reinforcing growth
- Optimize channels - Double down on what works
- Automate workflows - Scale growth systematically
Don'ts
- Don't spray and pray - Focus on proven channels
- Don't ignore unit economics - Maintain healthy LTV:CAC
- Don't stop testing - Continuous optimization
- Don't forget retention - Growth without retention fails
Next Steps
- Scale → - Scale growth operations
- Monetize → - Convert growth into revenue
- Experiment → - Test growth hypotheses
Growth Tip: Sustainable growth comes from loops, not hacks. Build systems that compound.