ExternalCallout API example
Create a file called GetCreditScore.java with the following contents. This file assumes there is a class called ScoreQueryUtility that fetches a score from a modeling application.
import java.util.Map;
import com.unicacorp.interact.session.AudienceId;
import com.unicacorp.interact.flowchart.macrolang.storedobjs.IAffiniumExternalCallout;
import com.unicacorp.interact.flowchart.macrolang.storedobjs.CalloutException;
import java.util.Random;

public class GetCreditScore implements IAffiniumExternalCallout
// the class that has the logic to query an external system for a customer's credit score
private static ScoreQueryUtility scoreQueryUtility;
public void initialize(Map<String, String> configurationData) throws CalloutException
// configurationData has the key- value pairs specific to the environment the server is running in
// initialize scoreQueryUtility here

public void shutdown(Map<String, String> configurationData) throws CalloutException
// shutdown scoreQueryUtility here

public int getNumberOfArguments()
// do not expect any additional arguments other than the customer's id
return 0;

public List<String> getValue(AudienceId audienceId, Map<String, String> configurationData,
Object... arguments) throws CalloutException
Long customerId = (Long) audienceId.getComponentValue("Customer");
// now query scoreQueryUtility for the credit score of customerId
Double score = scoreQueryUtility.query(customerId);
String str = Double.toString(score);
List<String> list = new LinkedList<String>();
return list;
Compile GetCreditScore.java to GetCreditScore.class.
Create a jar file called creditscore.jar containing GetCreditScore.class and the other class files it uses.
Create an External Callout with name GetCreditScore and classpath as /data/interact/creditscore.jar in the externalCallouts category on the Manage Configurations page.