Skip to content

Custom Actions

Custom actions are the actions which can be created on the dashboard. This type of action allows you to upload a URL for the action to be presented to the user. In Custom Actions we have predefined functions to pass callback to the Flutter app.

How to Pass Callback from Custom Action to Flutter

Custom Actions provide a way to communicate between web content and your Flutter application:

javascript
var CustomAction = (function () {
  function sendAction(obj) {
    if (window.webkit && window.webkit.messageHandlers) {
      var iOSSDK = window.webkit.messageHandlers.upshot;
      iOSSDK.postMessage(obj);
    } else if (window.AndroidHandler) {
      AndroidHandler.performAction(JSON.stringify(obj));
    } else {
      window.parent.postMessage(
        {
          upshotMessage: JSON.stringify(obj),
        },
        "*"
      );
    }
  }
  return {
    sendAction: sendAction,
  };
})();

Callback Types

Ready Callback

Invoke ready callback means scripts are loaded. In case ready callback is not received, Skip option will be enabled.

javascript
CustomAction.sendAction({
  a: "ready",
});

Skip Callback

Invoke skip callback function where user can either skip or choose not to participate. SDK will remove custom action and create skip event.

Example: v value is skip button text or id

javascript
CustomAction.sendAction({
  a: "skip",
  v: "142861v",
});

Respond Callback

Invoke respond callback when the user click on submit or respond to the activity, SDK will remove custom action with respond event.

Example: v value is respond text

javascript
CustomAction.sendAction({
  a: "respond",
  v: "142861v",
});

Invoke deeplink callback if you want to pass the data to the application, With this method sdk will do the same.

Example: v deeplink text

javascript
CustomAction.sendAction({
  a: "deeplink",
  v: "deeplink data",
});

Event Callback

Invoke event callback function, If you want to create custom event.

Example: v event data

javascript
CustomAction.sendAction({
  a: "event",
  v: {
    n: "eventName",
    d: { a: 1, b: 2 }, //eventPayload
  },
});

How to Fetch a Custom Action

Request a custom action activity using tags:

dart
import 'package:upshot_flutter/upshot_flutter.dart';

FlutterUpshotPlugin.showActivity(ActivityTypes.customActions, "Tag Name");

How to Create a Custom Action in Dashboard

In Dashboard under GAMIFY section Create custom action and create campaign for that custom action.

Creating Custom Action in Dashboard

To create Custom Action in the Upshot.ai dashboard:

  1. Navigate to GAMIFY section in the dashboard
  2. Create Custom Action - Design your Custom Action with questions
  3. Create Campaign - Set targeting and scheduling for the Custom Action

Powered by Upshot.ai