public static void ProcessSicCode(string clientIp, KickFireModel.RootObject model)
        {
            // Lets put the user into the right pattern
            if (string.IsNullOrWhiteSpace(model.data[0].sicCode))
            {
                Log.Info("KickFire: No SicCode from Kickfire API call. IP is " + clientIp, "KickFire");
                return;
            }

            var profileItem = Items.GetProfileItemBySicCode(model.data[0].sicCode);

            if (profileItem != null)
            {
                Log.Info("KickFire: Override SicCode for " + model.data[0].sicCode, "KickFire");
            }

            // convert the response to our object
            var sicCodeModel = AnalyticsHelper.GetKickfireSicCodeModel(model.data[0].sicCode);

            if (sicCodeModel == null)
            {
                Log.Info("KickFire: Could not decode API call for " + model.data[0].sicCode, "Kickfire");
                return;
            }

            // get the group by group name
            var groupItem = Items.GetSicGroup(sicCodeModel.Grouping);

            if (groupItem?.Fields[IDs.Fields.GroupParent.Profile] != null && ((LookupField)groupItem.Fields[IDs.Fields.GroupParent.Profile]).TargetItem != null)
            {
                // get profile key from group item
                profileItem = ((LookupField)groupItem.Fields[IDs.Fields.GroupParent.Profile]).TargetItem;
            }
            else
            {
                Log.Info("KickFire: Could not find group in Sitecore for " + sicCodeModel.Grouping, "Kickfire");
            }

            if (profileItem == null)
            {
                Log.Info(
                    "Profile Item is null. This is the lookup to the profile item from the Grouping item in Sitecore. ",
                    "KickFire");
                return;
            }

            ProcessProfile(profileItem);
        }