---
schema_version: "1"
id: 9c7b555326b11a9c9ec86926d080d4f3821ef6c9cbf2d88ea617a0dbcc985ae5
title: Define a Custom Split Activity with Multiple Outcomes
collection: developer
version: current
locale: en-us
portal_url: https://docs.salesforce.com/developer/current/en-us/marketing-cloud/guides/mc-app-development/extending-activities.md
canonical_url: https://developer.salesforce.com/docs/marketing/marketing-cloud/guide/extending-activities.html
source_site: developer.salesforce.com
content_type: documentation
content_hash: 4688711ba28fab1922a5a19c91697f43108dbe5e75df6e9475553f19c33d2412
products:
  - Marketing Cloud Engagement APIs and Programmatic Languages
  - Marketing Cloud
---
# Define a Custom Split Activity with Multiple Outcomes

You can provide multiple possible outcomes for your custom split activities in Journey Builder. First, define default outcomes in the activity's config.json. The activity's custom javascript then overrides these default outcomes programmatically, or based on user-supplied values.

**note:** Use the `RestDecision` activity type when configuring multiple outcomes.

![Decision tree of outcomes for Buy, Sell, and Custom Label, respectively: Send SMS, Update Contact, or Custom Activity, each with 1 day turnaround.](https://developer.salesforce.com/docs/media/images/jb-custom-split.gif)

## Define Default Outcomes

To define default outcomes, include an `outcomes` object in the activity's config.json.

- Each default outcome must contain an `arguments` object that contains a `branchResult` field. Journey Builder expects the custom activity's Execute REST call response to contain the `{ branchResult: value }` object. The `value` matches the branchResult of one of the activity's outcomes.

- Give the custom activity a label in the UI. Include a `label` field in the outcome's `metaData` object. Journey Builder displays the text in this field when users hover over the branch entry point.

**note:** If you don't define a label, it is loaded using the internationalization (i18n) strings from the config.json.

## Sample

<!-- Moved Gist inline (mc-doc/470225d33bad7a528909c9c8637ae91a) -->

```json
"outcomes": [
    {
        "arguments": {
            "branchResult": "buy_item",
            "some argument": "passed from config.json for buy_item"
        }
    },
    {
        "arguments": {
            "branchResult": "sell_item",
            "some argument": "passed from config.json for sell_item"
        }
    },
    {
        "arguments": {
            "branchResult": "hold_item",
            "some argument": "passed from config.json for hold_item"
        },
        "metaData": {
            "label": "MyCustomLabel"
        }
    }
]
```

## Related Items

- [Internationalize Branch Labels](https://developer.salesforce.com/docs/marketing/marketing-cloud/guide/internationalize-branch-labels.md)
