This account isn’t linked to a consultant page
Your login works, but it isn’t connected to a FranNet consultant profile yet. Ask your FranNet admin to link your account to your page, then refresh.
Marketing Hub
The home base where FranNet consultants shape their profile, publish, and grow — all in one place.
Sign in to manage your consultant page.
Sign in with GoogleAccess is by invitation, using your @frannet.com Google account. No account? Contact marketing@frannet.com to get set up.
Marketing Hub
Your login works, but it isn’t connected to a FranNet consultant profile yet. Ask your FranNet admin to link your account to your page, then refresh.
Everything you’ve submitted, with its moderation status. You can edit or remove your own.
Loading…
Drafts are sent to FranNet for review before they go live — nothing publishes automatically. Every published post becomes a new page that can rank in search and feed AI answer engines.
Reviews are moderated before publishing. You must have the client’s permission to share their words. Approved reviews show on your page as proof for the people reading it. (Star ratings in Google search come from your Google Business Profile, so send happy clients to your “Leave a Google review” button too.)
Loading…
Get help using your Marketing Hub. Ask the assistant below, or email the FranNet team directly.
Email support@frannet.comBest practices, approved vendors, and the latest updates from the FranNet marketing team. A reference library to help you get the most out of your page.
Loading…
Loading…
What is booked ahead, in your local time. These are read-only — the team schedules them for you.
Loading…
A minute each. Your notes are what move a meeting from held to counted.
Loading…
What you have already told us. If one of these is wrong, you can ask us to change it — say what happened and it goes to the FranNet team.
Loading…
Meetings you flagged for review. A flagged meeting is held out of billing until the FranNet team decides.
Booked-and-showed appointments, delivered to you. You pay only for meetings that actually happen.
Loading…
Blog articles and client reviews consultants submitted, waiting for review. Approve to publish, or reject to send it back for changes (the consultant is emailed).
Loading…
Whether each operational setting is configured, and when the daily background job last ran — checkable here without opening the Render dashboard. Shows only whether a secret is set, never its value.
Loading…
Best-practice articles, approved vendors, and updates. Consultants see published entries only. Entries carry markdown and images; the six-month view and the tips bar are the short version of this deeper guidance.
Loading…
Every PPA enrollment, newest first. A red marker means a notice failed to send — use Resend. Check Billed once accounting has handled it (unbilled packages over 48h alert the team and appear in the daily digest).
Loading…
One-time setup: import the historical packages and meetings, compare the Hub's numbers to the tracker, then register the Calendly webhook. Dry run first — it writes nothing. The CSVs stay in memory and are never saved to disk.
Needs CALENDLY_TOKEN set in Render first. Registers one org subscription for invitee.created / invitee.canceled; re-running is safe.
If a commit was wrong, delete exactly its batch. The test package and any live bookings are never touched.
The roster’s Calendly address is an assertion nobody has checked. Bookings attach by an exact match on it, so one wrong character means that consultant’s meetings arrive attached to nobody. Read-only — nothing here sends an invitation or edits an address.
Press “Check now” to compare against Calendly.
How many more bookings each consultant can still absorb: bookings needed = remaining ÷ conversion rate, minus what is already booked ahead. The rate is derived from live data on a rolling window, never hardcoded. Recomputed on every read — nothing here is cached, because a meeting’s time passing changes the answer and fires no event.
Loading…
Every trigger, what it decided, and whether anything was written. In shadow mode nothing is ever written — that is the evidence, not a fault.
A consultant has asked to change an answer they already gave. Only a Yes → No needs this — it gives back an appointment already billed.
Loading…
Pending disputes first. Approve to remove the appointment from billable, or reject to keep it. Both are logged with your name. The 30 imported disputes appear here to clear.
Loading…
Every package with the engine's live numbers: booked, billable used, under review, remaining, % used, status, and billed state. Filter by status or consultant.
Loading…
Every appointment across the program. Filter by feedback state, consultant, and date. Click a row to correct its feedback (attributed to you) — the escape hatch for imported-data anomalies.
Loading…
Every package exactly as the Hub's engine computes it. Green means nothing is internally adrift — every Calendly host maps to a consultant, and every meeting is assigned to a package. It does not mean the Hub agrees with the tracker sheet. That comparison reads the sheet's own Status column and happens only at import time, under PPA go-live → Dry run; to re-check agreement, re-export the CSVs and dry-run again.
Loading…
Each consultant's Calendly seat, pause state, and monthly booking cap. Unmatched Calendly hosts appear at the bottom — map one to a consultant to assign its meetings.
Loading…
Who has activated, who has completed their core page, and who has not started yet. Completeness comes from the latest daily snapshot.
Loading…
Every logged action across all consultants, newest first.
Loading…
Send yourself a sample nudge to check it, see the ledger of what has sent, and dry-run what the next daily run would send right now. Two nudge types: the finish-setup reminder (incomplete pages) and the six-month page review (item 2).
Loading…