Skip to main content

Transmission Workflow Tasks

Transmission tasks are used to create, update, and delete Transmissions — records that track inbound and outbound message exchanges (EDI, API, webhooks, etc.) linked to orders.

Create Transmission​

Creates a new transmission and links it to one or more orders.

task: "Transmission/Create@1"
name: createTransmission
inputs:
organizationId: "{{ organizationId }}"
transmission:
orderIds:
- "{{ orderId }}"
channel: "EDI"
direction: "Outbound"
messageType: "204"
sender: "SENDER_ID"
receiver: "RECEIVER_ID"
status: "Pending"
endpoint: "https://partner.example.com/edi"
protocol: "HTTPS"
customValues:
ediVersion: "5010"
outputs:
- name: transmission
mapping: "transmission"

Create Inputs​

FieldTypeRequiredDescription
organizationIdIntYesOrganization ID
transmission.contactIdIntNoPartner contact in this organization. When its custom values carry a transmission block (type: "connection"), an outbound row is delivered to the partner organization. See Organization Connections and Transmissions
transmission.orderIdsInt[]NoOrder IDs to link. Supplied IDs must belong to the organization
transmission.channelStringWhen no contactChannel name (max 20 chars). With contactId, defaults to the contact's transmission.type upper-cased (CONNECTION)
transmission.directionEnumNoInbound or Outbound (default Outbound)
transmission.payloadAnyNoMessage body: JSON object, text, byte[] or Stream. Uploaded to storage; sets payloadRef, byteSize and headers["Content-Type"]. Mutually exclusive with payloadRef. A string is text unless payloadContentType names a binary type (then base64)
transmission.payloadContentTypeStringNoOverrides the content type guessed from the payload shape (e.g. application/edi-x12)
transmission.attachmentsObject[]NoAttachment manifest entries: exactly one of attachmentId, attachmentGuid, url, data (bytes / stream / base64), plus fileName (required for url / data), contentType, metadata. Stored in customValues.attachments
transmission.messageTypeStringNoMessage type (max 50 chars)
transmission.senderStringNoSender identifier (max 100 chars)
transmission.receiverStringNoReceiver identifier (max 100 chars)
transmission.correlationIdGuidNoCorrelation ID (auto-generated if omitted)
transmission.parentIdIntNoParent transmission ID for chaining
transmission.statusEnumNoInitial status (see TransmissionStatus enum)
transmission.endpointStringNoTarget endpoint URL (max 500 chars)
transmission.protocolStringNoProtocol name (max 20 chars)
transmission.httpStatusInt16NoHTTP response status code
transmission.byteSizeIntNoPayload size in bytes
transmission.retryCountInt16NoCurrent retry count (default: 0)
transmission.maxRetriesInt16NoMax retries (default: 3)
transmission.nextRetryAtDateTimeNoScheduled next retry time
transmission.errorCodeStringNoError code (max 50 chars)
transmission.errorMessageStringNoError message
transmission.customValuesMapNoCustom key-value metadata
transmission.headersMapNoMessage headers
transmission.payloadRefStringNoReference to stored payload
transmission.scheduledAtDateTimeNoScheduled send time
transmission.startedAtDateTimeNoProcessing start time
transmission.completedAtDateTimeNoProcessing end time
transmission.durationMsIntNoProcessing duration (ms)

Create Outputs​

VariableTypeDescription
transmissionTransmissionDtoThe created transmission object

Publishing to a Connected Organization​

With contactId pointing at a partner contact, the task becomes a publish: the row defaults to Pending, delivery is queued in the outbox, and the partner organization receives a mirrored Inbound row that fires its Transmission entity triggers. Rows created without a contact behave as before.

task: "Transmission/Create@1"
name: publish
inputs:
organizationId: "{{ organizationId }}"
transmission:
contactId: "{{ partnerContactId }}"
messageType: "order.created"
correlationId: "{{ correlationId }}" # optional; reuse to reply in-thread
orderIds:
- "{{ orderId }}"
payload: "{{ order }}"
attachments:
- attachmentId: "{{ bolAttachmentId }}"
metadata: { documentType: BOL }
outputs:
- name: transmission
mapping: "transmission"

Update Transmission​

Updates an existing transmission using dynamic field mapping (only specified fields are changed).

task: "Transmission/Update@1"
name: updateTransmission
inputs:
organizationId: "{{ organizationId }}"
transmissionId: "{{ transmissionId }}"
transmission:
status: "Sent"
httpStatus: 200
completedAt: "{{ now }}"
durationMs: 1250

Update Inputs​

FieldTypeRequiredDescription
organizationIdIntYesOrganization ID
transmissionIdIntYesTransmission ID to update
transmissionMapYesFields to update (same field names as Create). A contactId must belong to the organization; null clears it

Delete Transmission​

Soft-deletes a transmission (sets IsDeleted = true).

task: "Transmission/Delete@1"
name: deleteTransmission
inputs:
organizationId: "{{ organizationId }}"
transmissionId: "{{ transmissionId }}"

Delete Inputs​

FieldTypeRequiredDescription
organizationIdIntYesOrganization ID
transmissionIdIntYesTransmission ID to delete

Delete Outputs​

VariableTypeDescription
successBooleantrue if deleted successfully

TransmissionStatus Enum Values​

ValueName
0Pending
1InProgress
2Sent
3Received
4Delivered
5Acknowledged
6Rejected
7Error
8RetryScheduled
9Cancelled
10Expired