-
+
@@ -127,6 +127,20 @@ function usd(cents) { return "$" + (cents / 100).toLocaleString("en-US", {minimu
btn.addEventListener("click", doCheck);
nameInput.addEventListener("keydown", function(e) { if (e.key === "Enter") doCheck(); });
+// Deep-link support: an email/campaign link like ?name=ACME%20LLC&state=CT
+// prefills the search and runs it automatically, so the recipient lands directly
+// on their own result.
+(function prefillFromUrl() {
+ try {
+ var params = new URLSearchParams(location.search);
+ var qName = params.get("name");
+ var qState = (params.get("state") || "").toUpperCase();
+ if (qName) nameInput.value = qName;
+ if (qState && stateNames[qState]) stateSelect.value = qState;
+ if (qName && qState) setTimeout(doCheck, 60);
+ } catch (e) { /* no-op */ }
+})();
+
function doCheck() {
var name = nameInput.value.trim();
var state = stateSelect.value;
@@ -222,7 +236,15 @@ function renderResult(data, state) {
html += '
Registered agent (1 year)
' + usd(data.ra_price_cents) + '
';
html += '
Total
' + usd(data.total_with_ra_cents) + '
';
html += '';
- html += 'Get Back in Good Standing →';
+ // Route to the matching self-serve order flow, seeding the entity name +
+ // state so the intake starts pre-filled. Dissolved -> reinstatement; anything
+ // else overdue -> annual report filing.
+ var orderSlug = (status === "DISSOLVED") ? "entity-reinstatement" : "annual-report-filing";
+ var orderUrl = "/order/" + orderSlug
+ + "?legal_name=" + encodeURIComponent(data.entity_name || "")
+ + "&state=" + encodeURIComponent(state)
+ + (data.entity_number ? "&entity_number=" + encodeURIComponent(data.entity_number) : "");
+ html += 'Get Back in Good Standing →';
html += '
State fees are passthrough at cost. No hidden markup.
';
html += '';
html += '';
diff --git a/site/src/components/intake/Wizard.astro b/site/src/components/intake/Wizard.astro
index 855f963..f947aab 100644
--- a/site/src/components/intake/Wizard.astro
+++ b/site/src/components/intake/Wizard.astro
@@ -396,6 +396,34 @@ const STEP_LABELS: Record = {
return;
}
+ // ── Pre-fill from ?legal_name=&state= (corporate renewal CTA links) ──
+ // The /tools/corporation-check overdue result links to
+ // /order/annual-report-filing?legal_name=ACME%20LLC&state=CT&entity_number=...
+ // Seed the entity so the wizard opens pre-populated. Best-effort; only fills
+ // empties (loadState merge preserves anything the visitor types).
+ const legalNameParam = (params.get("legal_name") || "").trim();
+ const stateParam = (params.get("state") || "").trim().toUpperCase();
+ if (legalNameParam && !token && !orderParam) {
+ try {
+ const state = loadState();
+ if (!state.name) state.name = legalNameParam;
+ state.intake_data = {
+ ...state.intake_data,
+ legal_name: state.intake_data?.legal_name || legalNameParam,
+ entity_name: state.intake_data?.entity_name || legalNameParam,
+ address_state: state.intake_data?.address_state || stateParam,
+ base_state: state.intake_data?.base_state || stateParam,
+ entity_number: state.intake_data?.entity_number || (params.get("entity_number") || "").trim(),
+ };
+ state.entity = {
+ ...state.entity,
+ legal_name: state.entity?.legal_name || legalNameParam,
+ address_state: state.entity?.address_state || stateParam,
+ };
+ saveState(state);
+ } catch { /* prefill is best-effort; never block the form */ }
+ }
+
if (!token && !orderParam) return;
const API = (window as any).__PW_API || "";