fulfillmenttools
API documentationIncident ManagementFeedback
Developer Docs
Developer Docs
  • Developer docs
  • Getting Started
    • Quickstart
    • Integration tutorial
      • Adding facilities
      • Adding listings to facilities
      • Configuring stocks
      • Carrier configuration
      • Placing orders
      • Checkout options
      • Distributed Order Management System (Routing)
      • Local fulfillment configuration
    • Free trial
  • Technical Basics
    • Access to fulfillmenttools
    • Feature status
    • Available regions
    • Backup policies
  • Connecting to fulfillmenttools
    • Client SDKs
    • commercetools connect
    • OpenID connect
      • Configure Microsoft Entra ID / Azure Active Directory
      • Configure Keycloak
  • API
    • Core concepts
      • Authentication & authorization
      • API Versioning & lifecycle
      • Assign user to jobs
      • Localization
      • Resource timestamps
      • Custom attributes
      • Article attributes
      • Recordable attributes
      • Data update guarantees
      • Rate limits & scaling
      • Retries
      • Performance on test vs. production systems
      • Load testing
    • API calls
      • Postman
      • cURL
      • GraphQL Explorer
    • GraphQL API
    • RESTful API
      • Pagination interface
      • RapiDoc
      • OpenAPI 3.0 Spec
    • Eventing
      • Structure of an event
      • Available events
        • Event flows
      • Eventing example
      • Event export
  • Integration Guides
    • Address formats for specific carriers
    • Basics
      • Article categories
      • Audits
      • Custom services & bundled line items
      • Facilities
      • Facility groups
      • GDPR configuration
      • Listings
      • Orders
        • Order types
        • Order status
      • Remote configuration
      • Receipts
      • Search
      • Subscribe to events
      • Sticker
      • Stocks
      • Storage locations
      • Tags
      • Users
    • Channel inventory
    • External actions
    • Facility discounts
    • Inbound process
    • Operative container types
    • Outbound stocks
    • Purchase order
    • Receipt
    • Routing strategy
    • Show sticker to clients
    • Stow jobs
  • More Integration Guides
    • Carrier management
      • Introduction to carrier configuration
      • Required data when operating carriers
      • Adding & connecting carriers to facilities
      • Custom carrier
    • Configurations for order fulfillment
      • Picking configuration
      • Packing configuration
      • Handover configuration
      • Printing and document configuration
      • Parcel tag configuration
      • Headless order fulfillment
      • Short-pick reasons
      • External documents in order fulfillment
      • Service jobs
      • Load units
      • Running sequence
    • Notifications
    • Returns
Powered by GitBook
On this page
  • Create an external action with type LINK
  • Create an external action with type FORM
  • Add information to a process and relate it to another action
Edit on GitHub
  1. Integration Guides

External actions

Last updated 3 days ago

More external actions API information can be found here:

The external actions feature empowers users to trigger and execute actions and processes in external systems, outside of fulfillmenttools.

  • Multiple external actions can be added to a process

  • External actions can be grouped and assigned to a theme

Create an external action with type LINK

This example adds a link to a payment provider:

POST https://{YOUR_TENANT_NAME}.api.fulfillmenttools.com/api/externalactions
{
  "processRef": "PROCESS-REF-TO_WHICH_THE_ACTION_SHOULD_REFER",
  "nameLocalized": {
    "en": "Zahlungen anpassen",
    "de": "Adjust Payment"
  },
  "groups": [
    "string"
  ],
  "action": {
    "type": "BLANK_LINK",
    "linkUrl": "yourpaymentprovider.com/xyz..."
  }
}

Create an external action with type FORM

POST https://{YOUR_TENANT_NAME}.api.fulfillmenttools.com/api/externalactions
{
  "processRef": "6aca1c80-c418-4064-b173-63fb120aef2d",
  "groups": [
    "Trainingsgruppe B"
  ],
  "nameLocalized": {
    "de_DE": "Zahlungen anpassen",
    "en_US": "Adjust payments"
  },
  "action": {
    "type": "FORM",
    "elements": [
      {
        "elementType": "HEADLINE",
        "title": "Adjust payments for this order",
        "titleLocalized": {
          "de_DE": "Zahlungen zu dieser Bestellung anpassen",
          "en_US": "Adjust payments for this order"
        }
      }, {
        "elementType": "SUBHEADLINE",
        "title": "In this modal you can make payment adjustments. This can either be a percentual or a freely selected discount.",
        "titleLocalized": {
          "de_DE": "In diesem Modal können Sie Zahlungsanpassugen vornehmen. Dies kann entweder ein prozentualer oder ein frei gewählter Rabatt sein.",
          "en_US": "In this modal you can make payment adjustments. This can either be a percentual or a freely selected discount."
        }
      }, {
        "elementType": "TEXT",
        "style": "BODY",
        "title": "string",
        "titleLocalized": {
          "de_DE": "-",
          "en_US": "-"
        }
      }, {
        "elementType": "TEXT",
        "style": "BODY",
        "title": "string",
        "titleLocalized": {
          "de_DE": "Rabatt in %",
          "en_US": "Discount in &"
        }
      }, {
        "elementType": "TEXT_INPUT",
        "elementId": "4712",
        "label": "string",
        "titleLocalized": {
          "de_DE": "%",
          "en_US": "%"
        },
        "isMandatory": false,
        "validation": {
          "validationType": "FLOAT",
          "minValue": 1,
          "maxValue": 100
        }
      }, {
        "elementType": "TEXT",
        "style": "BODY",
        "title": "string",
        "titleLocalized": {
          "de_DE": "-",
          "en_US": "-"
        }
      }, {
        "elementType": "TEXT",
        "style": "BODY",
        "title": "string",
        "titleLocalized": {
          "de_DE": "Rabatt in €",
          "en_US": "Discount in €"
        }
      }, {
        "elementType": "TEXT_INPUT",
        "elementId": "4713",
        "label": "string",
        "titleLocalized": {
          "de_DE": "€",
          "en_US": "€"
        },
        "isMandatory": false,
        "validation": {
          "validationType": "INTEGER",
          "minValue": 1,
          "maxValue": 1000
        }
      }, {
        "elementType": "TEXT",
        "style": "INFO",
        "title": "string",
        "titleLocalized": {
          "de_DE": "Die Anpassung der Abrechnung wird durch ein Fremdsystem durchgeführt.",
          "en_US": "The billing adjustment is carried out by a third-party system."
        }
      }
    ],
    "success": {
      "label": "string",
      "labelLocalized": {
        "de_DE": "Bestätigen",
        "en_US": "CONFIRM"
      }
    },
    "cancel": {
      "label": "string",
      "labelLocalized": {
        "de_DE": "Abbrechen",
        "en_US": "CANCEL"
      }
    }
  }
}

Add information to a process and relate it to another action

First, an external action with type COMMENT is added to an existing order. This enables users to add general information to the order.

POST https://{YOUR_TENANT_NAME}.api.fulfillmenttools.com/api/externalactions
{
  "processRef": "PUT-IN-A-PROCESS-ID",
  "nameLocalized": {
    "de_DE": "Zusatzinformation Kunde",
    "en_US": "Additional customer information",
  },
  "groups": [
    "Additional information"
  ],
  "action": {
    "type": "COMMENT"
  }
}

After that, the actual information can be added with the following call:

POST https://{YOUR_TENANT_NAME}.api.fulfillmenttools.com/api/externalactions/externalActionRef/logs
{
  "requiresAnonymization": false,
    "actionPayload": {
    "comment": "Consumer seqment A - high priority",
    "externalActionRef":"optional-ref"
  }
}

This example adds a form that will look like this and is able to inform a payment provider system:

REST API documentation – External actions