| # of events | |
|---|---|
|
|
| Item | |
|---|---|
|
|
Sign in to access the dashboard
Create your administrator account
Save your API key - you'll only see it once
This key grants full API access. Store it securely.
admin| Event | Brand | Date | Target | Booked | Revenue Pacing | Sponsors | Anchor | Churn% | ML Renewal | Audience | Gov:Sponsor | Health | Actions | ||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
·
·
|
|
⚠ -- | -- | -- | -- | -- |
|
||||||||||||||||||||||||||||||||||||||||||||||||
|
Loading event detail...
Resign
Churned
Downgraded
Net New
Returning
⚠
Anchor-Tier Gap
Floor plan & table assignment
Floor planning now lives in the
Logistics tab
of the Events department. Open it and pick this event to upload the map, place & assign tables,
and generate sponsor seating links.
Tier pacing, lapses & inventoryTier Pacing
Historical anchor-tier buyers of this series with zero current-year footprint. Ranked by lifetime anchor spend.
Inventory
loading tiers…
no inventory record for this event
Open Opps
—
Advisory Board
Open Sessions
Dates & Deadlines
Level Inventory
Notes
Churned, sponsors & prospects
CHURNED
STAGED
CHURNED
NET NEW
Pipeline & audiencePipeline by Stage
Sponsor Retention:
Audience
—
government registered
/ target
· gov:sponsor
No audience data available
Contract Fill Velocity
First Dollar
Last Dollar (100%)
Days to Fill
Contracts
0%50%100%
Work this event without leaving the page
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||
Placeholders:
{{first_name}},
{{event_name}},
{{inquiry_phrase}},
{{signature}}.
Set bake tone to Custom, then generate for the visible set or per owner below.
| Stage | Account / Opp | Amount | Close | Next event | Stage age | Idle | Recipient | Subject | Status | Actions | |
|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
|||||||||||
|
Account Map
|
|||||||||||
|
How this works:
Click a numbered step (or any contact below) — that contact's opps light up.
Compose one email per contact. Repeat until covered.
No actionable contacts found — every contact on these opps lacks an email address.
Selection
Products
Contacts (click one to start)
No actionable contacts (no email on file for any contact in scope).
Opportunities in this send
contact reaches
contact does NOT reach (greyed)
↑ Pick a contact above — opp cards will light up to show what they reach
Sending to
Pick a contact above to enable Compose
✓ this send covers every opp
Combined draft
To:
Cc:
×
Bcc:
×
Subject:
Test Mode — recipient overridden, SF logging skipped
|
|||||||||||
|
|
⚠ Thread-active ≠ OCR primary
|
— no draft — | |||||||||
|
(real: )
×
×
Version:
Switching…
Generating…
Signature
From Outflow Personalization for this row’s Send-as choice. Edits apply to this email only.
unsaved changes
✓ Sent
View in Engagements →
Recipient signals
⚠ Thread-active contact differs from OCR primary
No automatic recipient — type one in the To field above.
Events on this opp
SHARED
Datasheet
Datasheet (no price)
Agenda
Website
Anchor Overview
Exhibitor Overview
Patron Overview
Other Overview
Anchor UW
Collateral
Keynote
Sessions
Recharge
Inventory
Coaching
|
|||||||||||
| Event | Date | Q | Target | Written | Wr Δ | Gap | % | Fcst + | Final | +/− Quota | Open | Wtd | Wtd Δ | Time-Adj | Uncap. | YoY $ | Commit | Best | Pipe | Risk | Ratio | Notes | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Loading… | |||||||||||||||||||||||
| No events match. | |||||||||||||||||||||||
| Event | Notes | Open Opps | Open Sess | Sold $ | Open $ | Date | Ad Bd | ||
|---|---|---|---|---|---|---|---|---|---|
|
|
— | Sold — |
Event__c link on the Contract record may be blank.
| Sponsor | Tier | Roles |
|---|---|---|
| Event | Sponsor | Role | Tier | Contact | |
|---|---|---|---|---|---|
| primary |
| Name & Title | Jurisdiction | Pop. | IT Budget | Function · Level |
|---|---|---|---|---|
| Name & Title | Account · Tier | Vs your DNA | Shared / Distinct vertical tags |
|---|---|---|---|
|
Shared:
Distinct:
No DNA on file
|
Event_Session2__c speaker from indexes/speakers.parquet, enriched with
planning-doc title/org where uploaded. Session JSON names are joined to Registration__c
(Reg_Speaker__c) by exact or normalized badge name — expand a row for session history.
No reg match = no speaker registration aligned to that session name at that event.
SF Account comes from Registration → Contact (may differ from planning org).
indexes/speakers.parquet.
| Speaker | Title | Organization | SF account | Reg match | Sessions | Events | Last seen | Topics | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Gov | — | ||||||||||||||||||
|
Loading sessions…
Showing
of
sessions (current filters).
|
|||||||||||||||||||
registration_journeys.parquet.
| Event | Date | Series | Registrants | Type Mix | New | Returning | Return Rate | Next-Yr Retention |
|---|---|---|---|---|---|---|---|---|
| No events match the current filter. | ||||||||
| Name | Type | Function / Role | Events | Series | Years | Span | |
|---|---|---|---|---|---|---|---|
| series return | |||||||
| No individuals match the current filter. | |||||||
| Name | Type | Function | Role | Attended | Returning |
|---|---|---|---|---|---|
| yesno | yesno | ||||
| No registrants. | |||||
python -m etl.registration_analysis then
python -m etl.build_registration_analysis, or
.\scripts\refresh_registration_analysis.ps1) to generate
indexes/registration_analysis.parquet.
config/event_group_map.json to include them.
| Period | Registered | Attended | Attendance % |
|---|---|---|---|
| Grand Total |
| Grand Total | 100.0% | 100.0% |
| Region / State / Event | Registered | Attended | % of Reg | Attendance % |
|---|---|---|---|---|
| Grand Total | 100.0% |
| Category | Registered | Attended | % of Reg | Attendance % |
|---|---|---|---|---|
.\scripts\refresh_registration_analysis.ps1 to generate
indexes/registration_analysis.parquet.
| Reg | Att | Att % | % of Reg | |
|---|---|---|---|---|
| No breakdown available. | ||||
| Event | Series | Year | State | Reg | Att | Att % |
|---|---|---|---|---|---|---|
|
Loading audience mix…
No qualified audience for this event under the current filters.
|
||||||
| No events. | ||||||
| Reg | Att | Att % | % of Reg | Avg/Event | Avg/Yr | |
|---|---|---|---|---|---|---|
| No breakdown available. | ||||||
Paste a list of organizations you want in the room — agencies, universities, nonprofits, public or private. We resolve each to a Salesforce account; keep, drop, or re-resolve any match, then rank the events those organizations' people registered for so you can plan the event buy.
.\scripts\refresh_registrant_account_events.ps1.
| # | Event | Series | Date | Targets | Registrants | Attended | |
|---|---|---|---|---|---|---|---|
|
|
|||||||
Mapping to an account we already have. This override applies to this scan only — it is not saved to the entity-resolution ledger.
| Event | Date | Brand | Target | Booked | PY Booked | YoY | Verdict | Sponsors | Retained | Churned | Net New | Fill Velocity | Exports | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
-- |
|
|
||||||||||||||||||||||||||
|
Loading event detail...
Resign
Churned
Downgraded
Net New
Returning
⚠
Anchor-Tier Gap
Tier Pacing — Sponsors Sold
Tier Shifts
Contract Fill Velocity
First Dollar
Last Dollar (100%)
Days to Fill
Contracts
0%50%100%
Historical anchor-tier buyers of this series with zero current-year footprint. Ranked by lifetime anchor spend.
CHURNED
Registration & Audience
— registered
/ target
No public-sector audience data available for this event.
Event recap — ROI questionnaire
Exports unlock after Submit
Ops report
Newsletter
Send to
Loading form…
Submitted
· Report
· Newsletter
Last saved
·
This form does not auto-fill your name or email. Optional contact details can be added in the fields above if you choose. |
|||||||||||||||||||||||||||||
Should we add — or take on — an event? Compose a regional feasibility brief, evaluate an incoming event pitch (any type, incl. higher-ed), and plan around competing dates.
No past in-state events in this window/type. Widen the lookback or clear the type filter.
No past events to trend for this type filter.
No captured leads for the events in this window/type.
| Sponsor | Industry | Revenue | Events |
|---|---|---|---|
No won sponsorships for the events in this window/type.
Should we take on this event? Paste the pitch and we benchmark its economics against our comparable events, profile the in-region audience we could promote to, resolve its pitched sponsors against our CRM (existing relationships vs. net-new), and flag date conflicts. Works for any event type, including higher-education.
Pre-filled with a sample event — hit Evaluate to see it work, paste a pitch above, or start typing in any field to clear the sample and enter your own.
Pick a subject. Every state is scored on demand we can measure — government procurement volume, readership of our topic content, government contacts we have already captured on the subject, and the in-state vendor bench — then set against what we actually stage there. A candidate is a state with no dedicated event of its own whose demand sits at or above the median of the states where we already run one.
With no served market there is no peer bar to clear, so nothing is flagged as a candidate. The demand ranking below still holds — read it as where the subject would land first, and check whether a co-located track is the cheaper test.
| Gov contacts captured on topic | |
| Topic readership, 12 mo | |
| In-state vendors on topic | |
| Proven buyers, in-state | |
| All event revenue written, 3 yr | |
| Demand index |
| State | Posture | Demand | Solicitations | Gov contacts | Readership | Vendors | Topic written 3 yr | |
|---|---|---|---|---|---|---|---|---|
Demand is the mean of four percentile ranks within this topic (solicitations, readership, captured government contacts, in-state vendors) — a relative position among states, not a dollar forecast. Contact counts measure reach we have already built through purchased engagements, not sales engagement.
The "dates to avoid" calendar. Add competing industry/education conferences and the event types they conflict with. Our own upcoming events are folded in automatically (read-only) so the planner never double-books.
| Date | Event | State | Conflicts with | Source | |
|---|---|---|---|---|---|
No dates on the calendar yet.
.\scripts\refresh_event_product_catalog.ps1.Product2 +
PricebookEntry.*). Rows with an Id are updates;
blank Id = insert. Only certified products export.
The card is generated from the events team's workbook:
python scripts/build_event_rate_card.py --year 2026 --check
programs · rate scopes · priced cells · listed events
| # of events | |
|---|---|
|
|
| Item | |
|---|---|
|
|
Search covers rate labels, tiers, sponsorship levels, listed states and footnotes.
The card is reproduced from the workbook exactly as written — these are flags on top of it, never corrections to it. Fix one by staging a change in Proposed mode, or fix the workbook and regenerate.
Stage the same move across a slice of the card — the yearly "raise everything 3%, round to the nearest $500". Non-numeric cells (TBD, "$1,000 less than Exh rate") are skipped, not mangled.
| Where | Item | Column | Published | Proposed | Δ | By |
|---|---|---|---|---|---|---|
Run .\scripts\refresh_event_volume_discount.ps1 to build it.
Every discountable sponsorship steps down $500 per volume band (1-5 → 6-10 → 11-20 → 21-44 → 45+), so a sponsor's per-event discount off the 1-5 list rate is $500 × band step: $0 / $500 / $1,000 / $1,500 / $2,000. The step is a flat dollar, which is why it is a much larger percent of an Exhibitor rate than an Anchor rate. Add-ons and passes ("No Discounts Available") are excluded. Discount here is policy-implied — what the structure grants — not derived from the negotiated price. 2026 is event-year to date and still filling.
| Bucket | Per-event $ | Applicable lines | Discount | % of list | |
|---|---|---|---|---|---|
| Level | Applicable lines | Discount | % of level rate | |
|---|---|---|---|---|
The same flat $500/step is a larger share of a cheaper level — Exhibitor feels it more than Anchor.
| Year | Applicable lines | Applicable revenue | Discount ($500) | Discount ($250) | Retained | % of list |
|---|---|---|---|---|---|---|
| Bucket | Accounts | Sponsorships | Event revenue | Discount ($500) | Discount ($250) | Retained |
|---|---|---|---|---|---|---|
| Total |
Accounts count once per year in the bucket their portfolio-wide event count places them in. The same account can sit in different buckets in different years.
| Year | Actual discount | $250-step discount | Incremental revenue retained | |
|---|---|---|---|---|
| Total |
A $250 step halves every band's discount, so the revenue retained is exactly half the current discount. This is a static model — it holds volume constant and does not assume any account buys fewer events because the discount shrank. Treat it as the ceiling on what the change is worth, before elasticity.
| Account | Owner | Years | Events | Bucket | Spend | Δ Spend | Read | ||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ▸ | |||||||||||||||||||||||||||||||||||
What drove the read — ,
More events at a lower average per-event price: the extra volume earned a deeper discount without lifting total spend — the case the $500 → $250 change targets. Total spend rose with the move up — the added volume was accretive, not just a cheaper mix. |
|||||||||||||||||||||||||||||||||||
| No accounts crossed a bucket boundary between adjacent years in this data. | |||||||||||||||||||||||||||||||||||
"Incremental" = total annual spend rose more than 5% when the account moved up a bucket. "Dilutive / Flat" = the account bought into more events but total spend held or fell — a larger volume discount for little or no incremental revenue. This is the case the $500 → $250 change most directly addresses.
The immediate question — is $500 → $250 for 2027 financially meaningful — resolves to the "Revenue retained" headline: it is exactly half the current discount, concentrated in the largest buyers. Longer term, a percentage-based step (rather than a flat $500) would remove the Anchor-vs-Exhibitor distortion the level view shows.
Run .\scripts\refresh_event_volume_discount.ps1 to build the line fact.
| Δ proposal | ||||
|---|---|---|---|---|
| Gross revenue | the 2027 pricing plan (event × level price changes) | |||
| Volume discount | bucket structure, matrix and eligibility changes | |||
| Net revenue | what this proposal is worth on the same book |
Both columns re-price the same projected book ( sponsors — the projection basis applies to both, so the Δ column isolates the program changes). Current program = today's $-step buckets and eligibility with no price changes. For reference, actual net was ; the proposal lands vs that.
Static model: volumes move with the trend multipliers, not with price (no elasticity). The before / after strip above compares this net against the same book under today's program. For a price-response view — recommended settings under stated, data-backed elasticity assumptions — see the Optimizer.
| Transition | Returning accounts | Events / account | $ / line | Sponsor count |
|---|---|---|---|---|
| Used (geo-mean or override) |
| Bucket | Accounts | Applicable lines | Gross | Discount | Under current structure | Per-line $ (A / E / other) |
|---|---|---|---|---|---|---|
| Bucket | Accounts | Revenue | Discount |
|---|---|---|---|
Solid bars are the projected year; ghosts are the base year. Colors follow the proposed buckets; dashed lines mark bucket boundaries. Tall bars just left of a boundary are the cusp accounts — one event short of the next discount rung.
| Boundary | From → to | Accounts at the edge | Accounts just over |
|---|---|---|---|
| Account | Owner | Events | Bucket | Proj. gross | Plan uplift | Discount (current → proposed) | Discount Δ |
|---|---|---|---|---|---|---|---|
Discount Δ = proposed discount − current-structure discount on the same projected book. Negative (green) means the account gives back discount under the proposal.
Account owner’s won event lines for the base year — the book as sold — with your pricing plan, volume buckets, discount matrix and eligibility applied. Growth, price drift and base-year completion do not apply here (those belong to the 2027 projection). Volume discount still follows the account’s event count, then rolls up to the owner. Click a row for the accounts on that desk.
| Rep | Team | Accounts | Events | Sold revenue | Pricing uplift | Discount (current → proposed) | Sold net | Proposed net | Δ net | ||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ▸ | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Click an account to expand its component line items — each event × level, with the sold actual beside the scenario change.
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
No desks match the filter.
Each row is a recurring event (series) from the book, re-priced and re-discounted under your settings and projected on the trend. Sponsors, lines and gross scale with the modeled per-account event growth; pricing uplift applies your plan deltas; discount uses the proposed bucket matrix with eligibility zeroed. Net-new sponsor inflow is portfolio-level and not attributed here.
| Event | Sponsors | Applicable lines | Gross | Pricing uplift | Discount | Net | Disc. rate | Discount |
|---|---|---|---|---|---|---|---|---|
| eligible | ||||||||
No events match “”.
| Series priced | With activity | Lines touched | Uplift | |
|---|---|---|---|---|
The pricing plan is currently disabled in this scenario — enable it in the rail to see uplift.
| Event series | Status | Sponsors | Applicable lines | Discount avoided |
|---|---|---|---|---|
These events still count toward each sponsor's volume bucket — only the discount at the event itself is zeroed.
Not enough bucket-up history to measure.
Each price-retention default is derived from the sell-through above — sold-out families are treated as near-inelastic, soft ones as price-sensitive. Override any cell to test your own view; the recommendation re-solves instantly.
| Level group | Volume kept if price +10% | Implied ε | Confidence | Basis |
|---|---|---|---|---|
|
|
Search space was capped — narrow the grid for a full sweep.
| Scenario | Elasticity | Volume kept | |
|---|---|---|---|
| Pessimistic (more price-sensitive) | ×1.5 | ||
| Recommendation (as assumed) | ×1.0 | ||
| Optimistic (less price-sensitive) | ×0.5 |
The volume response is modeled, not measured. This band brackets the recommendation if buyers are half again as price-sensitive, or half as sensitive, as assumed.
| Volume kept | Anchor / Exhibitor step | Anchor / Exhibitor lift | ||
|---|---|---|---|---|
Each row is one sponsorship type at one recurring event, read across the
window. Sell-through is units sold ÷ original inventory
(Anchor capacity from Max_Anchor_Sponsors__c); a row that
consistently sells through has demonstrated pricing power. Rows
with meaningful unused capacity are flagged Caution
— three years of soft demand is a reason to hold, not raise. Single-year
rows can't answer a three-year question and sink to the bottom as
Not enough history.
Expand a row for the year-by-year grid.
| Event · Sponsorship type | Signal | 3-yr sell-through | Capacity | Window revenue | Revenue trend | Realized price Δ | Volume Δ | Renewal | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ▸ | limit? |
|
||||||||||||||||||||||
Year by year — ·
Sponsor renewal for this event (all tiers, most recent completed year): . Renewal is measured at the event level — the model does not track repeat rate per sponsorship type. A year sold more than its recorded limit, so sell-through reads above 100% and the limit may be stale — treated as fully sold for the signal. |
||||||||||||||||||||||||
No sponsorship types match these filters in the window.
Run .\scripts\refresh_event_quota_model.ps1 to build the quota-model facts.
| Level | ||||||||
|---|---|---|---|---|---|---|---|---|
| Δ Card | Δ Realized | Δ Units | Pairs | Δ Card | Δ Realized | Δ Units | Pairs | |
| Event series | ||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Δ Price | Δ Units | ε | Δ Price | Δ Units | ε | |||||||||||||||||
| ▸ | in flight | realized | realized | |||||||||||||||||||
Transitions
By sponsorship type
|
||||||||||||||||||||||
Price change is computed per sponsorship type on tiers present in both years of a transition (dollar-weighted), so a shift in level mix cannot masquerade as a price move. The rate card (list price) is the treatment — it is the price the business decided to set; realized $/unit is the outcome after discounting, shown alongside as capture. Units are counted over the same matched tiers. By default only the deliberately-priced levels are measured — Anchor, Exhibitor, and Marquee (Platinum + Diamond) — because add-on tiers (passes, patron packages, branding items) reprice erratically and would pollute the signal; switch the Levels filter to see them.
The portfolio verdict uses only recurring events whose instances in both years of a transition have already run (an event still selling is flagged in flight and excluded). Elasticity requires a price move of at least to be measurable, and volume differences inside ± are treated as noise. The verdict nets the flat-year trend out of the raise-year volume change before attributing anything to price.
Each in-flight event's outstanding dollars, spread over the months ahead using its own segment's booking curve. Plan is the gap to target; pace is the gap to the finish the curve implies from what is already booked. Where the two diverge is the forecast risk.
The curve is built only from events that started at least days ago ( events through ) — an event still selling has no final book to measure a share against, and including it would drag the whole curve forward. event(s) sit too early in the cycle for a pace read and fall back to their target.
| Segment | Events | Target | Booked | Pipeline | Gap | Attainment | Retained | Churned | Returned | Net new | Net logos | Retention | Promoted | Demoted | Held level | Net prestige | Measured on | List value | Won | Discount | Realization | Priced lines | Fill curve | Half sold by | 90% sold by | In flight | Pace | Still to book | ||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ▸ | ||||||||||||||||||||||||||||||||||||||||||||||||
By year
Where the discount is
line(s) sold above list — usually a multi-unit SKU or a list price that was never updated, not a premium. How this segment fillsShare of a finished book signed by each point before the event, from settled events in this segment the portfolio curve — this segment has only settled event(s), under the needed for a curve of its own .
Expected landings
in-flight events hold against of target. This segment normally has in the door by this point, so it is pacing . Carried forward on that pace it finishes at . |
Segments come from the Salesforce EventCategory field, which carries the
rate-card taxonomy verbatim. Where the field names no program, the event is matched
against the card's named scopes, then against its own name.
of target dollars in
this window come straight from the field;
could not be
classified at all.
Rate realization compares won line items to their Salesforce ListPrice — the
card as the pricebook holds it. It covers
of won lines;
the rest are $0 bundle components or SKUs with no list price, and are left out of the
ratio rather than counted as a 100% discount.
Fill velocity measures every won contract against its event date, not against the first dollar sold — two events in a segment start selling months apart, so their first dollars fall in different calendar months and averaging from there means nothing. Anchoring on the event is what lets the curves be compared and run forwards. of dollars are signed after the event has already started; those are scheduled into the month after it.
| Series | Maturity | Basis yr | Written | Attain | NRR | New biz | Recommended | Growth | SF target | Δ | Conf | Approved |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ⛨ | — |
| Year | Target | Written | Attain | Sponsors | Logo ret. | NRR | Net-new $ | Top-3 share | T-6 booked | vs list |
|---|---|---|---|---|---|---|---|---|---|---|
| Tier | Limit | Sold | Sell-through | List price | Won rev | Avg realized |
|---|---|---|---|---|---|---|
| SF anchor cap |
Upcoming events with a published agenda, filtered to their concurrent sessions. Pick an event, then a session, to generate the moderator set — an audience poll, six topic questions and a wrap-up — and export the formatted document. A green check marks every event and session whose set is complete.
A takeaway document is the handout the room leaves with — eight 30-to-90-day commitments and four follow-ups, drawn from the session's own subject matter. Generating the draft also mints the session's QR code, and that code owns the session from then on: project it at the end and everyone who scans enters their email, which is how we finally learn who was actually in the room. Attaching the document is a separate, optional step — accept the draft as a PDF as-is, or edit it in Word and upload your own.
Every upcoming venue-based event, with its contract deadlines, logistics-budget variance, last-year linkage, and the prep checklist. Select an event to work the procedure.
| Deadline | Date | Days left | Lead vs typical | |
|---|---|---|---|---|
| ⚑ early | ||||
| No deadlines set on this event. | ||||
| Category | Budget | Actual | Var | LY actual | Notes |
|---|---|---|---|---|---|
Logistics_Financials__c data yet. Run
.\scripts\refresh_logistics_financials.ps1 to pull the object from Salesforce —
the first run also reveals its columns to this view.
| Event | Venue | Lines | Budget | Actual | Variance | |
|---|---|---|---|---|---|---|
| No event-linked logistics records. | ||||||
| No events match the current filters. | ||||||
| Event | Yr | Series | Budget | Actual | Var | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Loading budget lines…
|
||||||||||||||||||||||||
| No roster events for this venue. | ||||||||||||||||||||||||
Every durable event series: its component events with budget performance, the venues they ran at, linked contracts, saved floor plans, and everything you need to plan the next one.
| Year | Event | Venue | Budget | Actual | Var | |
|---|---|---|---|---|---|---|
| 📄 📐 |
| Venue | St | Events | Years | Budget | Actual | Var % |
|---|---|---|---|---|---|---|
No SocialTables event linked to this Salesforce event. Expand SocialTables linking below to link one (suggestions use event name + year).
SocialTables has no diagram image export, so DataOS draws the diagram itself from the designer's geometry — tables with chairs, stage, AV, dance floor, lines and labels — over the room floor image (the diagram's own room when it has one, otherwise a room from the linked ST property). Clickable tables sit exactly on the drawn ones, and sponsor assignments survive a re-import.
No room floor image is linked for a background — the diagram still renders on a plain room outline. To add the hotel's floor art, expand SocialTables linking below and link properties → Venues, then pick a room here (PNG and SVG floors both work).
Link SocialTables events to Salesforce events (diagram import), and ST properties (hotels from the rooms catalog) to DataOS venues (floor images). Diagrams are read-only upstream — table assignment stays in DataOS.
The stored SocialTables refresh token was rejected (). A SocialTables user must re-authorize once — after that the token renews itself weekly. The access token has expired; try Refresh token, or reconnect if that fails.
Choose an upcoming event on the left. Its progress ring shows how much of every checklist is done.
Every session on the canonical sessions spine, with the harvested SharePoint outline mapped to it where one exists. Mapping is resolved by title match and an LLM pass over the outline text + session context; you can override any of it. Expand an event to see its sessions and coverage gaps. Unmapped outlines wait in the Unassigned tray, each with the resolver's best suggestion for one-click assignment.
.\scripts\refresh_session_outlines.ps1 after granting the
Graph app a per-site Sites.Selected grant on EventLogistics2.
| Event | Date | Coverage | Outlines |
|---|---|---|---|
|
Loading sessions…
|
|||
Every file pulled from the SharePoint Logistics Contracts folders under Connected Storage › Events, grouped State › Event Series with years nested underneath. Expand a series for per-year contract links; Discuss series opens chat grounded on that series' full multi-year corpus (not global).
.\scripts\refresh_event_contracts.ps1
after granting the Graph app access to the Connected Storage site.
| State | Event Series | Years | Files | |
|---|---|---|---|---|
Paste or upload the Event Director's attendee list. DataOS resolves each
name/email to its canonical Salesforce Contact and preps the
Advisory_Board_Member__c table Audience Operations upserts —
exported for now (no writeback). Contacts not yet in Salesforce can be
resolved manually or discovered in ZoomInfo and pushed.
| RSVP | AB First Name | AB Last Name | AB Title | AB Department | AB Organization | AB Phone | AB Email | AB Type | Status | Salesforce Contact | |
|---|---|---|---|---|---|---|---|---|---|---|---|
—
|
Paste a known Salesforce Contact ID (003…) to bind this attendee.
Search ZoomInfo, then push the person to Salesforce. The new Contact ID binds back here automatically.
Attendance is read from the event-ops Asana board's Post Event Recap tasks.
Asana is not connected yet. Connect it on the Asana sub-tab.
Asana is not configured. Set ASANA_CLIENT_ID, ASANA_CLIENT_SECRET
and ASANA_REDIRECT_URI in the environment.
Headcounts) listing sessions with counts like
"Keynote-209, Bits and Bytes-198, PM General Session-104".
| Time | Session | From the note | Headcount |
|---|---|---|---|
| — | |||
| No agenda resolved for this event — the recap's event name did not match a known event series, so its headcounts below have nothing to map onto. | |||
ASANA_CLIENT_ID, ASANA_CLIENT_SECRET,
and ASANA_REDIRECT_URI in the environment, then register the redirect URI on the Asana app.
Connect your Asana account to load the event-ops board.
Register this redirect URI on your Asana app (Developer Console → OAuth → Redirect URLs):
Future durable events (Command Center filters: upcoming, non-webinar, has target, has date),
nested with Salesforce Keynote / Moderator / Closing Speaker contact roles.
Hotel confirmation + arrive/depart + host hotel come from Salesforce
Travel Detail records (Hotel Stay), with the
Logistics sheet as fallback;
speaker To-list from Salesforce contacts + the
Contact Info tab (booking agent / assistant only).
To = speaker contacts;
CC = Margaret Lecey (mlecey@govtech.com) + the event's
event manager (who also sends & signs) + onsite logistics.
Outreach window: one week before the event.
The YTD archive below is the QA surface for past events this year.
Sends land Monday–Friday during business hours
(). A send date falling on a
weekend moves earlier, to the preceding Friday, so the notice period is
never shortened. A letter missing its confirmation number, hotel or speaker email is
held — the event's own manager (cc
)
gets a triage note and the letter releases automatically on the next hourly check once the
record is complete.
.\scripts\refresh_room_assignments.ps1
then hard-refresh (Ctrl+Shift+R).
EventManagerEmail on the Salesforce event,
then Pull from Salesforce.
Past durable events from Jan 1 of the current year through yesterday. Same nesting and email draft as upcoming — use this to verify confirmations, contacts, and staff CC before live sends.
EventManagerEmail on the event
record, then use Pull from Salesforce.
Sends through the standard email-intent gate (Graph). Recipients must be reviewed before confirm.
One front door for a staff moderator or CDG Closing speaker. Jessica reviews any added fee against the event's Salesforce moderator budget before Tricia is asked to check the CDG schedule. A speaker is not confirmed until both budget approval (when needed) and availability are done. Do not contact Tricia or a Senior Fellow off-process.
Loading…