将参数传递给Kentico Marketing Automation工作流程

问题描述

如何将参数传递给Marketing Automation工作流?

我需要将名为“ MeetingId”的参数传递给工作流“ MeetingInvitation”。我该怎么办?

        ContactInfo contact = ContactInfoProvider.GetContacts()
                                                    .WhereEquals("ContactEmail","chamara@e.com")
                                                    .TopN(1)
                                                    .FirstOrDefault();

        // Gets the marketing automation process
        WorkflowInfo process = WorkflowInfoProvider.GetWorkflowInfo("MeetingInvitation",WorkflowTypeEnum.Automation);

        if ((contact != null) && (process != null))
        {
            // Creates an automation manager instance
            AutomationManager manager = AutomationManager.GetInstance(MembershipContext.AuthenticatedUser);
           
            // Starts the process for the contact
            manager.StartProcess(contact,process.WorkflowID);
        }

解决方法

我认为您无法使用像这样的代码将其作为营销自动化过程中的参数传递。如果触发器设置为活动,则可以将某些东西传递给MA流程的唯一方法是通过触发器数据。请参阅this blog article for example,基本上它展示了如何在提交表单后启动MA流程以及如何在MA流程中获取表单提交数据。

您可能需要类似的东西:

  • 将您的MA流程配置为在触发器的活动类型上运行
  • 在您的代码中(而不是显式地开始该过程),您可以为联系人发出这种类型的活动,包括您在ActivityDetailItemID参数中的ID
  • 通过此已发布的活动,Kentico将自动启动MA流程,您可以在此MA流程中访问包含所需数据的活动详细信息