Logging custom activities through the API

In addition to the default activity types used by the contact management feature, you can also create custom activity types:

  1. Open the Contact management application in the Kentico administration.
  2. Switch to Configuration -> Activity types.
  3. Click New activity type.
  4. Fill in the display name and note the code name of your new activity type.

New activity type

Related pages

Kentico EMS required

Features described on this page require the Kentico EMS license.

After you add a custom activity type, you can use the Kentico API to log the activity for contacts. You need to:

  1. Open your Kentico project in Visual Studio.
  2. Create a class representing your activity type. The class must inherit from CMS.WebAnalytics.Activity.

    Either add the class into a custom project within the Kentico solution (recommended) or directly into the Kentico web project (anywhere in the CMSApp project for web application installations, into the App_Code folder for web site installations).

    Custom activity class example
    using CMS.WebAnalytics;
    
    public class MyActivity : Activity
    {
    	/// <summary>
    	/// Default constructor.
    	/// </summary>
    	/// <param name="variables">Environment variables required for proper logging of activities</param>
    	public MyActivity(ActivityContext variables) : base(variables)
    	{
    		Data.Title = "Activity title";
    	}
    
    	/// <summary>
    	/// The code name of the corresponding activity type in Kentico.
    	/// </summary>
    	protected override string ActivityType
    	{
    		get
    		{
    			return "MyActivity";
    		}
    	}
    
    	/// <summary>
    	/// The code name of the settings key that determines whether the system logs the activity.
    	/// </summary>
    	protected override string SettingsKeyName
    	{
    		get
    		{
    			// The code name of the "Custom activities" setting (in Settings -> On-line marketing -> Contact management -> Activities)
    			return "CMSCMCustomActivities";
    		}
    	}
    }
  3. Call the Log method of your activity class within the code where you want the activity to be logged.

    Logging the activity
    using CMS.WebAnalytics;
    
    ...
    
    var activity = new MyActivity(AnalyticsContext.ActivityEnvironmentVariables);
    activity.Log();

The system now automatically logs the custom activity when your custom code is triggered.