Skip to content

Integration provider code and SDK reference (v2)

This reference is derived from backend/Integrations/Partner/, the integration settings models, OAuth helpers, and Composer dependencies. Provider APIs change independently; verify current scopes and endpoints in the provider dashboard before connecting.

Relevant checked-in dependencies include google/apiclient ^2.0@dev, kunalvarma05/dropbox-php-sdk dev-master, drewm/mailchimp-api ^2.5, and OAuth2 helpers (league/oauth2-google, Yahoo, and Microsoft packages). Other providers use the application’s HTTPS client and provider-specific OAuth/API classes rather than a single shared SDK.

Authentication and transport matrix

ProviderAbcSubmit settings/actionAuthentication or SDK pathTest/sandbox guidance
Google SheetsConnect account, choose spreadsheet/sheet, map fieldsGoogle API client + OAuth callback; Sheets API writes rows.Use a disposable spreadsheet and a restricted test Google account/project.
Google DriveAuthenticate, main folder, subfolder, optional no-saveGoogle API client + OAuth; Drive API uploads files.Use a test Drive folder and least-privilege scopes; verify inherited sharing.
Google CalendarAuthenticate, calendar, title/start/end/location/description, optional no-saveGoogle API client + OAuth; Calendar API creates events.Use a test calendar and short-lived event windows; delete test events only if authorized.
DropboxAuthenticate, main folder, subfolder, optional no-saveDropbox OAuth/persistent token store and Dropbox API upload.Use a test Dropbox app/account and folder.
MailchimpAPI key, verified connection, connect action, list, contact-field mappingsMailchimp HTTP API with API key; list/member operations.Use a test audience and an address you control; avoid sending campaigns.
ActiveCampaignAPI URL, API key, action, list/tag/contact/deal/automation mappingsActiveCampaign HTTP API with URL/key.Use a test list and disable campaign sends.
HubSpot CRMAuthenticate, action type, contact/custom-property mappingsOAuth integration and HubSpot API.Use a test portal or test contact properties; verify scopes.
ZendeskAuthenticate/account, action, ticket/user/organization mappingsOAuth integration and Zendesk API.Use a sandbox account if available; never create a customer-facing ticket during a dry run.
JiraAuthenticate, action, website/project/issue mappings, attachments/commentsOAuth integration and Jira API.Use a test project and issue type; map attachments deliberately.
TrelloAuthenticate, action, board/list/card mappings, labels/members/attachmentsOAuth integration and Trello API.Use a test board/list and avoid notifying production members.
Slackcustom message, send custom message, send as JSONSlack API/webhook-style delivery from the integration service.Use a private test channel; JSON mode changes the payload shape.
ClickSendusername, API key, recipient, message, optional schedule/event dateHTTPS API with Basic authentication (username:API key).Use an authorized test number; SMS can incur cost and requires consent.
WebHooksHTTPS URL, Basic auth user/password, GET/POST/PUT, JSON/form parametersServer HTTP request; validates URL and Basic-auth settings.Use a request inspector you control, HTTPS, and a non-production endpoint.
ZapierConnect the Zapier destination shown by the provider flowZapier trigger/webhook handoff.Use a draft/test Zap and a private destination; turn it on only after verification.
BigDataInsert or update action, collection ID, field mappingInternal Big Data service; mapping is JSON and field types are validated.Use a disposable collection and synthetic records.

Common setup and failure handling

  1. Define the minimum fields/files that may leave AbcSubmit.
  2. Authorize the provider with least privilege and record the account owner, scopes, destination, and revocation method.
  3. Map by field name, not visual position. For BigData, the collection ID and mapping must remain valid; insert and update are distinct actions.
  4. Submit one synthetic result, inspect the destination, then test provider timeout, invalid credentials, rate limits, duplicate delivery, and retry behavior.
  5. Review integration logs/queue status and establish an owner for failures. A form submission succeeding does not guarantee destination delivery.

Never store OAuth tokens, API keys, Basic-auth passwords, or webhook secrets in form fields, screenshots, URLs, or client-visible Code. Rotate credentials after testing and revoke the connection during offboarding.

Build better forms with AbcSubmit.