CRM categoryCertified by Stitch
Expected Salesforce data
Here’s a sample of the raw Salesforce data that Stitch will replicate to your analytics warehouse:
Accounts
Represents an individual account, which is an organization or person involved with your business (such as customers, competitors, and partners).
Table name:account
Opportunities
Represents an opportunity, which is a sale or pending deal.
Table name:opportunity
Leads
Represents a prospect or potential Opportunity.
Table name:lead
Users
Contains info about the users in your organization.
Table name:user
Contacts
Contains info about your contacts, who are individuals associated with accounts in your Salesforce instance.
Table name:contact
Learn more about the Salesforce integration
Documentation
Detailed documentation on how to start syncing Salesforce data.
Salesforce to your data warehouse in minutes
ETL your Salesforce data to the destination of your choice.
Jumpstart your Salesforce analytics with reusable blocks
dbt packages can speed up your work
Once you replicate your Salesforce data with Stitch, you can use it in many ways. For example, you can use the data modeling and transformation tool dbt to prepare data for reporting, analytics, or machine learning applications.
Dbt has prebuilt packages for many Stitch data sources, including Salesforce. Here’s a look at code for modeling Salesforce data. This particular block of code creates a daily model of your Salesforce opportunities.
View the source on GitHub →1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
--the output of this model is a day per opportunity history that the opp was active
{{
config(
materialized='table',
sort='date_day',
dist='opportunity_id'
)
}}
{%- set custom_fields = var('opportunity_history_custom_fields') -%}
with opp_history as (
select distinct
date_trunc('day', created_date)::date as start_date,
date_trunc('day', active_to)::date as end_date,
opportunity_id,
account_id,
owner_name,
stage_name
{{ "," if (custom_fields|length) > 0 }}
{% for custom_field in custom_fields %}
last_value({{custom_field}}) ignore nulls over (partition by opportunity_id,
created_date order by created_date rows between unbounded preceding and
unbounded following) as {{custom_field}}{{"," if not loop.last}}
{% endfor %}
from {{ref('sf_opportunity_history_joined')}}
),
days as (
{{ dbt_utils.date_spine(datepart="day",
start_date="to_date('{{ var('first_record') }}', 'mm/dd/yyyy')",
end_date="dateadd(week, 1, current_date)") }}
),
opp_days as (
--this creates the final output of one row per day the stage was active
select
days.date_day,
date_trunc('month', days.date_day)::date as date_month,
opp_history.*
from days
inner join opp_history
on days.date_day >= opp_history.start_date
and days.date_day < opp_history.end_date
)
select
{{ dbt_utils.surrogate_key('date_day','opportunity_id') }} as id,
*
from opp_days
... or use Looker blocks with your Salesforce data
We've developed a Looker Block for Salesforce data provisioned by Stitch. This block includes prebuilt code to create dashboards and models that can help uncover insights from your Salesforce data.
This Looker Block includes three dashboards that provide analysis on sales and marketing leadership, sales ops management, and sales representative performance. The dashboards highlight top-level sales metrics, conversion rates between funnel stages, and various metrics to assess your pipeline health. The LookML file shown here produces a dashboard that can be used to monitor lost and won deals, revenue, and win rate by representative to evaluate performance of your sales organization.
View the source on GitHub →1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
- dashboard: representative_performance
title: "Sales Representative Performance Dashboard"
layout: grid
rows:
- elements: [count_won_deals, salesrep_total_revenue, count_lost_deals, win_percentage ]
height: 150
- elements: [opportunities_to_wins_trend_peers]
height: 400
- elements: [salesrep_revenue_won_comparison]
height: 400
- elements: [salesrep_win_rate_comparison, salesrep_revenue_pipeline_comparison]
height: 400
filters:
- name: sales_rep
type: field_filter
explore: opportunity
field: opportunity_owner.name
- name: sales_segment
type: field_filter
explore: account
field: account.business_segment
elements:
- name: count_won_deals
title: 'Count of Won Deals (This Quarter)'
type: single_value
model: salesforce
explore: opportunity
measures: [opportunity.count_won]
listen:
sales_segment: account.business_segment
sales_rep: opportunity_owner.name
filters:
opportunity.close_date: last quarter
limit: 500
font_size: small
text_color: '#49719a'
width: 3
height: 2
- name: salesrep_total_revenue
title: 'Salesrep - Total Revenue (This Quarter)'
type: single_value
model: salesforce
explore: opportunity
measures: [opportunity.total_revenue]
listen:
sales_segment: account.business_segment
sales_rep: opportunity_owner.name
filters:
opportunity.close_date: 'last quarter'
limit: 500
font_size: small
text_color: '#49719a'
width: 3
height: 2
- name: count_lost_deals
title: 'Count of Lost Deals (This Quarter)'
type: single_value
model: salesforce
explore: opportunity
measures: [opportunity.count_lost]
listen:
sales_segment: account.business_segment
sales_rep: opportunity_owner.name
filters:
opportunity.close_date: 'last quarter'
limit: 500
font_size: small
text_color: '#49719a'
width: 3
height: 2
- name: win_percentage
title: 'Win Percentage of Closed Deals (This Quarter)'
type: single_value
model: salesforce
explore: opportunity
measures: [opportunity.win_percentage]
listen:
sales_segment: account.business_segment
sales_rep: opportunity_owner.name
filters:
opportunity.close_date: 'last quarter'
limit: 500
font_size: small
text_color: '#49719a'
width: 3
height: 2
- name: opportunities_to_wins_trend_peers
title: 'Opportunities to Wins by Rep'
type: looker_line
model: salesforce
explore: opportunity
dimensions: [opportunity.created_month, opportunity_owner.rep_comparitor]
pivots: [opportunity_owner.rep_comparitor]
measures: [opportunity.count, opportunity.count_won]
dynamic_fields:
- table_calculation: opportunities_to_won
label: opportunities_to_won
expression: 1.0*${opportunity.count_won}/${opportunity.count}
value_format: '#.0%'
hidden_fields: [opportunity.count_won, opportunity.count]
listen:
sales_rep: opportunity_owner.name_select
filters:
opportunity.created_month: 9 months ago for 9 months
sorts: [opportunity.created_month desc, opportunity_owner.rep_comparitor]
limit: 500
column_limit: 50
query_timezone: America/Los_Angeles
stacking: ''
colors: ['#FFCC00', '#1E2023', '#3399CC', '#CC3399', '#66CC66', '#999999', '#FF4E00', '#A2ECBA', '#9932CC', '#0000CD']
show_value_labels: false
label_density: 25
font_size: small
legend_position: center
x_axis_gridlines: false
y_axis_gridlines: true
show_view_names: true
y_axis_combined: true
show_y_axis_labels: true
show_y_axis_ticks: true
y_axis_tick_density: default
y_axis_value_format: '#%'
show_x_axis_label: true
show_x_axis_ticks: true
x_axis_scale: auto
show_null_points: true
point_style: none
interpolation: linear
width: 12
height: 4
- name: salesrep_revenue_won_comparison
title: 'SalesRep - Revenue Won comparison'
type: looker_bar
model: salesforce
explore: opportunity
dimensions: [opportunity_owner.rep_comparitor]
measures: [opportunity.average_revenue_won]
listen:
sales_rep: opportunity_owner.name_select
sorts: [opportunity_owner.rep_comparitor]
limit: 500
query_timezone: America/Los_Angeles
stacking: ''
colors: ['#FFCC00', '#1E2023', '#3399CC', '#CC3399', '#66CC66', '#999999', '#FF4E00', '#A2ECBA', '#9932CC', '#0000CD']
show_value_labels: true
label_density: 25
label_color: ['#3399CC']
font_size: small
legend_position: center
hide_legend: false
x_axis_gridlines: false
y_axis_gridlines: true
show_view_names: false
y_axis_combined: true
show_y_axis_labels: true
show_y_axis_ticks: true
y_axis_labels: [Total Revenue Won]
y_axis_tick_density: default
show_x_axis_label: false
show_x_axis_ticks: true
x_axis_scale: auto
show_null_labels: false
width: 6
height: 3
- name: salesrep_win_rate_comparison
title: 'SalesRep - Win Rate Comparison'
type: looker_bar
model: salesforce
explore: opportunity
dimensions: [opportunity_owner.rep_comparitor]
measures: [opportunity.win_percentage]
listen:
sales_rep: opportunity_owner.name_select
sorts: [opportunity_owner.rep_comparitor]
limit: 500
query_timezone: America/Los_Angeles
stacking: ''
colors: ['#FFCC00', '#1E2023', '#3399CC', '#CC3399', '#66CC66', '#999999', '#FF4E00', '#A2ECBA', '#9932CC', '#0000CD']
show_value_labels: true
label_density: 25
label_color: ['#3399CC']
font_size: small
legend_position: center
hide_legend: false
x_axis_gridlines: false
y_axis_gridlines: true
show_view_names: false
y_axis_combined: true
show_y_axis_labels: true
show_y_axis_ticks: true
y_axis_labels: [Opportunity Win Rate]
y_axis_tick_density: default
show_x_axis_label: false
show_x_axis_ticks: true
x_axis_scale: auto
show_null_labels: false
width: 6
height: 3
- name: salesrep_revenue_pipeline_comparison
title: 'SalesRep - Revenue Pipeline comparison'
type: looker_bar
model: salesforce
explore: opportunity
dimensions: [opportunity_owner.rep_comparitor]
measures: [opportunity_owner.average_revenue_pipeline]
listen:
sales_rep: opportunity_owner.name_select
sorts: [opportunity_owner.rep_comparitor]
limit: 500
query_timezone: America/Los_Angeles
stacking: ''
colors: ['#FFCC00', '#1E2023', '#3399CC', '#CC3399', '#66CC66', '#999999', '#FF4E00', '#A2ECBA', '#9932CC', '#0000CD']
show_value_labels: true
label_density: 25
label_color: ['#3399CC']
font_size: small
legend_position: center
hide_legend: false
x_axis_gridlines: false
y_axis_gridlines: true
show_view_names: false
y_axis_combined: true
show_y_axis_labels: true
show_y_axis_ticks: true
y_axis_labels: [Total Revenue Pipeline]
y_axis_tick_density: default
show_x_axis_label: false
show_x_axis_ticks: true
x_axis_scale: auto
show_null_labels: false
width: 6
height: 3
Thanks to Stitch we get the granular insight we need into our data. Having our Salesforce and internal data in one place was a key factor in helping us scale out our new business function.
Why our customers choose Stitch
Stitch is a simple, powerful ETL service built for developers. Stitch connects to your first-party data sources – from databases like MongoDB and MySQL, to SaaS tools like Salesforce and Zendesk – and replicates that data to your warehouse. With Stitch, developers can provision data for their internal users in minutes, not weeks.
Explore all of Stitch's features- Simple setup
- Start replicating data in minutes, and never worry about ETL maintenance.
- Own your own data infrastructure
- Stitch replicates to your warehouse, meaning you’re always in control.
- Mature replication engine
- Accurate data from any structure, all the time.
Start replicating your Salesforce data
Select your integrations, choose your warehouse, and enjoy Stitch free for 14 days.
Set up in minutesUnlimited data volume during trial
Connect to your ecosystem of data sources
Stitch integrates with leading databases and SaaS products. No API maintenance, ever, while you maintain full control over replication behavior.
ActiveCampaign
StandardStitch-certifiedAmazon Aurora MySQL
StandardStitch-certifiedAmazon Aurora PostgreSQL
StandardStitch-certifiedAmazon RDS for MariaDB
StandardStitch-certifiedAmazon RDS for MySQL
StandardStitch-certifiedAmazon RDS for Oracle Database
EnterpriseStitch-certifiedAmazon RDS for PostgreSQL
StandardStitch-certifiedAmazon RDS for SQL Server
StandardStitch-certifiedAmazon S3 CSV
StandardStitch-certifiedAmplitude
StandardCommunity-supportedAppsFlyer
StandardCommunity-supportedAsana
StandardCommunity-supportedAutopilot
StandardCommunity-supportedAutopilot Activities
StandardCommunity-supportedBigCommerce
StandardCommunity-supportedBraintree
StandardCommunity-supportedBranch
StandardStitch-certifiedCampaign Manager
StandardCommunity-supportedCampaign Monitor
StandardCommunity-supportedChargebee
StandardCommunity-supportedClose
StandardStitch-certifiedClub Speed
StandardCommunity-supportedCodat
StandardCommunity-supportedContentful
StandardStitch-certifiedCustomer.io
StandardStitch-certifiedDelighted
StandardStitch-certifiedDeputy
StandardCommunity-supportedDesk.com
StandardStitch-certifiedDrip
StandardStitch-certifiedDynamoDB
StandardStitch-certifiedEloqua
StandardCommunity-supportedFacebook Ads
StandardStitch-certifiedFormKeep
StandardStitch-certifiedFreshdesk
StandardCommunity-supportedFront
StandardCommunity-supportedFullStory
StandardCommunity-supportedGitHub
StandardCommunity-supportedGitLab
StandardCommunity-supportedGoogle Ads
StandardStitch-certifiedGoogle Analytics
StandardStitch-certifiedGoogle Analytics 360
EnterpriseCommunity-supportedGoogle Cloud SQL MySQL
StandardStitch-certifiedGoogle Cloud SQL MySQL
StandardStitch-certifiedGoogle Cloud SQL PostgreSQL
StandardStitch-certifiedGoogle Ecommerce
StandardStitch-certifiedGoogle Search Console
StandardStitch-certifiedGoogle Sheets
StandardStitch-certifiedHarvest
StandardCommunity-supportedHarvest Forecast
StandardCommunity-supportedHeap
StandardStitch-certifiedHelp Scout
StandardCommunity-supportedHeroku
StandardStitch-certifiedHubSpot
StandardStitch-certifiedIBM Db2
StandardCommunity-supportedImpact
StandardCommunity-supportedImport API
StandardStitch-certifiedIntacct
StandardCommunity-supportedIntercom
StandardStitch-certifiedInvoiced
StandardCommunity-supportedIterable
StandardStitch-certifiedJira
StandardStitch-certifiedKlaviyo
StandardCommunity-supportedLever
StandardCommunity-supportedLinkedIn Ads
StandardStitch-certifiedListrak
StandardCommunity-supportedLivePerson
StandardCommunity-supportedLookML
StandardCommunity-supportedMagento
StandardStitch-certifiedMailchimp
StandardStitch-certifiedMailjet
StandardStitch-certifiedMailshake
StandardCommunity-supportedMambu
StandardStitch-certifiedMariaDB
StandardStitch-certifiedMarketo
StandardStitch-certifiedMicrosoft Advertising (Bing Ads)
StandardStitch-certifiedMicrosoft Azure SQL Server Database
StandardStitch-certifiedMicrosoft SQL Server
StandardStitch-certifiedMicrosoft Teams
StandardCommunity-supportedMixpanel
StandardStitch-certifiedMongoDB
StandardStitch-certifiedMySQL
StandardStitch-certifiedNetsuite
StandardStitch-certifiedNetsuite Suite Analytics
StandardStitch-certifiedOnfleet
StandardCommunity-supportedOracle
EnterpriseStitch-certifiedOracle Netsuite Bronto Marketing Platform
StandardCommunity-supportedOutbrain
StandardCommunity-supportedOutreach
StandardCommunity-supportedPardot
StandardStitch-certifiedParticle
StandardStitch-certifiedPendo
StandardStitch-certifiedPepperjam
StandardCommunity-supportedPinterest Ads
StandardCommunity-supportedPipedrive
StandardCommunity-supportedPlatform Purple
StandardCommunity-supportedPostgreSQL
StandardStitch-certifiedQuick Base
StandardCommunity-supportedQuickBooks
StandardStitch-certifiedReCharge
StandardCommunity-supportedRecurly
StandardStitch-certifiedReferral SaaSquatch
StandardCommunity-supportedResponsys
StandardStitch-certifiedRevinate
StandardCommunity-supportedRingCentral
StandardCommunity-supportedSFTP
StandardStitch-certifiedSailthru
StandardStitch-certifiedSalesforce
StandardStitch-certifiedSalesforce Marketing Cloud
StandardCommunity-supportedSegment
StandardStitch-certifiedSelligent
StandardCommunity-supportedSendGrid
StandardStitch-certifiedSendGrid Core
StandardCommunity-supportedSendwithus
StandardStitch-certifiedShipHero
StandardCommunity-supportedShippo
StandardCommunity-supportedShopify
StandardStitch-certifiedSparkPost
StandardStitch-certifiedSquare
StandardStitch-certifiedStripe
StandardStitch-certifiedSurveyMonkey
StandardCommunity-supportedTaboola
StandardCommunity-supportedToggl
StandardCommunity-supportedTypeform
StandardCommunity-supportedUrban Airship
StandardCommunity-supportedUserVoice
StandardCommunity-supportedVero
StandardStitch-certifiedWebhooks
StandardStitch-certifiedWorkday RaaS
EnterpriseStitch-certifiedXero
StandardStitch-certifiedYotpo
StandardCommunity-supportedZapier
StandardStitch-certifiedZendesk Chat
StandardCommunity-supportedZendesk Support
StandardStitch-certifiedZoom
StandardCommunity-supportedZuora
StandardStitch-certified