Overview
Constant Contact is widely used by real estate firms for organizing developer launches, property expos, and high-volume subscriber newsletters. In BrokerOS, the Constant Contact integration lives inintegrations/mail/constant-contact/src/index.ts under the Turborepo workspace package @brokeros/int-mail-constant-contact.
BrokerOS administrators configure Constant Contact accounts through the Web UI at Dashboard -> Marketing -> Email -> Settings. Tokens are encrypted using AES-256-GCM and stored in PostgreSQL (MarketingIntegration).
Architecture and Dispatch Sequence
The Constant Contact integration implements theIEmailMarketingProvider contract from @brokeros/types.
Step 1: Obtain Credentials from Constant Contact
- Log into the Constant Contact Developer Portal.
- Navigate to My Applications and create a new application.
- Copy your API Key (Client ID) and App Secret.
- Generate an authorization code and exchange it for an offline Refresh Token with
contact_dataandcampaign_datapermissions. - In your Constant Contact account settings, verify your corporate sending email address.
Step 2: Connect in the BrokerOS Web Dashboard
In your BrokerOS dashboard:- Navigate to Dashboard -> Marketing -> Email -> Settings.
- Open the Providers & Domains tab (
/dashboard/marketing/email/settings?tab=providers). - Click Add Provider and select Constant Contact.
- Fill in the modal connection fields:
- Click Verify & Connect. BrokerOS tests token renewal against Constant Contactβs token endpoint and validates account status via
GET https://api.cc.email/v3/account/summary. Once confirmed, credentials are encrypted via AES-256-GCM and stored inMarketingIntegration.
Step 3: Configure Webhook Delivery Destination
To capture delivery events and unsubscribes:- In Constant Contact, set your webhook URL to:
- Subscribe to events for Delivered, Opened, Clicked, Bounced, and Unsubscribed.
- Save changes. Incoming events are routed through
ConstantContactWebhookParserto update lead engagement.
Integration Implementation Details
The integration logic is located inintegrations/mail/constant-contact/src/index.ts.