Skip to content

Endpoint Configuration

This section covers how to edit endpoint configurations, the inputs required for each event type, and how to parameterize URLs, bodies, and file names.

Edit Endpoint Configurations

Endpoint Data Source Tab

  1. Select Build > Data Hubs from the main menu.

  2. Select the appropriate Data Hub (A); then, select an Endpoint (B) to edit.

    Data Hub endpoint selection

  3. Ensure the Data Source tab (C) is selected.

  4. Select the appropriate Events tab (D) from the left column.

  5. Select the menu icon > Edit (E).

  6. Re-configure the Endpoint Action (F) as needed.

Edit and Save Endpoint Action

NOTE

The data required to configure an Endpoint Action is dependent on the action assigned (i.e. API Read, SQL Save, File Read, etc.). See the Endpoint Event Inputs section below for detailed descriptions on each protocol.

  1. For Read Actions, you can use the Test Request button in the modal footer to test the action directly without saving. This opens the Test Connector modal with the request pre-populated from your current configuration.

Edit Read Action Modal

  1. When finished, select Save (G).

NOTES

  • You will need to configure each Endpoint Action created (e.g. if Both was selected as the Endpoint Type, then you'll need to configure the Endpoint Action for both the On Save and Get Changes events).
  • When a save action is created, the Common Model will automatically create an interaction to the Key. Users can create as many interactions as needed associated with the save action.
  • The Read URL field is critical for successful Endpoint Mapping, which you will construct next. When Mapping Endpoints, it is critical to ensure the data from a particular location within the payload gets into the Common Model. For additional information on common protocols (e.g. JSONPath, XMLPath, etc.) see the Connectors Catalog.

Endpoint Event Inputs

Each event type is represented by an icon in the action tree indicating the protocol and operation:

IconEvent Type
API Read (Get Changes)
API Save (On Save)
API Delete
SQL Read (Get Changes)
SQL Save (On Save)
File Read
File Save

Each event type requires different configuration inputs. The tables below describe the fields for each protocol.

API Get Changes

InputDescription
TitleA freeform label you give to the Action.
Response SelectorJSON Path or XPath query that points to where the data is on the response.
Paging SelectorJSON Path or XPath query indicating where in the response to pull the URL of the next page.
Max PagesLimits the total number of pages that the action can return.
Read MethodThe HTTP verb required by the API.
Read URLThe HTTP address required by the API. This value is concatenated to the Base URL on the Connector. See Parameterizing below for additional information.
Read BodyNot required, but useful for advanced searching APIs. A POST is used in order to query, and in those cases an HTTP body is used in the request. See Parameterizing below. Examples include SuiteQL, SOQL, OData, and calling Select Stored Procedures (Date Last Polled and Parent-Child).

API On Save

InputDescription
TitleA freeform label you give to the Action.
Is BatchCan be toggled ON to save entities as a group (batch) instead of individually.
Create MethodThe HTTP verb required by the API to insert a new record. The default verb for a Create is a POST.
Create URLThe HTTP address required by the API to insert a new record.
Update MethodThe HTTP verb required by the API to update an existing record. The default method for an Update is a PATCH, but in some cases a PUT or POST can be used as well.
Update URLThe HTTP address required by the API to update existing data. The URL for an Update is usually parameterized with the ID of the record being updated.
Update Requires Full CopyOn update, this will pull a copy of the data from the API as a starting point, which the mapping then uses as the starting document (instead of a blank JSON document). This should be used when a Subscriber needs the full payload to update instead of just the changes.

API Delete

InputDescription
TitleA freeform label you give to the Action.
Delete MethodThe HTTP verb required by the API to delete a record. The default method for a Delete is DELETE.
Delete URLThe HTTP address required by the API to delete a record. The URL for a Delete is usually parameterized with the ID of the record being deleted.
Delete BodyOptional. A collapsible Body editor allows you to specify a request body for the DELETE operation. Uses the code editor with syntax highlighting for the connector's protocol (JSON/XML).

SQL Get Changes

InputDescription
TitleA freeform label you give to the Action.
Read Command TypeThe SQL Command can be a Stored Procedure or Text (Dynamic SQL).
Read CommandFor Stored Procedure, set this to the procedure name. On a Stored Procedure that can pull child items (e.g. Lines on an Order), it MUST have an input parameter called @ParentId. If it needs a date filter, the parameter should be called @DateLastPolled. For Text, an inline SQL code editor appears where you can write dynamic SQL queries with syntax highlighting.

TIP

When using Text command type, a Copy Params to Maps button is available that automatically detects @parameter names in your SQL and creates corresponding property maps.

SQL On Save

InputDescription
TitleA freeform label you give to the Action.
Create Command TypeThe SQL Command can be a Stored Procedure or Text (Dynamic SQL).
Create CommandFor Stored Procedure, the command is the procedure name. For Text, an inline SQL code editor appears for writing dynamic SQL with syntax highlighting.
Update Command TypeThe SQL Command can be a Stored Procedure or Text (Dynamic SQL).
Update CommandFor Stored Procedure, the command is the procedure name. For Text, the command is the parameterized query — use the inline SQL code editor with the Copy Params to Maps button to auto-generate property maps from @parameter names.

SQL Delete

InputDescription
TitleA freeform label you give to the Action.
Delete Command TypeThe SQL Command can be a Stored Procedure or Text (Dynamic SQL).
Delete CommandIf the SQL Command is Stored Procedure, then the command is the name of the Stored Procedure.

File Read / Save

InputDescription
TitleA freeform label you give to the Action.
LocationThe folder or container name.
File NameThe name of the file.
DelimiterThe character that is used to parse the file; the default value is a comma.

Additional Events Inputs

Receipt Replication Save

Receipt Replication allows the save status (success, failure, or both) to be written back to the publishing system, e.g. writing errors back to the source system instead of relying on the Error Logs.

InputDescription
TitleA freeform label you give to the Action.
Create MethodThe HTTP verb required by the API to insert a new record. The default verb for a Create is a POST.
Create URLThe HTTP address required by the API to insert a new record.
Receipt LevelDictates which receipts get processed and written back to the publishing system (error, success, or both).
Update Requires Full CopyOn update, this will pull a copy of the data from the API as a starting point, which the mapping then uses as the starting document (instead of a blank JSON document). This should be used when a Subscriber needs the full payload to update instead of just the changes.

Key Replication

InputDescription
TitleA freeform label you give to the Action.
Update MethodThe HTTP verb required by the API to update an existing record. The default method for an Update is a PATCH, but in some cases a PUT or POST can be used as well.
Update URLThe HTTP address required by the API to update existing data. The URL for an Update is usually parameterized with the ID of the record being updated.
Update Requires Full CopyOn update, this will pull a copy of the data from the API as a starting point, which the mapping then uses as the starting document (instead of a blank JSON document). This should be used when a Subscriber needs the full payload to update instead of just the changes.

Additional Instructions

Each endpoint action (Read, Save, Delete) has an Instructions tab where you can add request-shaping instructions that apply only to that specific action — most commonly custom HTTP headers, query parameters, body values, or time-zone conversion of the LastRun timestamp.

  1. Open the endpoint action for editing (see Edit Endpoint Configurations above).

  2. Switch to the Instructions tab.

  3. Select + Add Instruction and choose an instruction type from the menu.

  4. Fill in the type-specific fields (see Instruction types below).

  5. (Save actions only) Optionally check Create, Update, or both under Runs On to scope the instruction to specific operations. Leave both unchecked to apply on every save.

  6. Select Save in the dialog, then Save on the action.

Instruction types

Header / String Value

Sets a string on a request target — most commonly an HTTP header, but the Target dropdown also supports QueryParameter, FormBody, PostBody, JwtClaim, and other transport-level slots.

FieldDescription
TargetWhere the value is applied (Header, QueryParameter, etc.).
KeyThe header name, query-parameter name, or body-field key.
ValueThe value to set. Supports parameterizing (e.g. {PROP:Id}, {SYS:CurrentDateTime}).

Common use cases:

TargetKeyExample ValueWhen to use
HeaderPreferodata.include-annotations="*"Override an OData annotation preference for a specific Dynamics endpoint.
HeaderIf-None-Match{PROP:ETag}Conditional GET using the previously stored ETag.
QueryParameterversion2024-08Pin an API version for a single endpoint.

Time Zone Conversion

Shifts the LastRun timestamp into the chosen time zone before it is injected into request parameters such as {SYS:DateLastPolled}. Use this when the upstream API expects date/time filters in a non-UTC zone (e.g. a Dynamics tenant configured for America/New_York).

FieldDescription
Time ZoneIANA-style identifier (preferred) selected from the timezone typeahead.

TIP

This instruction does not change request headers or body content directly — it only adjusts the timestamp value used by the parameterizing engine. Combine with a {SYS:DateLastPolled} placeholder in your Read URL or Read Body to see the converted value reach the API.

Override semantics

WARNING

Endpoint-level instructions replace any same-name connector-level instruction on the wire — including all values of that header. If your connector has a Prefer: return=representation default and your endpoint adds Prefer: odata.include-annotations="*", the connector default is dropped from this endpoint's request. To keep both, restate them as separate instructions on the endpoint.

This is intentional: it gives you a clean way to opt out of a connector-wide default for a single endpoint. See Connector-wide Instructions for the broader-scope alternative.

Runs On (Save actions only)

A Save action can fire on Create or Update. The Runs On column lets you target an instruction to only one of those operations — e.g. set a Prefer: return=representation header only on Update so that POST responses stay minimal. Read and Delete actions don't expose this control because they only fire in a single operation context.

Parameterizing

Parameterizing enables data to be dynamically passed into an action as a way of telling the mapping engine that some data needs to be injected, and potentially formatted, into the URL or Body of the API Request or a File Name. Parameterizing enables users to take the ID off the inbound message and append it to the Update message.

Instances where parameterizing can be used include:

  • Update and Delete a record
  • Query date last polled from URL
  • Query date last polled from Body
  • Add Variables to a Body

System Parameters

Data that comes internally to the system.

SyntaxDescriptionExample
SYS:CurrentDateTimeInjects the current date/time{SYS:CurrentDateTime}
SYS:DateLastPolledInjects the LastRun timestamp from the Publisher (subject to Time Zone Conversion when configured){SYS:DateLastPolled}
SYS:StartDateTimeInjects the time the triggering event fired{SYS:StartDateTime}
SYS:PrimaryIdInjects the primary key of the record currently being processed in the target system{SYS:PrimaryId}
SYS:ParentIdInjects the primary key of the parent record in the target system. Only available inside Child Endpoints — see below{SYS:ParentId}

When SYS:ParentId is available

SYS:ParentId is only populated when the action is running inside a Child Endpoint (an endpoint nested under a parent in Endpoint Relationships). It resolves to the parent record's primary key in the system the child action is talking to (the subscribing system on saves, the publishing system on reads).

Use this table to know whether the value will resolve at runtime:

Scenario{SYS:ParentId} resolves?Resolves to
Read / Save / Update / Delete on a Child EndpointYesParent record's primary key in the connector system being called
Inner Read inside a Child Endpoint (loading further nested children)YesThe current child's primary key (becomes the parent of the inner read)
Key Replication update on a Child EndpointYesParent entity's primary key in the connector system
Any action on the root / top-level EndpointNo — empty
Child Endpoint action where the parent has not yet been keyed in the target system (e.g. parent save failed or was skipped)No — empty
Child Endpoint action where there is no ParentEntity on the message (orphan child)No — empty

TIP

On root endpoints use {PK:Name} or {PROP:Name} to get the current record's identity — {SYS:ParentId} is intentionally blank there because there is no parent in scope.

TIP

For child saves, {SYS:ParentId} resolves against the subscribing (target) system's primary key for the parent — not the publishing system's. If the parent has not been synced yet, the value will be empty; sequence the parent save first or use a pre-load action to look the parent up.

Schema Parameters

Data that comes off another piece of data or message that is flowing through the system.

PrefixDescriptionExample
CD:{Name}Finds custom data with matching name and injects that value{CD:CustomFieldA}
PROP:{Name}Finds a property on the model with a matching name and injects that value{PROP:FirstName}
PK:{Name}Finds a Primary Key with the given Name for the processing system and injects that value{PK:Id}
FK:{Name}Finds a Foreign Key with the given Name for the processing System and injects that value{FK:CustomerId}
RD:{Name}Finds a Related Data item with the given Name for the processing system and injects that value{RD:OpportunityId}

TIP

RD: matches only Related Data items that belong to the record itself (without a RelatedKeyName) and always resolves against the subscribing system.

Variable Parameters

Enables users to set any static value and inject it into an action, such as a specific value within a file name or parameter within a URL.

SyntaxDescriptionExample
VAR:{Name}Finds a Variable with the given Name and injects that value{VAR:SomeVariable}

TIP

Optionally, formatting can be applied to the injected value by adding an additional :{format} to the placeholder, e.g. {VAR:CurrentDate:yyyy-MM-dd}.

See Also

TeamCentral Admin Web Documentation