Step-by-step guide on how to create a custom integration with Terapi.
In Terapi, integration use-cases are mapped to syncs and actions. Before starting, determine if a sync, an action, or a combination of both fits your use case.
Pre-requisite: set up an integrations folder (follow our setup guide).
Edit the terapi.yaml configuration
In your integrations folder, open the terapi.yaml configuration file.
Configure a sync
This example terapi.yaml configuration describes a sync that continuously fetches contacts from Salesforce:
integrations:salesforce:# Integration IDsyncs:salesforce-contacts:# Sync name (must match integration script name)description:| Syncs contacts based on a field mapping object.runs:every day# Sync frequencyoutput:Contact# Output modelendpoint:/crm/contact# Unified Terapi endpoint (always GET for syncs)scopes:offline_access,api# Necessary scopesmodels:Contact:# Data model reference aboveid:string# Required unique IDfirst_name:stringlast_name:stringemail:stringaccount_id:stringlast_modified_date:string
Everytime that you modify the terapi.yaml configuration, run:
Among other things, this will generate the integration script files with initial scaffolding for any sync or action that you added (existing integration script files stay untouched).
Start script development mode
Before you plan to modify your integration scripts, run:
This command starts a process that continuously compiles your integration scripts and prints code syntax errors.
Write a sync script
Open the generated sync script (named [sync-name].ts) which should contain the following scaffolding :
Fill in the fetchData method with your integration code (in the example here, we fetch tasks from Salesforce):
In this integration script, the following Terapi utilities are used:
terapi.lastSyncDate is the last date at which the sync has run
await terapi.batchSave() to persist external data in Terapi's cache
await terapi.get() to perform an API request (automatically authenticated by Terapi)
await terapi.log() to print console logs (replaces console.log())
Easily test your integration scripts locally as you develop them with the dryrun function of the CLI (reference):
Because this is a dry run, syncs won't persist data in Terapi (and actions never persist data); instead, the retrieved data will be printed to the console.
By default, dryrun retrieves connections from your Dev environment.
Deploy your integration scripts
Terapi provides multiple cloud environments so you can test your integration scripts more thoroughly before releasing them to customers.
To deploy all integration scripts at once, run (reference):
In the Terapi UI, navigate to the Endpoints tab of the relevant integration(s) to verify the deployment succeeded.