Borough quotas
Default: 4K Brooklyn / 1K each Manhattan / Queens / Staten Island = 7,000 total.
Filters
Office: 6923 8th Ave, Brooklyn 11220
Selected properties
| BIN | Address | Borough | Owner | Cycle 2 deadline | Distance |
|---|
Edit letter
Edits update the preview live. Click Save to keep them across page reloads. {TOKENS} get merged with each recipient's data.
Company info
Bump ?v=N after re-uploading to bust browser caches.
Signature block (bottom of letter)
Preview:
Upload a transparent-background PNG (or JPG/WebP). It gets embedded inline in the letter — works in Click2Mail. ~100KB max for clean rendering.
The LMP credentials in the header stay separate — that's a legal signal. The signer is who personally writes to the customer.
Headline (re-line)
Renders as: " — Due {CYCLE2_DEADLINE_LONG}"
Opening paragraph (lede)
HTML allowed. Use <strong> for bold. Tokens like {CYCLE2_DEADLINE_LONG} merge per recipient.
Penalty callout (red box)
"Why us" section
CTA box (orange)
P.S. (urgency closer)
Don't include the "P.S." prefix — it's added automatically.
Compliance disclosure
Required for compliance. Don't remove the "We are not affiliated with the NYC DOB" sentence.
Live preview · merges with selected sample
Export for Click2Mail
Click2Mail accepts an HTML letter with {{TOKEN}} merge tags + a CSV with the recipient data.
Save campaign
Records the campaign in outreach_lists + adds every BIN to ll152_suppressions so the next round won't re-mail them.
Campaign results
Every outreach_lists row with letter counts, mail-attributed leads, and response/win rates.
| Campaign | Sent | Boroughs | Window | Responses | Response rate | Won | Win rate | Pipeline $ |
|---|---|---|---|---|---|---|---|---|
| Loading… | ||||||||
How responses are matched
Leads are matched to campaigns using a time-window + UTM heuristic, since leads doesn't (yet) have a source_campaign_id column. For each campaign we count rows from public.leads where:
utm_source = 'click2mail'ORutm_medium = 'mail'ORutm_campaign ILIKE 'll152%'created_atis between the campaign's created_at and the next campaign's created_at (or now if it's the latest).
"Sent" comes from filter_criteria.counts_by_borough on each row. "Won" is leads with status = 'won' in the same window. Pipeline $ sums est_value across matched leads.
To make matching exact going forward, encode the campaign ID into utm_campaign at letter-render time and capture it on the landing page into leads.source_detail.