Skip to content

Opportunity Engine integrations

Launch orchestration and the growth loop discover optional integrations before suggesting live tasks. Discovery is best effort: missing connectors produce setup instructions and manual import fallbacks, not hard failures.

Implementation: src/keprix/opportunity/integrations.py.

Supported integration kinds

Kind Purpose
crm Contacts and pipeline updates
email Sequences and transactional send
ads Paid campaign creation
social Organic post publishing
website Landing page deploy
analytics Traffic and conversion readback
stripe Products, prices, checkout
calendar Booking and follow-up scheduling
forms Lead capture tools

Connection methods

1. Keprix settings (preferred)

Connect services through the workspace UI where available (email accounts, contacts, billing for Stripe, and similar). The integration probe uses native stores when present.

2. Environment flags (automation and CI)

Set any of the following to connected, true, 1, or yes:

export KEPRIX_INTEGRATION_CRM=connected
export KEPRIX_INTEGRATION_EMAIL=connected
export KEPRIX_INTEGRATION_ADS=connected
export KEPRIX_INTEGRATION_SOCIAL=connected
export KEPRIX_INTEGRATION_WEBSITE=connected
export KEPRIX_INTEGRATION_ANALYTICS=connected
export KEPRIX_INTEGRATION_STRIPE=connected
export KEPRIX_INTEGRATION_CALENDAR=connected
export KEPRIX_INTEGRATION_FORMS=connected

3. Per-opportunity overrides

In opportunity.json, set integrations_config:

{
  "integrations_config": {
    "email": true,
    "crm": false,
    "ads": true
  }
}

Overrides take precedence over environment probes for that opportunity only.

CRM

Connect contacts under Settings > Contacts or set KEPRIX_INTEGRATION_CRM=connected. CRM updates remain behind the update_crm approval gate.

Email

Add an email account under Settings > Email or set KEPRIX_INTEGRATION_EMAIL=connected. Sequences require send_email_sequence approval.

Ads

Connect an ads manager integration or set KEPRIX_INTEGRATION_ADS=connected. Creating or editing campaigns requires create_ad, edit_ad, or set_ad_budget approval.

Social

Link a social publishing account or set KEPRIX_INTEGRATION_SOCIAL=connected. Publishing requires publish_post approval.

Website / landing pages

Configure a deploy target or set KEPRIX_INTEGRATION_WEBSITE=connected. Publishing requires publish_landing_page approval.

Analytics

Connect GA4, Plausible, or another analytics provider, or set KEPRIX_INTEGRATION_ANALYTICS=connected. The growth loop uses analytics for experiment ranking when connected; otherwise it documents manual metric import.

Stripe

Add Stripe API keys in billing settings or set KEPRIX_INTEGRATION_STRIPE=connected. Product creation requires create_stripe_product approval; charging requires charge_customer approval.

Scout connectors (optional)

Scout governance bridges (vault keys, webhook policies) can supply external research signals. They are optional: opportunity playbooks run without Scout. When Scout is unavailable, competitor and demand playbooks rely on built-in templates and operator-provided context.

Growth loop without integrations

When analytics or ads are missing, 14-growth-loop.md includes a manual metrics import table and ranked experiments that do not call external APIs.

Dry run default

Even with all integrations connected, the launch orchestrator defaults to dry run. Live connector calls for risky actions only proceed after explicit approval and launch_dry_run: false in metadata.