Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Create a new flow and select the type screen flow. You can select a layout type. Choose whatever you prefer.

Campaign creation

The first step is to add a new screen component to the flow.

...

After adding the component to your screen flow connect an arrow from the start object to the Campaign Creation component.

...

Audience

The second step is to add a new screen component to the flow.

...

There is a total of 5 available filters for your Audience. Available filters are Media Type, Formats, Ad Type, Impressions and Price.

Only 3 of these filters can be displayed on your result page. The combination of filters can be configured based on your selection. See the screenshot below:

...

After adding the component to your screen flow connect an arrow from the Campaign Creation component to your newly created Audience component.

...

Select Products

The third step is to add another new screen component to the flow.

On the left side under the section, Custom you will find the component Result List. Add it to the screen.

...

When the Linear split is enabled, it helps distribute the budget quantity evenly across campaign items, see Linear Split Enabled below:

...

Input/Output

Required?

Parameter

Meaning

Value format

Default value

Input

yes

campaignItems

Enter a variable to save the Campaign Items that will start to be created in this component.

collection (Allow multiple values) variable of data type Campaign Item

empty

Input

no

Check Availability Enabled

Please enter a value that defines if an availability check should be done when starting the Result List or not.

Info

The availability check will be done for digital items as well as exclusive items.

boolean

false

Input

no

Items per Check Availability Job

This value defines how many items will be included in one availability job at the same time. The number affects the speed how fast results are coming in. The default of 10 is a well balanced value between not waiting too long but putting enough items together to not have too many jobs running in the end.

number

10

Input

yes

Media Campaign

Enter the variable of the Media Campaign from the first component to take over the Media Campaign parameters.

record variable of data type Media Campaign

empty

Input

no

Media Campaign Id

If you are working with already saved campaigns please set the Media Campaign id here.

id of a Media Campaign

empty

Input

yes

Targeting Group Ids

Enter the existing variable for Targeting Groups in order to load the entered parameters on this screen.

collection (Allow multiple values) variable of data type Targeting Group

empty

Output

yes

Campaign Item Related List

The variable to hold all the information about Campaign items with related records, e.g. applied Commitment Conditions, Contents or Targeting Groups.

text variable

empty

Output

yes

campaignItems

Enter the variable from the Input parameters again to hand over the Campaign Items in the basket to the next component.

collection (Allow multiple values) variable of data type Campaign Item

empty

Output

yes

Media Campaign

Enter the variable of the Media Campaign from the first screen in order to hand over the parameters to the next component.

record variable of type Media Campaign

empty

Output

no

Media Campaign Id

(not relevant for now)

id of a Media Campaign

empty

Output

yes

Targeting Group Ids

Enter the existing variable of Targeting Groups in order to hand over the values to the next component.

collection (Allow multiple values) variable of data type Targeting Group

empty

...

Shopping cart

The fourth step is to add another new screen component to the flow.

...

  • either set manually the needed information in the virtual Media Campaign by using an assignment component (Fields to be set then are the debtor and depending on your VAT set up the following: VAT Rate % Type 1A, Type 1B, Type 2A and Type 2B).

  • or you could also receive the relevant details by creating the Media Campaign before getting to the screen and then query the calculated details for the VAT calculation before starting the summary screen. You would still need to define the debtor to be set in the Media Campaign before creation.

...

Creating records

Now you might want to create the records in order to prepare everything for the payment.

...

  • Save the Media Campaign (if not done before)

  • Save the Campaign Items related to the Media Campaign

  • Save related Targeting Groups (and their connected Contents if applicable)

  • Save related Commitments conditions (if applicable)

...

Payment

The next step is to add another new screen component to the flow.

...

Input/Output

Required?

Parameter

Meaning

Value format

Default value

Input

yes

Campaign Items

Enter the variable from the third screen to load the basket items into this component.

collection (Allow multiple values) variable of data type Campaign Item

empty

Input

yes

Media Campaign

Enter the variable of the Media Campaign from the first component to take over the Media Campaign parameters.

record variable of data type Media Campaign

empty

Input

no

Media Campaign Id

(not relevant for now)

id of a Media Campaign

empty

Input

yes

Targeting Group Ids

Enter the existing variable for Targeting Groups in order to load the entered parameters on this screen.

collection (Allow multiple values) variable of data type Targeting Group

empty

Output

yes

Campaign Items

Enter the variable from the third screen to hand over the Campaign Items in the basket to the next component.

collection (Allow multiple values) variable of data type Campaign Item

empty

Output

no

Debtor Account

In case you needed to complete the billing address in the component this will deliver the updated debtor account that will need to be updated in the flow directly afterwards.

record variable of data type Account

empty

Output

yes

Media Campaign

Enter the variable of the Media Campaign from the first screen in order to hand over the parameters to the next component.

record variable of type Media Campaign

empty

Output

no

Media Campaign Id

(not relevant for now)

id of a Media Campaign

empty

Output

yes

Targeting Group Ids

Enter the existing variable of Targeting Groups in order to hand over the values to the next component.

collection (Allow multiple values) variable of data type Targeting Group

empty

...

Create Invoices

After the user decided how he wants to pay in the next step the invoices need to be created so that the user receives the invoice via mail and can download it directly into the system.

...

After this, you can simply save and activate your flow. Now the last step is to place your flow in your Self Service portal (Site) at the right place.

...

Error Handling

A good user experience is essential to keep your users on the page. Good error handling is needed to give the customer a good feeling when using the Self Service. In order to enable good error handling we suggest the improvements which are pointed out below for your flow. We ensure good error handling while using the screens. Nevertheless, you might need to work with enhancements, e.g. to validate given inputs.

Validate inputs

Some fields may be marked as required but the navigation to the next page is still possible. In order to disable this you will need to use decision elements that guide the user back to the original screen showing an error at the top or bottom of the page.

Faults for DML operations

For the creation of records, Salesforce offers by default to add a second “fault” path for your element (Create, Update or Delete records). You should use this in order to show validation rules or similar errors a user could run into.

Faults in the Invoicing Process

The invoicing process can throw a few errors when the given data are not complete as expected. In these cases, you should use the status output as well as the message/error outputs in order to decide if an error message is needed or if the user can proceed with the flow.

...