CRM and data warehouse feeds
Keep a CRM or data warehouse in step with your applicants and Applications through the API, with one credential per integration and no connector to install.
Last updated
A CRM, such as Salesforce, or a data warehouse can copy your organisation's applicants and Applications from Backed through the API. Backed offers no CRM, Salesforce or data warehouse connector. Any tool or script that can make HTTPS requests reads the same documented API: it asks for a token, then reads each list page by page.
The API is pull-only. Your integration asks, and Backed answers with the records as they stand at that moment. Nothing is pushed to the other system, so it is only as current as its last sync.
Before you start
- Create one API credential per integration under
Settings > Profile and terms, on theAPI Accesstab, as API access explains. Name each for the system that uses it, such asCRM SyncorWarehouse.Readis enough; a feed never writes. - Keep each credential's
Client IDandClient Secretto hand. The secret is shown once. - Know your organisation's address: the one your team signs in at, such as
https://your-subdomain.backed.giving. Always use itshttps://form. A request over plain HTTP is refused, and no token is issued for it.
Steps
Ask for a token with the credential's
Client IDandClient Secret:POST /oauth/token grant_type=client_credentials&client_id=<Client ID>&client_secret=<Client Secret>The answer's
access_tokengoes in each request'sAuthorization: Bearer <access_token>header. A token lasts five days. When a call answers401 Unauthorized, ask for a new token and carry on.Read the applicants, 50 at a time, oldest first by
id:GET /api/v2/registration_entities?limit=50 GET /api/v2/registration_entities?limit=50>=<last id>Ask for each next page with
gtset to the lastidyou received, until a page comes back empty ([]).Read the Applications the same way:
GET /api/v2/funding_applications?limit=50 GET /api/v2/funding_applications?limit=50>=<last id>Load the records into your CRM or warehouse, matched on
id. An Application'sregistration_entitytells you which applicant it belongs to.
For an applicant's members, read GET /api/v2/registration_entities/:id. For an Application's
answers, read GET /api/v2/funding_applications/:id. Each is one call per record.
What the feed holds
The feed only ever holds your own organisation's records: every applicant organisation or person, and every Application whatever its state.
A deleted record simply stops appearing. There is no record of the deletion in the feed, so a
warehouse finds deletions by comparing a full read with the one before. Paging with gt from the
last id you stored picks up only new records; to catch changed records, read each list again
from the start.
One credential per integration
Give each system its own credential. Each may make 120 calls a minute, so a heavy warehouse load does not slow your CRM sync, and the API access list shows when each was last used.
When a system is retired or its secret may have leaked, delete its credential on the API Access
tab. Its token stops working on its next request, and it cannot get another. Deleting one
credential does not affect any other. The other integrations keep reading with the tokens they
already hold.
See also
This page uses Backed's default terms, such as Funding Round and Application Template. An organisation may rename them, so read each as your organisation's own term if you've renamed it.
Was this helpful?