Versions Compared
Key
- This line was added.
- This line was removed.
- Formatting was changed.
Introduction
The connector package is zip file containing configuration files related to Custom Connectors. These configuration files has their own specific format. The intent of this document is to describe the content of connector package and format of the configuration files to be placed in package zip.
Content of Connector Package
The connector package zip contains below files:
- Image file for Connector.
- XML and JSON Layouts for Trigger and Action entities.
- Triggers And Actions Text file.
- Lookup configuration file.
Follow the below steps to create Connector package
Identify the Entities for Connector
Refer the Connector documentation to know about what entities are available in it. For example, for a CRM App the entities can be Lead, Contact, or Customer etc.
Make a list of entities and endpoints that you want to integrate with.
Make a list of attributes (fields) for each entity.
Create XML and JSON Layout files for each entity
For each entity
Create EntityResponse.xml file and EntityResponse.json file.
Create EntityRequest.xml file and EntityRequest.json file. For example, for entity Lead create LeadResponse.xml and LeadRequest.xml files.
For example: for entity Lead create file LeadResponse.xml and LeadRequest.xmlEdit the above created xml and JSON files in Text editor
Paste the below sample XML in xml file.
Code Block language xml title Entity Layout collapse true <Root> </Root>
Add the entity name as a tag in this xml file. For example, for Entity Lead see below xml.
Expandcode language xml title Entity Layout <
Root
>
<
leads
>
</
leads
>
</
Root
>
collapse true <Root> <leads> </leads> </Root>
Enter the attributes of this entity as individual elements in this xml, and save this file.
Code Blockexpand language xml title Entity Layout <
Root
>
<
leads
>
<
id
/>
<
fisrtcollapse true <Root> <leads> <id/> <fisrt_name/>
<
last<last_name/>
<
created<created_at/>
</
leads
>
</leads> </
Root
>
Root>
Paste below json into JSON file.
Expandcode language xml title Entity Layout collapse true {
"fieldName": "Root",
"expanded":
true
true,
"leaf":
false
false,
"children": []
}
Add the entity name as a children in this json file. For exmaple for Entity Lead see below json
Expandcode language xml title Entity Layout collapse true {
"fieldName": "Root",
"expanded":
true
true,
"leaf":
false
false,
"children": [{
"fieldName": "leads",
"expanded":
true
true,
"isAttribute":
false
false,
"leaf":
false
false,
"value": "\n\t",
"children": []
}]
}
Enter the attributes of this entity as individual elements in this json file and save this file.
Code Block expandlanguage xml title Entity Layout collapse true {
"fieldName": "Root",
"expanded":
true
true,
"leaf":
false
false,
"children": [{
"fieldName": "leads",
"expanded":
true
true,
"isAttribute":
false
false,
"leaf":
false
false,
"value": "\n\t",
"children": [{
"fieldName": "id",
"expanded":
true
true,
"isAttribute":
false
false,
"leaf":
true
true },
{
"fieldName": "fisrt_name",
"expanded":
true
true,
"isAttribute":
false
false,
"leaf":
true
true },
{
"fieldName": "last_name",
"expanded":
true
true,
"isAttribute":
false
false,
"leaf":
true
true },
{
"fieldName": "created_at",
"expanded":
true
true,
"isAttribute":
false
false,
"leaf":
true
true }]
}]
}
Now we should have below files ready (if we have 3 entities Lead, Contact and Customer )
LeadResponse.xml
LeadRequest.xml
ContactResponse.xml
ContactRequest.xml
CustomerResponse.xml
CustomerRequest.xml
LeadResponse.json
LeadRequest.json
ContactResponse.json
ContactRequest.json
CustomerResponse.json
CustomerRequest.json
Create Triggers and Actions File
Create a new Text file named triggersAndActions.txt and edit it in Text editor.
Paste below JSON data in this text file. This JSON data is sample data having no Triggers and actions in it.
Expandcode language xml title Triggers and Actions JSON collapse true {
// Triggers List
"triggers": [],
// Actions List
"actions": [],
// URL mapping for Each Trigger and Action
"urlMap": {},
// Method mapping for each trigger and Action
"methodMap": {}
}
For each entity identified in Step 1, create a Trigger object as shown below. The below JSON shows Trigger object for Entity "Lead"
Expandcode language xml title Trigger collapse true {
// The name visible to user on GUI while selecting Trigger for this Connector
"displayName" : "New Lead",
"entityName": "Lead",
// A unique value for this Trigger.
"value": "newLead",
"description": "Triggers when a new Lead is added to your account.",
// Name of the xml file containing the fields of this entity
"xmlLayoutPath": "LeadResponse.xml",
// Name of the json file containing the fields of this entity
"jsonLayoutPath": "LeadResponse.json",
// The date field you want to specify to fetch incremental data for this entity.
"field": "created_at"
}
Add the Trigger Object to triggers field in triggersAndActions.txt. By adding a trigger the file would look like as shown below
Code Block expandlanguage xml title Triggers and Actions JSON collapse true {
// Triggers List
"triggers": [
{
"displayName" : "New Lead",
"entityName": "Lead",
"value": "newLead",
"description": "Triggers when a new Lead is added to your account.",
"xmlLayoutPath": "LeadResponse.xml",
"jsonLayoutPath": "LeadResponse.json",
"field": "created_at"
}
],
// Actions List
"actions": [],
// URL mapping for Each Trigger and Action
"urlMap": {},
// Method mapping for each trigger and Action
"methodMap": {}
}
Create New Trigger objects for each Entity and add to triggers field. Below JSON shows triggersAndActions.txt file with two Triggers.
Expandcode language xml title Triggers and Actions JSON collapse true {
// Triggers List
"triggers": [
{
"displayName" : "New Lead",
"entityName": "Lead",
"value": "newLead",
"description": "Triggers when a new Lead is added to your account.",
"xmlLayoutPath": "LeadResponse.xml",
"jsonLayoutPath": "LeadResponse.json",
"field": "created_at"
},
{
"displayName" : "New Contact",
"entityName": "Contact",
"value": "newContact",
"description": "Triggers when a new Contact is added to your account.",
"xmlLayoutPath": "ContactResponse.xml",
"jsonLayoutPath": "ContactResponse.json",
"field": "created_at"
}
],
// Actions List
"actions": [],
// URL mapping for Each Trigger and Action
"urlMap": {},
// Method mapping for each trigger and Action
"methodMap": {}
}
For each entity identified in Step 1, create a Action object as shown below. The below JSON shows Action object for Entity "Lead"
Expandcode language xml title Triggers and Actions JSON collapse true {
// The name visible to user on GUI while selecting Trigger for this Connector
"displayName" : "Create Lead",
"entityName": "Lead",
// A unique value for this Trigger.
"value": "createLead",
"description": "Creates a new Lead to your account.",
// Name of the xml file containing the fields of this entity
"xmlLayoutPath": "LeadResponse.xml",
// Name of the json file containing the fields of this entity
"jsonLayoutPath": "LeadResponse.json",
}
Add the Action Object to actions field in triggersAndActions.txt. By adding a action the file would look like as shown below
Expandcode language xml title Triggers and Actions JSON collapse true {
// Triggers List
"triggers": [
{
"displayName" : "New Lead",
"entityName": "Lead",
"value": "newLead",
"description": "Triggers when a new Lead is added to your account.",
"xmlLayoutPath": "LeadResponse.xml",
"jsonLayoutPath": "LeadResponse.json",
"field": "created_at"
},
{
"displayName" : "New Contact",
"entityName": "Contact",
"value": "newContact",
"description": "Triggers when a new Contact is added to your account.",
"xmlLayoutPath": "ContactResponse.xml",
"jsonLayoutPath": "ContactResponse.json",
"field": "created_at"
}
],
// Actions List
"actions": [
{
"displayName" : "Create Lead",
"entityName": "Lead",
"value": "createLead",
"description": "Creates a new Lead in your account",
"xmlLayoutPath": "LeadRequest.xml",
"jsonLayoutPath": "LeadRequest.json",
}
],
// URL mapping for Each Trigger and Action
"urlMap": {},
// Method mapping for each trigger and Action
"methodMap": {}
}
Create New Action objects for each Entity and add to actions field. Below JSON shows triggersAndActions.txt file with two actions.
Expandcode language xml title Triggers and Actions JSON collapse true {
// Triggers List
"triggers": [
{
"displayName" : "New Lead",
"entityName": "Lead",
"value": "newLead",
"description": "Triggers when a new Lead is added to your account.",
"xmlLayoutPath": "LeadResponse.xml",
"jsonLayoutPath": "LeadResponse.json",
"field": "created_at"
},
{
"displayName" : "New Contact",
"entityName": "Contact",
"value": "newContact",
"description": "Triggers when a new Contact is added to your account.",
"xmlLayoutPath": "ContactResponse.xml",
"jsonLayoutPath": "ContactResponse.json",
"field": "created_at"
}
],
// Actions List
"actions": [
{
"displayName" : "Create Lead",
"entityName": "Lead",
"value": "createLead",
"description": "Creates a new Lead in your account",
"xmlLayoutPath": "LeadRequest.xml",
"jsonLayoutPath": "LeadRequest.json",
},
{
"displayName" : "Create Contact",
"entityName": "Contact",
"value": "createContact",
"description": "Creates a new Contact in your account",
"xmlLayoutPath": "ContactRequest.xml",
"jsonLayoutPath": "ContactRequest.json",
}
],
// URL mapping for Each Trigger and Action
"urlMap": {},
// Method mapping for each trigger and Action
"methodMap": {}
}
Add URL for each Trigger and Action defined in this file.
Define key value pairs for each trigger and Action.
The key should be Trigger or Action value defined in triggers or actions field.
The value should be the complete URL endpoint to be hit for this particular trigger or action.
Define a special Key Value pair for account Testing. The key should be "testaccount" and value should be the url to test the Connectivity with connector account
Code Blockexpand language xml title Triggers and Actions JSON {
collapse true { // Triggers List
"triggers": [
{
"displayName" : "New Lead",
"entityName": "Lead",
"value": "newLead",
"description": "Triggers when a new Lead is added to your account.",
"xmlLayoutPath": "LeadResponse.xml",
"jsonLayoutPath": "LeadResponse.json",
"field": "created_at"
},
{
"displayName" : "New Contact",
"entityName": "Contact",
"value": "newContact",
"description": "Triggers when a new Contact is added to your account.",
"xmlLayoutPath": "ContactResponse.xml",
"jsonLayoutPath": "ContactResponse.json",
"field": "created_at"
}
],
// Actions List
"actions": [
{
"displayName" : "Create Lead",
"entityName": "Lead",
"value": "createLead",
"description": "Creates a new Lead in your account",
"xmlLayoutPath": "LeadRequest.xml",
"jsonLayoutPath": "LeadRequest.json",
},
{
"displayName" : "Create Contact",
"entityName": "Contact",
"value": "createContact",
"description": "Creates a new Contact in your account",
"xmlLayoutPath": "ContactRequest.xml",
"jsonLayoutPath": "ContactRequest.json",
}
],
// URL mapping for Each Trigger and Action
"urlMap": {
"testaccount" : "< Test Connectivity URL >",
"newLead" : "< Lead URL >",
"newContact" : "< Contact URL >",
"createLead" : "< Lead URL >",
"createContact" : "< Contact URL >"
},
// Method mapping for each trigger and Action
"methodMap": {}
}
Add method for each Trigger and Action defined in this file.
Define key value pairs for each trigger and Action.
The key should be Trigger or Action value defined in triggers or actions field.
The value should be the complete http method to be used to hit url for this particular trigger or action.
Define a special Key Value pair for account Testing. The key should be "testaccount" and value should be the http method to be used to hit to test the Connectivity with connector account
Code Block expandlanguage xml title Triggers and Actions JSON collapse true {
// Triggers List
"triggers": [
{
"displayName" : "New Lead",
"entityName": "Lead",
"value": "newLead",
"description": "Triggers when a new Lead is added to your account.",
"xmlLayoutPath": "LeadResponse.xml",
"jsonLayoutPath": "LeadResponse.json",
"field": "created_at"
},
{
"displayName" : "New Contact",
"entityName": "Contact",
"value": "newContact",
"description": "Triggers when a new Contact is added to your account.",
"xmlLayoutPath": "ContactResponse.xml",
"jsonLayoutPath": "ContactResponse.json",
"field": "created_at"
}
],
// Actions List
"actions": [
{
"displayName" : "Create Lead",
"entityName": "Lead",
"value": "createLead",
"description": "Creates a new Lead in your account",
"xmlLayoutPath": "LeadRequest.xml",
"jsonLayoutPath": "LeadRequest.json",
},
{
"displayName" : "Create Contact",
"entityName": "Contact",
"value": "createContact",
"description": "Creates a new Contact in your account",
"xmlLayoutPath": "ContactRequest.xml",
"jsonLayoutPath": "ContactRequest.json",
}
],
// URL mapping for Each Trigger and Action
"urlMap": {
"testaccount" : "< Test Connectivity URL >",
"newLead" : "< Lead URL >",
"newContact" : "< Contact URL >",
"createLead" : "< Lead URL >",
"createContact" : "< Contact URL >"
},
// Method mapping for each trigger and Action
"methodMap": {
"testaccount" : "GET",
"newLead" : "GET",
"newContact" : "GET",
"createLead" : "POST",
"createContact" : "POST>"
}
}
Save this file. triggersAndActionsJson.txt file is ready.
Create Lookup file
Create a xml file named lookupConfiguration.xml
Paste below content into it
Add Each entity inCode Block expandlanguage xml title Lookup Configuration <
lookupConfiguration
>
<
columns
>
</
columns
>
<
operators
>
</
operators
>
</
lookupConfiguration
>
collapse true <lookupConfiguration> <columns> </columns> <operators> </operators> </lookupConfiguration>
Add Each entity in Columns tag as shown below
Code Blockexpand language xml title Lookup Configuration <
lookupConfiguration
>
<
columns
>
<
entity
type
collapse true <lookupConfiguration> <columns> <entity type="Lead">
</
entity
>
<
entity
type
</entity> <entity type="Contact">
</
entity
>
<
entity
type
</entity> <entity type="Customer">
</
entity
>
</
columns
>
<
operators
>
</
operators
>
</
lookupConfiguration
>
</entity> </columns> <operators> </operators> </lookupConfiguration>
Add attributes for each entity as shown below
Expandcode language xml title Lookup Configuration <
lookupConfiguration
>
<
columns
>
<
entity
type
collapse true <lookupConfiguration> <columns> <entity type="Lead">
<
column
fieldValue
<column fieldValue="first_name"
fieldName
fieldName="first_name"
fieldType
fieldType="string"
apiFieldType
apiFieldType="string"/>
</
entity
>
<
entity
type
</entity> <entity type="Contact">
<
column
fieldValue
<column fieldValue="first_name"
fieldName
fieldName="first_name"
fieldType
fieldType="string"
apiFieldType
apiFieldType="string"/>
</
entity
>
<
entity
type
</entity> <entity type="Customer">
<
column
fieldValue
<column fieldValue="first_name"
fieldName
fieldName="first_name"
fieldType
fieldType="string"
apiFieldType
apiFieldType="string"/>
</
entity
>
</
columns
>
<
operators
>
</
operators
>
</
lookupConfiguration
>
</entity> </columns> <operators> </operators> </lookupConfiguration>
Add Operators for each field Type and apiField type
Expandcode language xml title Lookup Configuration <
lookupConfiguration
>
<
columns
>
<
entity
type
collapse true <lookupConfiguration> <columns> <entity type="Lead">
<
column
fieldValue
<column fieldValue="first_name"
fieldName
fieldName="first_name"
fieldType
fieldType="string"
apiFieldType
apiFieldType="string"/>
</
entity
>
<
entity
type
</entity> <entity type="Contact">
<
column
fieldValue
<column fieldValue="first_name"
fieldName
fieldName="first_name"
fieldType
fieldType="string"
apiFieldType
apiFieldType="string"/>
</
entity
>
<
entity
type
</entity> <entity type="Customer">
<
column
fieldValue
<column fieldValue="first_name"
fieldName
fieldName="first_name"
fieldType
fieldType="string"
apiFieldType
apiFieldType="string"/>
</
entity
>
</
columns
>
<
operators
>
<
operator
displayName
</entity> </columns> <operators> <operator displayName="Equals"
value
value="equals"
type
type="string"
apiFieldType
apiFieldType="string"/>
<
operator
displayName
<operator displayName="Equals"
value
value="equals"
type
type="integer"
apiFieldType
apiFieldType="integer"/>
<
operator
displayName
<operator displayName="Equals"
value
value="equals"
type
type="boolean"
apiFieldType
apiFieldType="boolean"/>
<
operator
displayName
<operator displayName="Equals"
value
value="equals"
type
type="DateTime"
apiFieldType
apiFieldType="date-time"/>
<
string
>
<
operator
value
<string> <operator value="equals"/>
</
string
>
<
integer
>
<
operator
value
</string> <integer> <operator value="equals"/>
</
integer
>
<
boolean
>
<
operator
value
</integer> <boolean> <operator value="equals"/>
</
boolean
>
<
DateTime
>
<
operator
value
</boolean> <DateTime> <operator value="equals"/>
</
DateTime
>
</
operators
>
</
lookupConfiguration
>
</DateTime> </operators> </lookupConfiguration>
Lookup Configuration file is ready.
Download the Image File
You can download the connector Image file from respective Connector Provider.
The image file should be in PNG format.
The name of the image can be any valid name.
Zip the individual files in a zip file. See the Zip Content below.
Panel | ||||
---|---|---|---|---|
| ||||
What's newBest practicesFrequently asked questionsAdeptia Connect APIsAdeptia security report |