FieldKo is built 100% natively on the Salesforce platform, which means you can leverage Salesforce’s standard APIs to integrate FieldKo data with your other systems. In other words, FieldKo’s data (like visits, inspection results, surveys, etc.) lives in Salesforce objects that you can access just like any standard or custom object. This overview will explain the main Salesforce APIs available (REST, Bulk, Tooling), how to authenticate, and some common integration use cases. We’ll also cover how to retrieve FieldKo records for reporting, push external data into FieldKo, and set up automated syncs – all using Salesforce’s standard API functionality (no proprietary code required).
Salesforce APIs for FieldKo Data
Salesforce provides a variety of APIs that FieldKo customers can use. Here are the most commonly used ones and how they apply to FieldKo:
REST API: A simple, resource-based API ideal for real-time integration. You can use REST endpoints to query, create, update, or delete FieldKo records over HTTP. For example, a GET request to
/services/data/v57.0/query?q=SELECT+...+FROM+Visit__c
could retrieve Visit records, and a POST to/services/data/v57.0/sobjects/Visit__c/
could insert a new Visit. The REST API supports JSON and XML, making it useful for web and mobile apps. This is perfect for pulling FieldKo data into a dashboard or pushing a single record from an external system in real time. Benefit: REST is straightforward and stateless, suitable for integrations needing quick responses.Bulk API: Designed for high-volume data loads. Bulk API (including the newer Bulk API 2.0) lets you insert or query large batches of FieldKo records asynchronously. Instead of sending one record at a time, you send a batch (for example, thousands of survey results in one go) and Salesforce processes it in the background. Use Bulk API for mass export/import, migrations, or nightly sync jobs involving FieldKo data. For instance, you might export all FieldKo survey responses weekly via Bulk API to a data warehouse. Bulk API is optimised for 10,000+ records and can handle up to 15,000 batches in a 24-hour period, with each batch supporting up to 10,000 records or a 10MB CSV file. Benefit: Bulk API is very efficient for batch processing – it greatly reduces API calls when dealing with large datasets by processing records in bulk asynchronously.
Tooling API: A specialised API for Salesforce metadata and developer tooling. While not typically used for day-to-day data transfer, Tooling API can be useful for advanced scenarios, like retrieving FieldKo’s custom object definitions, automating org setup, or building custom admin tools. For example, a developer could use Tooling API to query which FieldKo custom fields exist or to deploy an Apex trigger that interacts with FieldKo records. Use Tooling API when you need fine-grained access to org metadata or to perform operations that Metadata API might handle in bulk. Common use cases include integrating with source control, continuous integration deployments, or manipulating Apex classes/triggers related to FieldKo. Benefit: Tooling API provides insight into the Salesforce org’s configuration and is mostly used by developers for automation and DevOps, rather than for everyday data syncing.
Salesforce also offers other APIs like SOAP, Metadata API, Streaming API, etc. These are available to you as well, but the REST, Bulk, and Tooling APIs are the primary ones for integrating FieldKo data. SOAP API, for instance, could be used in place of REST if your system requires XML and a formal WSDL contract, and Streaming API can push real-time notifications of changes. However, for most FieldKo integration needs, REST and Bulk are the go-to solutions.
Authentication Methods (OAuth and API Token)
To use Salesforce APIs, you must authenticate to Salesforce (your FieldKo org) so that the API calls have proper permission. There are two common authentication methods:
OAuth 2.0 (Recommended): Salesforce supports OAuth 2.0 for secure authentication without exposing user credentials. You would create a Connected App in Salesforce and use an OAuth flow (such as Web Server Flow, User-Agent Flow, or JWT Bearer Token flow) to obtain an access token. For example, a server integration might use the JWT flow to get an OAuth token for a dedicated “API user” without interactive login. Once you have the token, your integration passes it in the HTTP Authorization header (e.g.
Authorization: Bearer <token>
) on each API request. OAuth tokens are essentially session IDs and grant the same access as the user or integration user that obtained them. This is the preferred method for most integrations, because it avoids storing plain passwords. In fact, OAuth 2.0 is the preferred method if you are requesting credentials from individual users – you get an access token that can be used for API calls, and that token is generally interchangeable with a Salesforce session ID.Username/Password + Security Token: An older method is to use Salesforce credentials directly. In this approach, your integration uses a Salesforce username, password, and a Security Token (an extra auto-generated string Salesforce provides for API logins from untrusted networks). The security token is usually appended to the password when logging in via API or SOAP. For example, if your password is
MyPass!
and your token isXYZ123
, the integration would attempt to log in withMyPass!XYZ123
. Once logged in (using the SOAP login() call or a REST OAuth "Resource Owner Password Credentials" flow), Salesforce returns a session ID to use for subsequent calls. Note: You must append the security token to the password unless your org has added your integration’s IP address to its trusted IP list. This method works and is simple, but it’s less secure (storing a password) and will be deprecated in the future in favor of OAuth. Use it only for internal or legacy integrations that can’t do OAuth.
Regardless of method, the result is an authenticated session ID or token that your client will include with each API request. Be sure the user or integration user used for authentication has the proper FieldKo permissions (i.e. has a FieldKo license assigned and the necessary object permissions to FieldKo records). We recommend creating a dedicated integration user in Salesforce for API access, assign it a FieldKo permission set or profile, and use OAuth for authentication. This way, if needed, you can easily monitor or revoke that user’s access without affecting a real person’s login.
Accessing FieldKo’s Data Model via API
Because FieldKo is native to Salesforce, its data model is accessible through the same APIs as your standard Salesforce objects. FieldKo will have a set of custom objects (e.g. perhaps Visit__c
, Inspection__c
, Survey__c
, etc. – the exact object API names can be found in FieldKo’s documentation or via Salesforce Schema). You can query these objects or insert/update them using the APIs described above. A few tips:
Using REST API for FieldKo records: You can use the SOQL query resource or the sObject resource. For example, to fetch all “Visit” records updated today, you might call:
GET /services/data/v57.0/query?q=SELECT+Name,+Status__c,+Date__c+FROM+Visit__c+WHERE+LastModifiedDate=TODAY
(This would return a JSON with the records). To create a new record, you could do a POST to/sobjects/Visit__c
with a JSON body. The key is to use FieldKo’s object API names and field API names, which you can find by viewing the object in Salesforce Object Manager. No special API – just use the standard Salesforce object naming.Using Bulk API for large exports/updates: If you need to extract a lot of FieldKo data (say all surveys from last year) or load a large batch of new records into FieldKo, Bulk API is ideal. You would create a Bulk job, submit batches of records (e.g. CSV files of survey data), and then Salesforce will process it. On completion, you can retrieve the results (successes and errors). Many ETL tools and integration platforms can use Bulk API behind the scenes. Bulk API is also great for scheduled nightly syncs – e.g. dumping all new FieldKo “Inspection” records of the day to an external database for reporting. Keep in mind Bulk API’s limits (15k batches per 24 hours, 10k records per batch as noted) when planning your jobs. Also note that Bulk queries have some restrictions on query complexity and might return data in batches that you need to consolidate.
Using Tooling API for FieldKo metadata: Most FieldKo customers won’t need Tooling API, but if you’re developing custom extensions or tools, it can be handy. For example, you could query the Tooling API’s
CustomObject
orCustomField
objects to dynamically discover FieldKo’s object schema (like to generate dynamic forms based on FieldKo fields). Or use Tooling API to run Apex scripts that involve FieldKo objects (by creating an Apex anonymous execution). These are advanced use cases – typically only Salesforce developers working on the org would do this. Standard reporting or integration tasks do not require the Tooling API.
Pro Tip: Use Salesforce’s API Explorer or tools like Workbench or Postman to test your API calls. For instance, Workbench (a Salesforce tool) allows you to log in via OAuth and then make REST or SOQL queries on FieldKo objects interactively – great for discovering how FieldKo data is structured and ensuring your queries are correct. You can also use the Salesforce “Describe” calls (e.g. GET /sobjects/Visit__c/describe
) to see the fields and picklist values on a FieldKo object via API. This is very useful when building integration logic.
Common Use Cases for FieldKo API Integration
The flexibility of Salesforce’s APIs means you can integrate FieldKo with almost anything. Here are some common use cases and how you might implement them:
Extracting FieldKo Data for Reporting or BI: Many customers want to include FieldKo’s inspection or survey data in external reports or business intelligence tools. Using the REST API or Bulk API, you can pull data out of Salesforce on a schedule. For example, you might run a nightly job that queries all new inspection results from FieldKo and writes them to an on-premise SQL database or a data lake for analysis. If the data volume is small (a few hundred records a day), a REST API script that queries and pages through results is fine. For larger volumes, use Bulk API to do a mass query and download the results in CSV format. This way, you can create consolidated reports combining FieldKo data with data from other systems. Many ETL tools and middleware (like MuleSoft, Boomi, etc.) have Salesforce connectors that make this easier – you’d configure a SOQL query to fetch FieldKo object records and then transfer them to your target system.
Pushing External Data into FieldKo: You might have other systems (ERP, HR system, IoT sensors, etc.) that need to send data into FieldKo (which is Salesforce) to trigger field processes or to be available on mobile forms. With the Salesforce APIs, you can create or update FieldKo records programmatically. For instance, imagine you have an ERP that approves a work order – you could have it call the Salesforce REST API to create a corresponding “Visit” record in FieldKo so that a field agent can see it in their checklist. If doing this in real-time, a direct REST API call on record change is great. If doing in batches (say, syncing a list of assets or sites nightly), Bulk API could load thousands of records in one job. Because FieldKo is just Salesforce data, you can even use Salesforce’s own integration features like External Services or Platform Events to facilitate this (advanced scenario: an external system could send a Platform Event that an Apex trigger in FieldKo’s package subscribes to, thereby kicking off an in-app process).
Automating Bi-Directional Syncs: In some cases, you might want a two-way sync between FieldKo and another system – for example, syncing customer or location info, so that both systems have the latest data. While Salesforce doesn’t have a built-in two-way sync tool, you can implement this with a combination of API calls and perhaps middleware. For example, you could use a scheduled job that calls Salesforce REST API to get updated FieldKo records (modified since last run) and updates your other system, and vice-versa calls to update FieldKo with changes from the other side. Salesforce APIs support filtering by date (e.g. using SOQL
WHERE LastModifiedDate > X
), which helps in incrementally pulling just changed data. For near real-time sync, you might use the Streaming API (PushTopic or Change Data Capture) to receive instant notifications of changes in FieldKo objects, then call an external API – or the external system might send outbound messages/webhooks to Salesforce. There are also iPaaS solutions (Integration Platform as a Service) that can listen and sync for you with low-code. The key point: anything that needs to stay consistent between FieldKo and another system can be kept in sync using the API – just design carefully to avoid infinite update loops and use an external ID or unique identifier to match records.Triggering External Actions from FieldKo (and vice versa): Perhaps you want that when a FieldKo inspection is marked “Complete”, an external system is notified to generate an invoice. Salesforce’s API can be invoked from inside via Apex callouts – or simpler, you can use Salesforce Outbound Messages or Platform Events. While this is slightly out of scope of using the standard APIs directly, it’s good to know FieldKo (being on Salesforce) can participate in event-driven integration. For example, a FieldKo completion could fire a Flow that calls an external REST API (Salesforce can do HTTP callouts from flows now) to trigger the invoice system. Conversely, an external system can call Salesforce APIs (as discussed) to update FieldKo records to kick off in-app workflows. Essentially, the APIs enable FieldKo to be part of a larger automated process across your business.
Tip: Always use a sandbox org or a test environment to experiment with API integration before touching production data. You can create a Salesforce Sandbox (if you have that feature) with FieldKo installed to test your scripts safely. Alternatively, use a Developer Edition org with FieldKo trial to prototype the integration.
Salesforce API Limits to Consider
When integrating with FieldKo via the Salesforce APIs, be aware of Salesforce’s governor limits and allocations on API usage. Salesforce imposes these limits to ensure stability for all customers in the multi-tenant environment:
Daily API Call Limits: Every Salesforce org has a limit on the number of API calls per 24-hour period, which depends on your edition and number of user licenses. FieldKo doesn’t have separate limits – it relies on the Salesforce org’s limits. For example, for an Enterprise Edition org, the base limit is 100,000 API calls per 24 hours, plus an additional 1,000 calls for each Salesforce user license in the org. So if you have 15 users, that’s 115,000 calls per day. (Different license types contribute different amounts; e.g. a Force.com Platform license also typically adds 1,000, etc.) If you need more, Salesforce offers API call add-on packs, but most FieldKo customers find the default ample. Monitor your API usage in Salesforce Setup (there’s an “API Requests, Last 24 Hours” gauge) especially after you first deploy a new integration, to ensure you stay within limits. If you approach the limit, you may need to optimize or throttle your external calls.
Bulk API Limits: Bulk API calls don’t count in the same way as REST calls, but they have their own quotas. You can submit up to 15,000 batches per rolling 24 hours across Bulk API 1.0 and 2.0. Each batch can contain up to 10,000 records. That means theoretically you could load 150 million records a day (which is far beyond typical usage). Also, Bulk queries (for extracting data) have limits on the number of records they return per batch. In practice, if you are doing nightly syncs with Bulk API, you’ll seldom hit these Bulk-specific limits, but it’s good to know they exist. If you do a massive one-time migration of FieldKo data (say importing millions of legacy inspection records), plan it in chunks and monitor batch usage.
Concurrency and Miscellaneous Limits: Salesforce also limits concurrent long-running API requests. For example, you can have up to 25 concurrent REST calls running longer than 20 seconds in a production org. If you have an integration that makes many simultaneous calls (e.g. 50 threads all calling at once), you might hit this and get some errors to back off. Also, queries have a timeout (generally 2 minutes for API queries) – a very complex SOQL query might fail if it runs too long. To avoid issues, ensure your SOQL queries are selective (use indexes or filters) and try not to do huge data dumps via the REST API in a single call (better to use Bulk API or break into smaller chunks).
API Governance Best Practices: Try to design your integration to be efficient with calls. For instance, instead of retrieving one FieldKo record at a time in a loop (which could use 100 calls for 100 records), use a SOQL query to fetch multiple records in one go, or use the REST API’s Composite batch call to combine multiple operations into one request. If pushing data, you can use the REST API’s Composite Tree to insert, say, 50 records in one call. This helps stay within limits. Additionally, caching or storing data externally can reduce repetitive calls (for example, caching reference data like lists of stores or assets rather than querying them from Salesforce repeatedly).
In summary, Salesforce’s standard APIs give you full programmatic access to FieldKo. You can extract and insert FieldKo data, integrate with other enterprise systems, and automate processes – all with the robust, well-documented Salesforce API ecosystem. By using OAuth for authentication and following best practices (respecting limits, using bulk operations when needed, and securing your integration), FieldKo customers can safely extend their solution far beyond the Salesforce UI. This empowers you to, for instance, generate consolidated reports, keep data in sync across platforms, or streamline field workflows by connecting FieldKo with the rest of your technology stack.
If you’re ever unsure where to start, Salesforce’s developer documentation and the FieldKo support team (as an ISV partner) can provide guidance on using these APIs effectively. With FieldKo and Salesforce APIs, you have a powerful toolkit to integrate and automate your field operations.