3

I am trying to get the outArgument from 1 custom activity to be the inArgument of another. I have looked at the Desk.com example with creating and updating a case but have been unable to translate that into my activities. After the interaction has been saved, not activated, I have done an API call to view the interaction. The outArguments for the first custom activity is:

"outArguments": [{ "targetingID": "text" }]

The inArguments for the second activity is:

"{{Interaction.REST-1.targetingID}}"

REST-1 is the correct ActivityKey for the first custom activity but I get the following error message:

Activity REST-2 of type REST has an argument targetingID which is not a valid argument

Is there something I am missing in order to get these activities "synced up"?

7
  • Looks OK to me, are you able to share the public URLs to your config.json files for both of your custom activities? – Eliot Harper Nov 15 '16 at 21:22
  • Yes, here are both config.json files and the saved interaction that I pulled back from the API. gist.github.com/anonymous/5e399d43496c0998f149a76ceaead4b9 – michael.rockway Nov 16 '16 at 20:54
  • In your second activity config.json try changing "inArguments": [{"targetingID": ""}], to "inArguments": [{"targetingID": "{{Interaction.REST-1.targetingID}}"}], – Eliot Harper Nov 16 '16 at 21:16
  • I had tried that in the past and still gave me the same error message. Through Postmonger I am able to find and append the CustomerKey to the data binding for the inArguments. Do you know where the custom activities look for the outArguments? Is it in the config,json or in the payload after the activity is configured? – michael.rockway Nov 16 '16 at 22:26
  • That's a good question, sorry I'm not sure. From the create/update case example, it appears that it looks in the config.json file (which is just plain stupid as the Activity Key will change). – Eliot Harper Nov 17 '16 at 6:07
5

In order to use the outArgument from one REST activity as an inArgument for another REST activity the schema is required. The schema is needed to compare the data types of the value being passed.

The config.json using the inArgument needs to have "schema": { "arguments": { "execute": { "inArguments": [ { "key": { "dataType": "Text", "isNullable": false, "direction": "In" } } ] } } }

The config.json using the outArgument needs to have "schema": { "arguments": { "execute": { "outArguments": [ { "key": { "dataType": "Text", "isNullable": false, "access": "Visible", "direction": "Out" } } ] } } }

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.