-
-
Save jacksonpchen/d976d7086540754fea01aeeb27ba78a6 to your computer and use it in GitHub Desktop.
/* | |
AMPscript.com | |
https://ampscript.com/how-to-run-automations-more-frequently-using-ssjs/ | |
*/ | |
<script runat="server"> | |
Platform.Load("Core","1.1.1"); | |
var automationCustomerKey = "[Customer Key Goes Here]" | |
var rr = Platform.Function.CreateObject("RetrieveRequest"); | |
Platform.Function.SetObjectProperty(rr, "ObjectType", "Automation"); | |
Platform.Function.AddObjectArrayItem(rr, "Properties", "ProgramID"); | |
Platform.Function.AddObjectArrayItem(rr, "Properties", "CustomerKey"); | |
Platform.Function.AddObjectArrayItem(rr, "Properties", "Status"); | |
var sfp = Platform.Function.CreateObject("SimpleFilterPart"); | |
Platform.Function.SetObjectProperty(sfp, "Property", "CustomerKey"); | |
Platform.Function.SetObjectProperty(sfp, "SimpleOperator", "equals"); | |
Platform.Function.AddObjectArrayItem(sfp, "Value", automationCustomerKey); | |
Platform.Function.SetObjectProperty(rr, "Filter", sfp); | |
var retrieveStatus = [0,0,0]; | |
var automationResultSet = Platform.Function.InvokeRetrieve(rr, retrieveStatus); | |
var ObjectID = automationResultSet[0]["ObjectID"]; | |
var Status = automationResultSet[0]["Status"]; | |
if (ObjectID != "null") { | |
/* | |
Code Status | |
-1 Error | |
0 BuildingError | |
1 Building | |
2 Ready | |
3 Running | |
4 Paused | |
5 Stopped | |
6 Scheduled | |
7 Awaiting Trigger | |
8 InactiveTrigger | |
*/ | |
if (Status == 2) { | |
var obj = Platform.Function.CreateObject("Automation"); | |
Platform.Function.SetObjectProperty(obj, "ObjectID", ObjectID); | |
var po = Platform.Function.CreateObject("PerformOptions"); | |
var performResult = [0,0,0]; | |
var performStatus = Platform.Function.InvokePerform(obj, "start", performResult, po); | |
} else { | |
// already running | |
} | |
} else { | |
// automation not found | |
} | |
</script> |
[@Merlino, @fib-at-isobar nad @Romeroc3
Please change the status value based on your automation. In provided code status is 2 and in my code status is 6 likewise.
If you guys want to start an automation using SSJS, In backend(in SFMC org) you have to "create and activate" automation with required activities and then giving automation key in SSJS code(var automationCustomerKey = "e40XXX45-XXXX-XXXX-XXXX-Xde48faXX") from cloud page you can run
Below code may give idea to retrieve status
`<script runat="server">
Platform.Load("Core","1.1.1");
var automationCustomerKey = "XXXXXXXXXXXXXXXXXXXXXXXX"
var rr = Platform.Function.CreateObject("RetrieveRequest");
Platform.Function.SetObjectProperty(rr, "ObjectType", "Automation");
Platform.Function.AddObjectArrayItem(rr, "Properties", "ProgramID");
Platform.Function.AddObjectArrayItem(rr, "Properties", "CustomerKey");
Platform.Function.AddObjectArrayItem(rr, "Properties", "Status");
var sfp = Platform.Function.CreateObject("SimpleFilterPart");
Platform.Function.SetObjectProperty(sfp, "Property", "CustomerKey");
Platform.Function.SetObjectProperty(sfp, "SimpleOperator", "equals");
Platform.Function.AddObjectArrayItem(sfp, "Value", automationCustomerKey);
Platform.Function.SetObjectProperty(rr, "Filter", sfp);
var retrieveStatus = [0,0,0];
var automationResultSet = Platform.Function.InvokeRetrieve(rr, retrieveStatus);
var ObjectID = automationResultSet[0]["ObjectID"];
var Status = automationResultSet[0]["Status"];
if (ObjectID != "null") {
/*
Code Status
-1 Error
0 BuildingError
1 Building
2 Ready
3 Running
4 Paused
5 Stopped
6 Scheduled
7 Awaiting Trigger
8 _InactiveTrigger_
*/
if (Status == 6) {
var obj = Platform.Function.CreateObject("Automation");
Platform.Function.SetObjectProperty(obj, "ObjectID", ObjectID);
var po = Platform.Function.CreateObject("PerformOptions");
var performResult = [0,0,0];
var performStatus = Platform.Function.InvokePerform(obj, "start", performResult, po);
Write(Stringify(performStatus));
} else {
Write("Error")
}
}
</script>](url)`
Thanks for the solution, it helped me!) I am currently doing my marketing assignment and I needed help with that. I study in a business school, so I often use https://assignmentbro.com/us/marketing-assignment-help, because now I have decided to separately study various operations that are carried out in the marketing department. It's actually very interesting, but not very simple)