CNC Onsite Project Dashboard
Website, Google Ads, HubSpot CRM, and Events -- Contract: 227.500 DKK -- Ad Budget: 30.000 DKK/mo -- Updated: 15 Feb 2026
1. Project Status Overview
The HubSpot production portal is live and fully configured. The email integration is fixed. The critical path now runs through the Uniconta import, service landing pages, and Google Ads account access.
Next event: ACP OMS 2026, Orlando, March 4-6. Booth 710. Jesper attending (Orlando to Greenville to Houston trip).
Track Status Summary
| Track | Status | Key Milestone | Blocker |
|---|---|---|---|
| Website | Live | cnconsite.dk -- iterating | None -- ongoing refinement |
| ACP Landing Page | Nearly Done | Needs deploy + booking flow | Deploy to production, meeting booking |
| Google Ads | Blocked | Playbook ready, campaigns built | Landing pages, account access |
| HubSpot CRM | Operational | Portal live, email fixed | Uniconta import next |
2. Website
The core website is live and functional after the Jan 27-30 cleanup sprint. Hero layout system with 6 ACF-driven templates. Nav CTA and mobile language switcher shipped.
Completed
- Hero layout system -- 6 ACF-driven templates
- Navigation improvements -- CTA buttons + mobile language switcher
- Scroll animations -- IntersectionObserver implementation
- Trust bar alignment -- visual fixes
- Translation updates -- Danish and German content fixes
- ACF Image Crop fixes -- resolved plugin issues
- Asset cache busting -- version 2.5 deployed
Remaining Items
- Solutions page video background -- not yet implemented
- Turbine Blades stats bar -- pending
- HubSpot form integration -- ready to embed once landing pages ship
- Service landing pages -- yaw ring and blade root (Julie needs to deliver copy)
- Staging vs production parity -- verify environment consistency
3. ACP OMS Landing Page
Big push Feb 12 -- 7 commits. Page built and iterated based on Jesper's feedback. Three layout concepts created, brand-aligned with design manual. Jesper contact card, competitive comparison, and full US trip timeline added.
Timeline pressure: Conference in 17 days. Page must be live and shareable before Jesper leaves.
Completed
- Three layout concepts -- created and evaluated
- Brand alignment -- follows CNC design manual
- Jesper contact card -- booking placeholder added
- Removed Danish angle -- per feedback
- Competitive comparison -- positioned against alternatives
- Full US trip timeline -- Orlando, Greenville, Houston
Critical Next Steps
- Deploy to production -- verify live at cnconsite.dk/acp-oms-orlando
- Meeting booking flow -- Calendly or HubSpot Meetings integration
- QA pass -- mobile and cross-browser testing
- Jesper final approval -- before travel
4. Google Ads
Demand capture for wind turbine repair. Playbook ready with 4 campaigns and full keyword lists. Originally planned go-live Feb 1 -- delayed by missing landing pages, forms, and account access uncertainty.
Budget Overview
| Category | Amount | Notes |
|---|---|---|
| Monthly Budget | 30.000 DKK | 360.000 DKK/year, flexible allocation |
| Initial Phase Spend | 10-15K DKK | Feb-Mar test period |
| Target CPL | < 2.000 DKK | 5+ qualified leads/month goal |
Geo Targeting -- Phase 1
- Germany -- Whole country (primary market)
- USA -- Texas, Oklahoma, Iowa, Kansas
- Spain -- Whole country
Campaign Structure
graph TB
A["Google Ads Account"] --> B["Campaign 1: Blade Repair"]
A --> C["Campaign 2: Yaw Ring Replacement"]
A --> D["Campaign 3: Component Supply"]
A --> E["Campaign 4: Emergency Response"]
B --> B1["Ad Group: Blade Root"]
B --> B2["Ad Group: Leading Edge"]
C --> C1["Ad Group: Yaw Bearing"]
C --> C2["Ad Group: Gear Replacement"]
D --> D1["Ad Group: Parts"]
E --> E1["Ad Group: 24h Service"]
B1 --> LP1["Landing Page: Blade Root"]
B2 --> LP2["Landing Page: Blade Repair"]
C1 --> LP3["Landing Page: Yaw Ring"]
D1 --> LP4["Landing Page: Components"]
E1 --> LP5["Landing Page: Emergency"]
style A fill:#1A3550,stroke:#1A3550,color:#fff
style B fill:#ECEFF8,stroke:#1A3550,color:#1e293b
style C fill:#ECEFF8,stroke:#1A3550,color:#1e293b
style D fill:#ECEFF8,stroke:#1A3550,color:#1e293b
style E fill:#ECEFF8,stroke:#1A3550,color:#1e293b
Task Status
| Task | Status | Owner | Notes |
|---|---|---|---|
| Playbook (structure, keywords, copy) | Done | Asger | 4 campaigns, full keyword lists |
| Google Ads account access | Unknown | Tobias / Asger | Blocker -- who owns the account? |
| Service landing pages | Not Started | Asger + Julie (copy) | Yaw ring + Blade root minimum |
| GA4 tracking | Unknown | Asger | Partially set up? |
| Conversion tracking | Not Started | Asger | Depends on forms + GA4 |
| HubSpot forms on pages | Blocked | Asger | Waiting on landing pages to ship |
| Campaigns go live | Blocked | Asger | Blocked by all of the above |
Blocker: Google Ads account access is unclear. Need to confirm with Tobias who owns the account and get login credentials.
5. HubSpot CRM
Production portal is fully configured. All properties, pipelines, lists, forms, and workflows imported from development. Email integration auth error resolved. Uniconta data import is next. Sales demo scheduled for Feb 26.
Production Portal -- Complete
- All custom properties imported -- field structure ready
- Sales pipeline -- 5 stages configured
- Project pipeline -- 6 stages, Uniconta mapped
- Lists, forms, workflows -- all imported from dev
- Private app created -- 37 API scopes configured
- Portal ready for data import -- structure complete
Email Integration -- Resolved
- Auth error fixed -- Feb 15 resolution
- Duplicate app deleted -- removed "HubSpot Sales" duplicate
- Email tracking operational -- now working
- Calendar sync working -- appointments syncing
Pipeline Structure
graph LR
A["Lead Source"] --> B["Sales Pipeline"]
A --> C["Project Pipeline"]
B --> B1["New Lead"]
B1 --> B2["Qualified"]
B2 --> B3["Proposal"]
B3 --> B4["Negotiation"]
B4 --> B5["Closed Won"]
C --> C1["Quoted"]
C1 --> C2["In Production"]
C2 --> C3["Ready to Ship"]
C3 --> C4["On Site"]
C4 --> C5["Completed"]
C5 --> C6["Invoiced"]
C1 -.-> U["Uniconta Sync"]
C2 -.-> U
C3 -.-> U
C4 -.-> U
C5 -.-> U
C6 -.-> U
style A fill:#1A3550,stroke:#1A3550,color:#fff
style B fill:#ECEFF8,stroke:#1A3550,color:#1e293b
style C fill:#ECEFF8,stroke:#1A3550,color:#1e293b
style U fill:#fff,stroke:#D46121,color:#1e293b
Next Steps
| Task | Owner | Timeline | Status |
|---|---|---|---|
| Uniconta data import | Asger | This week | Next priority |
| Meeting with Jesper: pipeline + Apollo sequences | Asger + Jesper | This week | Before Feb 26 demo |
| First workflows incl. Apollo sequences | Asger | Week 8-9 | After Jesper meeting |
| Lea shares Apollo contact sequences | Lea to Asger | This week | Input needed |
| Sales demo | Asger | Feb 26 | Scheduled |
| Team onboarding | All | After demo | Pending |
6. Dependency Map
HubSpot portal is live. The email integration is fixed. The critical path now runs through the Uniconta import, service landing pages for Google Ads, and account access confirmation.
graph TD
A["HubSpot Portal Live"] --> B["Email Integration Fixed"]
B --> C["CRM Operational"]
C --> D["Uniconta Data Import"]
D --> E["Pipeline Populated"]
E --> F["Jesper + Apollo Sequences"]
F --> G["Sales Demo Feb 26"]
G --> H["Team Onboarding"]
C --> I["Website Forms Ready"]
I --> J["Conversion Tracking"]
J --> K["Google Ads Launch"]
K --> L["Leads in Pipeline"]
M["Julie Delivers Copy"] --> N["Service Landing Pages"]
N --> I
O["Google Ads Account Access"] --> K
N --> K
C --> P["ACP Page Booking Flow"]
style A fill:#1A3550,stroke:#1A3550,color:#fff
style B fill:#1A3550,stroke:#1A3550,color:#fff
style C fill:#1A3550,stroke:#1A3550,color:#fff
style D fill:#ECEFF8,stroke:#1A3550,color:#1e293b
style M fill:#fff,stroke:#D46121,color:#1e293b
style O fill:#fff,stroke:#D46121,color:#1e293b
Remaining Blockers
Google Ads account access: Who owns the account? Need login credentials from Tobias. This is blocking campaign launch.
Service landing page copy: Julie needs to deliver copy for yaw ring and blade root pages. This blocks both landing page creation and Google Ads launch.
7. Timeline and Key Dates
| Date | Milestone | Status | Notes |
|---|---|---|---|
| Jan 29 | GTM Status + Website Status Meetings | Done | Website demo, email drafts prepared |
| Feb 1 (original) | HubSpot + Google Ads Go-Live | Missed | Delayed due to HubSpot agreement and missing landing pages |
| Feb 12 | ACP Landing Page Sprint | Done | 7 commits, iterated with Jesper feedback |
| Feb 16-20 | Week 8 -- Unblock + Ship | Active | Clarify HubSpot status, deploy ACP page, build service landing pages |
| Feb 23-27 | Google Ads Soft Launch | If unblocked | Earliest possible launch, 1 week of data before ACP |
| Feb 26 | HubSpot Sales Demo | Scheduled | Demo to team, followed by onboarding |
| Mar 4-6 | ACP OMS Orlando -- Booth 710 | Critical | Jesper attending, US trip: Orlando to Greenville to Houston |
| Apr 21-23 | WindEurope -- Madrid | Upcoming | Next major event after ACP |
| Jun 1-4 | ACP Cleanpower -- Houston | Upcoming | Largest US wind event |
8. Week 8 -- Top 5 Priorities
Focus on unblocking Google Ads, deploying the ACP page, and getting the Uniconta data into HubSpot. These are the three highest-impact actions for Week 8.
| # | Action | Who | By When | Impact |
|---|---|---|---|---|
| 1 | Uniconta data import to HubSpot production | Asger | Mon | Portal ready, data next |
| 2 | Deploy ACP landing page to production | Asger | Mon-Tue | Conference in 17 days |
| 3 | Meeting with Jesper: pipeline + Apollo sequences | Asger + Jesper | This week | Before Feb 26 demo |
| 4 | Build yaw ring + blade root landing pages | Asger + Julie (copy) | Wed-Thu | Ads launch blocker |
| 5 | Confirm Google Ads account access | Asger to Tobias | Mon | Ads launch blocker |
US Market Quick Reference
Target operator and OEM landscape for Google Ads and ACP networking.
| Metric | Value | Details |
|---|---|---|
| Vestas Turbines (US) | 7,794 | Portland, Houston, Offshore Boston |
| Siemens/Gamesa Turbines (US) | 8,164 | HQ Orlando |
| Top State | Texas | 2,788 turbines + multiple operator HQs |
Key Operators to Know at ACP
- EDP Renovaveis (Houston) -- 1,328 Vestas + 200 Siemens
- Pattern Energy (Houston) -- 655 Siemens
- E.On (Austin) -- 276 Vestas + 241 Siemens
- NextEra (Juno Beach) -- 288 Vestas + 227 Siemens
- EDF Renewables (San Diego) -- 516 Vestas + 279 Siemens