Adobe Launch · Arazzo Workflow

Adobe Launch Bootstrap a Property with a Rule

Version 1.0.0

Stand up a new Tags property, add a rule to it, and attach a first rule component.

1 workflow 1 source API 1 provider
View Spec View on GitHub Data CollectionEdge NetworkEvent ForwardingMarketing TechnologyTag ManagementArazzoWorkflows

Provider

adobe-launch

Workflows

bootstrap-property-rule
Create a property, then a rule, then a rule component in one chained pass.
Creates a property under the supplied company, creates a rule scoped to that new property, and creates a rule component linked back to the rule and the extension that provides it.
3 steps inputs: accessToken, apiKey, companyId, delegateDescriptorId, extensionId, imsOrgId, propertyName, ruleComponentName, ruleName outputs: propertyId, ruleComponentId, ruleId
1
createProperty
createProperty
Create a new web property under the supplied company.
2
createRule
createRule
Create a rule scoped to the newly created property.
3
createRuleComponent
createRuleComponent
Create a rule component linked to the new rule and the extension that provides it.

Source API Descriptions

Arazzo Workflow Specification

adobe-launch-bootstrap-property-rule-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Adobe Launch Bootstrap a Property with a Rule
  summary: Stand up a new Tags property, add a rule to it, and attach a first rule component.
  description: >-
    The foundational Adobe Experience Platform Launch (Tags) setup flow. The
    workflow creates a new property under a company, creates a rule inside that
    property, and then creates a rule component (event, condition, or action)
    that belongs to the rule. Every request is spelled out inline using the
    JSON:API document shape these endpoints require so the flow can be read and
    executed without opening the underlying OpenAPI description.
  version: 1.0.0
sourceDescriptions:
- name: reactorApi
  url: ../openapi/reactor-api.yml
  type: openapi
workflows:
- workflowId: bootstrap-property-rule
  summary: Create a property, then a rule, then a rule component in one chained pass.
  description: >-
    Creates a property under the supplied company, creates a rule scoped to that
    new property, and creates a rule component linked back to the rule and the
    extension that provides it.
  inputs:
    type: object
    required:
    - accessToken
    - apiKey
    - imsOrgId
    - companyId
    - propertyName
    - ruleName
    - ruleComponentName
    - delegateDescriptorId
    - extensionId
    properties:
      accessToken:
        type: string
        description: OAuth 2.0 Server-to-Server bearer access token from Adobe Developer Console.
      apiKey:
        type: string
        description: Client ID credential sent as the x-api-key header.
      imsOrgId:
        type: string
        description: Adobe Organization ID sent as the x-gw-ims-org-id header.
      companyId:
        type: string
        description: The company the new property is created under.
      propertyName:
        type: string
        description: Human-readable name for the new property.
      ruleName:
        type: string
        description: Human-readable name for the new rule.
      ruleComponentName:
        type: string
        description: Human-readable name for the new rule component.
      delegateDescriptorId:
        type: string
        description: Delegate descriptor id identifying the event/condition/action type.
      extensionId:
        type: string
        description: Id of the extension that provides this rule component.
  steps:
  - stepId: createProperty
    description: Create a new web property under the supplied company.
    operationId: createProperty
    parameters:
    - name: Authorization
      in: header
      value: "Bearer $inputs.accessToken"
    - name: x-api-key
      in: header
      value: $inputs.apiKey
    - name: x-gw-ims-org-id
      in: header
      value: $inputs.imsOrgId
    - name: companyId
      in: path
      value: $inputs.companyId
    requestBody:
      contentType: application/vnd.api+json
      payload:
        data:
          type: properties
          attributes:
            name: $inputs.propertyName
            platform: web
            domains:
            - example.com
            development: true
    successCriteria:
    - condition: $statusCode == 201
    outputs:
      propertyId: $response.body#/data/id
  - stepId: createRule
    description: Create a rule scoped to the newly created property.
    operationId: createRule
    parameters:
    - name: Authorization
      in: header
      value: "Bearer $inputs.accessToken"
    - name: x-api-key
      in: header
      value: $inputs.apiKey
    - name: x-gw-ims-org-id
      in: header
      value: $inputs.imsOrgId
    - name: propertyId
      in: path
      value: $steps.createProperty.outputs.propertyId
    requestBody:
      contentType: application/vnd.api+json
      payload:
        data:
          type: rules
          attributes:
            name: $inputs.ruleName
            enabled: true
    successCriteria:
    - condition: $statusCode == 201
    outputs:
      ruleId: $response.body#/data/id
  - stepId: createRuleComponent
    description: >-
      Create a rule component linked to the new rule and the extension that
      provides it.
    operationId: createRuleComponent
    parameters:
    - name: Authorization
      in: header
      value: "Bearer $inputs.accessToken"
    - name: x-api-key
      in: header
      value: $inputs.apiKey
    - name: x-gw-ims-org-id
      in: header
      value: $inputs.imsOrgId
    - name: propertyId
      in: path
      value: $steps.createProperty.outputs.propertyId
    requestBody:
      contentType: application/vnd.api+json
      payload:
        data:
          type: rule_components
          attributes:
            name: $inputs.ruleComponentName
            delegate_descriptor_id: $inputs.delegateDescriptorId
            order: 1
          relationships:
            rules:
              data:
              - id: $steps.createRule.outputs.ruleId
                type: rules
            extension:
              data:
                id: $inputs.extensionId
                type: extensions
    successCriteria:
    - condition: $statusCode == 201
    outputs:
      ruleComponentId: $response.body#/data/id
  outputs:
    propertyId: $steps.createProperty.outputs.propertyId
    ruleId: $steps.createRule.outputs.ruleId
    ruleComponentId: $steps.createRuleComponent.outputs.ruleComponentId