Integration with Snowflake
Introduction
Outdoo's platform analyzes your sales call data (recorded customer meetings) in real-time and deal data (pipeline and CRM opportunities) on scheduled intervals. Integrating this analyzed data into Snowflake allows RevOps and data teams to unify conversation intelligence with other business data.
This allows deeper analysis of deal trends, rep performance, customer behavior, and pipeline risks within your existing BI tools and workflows. Connecting Outdoo to your warehouse lets you correlate call insights and AI-derived deal metrics with CRM, product usage, and revenue data for more informed decision-making.
Integration Overview and Supported Methods
Outdoo provides direct integration options to sync data to your warehouse without requiring third-party ETL tools. The following methods are supported:
Snowflake Data Share: Outdoo shares a read-only Snowflake database containing your call/deal datasets via Snowflake's Secure Data Sharing. This puts ready-to-query Outdoo data in your Snowflake account with no data copy overhead. Updates in Outdoo are reflected in near real-time in the shared tables.
Direct Warehouse Connection (JDBC/ODBC): As an alternative to data shares, Outdoo can act as a data connector that writes data into your warehouse using official drivers. You create credentials for Outdoo and Outdoo's service pushes new call records and periodic deal updates into your tables.
REST API Pull: Outdoo offers RESTful APIs to retrieve call and deal data for custom integrations. This requires more custom development but provides flexibility.
Cloud Storage Stage (S3 or ADLS): Outdoo can export data files in JSON format to a cloud storage bucket you own. Snowflake can bulk-load from this location. This method is useful if direct database connections are not possible but may introduce slight delays.
Security and Authentication Setup
Before starting, ensure you have prepared secure access for Outdoo:
- Create Dedicated Credentials: Provision a dedicated user/role in Snowflake for Outdoo. Grant only the minimum privileges needed (for example, ability to create and write to Outdoo-specific schemas).
- Network Access: If your warehouse is behind a firewall or VPC, whitelist Outdoo's egress IP addresses or use a private connectivity method.
- API Keys and Tokens: Generate secure tokens. Outdoo will securely store any tokens or secrets you provide.
- Certificate and Encryption: All integrations use encrypted channels (HTTPS for APIs, TLS for JDBC).
- Auditing and Revocation: Treat Outdoo integration credentials as you would any service account. Monitor activity and rotate keys/tokens periodically.
Snowflake Integration
Outdoo supports two integration methods for Snowflake: Snowflake Data Sharing (the easiest, no-maintenance option) and a direct Snowflake connector that pushes data via JDBC.
Method 1: Snowflake Data Share (Recommended)
Using Snowflake's native data sharing is the most seamless way to get Outdoo data into your Snowflake account. Outdoo acts as a Snowflake data provider and shares a database containing your tables (for example, OUTDOO_CALL_DATA and OUTDOO_DEAL_DATA). The data is always up-to-date, no ETL or copying is needed, and data never leaves Snowflake's managed storage.
Setup Steps
- Provide Snowflake Account Details to Outdoo: In the Outdoo admin interface (or via your Outdoo account manager), initiate a Snowflake data share integration. Provide your Snowflake Account Locator (for example,
abc12345) and the Snowflake cloud region where your account is hosted (for example, AWS us-east-1).
- Outdoo Shares the Data: Outdoo will create a Snowflake secure share with the appropriate datasets for your organization. As new calls are analyzed or deals updated, the share is updated in near real-time.
- Accept the Share in Snowflake: In your Snowflake console, navigate to Data > Shares. Create a new database from the incoming share:
-- List incoming shares (as ACCOUNTADMIN):
SHOW SHARES;
-- Create a database from the share:
CREATE DATABASE OUTDOO_DATA FROM SHARE OUTDOO_ORG.OUTDOO_SHARE_NAME; Replace OUTDOO_ORG.OUTDOO_SHARE_NAME with the provider name and share name provided by Outdoo.
- Grant Access to Users (if needed): Use
GRANT IMPORTED PRIVILEGES ON DATABASE ... TO ROLE ...to allow your analysts to query the Outdoo data.
- Verify Data Availability: Query the Outdoo tables as if they were local. For instance,
SELECT * FROM OUTDOO_DATA.CALLS LIMIT 10;should return recent call records. Because this is a live share, new calls processed by Outdoo will appear automatically.
Method 2: Direct Snowflake Connector (JDBC Push)
If Snowflake Data Sharing is not viable, Outdoo can also write data directly into your Snowflake account using a connector.
Setup Steps
- Create a User and Warehouse for Outdoo: Create a dedicated user in Snowflake (for example,
OUTDOO_LOADER) with a role limited to a specific database or schema. Ensure the role has usage on a warehouse for loading.
- Provide Connection Details: In the Outdoo integration settings, select the Snowflake direct connect option. Enter your Snowflake account hostname, user name, password (or key pair), default database and schema for Outdoo data, and optionally a warehouse name.
- Initial Schema Setup: On first connection, Outdoo will log in and create the required tables in the target schema. Ensure the Outdoo user has
CREATE TABLEorINSERTprivileges. Grant theTEMPORARYprivilege as well, since Outdoo may create temporary tables during load.
- Data Loading Process: Outdoo performs an initial full sync, loading all available call records and deal records. After the initial load, Outdoo continuously or periodically pushes new data. Call data is pushed shortly after each call is analyzed. Deal data is pushed on its refresh schedule.
- Verify and Use Data: Monitor that new records appear in the Snowflake tables. Each call or deal record will have a timestamp indicating when it was last updated. You can query the data directly or transform it into your enterprise schema using Snowflake Tasks.
Data Model in Snowflake
The shared or loaded Outdoo database contains separate tables for call and deal data. You may see:
- A
CALLStable with one row per sales call, including columns for Call ID, call datetime, participants, duration, sentiment score, key topics, and more
- A
DEALStable with one row per active deal, including Deal ID, name, owner, stage, value, last update, and Outdoo risk score
- A
CALL_TRANSCRIPTStable with full conversation transcripts in JSON format per call
With the Snowflake share active, your analysts and data scientists can immediately join Outdoo data with other warehouse data. For example, create a view that joins Outdoo's DEALS table with your internal CRM accounts table to correlate call engagement with product usage or revenue numbers. Because the Outdoo data is live, dashboards and ML models can always use the latest conversation insights without building a custom ETL pipeline.