Connecting to Drip
Using Token Authentication
Drip supports personal API Token authentication. You can use your Drip personal API Token to authenticate.
To obtain your API Token:
- Log into your Drip account at https://www.getdrip.com/
- Navigate to User Settings.
- Locate your API Token and copy it.
After obtaining your token, set the following connection properties:
- ProfileSettings: Set this to APIKey=your_api_token.
Example Connection String
Profile=C:\profiles\Drip.apip;ProfileSettings='APIKey=my_api_token';
Using OAuth Authentication
First, register an OAuth2 application with Drip. Drip will then supply you with a client id and client secret. Please be aware that you must also enter a valid callback URL before you will be able to activate your application.
After setting the following connection properties, you are ready to connect:
- AuthScheme: Set this to OAuth.
- OAuthClientId: Set this to the client id that you got in your app settings.
- OAuthClientSecret: Set this to the client secret that you got in your app settings.
- CallbackURL: Set this to the Redirect URI you specified in your app settings.
- InitiateOAuth: Set this to GETANDREFRESH. You can use InitiateOAuth to manage the process to obtain the OAuthAccessToken.
Example Connection String
Profile=C:\profiles\Drip.apip;AuthScheme=OAuth;InitiateOAuth=GETANDREFRESH;OAuthClientId=my_clientId;OAuthClientSecret=my_clientSecret;CallbackUrl=your_callback_url;
Connecting to Drip
Once the authentication is configured, you can connect to Drip and query, insert, update, and delete data from any of the available tables such as Accounts, Subscribers, Campaigns, and Broadcasts.
Available Tables
The Drip API Profile provides access to the following tables:
- Accounts: Retrieve a list of accounts associated with the authenticated user
- Broadcasts: Query, insert, update, and delete email broadcasts for a specified account (requires AccountId)
- Campaigns: Retrieve a list of email campaigns for a specified account (requires AccountId)
- Conversions: Retrieve a list of conversion goals for a specified account (requires AccountId)
- Forms: Retrieve a list of forms for a specified account (requires AccountId)
- Subscribers: Query, insert, and delete subscribers for a specified account (requires AccountId)
- User: Retrieve information about the authenticated user
- Webhooks: Query, insert, and delete webhooks for a specified account (requires AccountId)
- Workflows: Retrieve a list of automation workflows for a specified account (requires AccountId)
- WorkflowTriggers: Query, insert, and update triggers for a specified workflow (requires AccountId and WorkflowId)
Important Notes
- Most tables require AccountId to be specified as a filter. Set it in your SQL WHERE clause.
- The WorkflowTriggers table requires both AccountId and WorkflowId to be specified as filters.
- Date fields use ISO 8601 format (yyyy-MM-dd'T'HH:mm:ssZ).
- Rate limiting applies — refer to Drip API documentation for current limits.
- The Drip API subscriber POST endpoint behaves as an upsert (it creates or updates a subscriber based on the email address). However, we are supporting only INSERT with a unique email address due to API Driver limitations.
- Trying to insert a duplicate email address will update the existing subscriber record and will not throw any error. Users should ensure the email address is unique before inserting.
API Documentation
For more information about the Drip API, see the official Drip API documentation.
Usage Examples
Accounts:
SELECT * FROM Accounts
User:
SELECT * FROM User
Subscribers:
SELECT * FROM Subscribers WHERE AccountId = 'your_account_id'
INSERT INTO Subscribers (AccountId, Email, Status, TimeZone, Prospect, Tags)
VALUES ('123456', '[email protected]', 'active', 'America/New_York', true, '["vip","newsletter"]')
DELETE FROM Subscribers WHERE AccountId = '123456' AND Id = 'sub_abc123'
Broadcasts:
SELECT * FROM Broadcasts WHERE AccountId = 'your_account_id'
INSERT INTO Broadcasts (AccountId, Name, Subject, HtmlBody, PostalAddress, TextBody)
VALUES ('123456', 'Summer Newsletter', 'Check Out Our Summer Deals', 'Hello!
Check out our summer deals.
', '123 Main St, Springfield, USA', 'Check out our summer deals.')
UPDATE Broadcasts SET Name = 'Updated Newsletter', Subject = 'Updated Subject', HtmlBody = 'Updated!
New content here.
', TextBody = 'Updated content here.', PostalAddress = '456 Elm St, Springfield, USA' WHERE AccountId = '123456' AND Id = 'br_abc123'
DELETE FROM Broadcasts WHERE AccountId = '123456' AND Id = 'br_abc123'
Campaigns:
SELECT * FROM Campaigns WHERE AccountId = 'your_account_id'
Conversions:
SELECT * FROM Conversions WHERE AccountId = 'your_account_id'
Forms:
SELECT * FROM Forms WHERE AccountId = 'your_account_id'
Webhooks:
SELECT * FROM Webhooks WHERE AccountId = 'your_account_id'
INSERT INTO Webhooks (AccountId, PostUrl, IncludeReceivedEmail, Events)
VALUES ('123456', 'https://example.com/drip-webhook', true, '["subscriber.created","subscriber.subscribed_to_campaign"]')
DELETE FROM Webhooks WHERE AccountId = '123456' AND Id = 'wh_abc123'
Workflows:
SELECT * FROM Workflows WHERE AccountId = 'your_account_id'
WorkflowTriggers:
SELECT * FROM WorkflowTriggers WHERE AccountId = 'your_account_id' AND WorkflowId = 'your_workflow_id'
INSERT INTO WorkflowTriggers (AccountId, WorkflowId, TriggerType, Provider, Properties)
VALUES ('123456', 'wf_abc123', 'submitted_form', 'leadpages', '{"form_id":"form_456"}')
UPDATE WorkflowTriggers SET TriggerType = 'submitted_form', Provider = 'shopify', Properties = '{"product_id":"prod_789"}'
WHERE AccountId = '123456' AND WorkflowId = 'wf_abc123' AND Id = 'trig_abc123'
Connection Properties
The connection string properties are the various options that can be used to establish a connection. This section provides a complete list of the options you can configure in the connection string for this provider.
| Property | Description |
| APIKey | Your API Key. |
| AuthScheme | The scheme used for authentication. Accepted entries are None, OAuth, APIKey. Allowed values are: BASIC, NONE, NTLM, OAUTH, APIKEY, OAUTH_CLIENT, OAUTH_PASSWORD |
| CallbackURL | Identifies the URL users return to after authenticating to API via OAuth (Custom OAuth applications only). |
| InitiateOAuth | Specifies the process for obtaining or refreshing the OAuth access token, which maintains user access while an authenticated, authorized user is working. Allowed values are: OFF, REFRESH, GETANDREFRESH |
| OAuthAccessToken | Specifies the OAuth access token used to authenticate requests to the data source. This token is issued by the authorization server after a successful OAuth exchange. |
| OAuthClientId | Specifies the client ID (also known as the consumer key) assigned to your custom OAuth application. This ID is required to identify the application to the OAuth authorization server during authentication. |
| OAuthClientSecret | Specifies the client secret assigned to your custom OAuth application. This confidential value is used to authenticate the application to the OAuth authorization server. (Custom OAuth applications only.). |
| OAuthExpiresIn | Specifies the duration in seconds, of an OAuth Access Token's lifetime. The token can be reissued to keep access alive as long as the user keeps working. |
| OAuthRefreshToken | Specifies the OAuth refresh token used to request a new access token after the original has expired. |
| OAuthSettingsLocation | Specifies the location of the settings file where OAuth values are saved. |
| OAuthTokenTimestamp | Displays a Unix epoch timestamp in milliseconds that shows how long ago the current access token was created. |
| OAuthVerifier | Specifies a verifier code returned from the OAuthAuthorizationURL . Used when authenticating to OAuth on a headless server, where a browser can't be launched. Requires both OAuthSettingsLocation and OAuthVerifier to be set. |
| Scope | Scope(s) to use when authenticating, that control access to specific information. |