• Hybrid Agentic AI Use Cases: Combining OpenAI AgentKit and Salesforce Agentforce

    The OpenAI DevDay 2025 announcements signal a new era for enterprise AI — one where agents no longer live inside a single ecosystem but collaborate across them.

    With AgentKit now generally available, organizations have more flexibility than ever to build and connect agentic AI systems.

    Drawing on my experience in CRM strategy and Salesforce architecture, I see a clear opportunity for hybrid agentic AI models — solutions that combine the openness of OpenAI’s ecosystem with the enterprise depth and governance of Salesforce.

    Many enterprise clients express the same concerns:

    • They want to accelerate automation with AI but fear vendor lock-in.
    • Full-stack CRM ecosystems, while powerful, can be costly and rigid when implemented end-to-end.

    Hybrid AI architectures solve this challenge by combining the best of both worlds:

    • OpenAI AgentKit — for open, model-agnostic intelligence, data analysis, and real-time customer interactions.
    • Salesforce Agentforce & MCP — for secure execution, governance, and CRM-anchored data management.

    This partnership between flexibility and structure allows enterprises to innovate faster without sacrificing control.

    Let’s explore below use cases where a hybrid agentic approach delivers immediate business impact.


    Use Case 1: Intelligent Lead Nurturing in Marketing

    Challenge:
    Marketing teams need to identify, qualify, and nurture leads efficiently across multiple digital channels.

    Solution:
    Deploy AgentKit (or similar agentic tools) on your website or app to analyze visitor behavior — tracking engagement patterns, performing lead scoring, identifying qualification criteria and offering conversational shopping assistance on the front end.

    The results can then be sent to Salesforce Marketing Cloud Engagement, which triggers personalized workflows such as:

    • Lead nurturing sequences
    • Campaign automation
    • Dynamic content personalization

    Result:
    Top-funnel intelligence is managed by OpenAI’s flexible agents, while bottom-funnel engagement and conversion are handled by Salesforce’s CRM workflows — a clean division of strengths that increases both speed and precision.

    Hybrid Marketing Workflow with AgentKit and Salesforce
    Figure 1: Hybrid Marketing Workflow with AgentKit and Salesforce

    Use Case 2: Smarter Customer Service Orchestration

    Challenge:
    Service teams not spending valuable time managing complex inquiries .

    Solution:
    Implement AgentKit on your website’s chatbot or service portal to handle first-line interactions such as:

    • Frequently asked questions
    • Product return requests
    • General inquiries or complaints

    When escalation is needed, AgentKit passes structured summaries into Salesforce Service Cloud for routing and case management. It can also integrate with your email service providers to send confirmation messages and update ERP systems in real time.

    Complex service cases handling remain within Salesforce, where AgentKit provides orchestration and connectivities with other AI solutions within the entire service workflow.

    Result:
    Customers receive faster, AI-powered responses, while human agents and Salesforce Agentforce can dedicate their time to resolving complex or sensitive cases.

    Hybrid Service Workflow with AgentKit and Salesforce
    Figure 2: Hybrid Service Workflow with AgentKit and Salesforce

    Use Case 3: Account Health Monitoring

    Challenge:
    Customer success teams often struggle to proactively identify at-risk accounts before churn happens. Signals of dissatisfaction are buried in emails, chat transcripts, survey comments, or social media — unstructured data that traditional CRM systems can’t easily interpret in real time.

    Solution:
    AgentKit continuously monitors customer sentiment and feedback across multiple channels — email, chat, social mentions, and service logs. Using language understanding and pattern detection, it flags early indicators of declining satisfaction or reduced engagement.

    When potential churn signals are detected, AgentKit sends structured alerts to Salesforce Customer 360, where Agentforce automatically triggers follow-up actions such as:

    • Assigning tasks to Customer Success Managers
    • Scheduling outreach calls or personalized retention offers
    • Initiating automated check-in workflows or surveys

    Result:
    Your organization shifts from being reactive to proactive — addressing potential churn before it happens. AgentKit provides the insight layer through unstructured data analysis, while Salesforce Agentforce ensures timely, governed action through CRM automation and customer success playbooks.

    ScenarioBest Choice
    CRM-focused AI agents for sales, service, or marketingSalesforce Agentforce
    Enterprise using both Salesforce and external systemsHybrid: AgentKit + Salesforce MCP integration

    Salesforce MCP is currently in pilot testing and not yet open for direct AgentKit integration.

    AgentKit became generally available on November 1, 2025, with transparent pricing (early-access testing was free).

    Open-source flexibility and CRM domain depth are not opposites — they’re complementary layers in the next generation of enterprise AI.

    The evolution of AI agents is no longer about choosing a platform — it’s about connecting them.

    Hybrid agentic AI Solutions let organizations stay flexible, grounded, and innovative — combining the creativity of OpenAI with the trust architecture of Salesforce. The companies that master this balance will define the next era of intelligent business automation.

  • We are living in the digital-first world and companies are trying to stay ahead in this digital competition. According to the Consumer Trends Index 2023 for Europe, 48% of consumers in Europe have made a purchase directly from an email they received in the last year. Email marketing is still performing and serves as a main channel of digital marketing. Salesforce Marketing Cloud is one of the providers that have the most advanced email marketing and personalisation capabilities that can make the marketeer’s life much easier. This series of blogs covers topics such as – IP Warmup Hiccups, Contact Deletion, Process Automation, and Subscriber Engagement Monitoring- in the Salesforce Marketing Cloud implementation.

    As a marketer, it is not that the higher amount of subscribers the better, it is the number of engaged customers that matters. A few benefits of keeping the contacts data clean and high quality are: 1) Salesforce license cost is highly related to the contact counts in the system. As the marketer, regularly check the contacts amount in “All Contacts” tab to stay within the license limit as well as to remove contacts to avoid paying unnecessarily. 2) Keeping a high quality contact database is critical in building up and maintaining a high sending domain reputation to avoid emails landing in the customer’s spam box. 3) regularly deleting unnecessary contact data keeps the company compliant with the privacy laws, such as GDPR (General Data Protection Regulation) and CCPA (California Consumer Privacy Act), to “not collect or keep more personal data than strictly necessary”.

    Contacts can enter Marketing Cloud from many sources. The primary way is via import, which means from the synchronous data extension that is connected to sync contacts from Service Cloud. Other sources include MobilePush, MobileConnect, etc.. What is considered unnecessary contact? The bottom line is CRM (most of the time salesforce service cloud) should be the system of record. When the Salesforce connector is set up, make sure the synchronised data extension only syncs the engaged subscribers. Therefore, any contact which is not part of the synchronised data extension is a candidate for deletion. However, there are some use cases in which contacts should bypass the deletion process. For example, contacts have the status as held and bounce, if they are deleted, their bounce histories will also be erased. Maybe it’s better to remain in the marketing cloud and rely on the marketing cloud’s bounce management capability. Once the contact’s status is changed to inactive, they can be included in the deletion. The selection for deletion should be tailored based on the business needs. The end goal of preparation is to store the to-be-deleted contact list (SubscriberKey field only) in a CSV file.

    Contact deletion steps are as follows:

    (1) Create a package in the parent account and give API access to read and write data extensions, so that the SSJS script can run at the child business level and delete the contacts from the parent unit level. “List and Subscribers Read and Write” permissions are sufficient for this contact deletion process.

    Create a package in parent business unit

    (2) Create a shared Data Extension. Only SubscriberKey is needed for the contact deletion. Make sure to create the data extension as “sendable”. Import the prepared CSV file to this shared data extension.

    Shared Data Extension

    (3) Create a SSJS activity and use the below script for contact deletion. Provide information of the sub-domain, client credentials from the previous two steps.

    <script runat="server">
    Platform.Load("Core", "1");
    try {
    //AUTHENTICATE
    var url = "https://xxx.auth.marketingcloudapis.com/v2/token";
    var contentType = "application/json";
    var payload = '{"grant_type": "client_credentials","client_id": "xxx","client_secret": "xxx","account_id":"xxx"}';
    var accessTokenResult = HTTP.Post(url, contentType, payload);
    var accessToken = Platform.Function.ParseJSON(accessTokenResult["Response"][0]).access_token;
    if (accessToken != "") {
    //EXECUTE
    var deleteUrl = "https://xxx.rest.marketingcloudapis.com/contacts/v1/contacts/actions/delete?type=listReference";
    var payload1 = '{"deleteOperationType": "ContactAndAttributes","targetList": {"listType": {"listTypeID": x},"listKey": “xxx”},”deleteListWhenCompleted": false,"deleteListContentsWhenCompleted": false}';
    var headerNames = ["Authorization"];
    var s1 = "Bearer ";
    var headerValues = [s1.concat(accessToken)];
    var result = HTTP.Post(deleteUrl, contentType, payload1, headerNames, headerValues);
    }
    } catch (ex) {
    Write("Exception Error: " + Stringify(ex));
    }
    </script>
    

    (4) Create the delete process in the child business unit and call the contact deletion SSJS script from child business unit. The below contact deletion automation is an example, and it has additional features such as: before deletion – verify if the shared data extension has contacts for deletion; after deletion – record contact deletion log; and after deletion – refresh SFMC contact count.

    Example of contact deletion Process

    Some practical tips:

    • Contact deletion feature needs to be enabled in the parent business unit level.
    • The default suppression period is 2 days, it can be changed to 0-30 days.
    • Delete up to one million records is the system limit. However, smaller amount over a period of time is considered a safer approach.

    In summary, contact deletion is a continuous process. The next step is to keep monitoring the subscribers engagement level. Keep only the engaged subscribers and delete regularly the un-engaged subscribers. This normally need data support (such as 6 months engagement history). A following blog will cover this topic. Stay tuned!

    Thanks for reading!

  • For Articles Import, Salesforce documentation is sufficient enough to follow. Best way to start with is to follow the instructions from Setup->Import Articles, download the sample files and adjust to your content. Import External Content into Salesforce Knowledge provides more information.

    However, for the scenario that a translation would like to be added to the master language article separately, there is not much information online so far, thereby I have written down the below instructions as a reference. For individual translation import, it always start with requesting for a translation, thereby Salesforce will prepare the translation version an Article ID. Afterwards, either editor can edit either online or offline (then import).

    Request for Translation

    1. Find the article you would like to have a translation.
    2. Click the “Submit For Translation”.

    3. Select the language you would like for the translation, suggest also select “Send notification email”.

    4. Assigned user will receive an email notification with the link for editing the translation. 

    Note that this means that internal salesforce user can edit the translation directly by clicking the email link. For the import article translation, continue follow Import Article Translation section below.

    Import Article Translation

    Similar with import articles, we need to prepare the import zip file structure.

    1. There is limited information from Salesforce to start with: https://help.salesforce.com/articleView?id=knowledge_translation_import.htm&type=5
    2. Below is the overview of the folder structure:

    3. This is the properties file content, see blue notes for special attention.

    CSVEncoding=UTF-8.              

    DefaultHTMLEncoding=UTF-8

    RTAEncoding=UTF-8

    CSVSeparator=;

    DateFormat=yyyy-MM-dd

    DateTimeFormat=yyyy-MM-dd HH:mm:ss

    ArticleTypes=Knowledge__kav     

    – note: “Knowledge_kav” is the name of your folder and csv file.

    SourceLanguage=en_US.                            

     – note: this is the language of the master article.

    TargetLanguage=fr                                      

     – note: this is the language of your translation version.

    4. In the CSV file, the field KnowledgeArticleId is very important. It comes from the email links, see highlighted below, which enables system to know where to import the content and also links to the master article. 

    5. After import, the translation will be appear in the “Article Management” as expected.

    Hope this article can help you!

  • Salesforce Knowledge base is like a swimming pool of (max. 10,000) knowledge articles.

    Data Category is the most key concept that helps with organising these many articles. It is a hierarchical classification of articles in the knowledge base according to multiple categories.

    Besides structuring the knowledge base, data categories also commonly used for 2 other purposes:

    1. Providing a way to secure the access to the knowledge-base content
    For instance, restricting a profile (R&D users) to only viewResearch” data category articles.

    2. Feeding the agent users/community users the relevant articles. This is achieved by Automatic Case Mapping and Automatic Community Navigation Topics Mapping.

    This diagram above explains that data category is centrally set up in the Settings. Each knowledge article (right box) can be tagged with different categories.

    Suppose an agent (normally agents work with the case object) selects a value from case related category field (can be a standard or custom with pick-list field, the values are defined exactly the same as data category), then all knowledge articles tagged with the same category will be suggested for this agent when the case is created.

    The same way works for the community user, if a community user selects a navigation topic, all the knowledge articles that are under this category and are mapped to this navigation topic will appear in the community.

    Hope this blog helps with understanding the data category concept within Salesforce!

  • This month I would like to write a blog about Salesforce, also because I just became a certified salesforce administrator.

    Salesforce is a very easy-going enterprise application for mainly CRM system. 80% of the system is configurable, and with AppExchange, lots of templates and solutions are ready for download and use.

    I highly recommend the salesforce training, which is free and very well structured. You can follow trailmix and learn step by step for a specialization. During the trailmix, you will complete badges, super badges, and projects. Each unit is not too big and learner can build up the confidence to go along the journey. I enjoyed earning super badges very much, due to it is assignment based challenge typically takes 6-8 hours to complete. It can be stressful if you are stuck in the middle of somewhere, but heyy do not forget we have google, there are many of others has been through this and shared their experience! With the completion of a super badge, you will receive 5000-6000 points, that will be a real happy moment!

    For example, below is my overview after 3 weeks 🙂

    Salesforce user is called Trailblazer, there are many cartoon characteristics makes the company feel easy-going and young, if you are interested in the cartoon’s meaning, here you go: Astro, Codey, and Friends. Never forget that Salesforce engages in organising many community events for users or certain group users, like admin users, it’s also amazing to observe such an enterprise company can engage with its users in such an easy and relaxed way.


    Based on my observation this month, there are two areas in Salesforce where I found not perfect yet.

    Firstly, the structure of the functionalities in the application is not very easy to follow anymore. Due to the fast growth over the past 20 years, Salesforce started with CRM system and grew to a platform basically can do everything. During this journey, 2 versions of salesforce are running in parallel – Classic and Lightning. I think Salesforce planned to transit from classic to lightning, but due to any reason it is not yet fully managed, some functionalities still require to switch to Classic to use. On a micro level, a functionality, for instance -workflow- Salesforce has 3 tools to do the same, each new tool has a bit more functionality compared with the earlier tool, not sure why Salesforce did not choose to release a new version of the same tool instead.

    Secondly, Salesforce Einstein claims to have AI capability, however, the reality seems that it is restricted in the area of analytics. It is powerful in connecting data sources internally and externally, as well as reporting and building dashboards. However, there is no sign indicating the system is learning from users’ feedback (so-called feedback loop), which is the key element in machine learning, thus I do not count it is intelligent. Looking forward to the future Einstein!

  • Jim Morrison
    Amy Winehouse

    The key things from the book Querkles I found is about Abstraction and Shadow.

    The book has abstracted the image (people face) with circles and different sizes of circles (via computer algorithm?) and instructs user to use 5 different colours to represent the different shades of the image. As I have used in the above 1st picture is an extreme example – using standard neutral colors from light to dark. In the 2nd picture, by using green in middle of a few neutral colors, it still looks great! For the next picture, I will use 5 completely different colors: orange, light purple, light green, light blue and light brown. I will also mix the color the other way around, for instance brown is more used for the hair color, but I will use the light purple for the hair (color #1 – darkest). You will see a purple guy or lady in my next picture!

    Above all, knowing some famous faces is also fun! I always need a bit of googling to find out who they are :).

  • Below are some data visualization graph examples that have helped me with answering project questions.

    Example1: Sentimental distribution: big organization employees´ reaction to Big Data as the new  technology.

    Picture1

               Green: Neutral
    Blue: Positive
    Red: Negative
    White: No Sentiment

    Example 2: Project Workload Visualization.

    workload

    Resource Requirement Visualization:

    resources requirement

    Workload Breakeven Management:

    breakeven

    Tools I have used: Gephi, SPSS, and Excel.