Build real-time sync with users’ 3rd party data
Build real-time sync with users’ 3rd party data
Keep your users’ data synced in real-time with managed webhooks and high frequency polling mechanisms, powered by an enterprise-ready workflow engine.
Keep your users’ data synced in real-time with managed webhooks and high frequency polling mechanisms, powered by an enterprise-ready workflow engine.
How this works in Paragon
We give you full control over the configuration of the sync, which breaks down into 3 workflows.
Initial Sync
Real-time pull
Push
Automate 3rd party actions
Trigger workflows within your own application when events occur in users’ 3rd party apps
Trigger workflows when events occur in users’ 3rd party apps
Build high frequency CRON jobs to poll for changes in other apps
Learn more
const triggerStep = new IntegrationEnabledStep();
const getContactsStep = integration.actions.searchRecords(
{ recordType: 'Contact', filterFormula: undefined },
{
autoRetry: false,
continueWorkflowOnError: false,
description: 'Get Contacts',
},
);
const mapStep = new FanOutStep({
description: 'Fan out over Contacts',
iterator: getContactsStep.output.result.records,
});
const requestStep = new RequestStep({
autoRetry: false,
continueWorkflowOnError: false,
description: 'Send data to API',
url: `https://yourapp.com/api/v4/contacts`,
method: 'POST',
params: { ['']: '' },
headers: {},
body: {
email:`${context.getInput(sharedInputs.contact_field_mapping).field['Email']}`,
first_name:`${context.getInput(sharedInputs.contact_field_mapping).field['First Name']}`,
last_name:`${context.getInput(sharedInputs.contact_field_mapping).field['First Name']}`,
},
bodyType: 'json',
});
triggerStep.nextStep(getContactsStep).nextStep(mapStep.branch(requestStep));
/**
* Pass all steps used in the workflow to the `.register()`
* function. The keys used in this function must remain stable.
*/
return this.register({
triggerStep,
getContactsStep,
mapStep,
requestStep,
});
Initial Sync
Real-time pull
Push
Automate 3rd party actions
Trigger workflows within your own application when events occur in users’ 3rd party apps
Trigger workflows when events occur in users’ 3rd party apps
Build high frequency CRON jobs to poll for changes in other apps
Learn more
const triggerStep = new IntegrationEnabledStep();
const getContactsStep = integration.actions.searchRecords(
{ recordType: 'Contact', filterFormula: undefined },
{
autoRetry: false,
continueWorkflowOnError: false,
description: 'Get Contacts',
},
);
const mapStep = new FanOutStep({
description: 'Fan out over Contacts',
iterator: getContactsStep.output.result.records,
});
const requestStep = new RequestStep({
autoRetry: false,
continueWorkflowOnError: false,
description: 'Send data to API',
url: `https://yourapp.com/api/v4/contacts`,
method: 'POST',
params: { ['']: '' },
headers: {},
body: {
email:`${context.getInput(sharedInputs.contact_field_mapping).field['Email']}`,
first_name:`${context.getInput(sharedInputs.contact_field_mapping).field['First Name']}`,
last_name:`${context.getInput(sharedInputs.contact_field_mapping).field['First Name']}`,
},
bodyType: 'json',
});
triggerStep.nextStep(getContactsStep).nextStep(mapStep.branch(requestStep));
/**
* Pass all steps used in the workflow to the `.register()`
* function. The keys used in this function must remain stable.
*/
return this.register({
triggerStep,
getContactsStep,
mapStep,
requestStep,
});
Initial Sync
Real-time pull
Push
Automate 3rd party actions
Trigger workflows within your own application when events occur in users’ 3rd party apps
Trigger workflows when events occur in users’ 3rd party apps
Build high frequency CRON jobs to poll for changes in other apps
Learn more
const triggerStep = new IntegrationEnabledStep();
const getContactsStep = integration.actions.searchRecords(
{ recordType: 'Contact', filterFormula: undefined },
{
autoRetry: false,
continueWorkflowOnError: false,
description: 'Get Contacts',
},
);
const mapStep = new FanOutStep({
description: 'Fan out over Contacts',
iterator: getContactsStep.output.result.records,
});
const requestStep = new RequestStep({
autoRetry: false,
continueWorkflowOnError: false,
description: 'Send data to API',
url: `https://yourapp.com/api/v4/contacts`,
method: 'POST',
params: { ['']: '' },
headers: {},
body: {
email:`${context.getInput(sharedInputs.contact_field_mapping).field['Email']}`,
first_name:`${context.getInput(sharedInputs.contact_field_mapping).field['First Name']}`,
last_name:`${context.getInput(sharedInputs.contact_field_mapping).field['First Name']}`,
},
bodyType: 'json',
});
triggerStep.nextStep(getContactsStep).nextStep(mapStep.branch(requestStep));
/**
* Pass all steps used in the workflow to the `.register()`
* function. The keys used in this function must remain stable.
*/
return this.register({
triggerStep,
getContactsStep,
mapStep,
requestStep,
});
Initial Sync
Real-time pull
Push
Automate 3rd party actions
Trigger workflows within your own application when events occur in users’ 3rd party apps
Trigger workflows when events occur in users’ 3rd party apps
Build high frequency CRON jobs to poll for changes in other apps
Learn more
const triggerStep = new IntegrationEnabledStep();
const getContactsStep = integration.actions.searchRecords(
{ recordType: 'Contact', filterFormula: undefined },
{
autoRetry: false,
continueWorkflowOnError: false,
description: 'Get Contacts',
},
);
const mapStep = new FanOutStep({
description: 'Fan out over Contacts',
iterator: getContactsStep.output.result.records,
});
const requestStep = new RequestStep({
autoRetry: false,
continueWorkflowOnError: false,
description: 'Send data to API',
url: `https://yourapp.com/api/v4/contacts`,
method: 'POST',
params: { ['']: '' },
headers: {},
body: {
email:`${context.getInput(sharedInputs.contact_field_mapping).field['Email']}`,
first_name:`${context.getInput(sharedInputs.contact_field_mapping).field['First Name']}`,
last_name:`${context.getInput(sharedInputs.contact_field_mapping).field['First Name']}`,
},
bodyType: 'json',
});
triggerStep.nextStep(getContactsStep).nextStep(mapStep.branch(requestStep));
/**
* Pass all steps used in the workflow to the `.register()`
* function. The keys used in this function must remain stable.
*/
return this.register({
triggerStep,
getContactsStep,
mapStep,
requestStep,
});
Configure schema mappings
Let your users define their own object and field mappings, or pre-define schema mappings for standard use cases.
Surface field mapping configurations
The embeddable Connect Portal provides out-of-the-box field mapping so you won’t need to maintain schema mappings across every tenant.
Surface field mapping configurations
The embeddable Connect Portal provides out-of-the-box field mapping so you won’t need to maintain schema mappings across every tenant.
Surface field mapping configurations
The embeddable Connect Portal provides out-of-the-box field mapping so you won’t need to maintain schema mappings across every tenant.
Surface field mapping configurations
The embeddable Connect Portal provides out-of-the-box field mapping so you won’t need to maintain schema mappings across every tenant.
Pre-define mappings
Transform and map data from the 3rd party apps the same way for all of your users with custom functions and integration actions.
Pre-define mappings
Transform and map data from the 3rd party apps the same way for all of your users with custom functions and integration actions.
Pre-define mappings
Transform and map data from the 3rd party apps the same way for all of your users with custom functions and integration actions.
Pre-define mappings
Transform and map data from the 3rd party apps the same way for all of your users with custom functions and integration actions.
Purpose built for high volume sync
Purpose built for high
volume sync
Whether you’re syncing millions of records or terrabytes of data, Paragon’s serverless workflow engine can handle it.
1,600
Requests per second
2TB
Data per day
Workflow engine
Run syncs and automations at scale on our Workflow Engine. Workflows can retry from errors automatically, replay from the original request payload, and show input and output for every running step.
1,600
Requests per second
2TB
Data per day
Workflow engine
Run syncs and automations at scale on our Workflow Engine. Workflows can retry from errors automatically, replay from the original request payload, and show input and output for every running step.
1,600
Requests per second
2TB
Data per day
Workflow engine
Run syncs and automations at scale on our Workflow Engine. Workflows can retry from errors automatically, replay from the original request payload, and show input and output for every running step.
Smart rate limits
Smart rate limits
Smart rate limits
Horizontal scaling
Use Git to version-control and introduce code review to your workflows and integration config.
Horizontal scaling
Use Git to version-control and introduce code review to your workflows and integration config.
Horizontal scaling
Use Git to version-control and introduce code review to your workflows and integration config.
Standalone queue
Main queue
Data sync
Dedicated queues
Install the Paragon SDK from npm and embed any integration into your app. Fully compatible with Next.js, React, and Vue apps.
Standalone queue
Main queue
Data sync
Dedicated queues
Install the Paragon SDK from npm and embed any integration into your app. Fully compatible with Next.js, React, and Vue apps.
Standalone queue
Main queue
Data sync
Dedicated queues
Install the Paragon SDK from npm and embed any integration into your app. Fully compatible with Next.js, React, and Vue apps.
Implement sync via your APIs or databases
Receive and sync 3rd party data via your APIs or directly into your database.
Implement sync via your APIs or databases
Receive and sync 3rd party data via your APIs or directly into your database.
Implement sync via your APIs or databases
Receive and sync 3rd party data via your APIs or directly into your database.
Implement sync via your APIs or databases
Receive and sync 3rd party data via your APIs or directly into your database.
Monitor every sync job
Monitor every sync job
Unlike ETL products which provide sync jobs that run in a black box, Paragon provides full observability into every update.
Unlike ETL products which provide sync jobs that run in a black box, Paragon provides full observability into every update.
Detailed view of every workflow run
Stream errors in real-time to your own monitoring platform (ie. Sentry, Datadog, etc.)
Customer dashboard for monitoring sync job statuses for each of your customers
Build real-time sync in minutes
Join 100+ SaaS companies that are scaling their integration roadmaps with Paragon.
Build real-time sync in minutes
Join 100+ SaaS companies that are scaling their integration roadmaps with Paragon.
Build real-time sync in minutes
Join 100+ SaaS companies that are scaling their integration roadmaps with Paragon.
Build real-time sync in minutes
Join 100+ SaaS companies that are scaling their integration roadmaps with Paragon.
Integrations
© 2024 Paragon Inc. All Rights Reserved
Integrations
© 2024 Paragon Inc. All Rights Reserved
Integrations
© 2024 Paragon Inc. All Rights Reserved