{
"$schema": "https://unpkg.com/@camunda/zeebe-element-templates-json-schema/resources/schema.json",
"name": "Easy Post Outbound Connector",
"id": "io.camunda.connectors.EasyPost.v1",
"version": 5,
"engines": {
"camunda": "^8.3"
},
"description": "Manage addresses, parcels, and shipments with Easy Post.",
"metadata": {
"keywords": [
"create address",
"create parcel",
"create shipment",
"buy shipment",
"verify address",
"retrieve tracker by ID"
]
},
"documentationRef": "https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/easy-post/",
"category": {
"id": "connectors",
"name": "Connectors"
},
"appliesTo": [
"bpmn:Task"
],
"elementType": {
"value": "bpmn:ServiceTask"
},
"groups": [
{
"id": "operation",
"label": "Operation"
},
{
"id": "authentication",
"label": "Authentication"
},
{
"id": "input",
"label": "Input"
},
{
"id": "output",
"label": "Output"
},
{
"id": "errors",
"label": "Error handling"
}
],
"properties": [
{
"type": "Hidden",
"value": "io.camunda:http-json:1",
"binding": {
"property": "type",
"type": "zeebe:taskDefinition"
}
},
{
"label": "Operation type",
"id": "operationType",
"group": "operation",
"type": "Dropdown",
"optional": false,
"choices": [
{
"name": "Create an address",
"value": "createAddress"
},
{
"name": "Create a parcel",
"value": "createParcel"
},
{
"name": "Create a shipment",
"value": "createShipment"
},
{
"name": "Buy a shipment",
"value": "buyShipment"
},
{
"name": "Verify a created address",
"value": "verifyAddressById"
},
{
"name": "Retrieve a tracker by ID",
"value": "retrieveTracker"
}
],
"binding": {
"type": "zeebe:input",
"name": "operationType"
}
},
{
"description": "Authentication type",
"id": "authentication.type",
"group": "authentication",
"type": "Hidden",
"optional": false,
"value": "basic",
"binding": {
"type": "zeebe:input",
"name": "authentication.type"
},
"constraints": {
"notEmpty": true
}
},
{
"label": "API key",
"id": "authentication.username",
"group": "authentication",
"type": "String",
"feel": "optional",
"optional": false,
"binding": {
"type": "zeebe:input",
"name": "authentication.username"
},
"constraints": {
"notEmpty": true
}
},
{
"id": "authentication.password",
"description": "This field will replace to empty string. EasyPost API use only username field for put API key",
"group": "authentication",
"type": "Hidden",
"optional": true,
"value": "SPEC_PASSWORD_EMPTY_PATTERN",
"constraints": {
"notEmpty": false
},
"binding": {
"type": "zeebe:input",
"name": "authentication.password"
}
},
{
"description": "post method",
"type": "Hidden",
"optional": false,
"value": "post",
"binding": {
"type": "zeebe:input",
"name": "method"
},
"constraints": {
"notEmpty": true
},
"condition": {
"property": "operationType",
"oneOf": [
"createAddress",
"createParcel",
"createShipment",
"buyShipment"
]
}
},
{
"description": "get method",
"type": "Hidden",
"optional": false,
"value": "get",
"binding": {
"type": "zeebe:input",
"name": "method"
},
"constraints": {
"notEmpty": true
},
"condition": {
"property": "operationType",
"oneOf": [
"verifyAddressById",
"retrieveTracker"
]
}
},
{
"label": "Name",
"id": "body.address.name",
"description": "Name of the person. Both name and company can be included",
"group": "input",
"type": "String",
"feel": "optional",
"optional": true,
"binding": {
"type": "zeebe:input",
"name": "body.address.name"
},
"constraints": {
"notEmpty": false
},
"condition": {
"property": "operationType",
"oneOf": [
"createAddress"
]
}
},
{
"label": "Company",
"id": "body.address.company",
"description": "Name of the organization. Both name and company can be included",
"group": "input",
"type": "String",
"feel": "optional",
"optional": true,
"binding": {
"type": "zeebe:input",
"name": "body.address.company"
},
"constraints": {
"notEmpty": false
},
"condition": {
"property": "operationType",
"oneOf": [
"createAddress"
]
}
},
{
"label": "Phone",
"id": "body.address.phone",
"description": "Phone number to reach the person or organization",
"group": "input",
"type": "String",
"feel": "optional",
"optional": true,
"binding": {
"type": "zeebe:input",
"name": "body.address.phone"
},
"constraints": {
"notEmpty": false
},
"condition": {
"property": "operationType",
"oneOf": [
"createAddress"
]
}
},
{
"label": "Address line 1",
"id": "body.address.street1",
"description": "First line of the address",
"group": "input",
"type": "String",
"feel": "optional",
"optional": true,
"binding": {
"type": "zeebe:input",
"name": "body.address.street1"
},
"constraints": {
"notEmpty": false
},
"condition": {
"property": "operationType",
"oneOf": [
"createAddress"
]
}
},
{
"label": "Address line 2",
"id": "body.address.street2",
"description": "Second line of the address",
"group": "input",
"type": "String",
"feel": "optional",
"optional": true,
"binding": {
"type": "zeebe:input",
"name": "body.address.street2"
},
"constraints": {
"notEmpty": false
},
"condition": {
"property": "operationType",
"oneOf": [
"createAddress"
]
}
},
{
"label": "City",
"id": "body.address.city",
"description": "City the address is located in",
"group": "input",
"type": "String",
"feel": "optional",
"optional": true,
"binding": {
"type": "zeebe:input",
"name": "body.address.city"
},
"constraints": {
"notEmpty": false
},
"condition": {
"property": "operationType",
"oneOf": [
"createAddress"
]
}
},
{
"label": "State or province",
"id": "body.address.state",
"description": "State or province the address is located in",
"group": "input",
"type": "String",
"feel": "optional",
"optional": true,
"binding": {
"type": "zeebe:input",
"name": "body.address.state"
},
"constraints": {
"notEmpty": false
},
"condition": {
"property": "operationType",
"oneOf": [
"createAddress"
]
}
},
{
"label": "Email",
"id": "body.address.email",
"group": "input",
"type": "String",
"feel": "optional",
"optional": true,
"binding": {
"type": "zeebe:input",
"name": "body.address.email"
},
"constraints": {
"notEmpty": false
},
"condition": {
"property": "operationType",
"oneOf": [
"createAddress"
]
}
},
{
"label": "ZIP or postal code",
"id": "body.address.zip",
"description": "The ZIP or postal code where the address is located",
"group": "input",
"type": "String",
"feel": "optional",
"optional": true,
"binding": {
"type": "zeebe:input",
"name": "body.address.zip"
},
"constraints": {
"notEmpty": false
},
"condition": {
"property": "operationType",
"oneOf": [
"createAddress"
]
}
},
{
"label": "Country",
"id": "body.address.country",
"description": "The country code of the address location",
"group": "input",
"type": "String",
"feel": "optional",
"optional": true,
"binding": {
"type": "zeebe:input",
"name": "body.address.country"
},
"constraints": {
"notEmpty": false
},
"condition": {
"property": "operationType",
"oneOf": [
"createAddress"
]
}
},
{
"label": "Federal tax ID",
"id": "body.address.federal_tax_id",
"description": "Federal tax identifier of the person or organization",
"group": "input",
"type": "String",
"feel": "optional",
"optional": true,
"binding": {
"type": "zeebe:input",
"name": "body.address.federal_tax_id"
},
"constraints": {
"notEmpty": false
},
"condition": {
"property": "operationType",
"oneOf": [
"createAddress"
]
}
},
{
"label": "State tax ID",
"id": "body.address.state_tax_id",
"description": "State tax identifier of the person or organization",
"group": "input",
"type": "String",
"feel": "optional",
"optional": true,
"binding": {
"type": "zeebe:input",
"name": "body.address.state_tax_id"
},
"constraints": {
"notEmpty": false
},
"condition": {
"property": "operationType",
"oneOf": [
"createAddress"
]
}
},
{
"label": "Weight",
"id": "body.parcel.weight",
"description": "Weight of parcel in oz",
"group": "input",
"type": "String",
"feel": "optional",
"optional": false,
"binding": {
"type": "zeebe:input",
"name": "body.parcel.weight"
},
"constraints": {
"notEmpty": true
},
"condition": {
"property": "operationType",
"oneOf": [
"createParcel"
]
}
},
{
"label": "Length",
"id": "body.parcel.length",
"description": "Required if width and/or height are present (inches)",
"group": "input",
"type": "String",
"feel": "optional",
"optional": true,
"binding": {
"type": "zeebe:input",
"name": "body.parcel.length"
},
"constraints": {
"notEmpty": false
},
"condition": {
"property": "operationType",
"oneOf": [
"createParcel"
]
}
},
{
"label": "Width",
"id": "body.parcel.width",
"description": "Required if length and/or height are present (inches)",
"group": "input",
"type": "String",
"feel": "optional",
"optional": true,
"binding": {
"type": "zeebe:input",
"name": "body.parcel.width"
},
"constraints": {
"notEmpty": false
},
"condition": {
"property": "operationType",
"oneOf": [
"createParcel"
]
}
},
{
"label": "Height",
"id": "body.parcel.height",
"description": "Required if length and/or width are present (inches)",
"group": "input",
"type": "String",
"feel": "optional",
"optional": true,
"binding": {
"type": "zeebe:input",
"name": "body.parcel.height"
},
"constraints": {
"notEmpty": false
},
"condition": {
"property": "operationType",
"oneOf": [
"createParcel"
]
}
},
{
"label": "Predefined package",
"id": "body.parcel.predefined_package",
"description": "Optional, one of predefined packages",
"group": "input",
"type": "String",
"feel": "optional",
"optional": true,
"binding": {
"type": "zeebe:input",
"name": "body.parcel.predefined_package"
},
"constraints": {
"notEmpty": false
},
"condition": {
"property": "operationType",
"oneOf": [
"createParcel"
]
}
},
{
"label": "To address",
"id": "body.shipment.to_address.id",
"description": "ID of the destination address",
"group": "input",
"type": "String",
"feel": "optional",
"optional": false,
"binding": {
"type": "zeebe:input",
"name": "body.shipment.to_address.id"
},
"constraints": {
"notEmpty": true
},
"condition": {
"property": "operationType",
"oneOf": [
"createShipment"
]
}
},
{
"label": "From address",
"id": "body.shipment.from_address.id",
"description": "ID of the origin address",
"group": "input",
"type": "String",
"feel": "optional",
"optional": false,
"binding": {
"type": "zeebe:input",
"name": "body.shipment.from_address.id"
},
"constraints": {
"notEmpty": true
},
"condition": {
"property": "operationType",
"oneOf": [
"createShipment"
]
}
},
{
"label": "Parcel",
"id": "body.shipment.parcel.id",
"description": "ID of the parcel",
"group": "input",
"type": "String",
"feel": "optional",
"optional": false,
"binding": {
"type": "zeebe:input",
"name": "body.shipment.parcel.id"
},
"constraints": {
"notEmpty": true
},
"condition": {
"property": "operationType",
"oneOf": [
"createShipment"
]
}
},
{
"label": "Shipment ID",
"id": "shipmentIdValue",
"description": "ID of the shipment",
"group": "input",
"type": "String",
"feel": "optional",
"optional": false,
"binding": {
"type": "zeebe:input",
"name": "shipmentIdValue"
},
"constraints": {
"notEmpty": true
},
"condition": {
"property": "operationType",
"oneOf": [
"buyShipment"
]
}
},
{
"label": "Rate ID",
"id": "body.rate.id",
"description": "ID of the actual rate quote for this service",
"group": "input",
"type": "String",
"feel": "optional",
"optional": false,
"binding": {
"type": "zeebe:input",
"name": "body.rate.id"
},
"constraints": {
"notEmpty": true
},
"condition": {
"property": "operationType",
"oneOf": [
"buyShipment"
]
}
},
{
"label": "Address ID",
"id": "addressIdValue",
"description": "The ID of the address that has already been created",
"group": "input",
"type": "String",
"feel": "optional",
"optional": false,
"binding": {
"type": "zeebe:input",
"name": "addressIdValue"
},
"constraints": {
"notEmpty": true
},
"condition": {
"property": "operationType",
"oneOf": [
"verifyAddressById"
]
}
},
{
"label": "Tracker ID",
"id": "trackerIdValue",
"description": "ID of tracker",
"group": "input",
"type": "String",
"feel": "optional",
"optional": false,
"binding": {
"type": "zeebe:input",
"name": "trackerIdValue"
},
"constraints": {
"notEmpty": true
},
"condition": {
"property": "operationType",
"oneOf": [
"retrieveTracker"
]
}
},
{
"type": "Hidden",
"id": "baseUrl",
"optional": false,
"value": "https://api.easypost.com",
"binding": {
"type": "zeebe:input",
"name": "baseUrl"
},
"constraints": {
"notEmpty": true
}
},
{
"type": "Hidden",
"id": "addressUrl",
"optional": false,
"value": "=baseUrl+\"/v2/addresses\"",
"binding": {
"type": "zeebe:input",
"name": "url"
},
"constraints": {
"notEmpty": true
},
"condition": {
"property": "operationType",
"oneOf": [
"createAddress"
]
}
},
{
"type": "Hidden",
"id": "parcelsUrl",
"optional": false,
"value": "=baseUrl+ \"/v2/parcels\"",
"binding": {
"type": "zeebe:input",
"name": "url"
},
"constraints": {
"notEmpty": true
},
"condition": {
"property": "operationType",
"oneOf": [
"createParcel"
]
}
},
{
"type": "Hidden",
"id": "createShipmentsUrl",
"optional": false,
"value": "=baseUrl+\"/v2/shipments\"",
"binding": {
"type": "zeebe:input",
"name": "url"
},
"constraints": {
"notEmpty": true
},
"condition": {
"property": "operationType",
"oneOf": [
"createShipment"
]
}
},
{
"type": "Hidden",
"id": "buyShipmentUrl",
"optional": false,
"value": "=baseUrl+\"/v2/shipments/\"+shipmentIdValue+\"/buy\"",
"binding": {
"type": "zeebe:input",
"name": "url"
},
"constraints": {
"notEmpty": true
},
"condition": {
"property": "operationType",
"oneOf": [
"buyShipment"
]
}
},
{
"type": "Hidden",
"id": "verifyAddressUrl",
"optional": false,
"value": "=baseUrl+\"/v2/addresses/\"+addressIdValue+\"/verify\"",
"binding": {
"type": "zeebe:input",
"name": "url"
},
"constraints": {
"notEmpty": true
},
"condition": {
"property": "operationType",
"oneOf": [
"verifyAddressById"
]
}
},
{
"type": "Hidden",
"id": "retrieveTrackerByIdUrl",
"optional": false,
"value": "=baseUrl+\"/v2/trackers/\"+trackerIdValue",
"binding": {
"type": "zeebe:input",
"name": "url"
},
"constraints": {
"notEmpty": true
},
"condition": {
"property": "operationType",
"oneOf": [
"retrieveTracker"
]
}
},
{
"label": "Connection timeout",
"description": "Sets the timeout in seconds to establish a connection or 0 for an infinite timeout",
"group": "errors",
"type": "String",
"value": "20",
"binding": {
"type": "zeebe:input",
"name": "connectionTimeoutInSeconds"
},
"optional": true,
"feel": "optional",
"constraints": {
"notEmpty": false,
"pattern": {
"value": "^(=|([0-9]+|\\{\\{secrets\\..+\\}\\})$)",
"message": "Must be a timeout in seconds (default value is 20 seconds) or a FEEL expression"
}
}
},
{
"label": "Result variable",
"description": "Name of variable to store the response in. Details in the documentation",
"group": "output",
"type": "String",
"binding": {
"type": "zeebe:taskHeader",
"key": "resultVariable"
}
},
{
"label": "Result expression",
"id": "resultExpressionGetAddressId",
"description": "Expression to map the response into process variables. Details in the documentation",
"group": "output",
"type": "String",
"feel": "required",
"value": "={addressId:response.body.id}",
"binding": {
"type": "zeebe:taskHeader",
"key": "resultExpression"
},
"condition": {
"property": "operationType",
"oneOf": [
"createAddress"
]
}
},
{
"label": "Result expression",
"id": "resultExpressionGetPlaceId",
"description": "Expression to map the response into process variables. Details in the documentation",
"group": "output",
"type": "String",
"feel": "required",
"value": "={parcelId:response.body.id}",
"binding": {
"type": "zeebe:taskHeader",
"key": "resultExpression"
},
"condition": {
"property": "operationType",
"oneOf": [
"createParcel"
]
}
},
{
"label": "Result expression",
"id": "resultExpressionGetShipment",
"description": "Expression to map the response into process variables. Details in the documentation",
"group": "output",
"type": "String",
"feel": "required",
"value": "={shipmentId:response.body.id}",
"binding": {
"type": "zeebe:taskHeader",
"key": "resultExpression"
},
"condition": {
"property": "operationType",
"oneOf": [
"createShipment"
]
}
},
{
"label": "Result expression",
"id": "resultExpressionGetTracker",
"description": "Expression to map the response into process variables. Details in the documentation",
"group": "output",
"type": "String",
"feel": "required",
"value": "={trackerId: response.body.tracker.id, trackingCode: response.body.tracking_code, shipmentstatus:response.body.status}",
"binding": {
"type": "zeebe:taskHeader",
"key": "resultExpression"
},
"condition": {
"property": "operationType",
"oneOf": [
"buyShipment"
]
}
},
{
"label": "Result expression",
"id": "resultExpressionGetTrackerStatus",
"description": "Expression to map the response into process variables. Details in the documentation",
"group": "output",
"type": "String",
"feel": "required",
"value": "={trackerStatus: response.body.status}",
"binding": {
"type": "zeebe:taskHeader",
"key": "resultExpression"
},
"condition": {
"property": "operationType",
"oneOf": [
"retrieveTracker"
]
}
},
{
"label": "Result expression",
"id": "resultExpression",
"description": "Expression to map the response into process variables. Details in the documentation",
"group": "output",
"type": "String",
"feel": "required",
"binding": {
"type": "zeebe:taskHeader",
"key": "resultExpression"
},
"condition": {
"property": "operationType",
"oneOf": [
"verifyAddressById"
]
}
},
{
"id": "errorExpression",
"label": "Error expression",
"description": "Expression to handle errors. Details in the documentation.",
"feel": "required",
"group": "error",
"binding": {
"key": "errorExpression",
"type": "zeebe:taskHeader"
},
"type": "Text"
},
{
"id": "version",
"label": "Version",
"description": "Version of the element template",
"value": "5",
"group": "connector",
"binding": {
"key": "elementTemplateVersion",
"type": "zeebe:taskHeader"
},
"type": "Hidden"
},
{
"id": "id",
"label": "ID",
"description": "ID of the element template",
"value": "io.camunda.connectors.EasyPost.v1",
"group": "connector",
"binding": {
"key": "elementTemplateId",
"type": "zeebe:taskHeader"
},
"type": "Hidden"
},
{
"id": "retryBackoff",
"label": "Retry backoff",
"description": "ISO-8601 duration to wait between retries",
"value": "PT0S",
"group": "retries",
"binding": {
"key": "retryBackoff",
"type": "zeebe:taskHeader"
},
"type": "Hidden"
}
],
"icon": {
"contents": "data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' version='1.1' width='18' height='18' viewBox='0 0 1000 1000' xml:space='preserve'%3E%3Cdesc%3ECreated with Fabric.js 3.5.0%3C/desc%3E%3Cdefs%3E%3C/defs%3E%3Crect x='0' y='0' width='18' height='100%25' fill='%23ffffff'/%3E%3Cg transform='matrix(0.2007 0 0 -0.1895 500.0727 500.0583)' id='344493'%3E%3Cpath style='stroke: none; stroke-width: 0; stroke-dasharray: none; stroke-linecap: butt; stroke-dashoffset: 0; stroke-linejoin: miter; stroke-miterlimit: 4; is-custom-font: none; font-file-url: none; fill: rgb(17,90,241); fill-rule: nonzero; opacity: 1;' vector-effect='non-scaling-stroke' transform=' translate(-2549.75, -2559.5281)' d='M 2475 5110 c -22 -5 -59 -17 -81 -27 c -23 -10 -470 -265 -994 -568 c -682 -394 -966 -563 -999 -595 c -54 -52 -96 -131 -111 -209 c -14 -73 -14 -2229 0 -2302 c 14 -76 54 -152 108 -207 c 37 -37 257 -168 1023 -610 c 901 -519 982 -564 1050 -578 c 74 -15 130 -13 199 8 c 19 6 474 263 1010 572 c 1044 601 1047 603 1096 710 c 37 80 45 146 42 338 l -3 176 l -980 -565 c -539 -310 -1007 -578 -1040 -595 c -70 -36 -160 -47 -221 -28 c -21 7 -265 145 -541 308 l -503 296 l 0 229 l 0 229 l 33 -20 c 17 -11 244 -142 503 -291 c 517 -298 534 -306 639 -284 c 45 10 262 132 1085 610 l 1029 598 l 1 258 l 0 258 l -22 -12 c -13 -7 -473 -271 -1023 -587 c -550 -317 -1020 -582 -1045 -589 c -60 -19 -145 -11 -202 18 c -25 13 -260 150 -522 304 l -475 280 l -1 228 l 0 228 l 23 -12 c 12 -7 229 -131 482 -277 c 253 -146 480 -274 505 -285 c 52 -23 146 -28 200 -9 c 19 7 494 279 1055 605 l 1020 594 l 3 183 c 2 140 -1 197 -13 244 c -19 74 -68 158 -117 200 c -50 44 -1962 1146 -2015 1162 c -59 18 -150 24 -198 14 z' stroke-linecap='round'/%3E%3C/g%3E%3C/svg%3E"
}
}