Welcome, Nick

today reads fine

Settings

Every preference, key, cap, and geographic rule lives here.all stable
saved2m ago

Profile

auto-saves on blur

Your name, contact, and sender details. Injected into every outreach message as the human at the other end of the line.

Injected as {{my_cell}} in every message template. Update here once · updates everywhere.

Appears at the bottom of outreach messages for sender identification.

Operator photo
NP
nick-headshot-2025.jpg
340 KB · drop new image to replace

All caps, quiet hours, and schedules use this clock.

Quiet hours & vacation

protects sender reputation

No sends are ever fired outside these windows. The queue keeps building · it just waits until morning.

Quiet hours
No sends between these times in your local clock.
Currently inside send window · 8h 24m until quiet hours
Vacation mode
Stops all sends, mutes alerts, banners every page.

Replies arriving during vacation are stacked. Calendly stays live; bookings still notify.

Operator mode

storage & access topology

Local is fastest and most private. Cloud unlocks multi-operator and remote review · available once you outgrow a single machine.

API keys

These keys connect the pipeline. A missing or expired key stops that tool's step from firing. Test all after setup or rotation.

5 of 7 passing · last full sweep 2m ago.

Kimipass
message generation · "would Nick send this" scoring
last 47K2g·rotated 23d ago
Apifypass
target scraping · Google Maps actors
last 4b48F·rotated 87d ago · consider rotating
Firecrawlfail
site research · structured page extraction
last 49q1L·rotated 5d ago
401 Unauthorized · key may be expired
Browser Usepass
contact-form fill · captcha-bypass sessions
last 4mB3x·rotated 12d ago
Cloudflare R2pass
video + backup storage
last 4tT0K·rotated 60d ago
Gmailpass
reply ingest · 11thstateconsults@gmail.com
last 400Pa·rotated 14d ago
CapSolvermissing
captcha solving · disabled until phase 3
last 4

Send caps

explicit save · confirmation required

Caps prevent runaway spend and protect sender reputation. Critical changes show a before/after confirm · never auto-save.

Hard ceiling across all campaigns.

Cap projection: at current pace, hit on May 27.

Overridable per-campaign in Campaigns.

Accounts for ~10% retry rate.

Emergency stop · no sends fire if exceeded.

Required to lift the monthly hard cap mid-month.

Per-campaign overrides are set in the Campaigns screen. The caps here are global floors no campaign can exceed.
Per-vertical caps
Override the global cap for verticals that need different spend pacing.
VerticalDaily sendsDaily spend $PaceNoteactions
HVAC25$14.50
72%
core vertical · highest reply rate
Plumbing15$8.20
41%
Electrical10$6.00
60%
ramp in progress
Roofing8$4.80
12%
pilot only
PI law6$4.20
0%
paused · awaiting brand-voice tune
Med spa5$3.10
0%
paused · UDAP review

Auto-fire

global default

When OFF, every drafted message requires your approval before sending. Recommended during the pilot phase.

Auto-fire (currently OFF)
Messages in the queue require operator approval. Safest mode.

Individual campaigns can override the global setting in the Campaigns screen.

Re-engagement

off by default

Sends a follow-up to targets contacted 90+ days ago with no reply. Enable only after the 200-target pilot establishes baseline reply rates.

Re-engagement campaigns (currently OFF)
When enabled, eligible targets get a single follow-up after the cooldown. Anyone who said “not interested” or “unsubscribe” is permanently excluded. That rule cannot be turned off.
Locked rule
never re-engage “not interested”

Sender domains & warming

Each domain ramps from 5 → 50 sends/day over its warming period. Bounces and spam complaints pause the ramp automatically.

DomainStatusCurrent capRampBounce %Complaintsactions
aivideos.cowarmed50/day
100%
0.4%0
mail.aivideos.cowarming28/day
56%
0.9%0
connect.aivideos.cowarming12/day
24%
1.4%1
nick-petrucci.compaused0/day
12%
3.1%2

Brand voice rules

regex · zero LLM cost

Rules the message generator checks every draft against. Toggle on/off. Built-in rules block what consistently triggered 'AI tell' in past pilot data.

Em-dash hard rejectREJECT
Flag any message containing — (em-dash). Too formal.
En-dash hard rejectREJECT
Flag any message containing – (en-dash). Too formal.
Marketing-speak blockREJECT
"synergy," "leverage," "scalable solution," "robust," "game-changing," "seamlessly," "holistic"
Fake-urgency detectorREJECT
"limited time," "act now," "today only," "last chance"
AI-tell detectorREJECT
"in today's fast-paced world," "in conclusion," "it's worth noting that," "moreover"
Generic opener warningWARN
"Hope this finds you well," "I wanted to reach out," "My name is"
Transactional CTA warningWARN
"schedule a strategy consultation," "book a meeting" — prefer "book my calendar"
Exclamation point limitWARN
Flag more than 1 exclamation point per message
All-caps word blockWARN
Flag any word in ALL CAPS
Link count minimumWARN
Warn if fewer than 1 video link present
Link count maximumWARN
Warn if more than 3 links present
Length floorWARN
Warn if message is under 80 words
Length ceilingWARN
Warn if message exceeds 280 words
Unqualified-claim detectorREJECT
Vertical-aware. "cure / treats / FDA approved" (medical), "lowest price guaranteed" (auto)
Proper-noun exemptionWARN
Exempt flagged words appearing as recognized business names (e.g. "Air Synergy")
Add custom rule

Voice samples

used to fine-tune brand-voice baseline

Upload past messages, emails, and essays. The system learns cadence, sentence length distribution, and signature phrases. No content is ever pasted into output · it shapes the screen.

drop .txt / .md / .docx
or click to browse
FileWordsAddedactions
nick-2025-q1-emails.md14,820Mar 12
first-call-scripts.txt6,240Feb 04
personal-essays.docx21,370Jan 27
Default voice profile
Used unless a campaign overrides.

Phrase library

Reusable snippets you reach for often. Insert in Compose with /.

/intro-hvac
Saw you ranked #2 for {{city}} HVAC repair on the map. Made a 14-second walkthrough.
/intro-plumbing
I watched your truck pass me on 95 this morning — thought I'd send a quick video.
/follow-up-1
No worries if not — was just curious what you thought of the walkthrough.
/booking-confirm
Confirmed for {{day}} at {{time}}. I'll call you from this number.
/opt-out
Got it — removing you now. Sorry for the noise.

Blacklist

Every business that opted out lives here. Removing one requires a typed reason that lands in the audit log.

BusinessWebsiteReasonAddedactions
Coastal HVACcoastalhvacri.comowner replied "remove me"2026-04-22
Liberty Heatinglibertyheating.comprevious customer · do not re-contact2026-04-08
Patriot Plumbingpatriotplumbingri.comunsubscribed via form2026-03-29
Bay State Electricbaystateelectric.commanual exclusion · friend's vendor2026-03-14
Yankee Servicesyankee-services.netreplied "not interested"2026-03-02
Walker Roofingwalkerroofingri.comlegal threat letter received2026-02-18
Quincy Auto Glassquincyautoglass.netspam complaint via Postmark2026-02-04

Geographic & UDAP rules

protects against private-action exposure

Blocked states cannot receive outreach. The import step rejects records in these states before they enter the pipeline.

Hard-blocked · cannot be unblocked without emergency override
CACalifornia·UCL / CLRA
ILIllinois·Consumer Fraud Act
NYNew York·GBL § 349
NJNew Jersey·Consumer Fraud Act
Soft-blocked · operator-managed
No soft-blocks set. The system will warn before any new state is added to outreach scope.
Identified sender mode
Your name, cell, and RI address appear in every message.
Low-risk posture under RIUTPA / CUTPA / Chapter 93A. Recommended for Northeast tristate outreach.
UDAP risk threshold
How aggressively the system blocks vs warns by state.

Low blocks any state with active private-action precedent. Medium warns only. High warns only for hard-blocked states (not recommended).

Compliance export

audit-ready

One-click bundles for legal review. Each export is signed and timestamped; you keep a local manifest.

Last exports
2026-05-12 14:02 · CAN-SPAM · 12 MB · signed by nick@aivideos.co
2026-04-30 09:14 · GDPR · 84 KB · signed by nick@aivideos.co

Integrations

External services. Each line shows current health and last successful check.

Slack
pass
webhook notifications
#aivideos-ops · 4 events routed
Calendly
pass
booking webhooks
Premium · 3 events subscribed
Premium
Cloudflare R2
pass
video + backup storage
8.2 GB used of 100 GB
$1.50/mo
fal.ai
pass
video generation
142 generations this month
pay-as-you-go
Apify
warn
lead scraping
queue delayed ~4 min
$49/mo
Browser Use
pass
contact-form fill
43 sessions remaining today
Starter · $30/mo
Kimi
pass
message generation
~1,840 tokens/draft avg
pay-as-you-go
CapSolver
off
captcha solving
disabled until phase 3
enable to set plan
NeverBounce
pass
email validation
94.2% verified rate · 7d
$0.008/check
Hunter
pass
email discovery
~62% find rate · 7d
$49/mo
Twilio
off
reserved for SMS phase
disabled until TCPA review
Resend
pass
transactional email
0 bounces in 24h
$20/mo
Stripe
pass
subscription billing
next invoice May 30 · $48.50

Webhooks

Outbound webhooks the system fires. Failed deliveries auto-retry with exponential backoff (max 6 attempts).

EventURLLast fire7d healthStatusactions
booking.createdhttps://hooks.slack.com/services/T0…/B0…/aBcD12m ago100%pass
reply.receivedhttps://hooks.slack.com/services/T0…/B0…/eFgH4m ago100%pass
cap.warninghttps://hooks.slack.com/services/T0…/B0…/iJkL2d ago98%pass
voice.rule_failedhttps://hooks.slack.com/services/T0…/B0…/mNoP1h ago88%warn
send.bouncedhttps://hooks.slack.com/services/T0…/B0…/qRsT8h ago60%fail
campaign.pausedhttps://hooks.slack.com/services/T0…/B0…/uVwXneveroff

Slack channel mapping

routes events to channels

Which event types post to which Slack channels. Quiet hours suppress everything except booking confirmations and cap alerts.

reply.received#aivideos-replies
booking.created#aivideos-bookings
voice.rule_failed#aivideos-ops
cap.warning#aivideos-ops
campaign.paused#aivideos-ops
send.bounced#aivideos-ops
job.failed#aivideos-ops
manual.review_needed#aivideos-replies

CRM bridge

scaffold · phase 3+

Push booked deals and replied leads into your CRM. Fields can be authored now; sync engages once a CRM is connected.

HubSpot
not connected
Pipedrive
not connected

Scheduled tasks

cron · local clock

Background jobs the operator depends on. Pause anything for maintenance; the system surfaces a warning if a critical job is off.

enabledTaskScheduleLast runNext runStatus
Cap-threshold sweepcritical*/5 * * * *2m agoin 3mpass
Daily backup to R2critical30 3 * * *14h agoin 10hpass
Sender warming rampcritical0 4 * * *13h agoin 11hpass
Bounce + complaint poll*/15 * * * *4m agoin 11mpass
Audit log compaction0 4 * * 04d agoSun 4apass
Apify export retry*/30 * * * *12m agoin 18mwarn
Re-engagement eligibility0 6 * * *neveroff
Voice-sample reindex0 5 * * 15d agoMon 5apass

Backup & restore

Daily snapshot at 03:30 to R2. Encrypted at rest. Restore is destructive · typed confirmation required.

Recent backups
DateSizeNotesrestore
2026-05-15 03:3012.4 MBautomatic
2026-05-14 03:3012.1 MBautomatic
2026-05-13 03:3011.8 MBautomatic
2026-05-12 14:0211.6 MBpre-export · manual
2026-05-12 03:3011.6 MBautomatic
2026-05-11 03:3011.3 MBautomatic
Schedule
Automatic daily backups
Retain last 30 backups
Backup time (local)
Mirror to local Time Machine

Multi-operator

scaffold

Invite a teammate for review or supervision. Fully wired once you migrate to cloud mode.

CSV import defaults

Column-mapping presets for bulk target imports. Saves the click on every Apify export.

Apify Google Maps exportlast · 4d ago
name → business · website → site · phone → cell · rating → score
Hunter discovered emailslast · 12h ago
first → first · last → last · email → email · company → business
Manual entrylast · never
— column mapping not set —

Celebration sounds

dopamine matters for solo operators

Configure what you celebrate. All sounds ≤ 0.6 seconds. Off by default outside the two starter chimes.

Reply received chime
soft mid-tone · 0.4s
Booking confirmed sound
rising arpeggio · "ka-ching" · 0.6s
Confetti animation on booking
full-screen burst · 2.5s
Campaign milestone sound
plays every 50 sends, every 10 replies
Spend cap warning sound
low pulse · 0.5s
Voice rule fail sound
subtle off-key · 0.3s
Global volume
All sounds in the app scale to this.
60%

Theme & density

persists across sessions

Live preview · no save-and-reload needed. Hit Save when you're sure.

14px

range 12–20px · step 1px

Reduced motion
disable reveals, pulses, transitions
Sound notifications
opt-in · configured in Sounds
Onboarding tour
90s walkthrough · resume anytime
Keyboard shortcut conflictcollision
g t is assigned to Targets and Tone Profiles. Recommend remapping Tone Profiles to g n (n for “voice / nick”).

Keyboard shortcuts

Default-action reorder for the command palette (Cmd+K). Drag rows to rearrange.

Go to Dashboardgd
Go to Targetsgt
Go to Campaignsgc
Go to Send Queuegq
Go to Inboxgi
Go to Bookingsgb
Go to Spendgs
Go to Brand Voicegv
Go to Tone Profiles (remapped from g t)gn
Open command paletteK
Open this help drawer?
Focus search/
Move down / up in any listj/k
Open detail drawer for focused rowEnter
Close drawer / modal / popoverEsc
Toggle row selectionSpace
Select all visible rowsA
Save current sectionS
Undo last destructive action (8s window)Z
Refresh nowR

Audit log

Every settings change. Compliance-grade. Never edited, never deleted.

2m agonick@aivideos.cosavedProfile · display nameNick → Nick Petrucci
18m agonick@aivideos.corotatedAPI key · Browser Usereplaced key ending b48F
1h agosystemfiredWebhook · reply.receivedtarget #2,847 · ConnectiCool HVAC
2h agonick@aivideos.coremovedBlacklist · Coastal HVACreason: owner called directly
4h agonick@aivideos.cochangedSend capsdaily 40 → 50
1d agosystempausedDomain · nick-petrucci.comcomplaint rate 3.1% · auto-paused
1d agonick@aivideos.coaddedVoice samplenick-2025-q1-emails.md · 14,820 words
2d agonick@aivideos.coenabledVoice ruleFake-urgency detector
3d agosystemrotatedBackup retentionpruned 2 old snapshots
4d agonick@aivideos.coremappedShortcutg t → g n for Tone Profiles