.do
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,
    })
  })
})

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

  1. Track everything - Measure all growth activities
  2. Test systematically - A/B test channels and messages
  3. Focus on loops - Build self-reinforcing growth
  4. Optimize channels - Double down on what works
  5. Automate workflows - Scale growth systematically

Don'ts

  1. Don't spray and pray - Focus on proven channels
  2. Don't ignore unit economics - Maintain healthy LTV:CAC
  3. Don't stop testing - Continuous optimization
  4. Don't forget retention - Growth without retention fails

Next Steps


Growth Tip: Sustainable growth comes from loops, not hacks. Build systems that compound.