Appearance
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
| Provider | AbcSubmit settings/action | Authentication or SDK path | Test/sandbox guidance |
|---|---|---|---|
| Google Sheets | Connect account, choose spreadsheet/sheet, map fields | Google API client + OAuth callback; Sheets API writes rows. | Use a disposable spreadsheet and a restricted test Google account/project. |
| Google Drive | Authenticate, main folder, subfolder, optional no-save | Google API client + OAuth; Drive API uploads files. | Use a test Drive folder and least-privilege scopes; verify inherited sharing. |
| Google Calendar | Authenticate, calendar, title/start/end/location/description, optional no-save | Google API client + OAuth; Calendar API creates events. | Use a test calendar and short-lived event windows; delete test events only if authorized. |
| Dropbox | Authenticate, main folder, subfolder, optional no-save | Dropbox OAuth/persistent token store and Dropbox API upload. | Use a test Dropbox app/account and folder. |
| Mailchimp | API key, verified connection, connect action, list, contact-field mappings | Mailchimp HTTP API with API key; list/member operations. | Use a test audience and an address you control; avoid sending campaigns. |
| ActiveCampaign | API URL, API key, action, list/tag/contact/deal/automation mappings | ActiveCampaign HTTP API with URL/key. | Use a test list and disable campaign sends. |
| HubSpot CRM | Authenticate, action type, contact/custom-property mappings | OAuth integration and HubSpot API. | Use a test portal or test contact properties; verify scopes. |
| Zendesk | Authenticate/account, action, ticket/user/organization mappings | OAuth integration and Zendesk API. | Use a sandbox account if available; never create a customer-facing ticket during a dry run. |
| Jira | Authenticate, action, website/project/issue mappings, attachments/comments | OAuth integration and Jira API. | Use a test project and issue type; map attachments deliberately. |
| Trello | Authenticate, action, board/list/card mappings, labels/members/attachments | OAuth integration and Trello API. | Use a test board/list and avoid notifying production members. |
| Slack | custom message, send custom message, send as JSON | Slack API/webhook-style delivery from the integration service. | Use a private test channel; JSON mode changes the payload shape. |
| ClickSend | username, API key, recipient, message, optional schedule/event date | HTTPS API with Basic authentication (username:API key). | Use an authorized test number; SMS can incur cost and requires consent. |
| WebHooks | HTTPS URL, Basic auth user/password, GET/POST/PUT, JSON/form parameters | Server HTTP request; validates URL and Basic-auth settings. | Use a request inspector you control, HTTPS, and a non-production endpoint. |
| Zapier | Connect the Zapier destination shown by the provider flow | Zapier trigger/webhook handoff. | Use a draft/test Zap and a private destination; turn it on only after verification. |
| BigData | Insert or update action, collection ID, field mapping | Internal Big Data service; mapping is JSON and field types are validated. | Use a disposable collection and synthetic records. |
Common setup and failure handling
- Define the minimum fields/files that may leave AbcSubmit.
- Authorize the provider with least privilege and record the account owner, scopes, destination, and revocation method.
- Map by field name, not visual position. For BigData, the collection ID and mapping must remain valid; insert and update are distinct actions.
- Submit one synthetic result, inspect the destination, then test provider timeout, invalid credentials, rate limits, duplicate delivery, and retry behavior.
- 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.