Salesprompter

Docs that map the app, CLI, and extension as one system.

Public documentation for the Salesprompter contracts, workflows, and runtime behavior. This deployment is generated directly from the docs source in the CLI repository.

Source repository

This is the fast recovery page for the most common operational failures.

Auth issues

not logged in. Run salesprompter auth:login.

Cause:

  • no local session file exists in the configured config directory

Fix:

node ./dist/cli.js auth:login
node ./dist/cli.js auth:whoami --verify

If you intentionally use a non-default config directory, verify SALESPROMPTER_CONFIG_DIR.

session expired. Run salesprompter auth:login.

Cause:

  • the stored expiresAt is now in the past

Fix:

node ./dist/cli.js auth:login

Device login is not configured on this Salesprompter app

Cause:

  • the backend does not expose working device auth endpoints

Fix:

  1. issue a CLI token from the app
  2. run:
node ./dist/cli.js auth:login --token "<token-from-app>"

BigQuery issues

bq: command not found

Cause:

  • the local BigQuery CLI is not installed or not on PATH

Fix:

  • install the Google Cloud SDK or otherwise make bq available
  • confirm with:
bq version

Query works in one environment and fails in another

Cause:

  • the project id resolved from environment variables changed

Fix:

  • set BQ_PROJECT_ID explicitly
  • confirm the active value before running warehouse-backed commands

Lead normalization fails on BigQuery output

Common causes:

  • missing firstName and lastName
  • missing required companyName, domain, industry, title, or email
  • unexpected warehouse field mapping

Fix:

  • inspect the raw output written with --out
  • adjust field mappings on leads:lookup:bq
  • rerun with --sql-out so the exact SQL is inspectable

Instantly issues

Instantly campaign id is required

Fix:

  • pass --campaign-id
  • or set INSTANTLY_CAMPAIGN_ID

Instantly API key is required

Fix:

  • set INSTANTLY_API_KEY

A dry run succeeded but no leads were created

Cause:

  • dry run is the default behavior

Fix:

  • rerun with --apply only after reviewing the target campaign and payload

Fewer leads synced than expected

Likely cause:

  • dedupe skipped emails already present in the campaign

Fix:

  • inspect the reported skipped count
  • use --allow-duplicates only if duplicates are intentional

Domain-finder issues

Too few companies make it to writeback

Check:

  1. domainfinder:backlog:bq
  2. domainfinder:candidates:bq
  3. domainfinder:audit

This usually indicates an upstream backlog, blacklisted domains, or poor candidate quality rather than a writeback bug.

The new selector disagrees with historical behavior

Use:

node ./dist/cli.js domainfinder:compare-pipedream --in ./data/domain-candidates.json --out ./data/domain-comparison.json

That report tells you whether the difference is due to LinkedIn-preferred selection or Hunter-count ordering.

Docs issues

mint or mintlify command is missing

Fix:

npm install
npm run docs:dev

The repository pins Mint as a local dev dependency, so you should not need a global install.

Docs page exists but is not in navigation

Cause:

  • the page was created without adding it to docs.json

Fix:

  • update docs.json
  • rerun:
npm run docs:broken-links

Escalation rule

When the issue affects:

  • auth contract shape
  • JSON output shape
  • BigQuery SQL semantics
  • domain-finder writeback rules

treat it as a product contract issue, not just a local bug.