<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0">
    <channel>
        <title><![CDATA[Your journey for superior customer and business experience]]></title>
        <description><![CDATA[Tekunda blog where we share our experiences, guides, and latest news. A place to give back to our amazing community!]]></description>
        <link>https://tekunda.com</link>
        <image>
            <url>https://tekunda.com/content-assets/shared/brand/tekunda-logo.png</url>
            <title>Your journey for superior customer and business experience</title>
            <link>https://tekunda.com</link>
        </image>
        <generator>RSS for Node</generator>
        <lastBuildDate>Wed, 11 Nov 2026 18:51:12 GMT</lastBuildDate>
        <atom:link href="https://tekunda.com/rss.xml" rel="self" type="application/rss+xml"/>
        <pubDate>Wed, 11 Nov 2026 18:51:12 GMT</pubDate>
        <copyright><![CDATA[© 2026 Tekunda L.L.C-FZ all rights reserved]]></copyright>
        <item>
            <title><![CDATA[How to choose a Salesforce implementation partner: a buyer-side checklist]]></title>
            <description><![CDATA[Evaluate Salesforce partners on delivery proof, the right certifications and post-go-live support, not on the rate card.]]></description>
            <link>https://tekunda.com/blog/How-to-choose-a-Salesforce-implementation-partner%3A-a-buyer-side-checklist</link>
            <guid isPermaLink="false">https://tekunda.com/blog/How-to-choose-a-Salesforce-implementation-partner%3A-a-buyer-side-checklist</guid>
            <dc:creator><![CDATA[Tekunda Team]]></dc:creator>
            <pubDate>Wed, 11 Nov 2026 14:25:46 GMT</pubDate>
            <content:encoded>&lt;p&gt;
  &lt;strong&gt;Short answer:&lt;/strong&gt; choose on evidence of delivery, not on the rate card.
  Ask for three things you can verify: a reference project in your industry with a named
  outcome, the certifications of the specific people who will sit on your team rather
  than the firm&apos;s total, and a written description of what support looks like the week
  after go-live. A cheap day rate that produces rework is the most expensive option on
  the table.
&lt;/p&gt;

&lt;h2&gt;Why does the rate card mislead so reliably?&lt;/h2&gt;
&lt;p&gt;Because it prices a seat, and you are buying an outcome. Three patterns repeat:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;
    &lt;strong&gt;The blended rate hides the bench.&lt;/strong&gt; One average number can mean a
    senior architect for a week and juniors for six months. Ask for the team composition
    per phase.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Rework is invisible at signing.&lt;/strong&gt; Configuration that ignores your
    data model looks identical on a status report to configuration that fits it. The
    difference surfaces in month five, as change orders.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;The scope cut to hit the number was the integration.&lt;/strong&gt; Salesforce
    projects rarely fail at the CRM. They fail at the boundary: the ERP, the telephony,
    the identity provider, the migration nobody costed.
  &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
  None of that argues for the highest bid. It argues for comparing the total cost of a
  working system, and asking each bidder to show where their number will move.
&lt;/p&gt;

&lt;h2&gt;Do Salesforce partner tiers still tell you anything?&lt;/h2&gt;
&lt;p&gt;
  Less than they did, and the rules have just changed. On 3 March 2026 Salesforce
  &lt;a
    href=&quot;https://www.salesforceben.com/salesforce-massively-overhauls-partner-program/&quot;
    &gt;overhauled its consulting partner program&lt;/a
  &gt;: the four tiers of Base, Ridge, Crest and Summit collapse into two, Select and
  Summit, and 170 Navigator badges become 28 competencies, each recognised at Accredited
  or Expert level.
&lt;/p&gt;
&lt;p&gt;
  The useful part for a buyer is how a competency is earned: certifications, completed
  projects and customer satisfaction scores. That makes it a claim about delivery
  history rather than about sales volume. Two consequences:
&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;
    A tier badge quoted in an older deck or case study may no longer mean what it meant.
    Ask what the partner holds today.
  &lt;/li&gt;
  &lt;li&gt;
    A competency in the exact product you are buying, whether that is Agentforce, Data
    Cloud or Field Service, is worth more to you than a higher overall tier earned
    somewhere else.
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;What delivery proof should you ask for?&lt;/h2&gt;
&lt;p&gt;
  Ask for artifacts, not adjectives. A partner who has done the work can produce these
  within a day:
&lt;/p&gt;
&lt;ol&gt;
  &lt;li&gt;
    &lt;strong&gt;One reference project in your industry&lt;/strong&gt;, with the before-and-after
    number attached and a client willing to take the call.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;A redacted solution design from a past project.&lt;/strong&gt; You are checking
    whether they document decisions or improvise them.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Their deployment method.&lt;/strong&gt; How does a change get from a developer to
    production, who approves it, and how is a bad release rolled back? If the answer is
    change sets and a spreadsheet, you will feel it every release.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;A named failure.&lt;/strong&gt; What went wrong on a recent project, and what
    changed afterwards? A partner with no answer has either no history or no candour.
  &lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;Which certifications actually matter?&lt;/h2&gt;
&lt;p&gt;
  The ones held by the people who will be on your project. A company-wide certification
  count is a recruitment statistic. What matters is:
&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;
    An &lt;strong&gt;architect&lt;/strong&gt; credential on whoever owns the data model, if you have
    more than one source of customer truth.
  &lt;/li&gt;
  &lt;li&gt;
    A &lt;strong&gt;product&lt;/strong&gt; certification matching your real scope: Field Service,
    Service Cloud, Data Cloud, CPQ. Generalists make you pay for discovery twice.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;PDO or ISV experience&lt;/strong&gt; if anything you build will be packaged,
    distributed or taken through AppExchange security review. That is a different
    discipline from org configuration, and the one most often assumed.
  &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
  Salesforce certifications are individually verifiable, so verify them. Name the
  delivery team in the statement of work and make substitutions require your approval.
&lt;/p&gt;

&lt;h2&gt;Who will actually do the work?&lt;/h2&gt;
&lt;p&gt;
  The pitch team is rarely the delivery team. Three questions settle it: who is full
  time on your project rather than allocated across four, in which time zones, and
  whether any of the work is subcontracted. None of these has a wrong answer. A partner
  who will not answer them plainly has given you one anyway.
&lt;/p&gt;

&lt;h2&gt;What does support look like after go-live?&lt;/h2&gt;
&lt;p&gt;Get it in writing before you sign, in these terms:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;The hypercare window, how long it lasts and who is in it.&lt;/li&gt;
  &lt;li&gt;Response targets by severity, and what qualifies as severity one.&lt;/li&gt;
  &lt;li&gt;
    Who holds the knowledge if your admin leaves, and where the documentation lives.
  &lt;/li&gt;
  &lt;li&gt;How enhancements are funded once the project budget closes.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
  Salesforce ships three releases a year, so &quot;done&quot; is not a state your org gets to
  occupy. The partner who plans for that costs less over three years than the one who
  books the launch party.
&lt;/p&gt;

&lt;h2&gt;What are the red flags?&lt;/h2&gt;
&lt;ul&gt;
  &lt;li&gt;
    A fixed price quoted before any discovery. It is either padded or it will be
    reopened.
  &lt;/li&gt;
  &lt;li&gt;No questions about your data. Migration is where schedules die.&lt;/li&gt;
  &lt;li&gt;Certifications quoted as a company total.&lt;/li&gt;
  &lt;li&gt;Reluctance to name the delivery team.&lt;/li&gt;
  &lt;li&gt;
    Custom code proposed where configuration would do, or the reverse, with no stated
    reason.
  &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
  Tekunda is a certified Salesforce SI, ISV and PDO with 20+ organisations live in
  production, and we would rather publish the numbers than the adjectives: for ASSA
  ABLOY, weekly cases fell from 3,000 to 350 across 11,000 connected devices, with no
  added support staff. Ask us for exactly the proof you should ask anyone else for.
  &lt;a href=&quot;/&quot;&gt;See what we build&lt;/a&gt;.
&lt;/p&gt;

&lt;h2&gt;FAQ&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Is a bigger Salesforce partner safer?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  Not inherently. Scale buys coverage and continuity, a smaller firm usually buys
  seniority on your actual project. Decide which risk matters more for your scope.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;How long should choosing a partner take?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  Two to four weeks for a shortlist of three, reference calls included. Beyond that the
  business case ages faster than the evaluation improves.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Should I run a paid discovery before the full project?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  Usually yes. A short paid discovery buys you a real estimate and a sample of how the
  partner works, for a fraction of the cost of finding out mid-build.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What if the partner I like lacks one skill I need?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  That is normal, and fine if they say so upfront. Ask how the gap is covered, by whom,
  and who is accountable where the two halves meet.
&lt;/p&gt;
</content:encoded>
        </item>
        <item>
            <title><![CDATA[Salesforce Release Management for Small Admin Teams]]></title>
            <description><![CDATA[A practical release process for one to five Salesforce admins: a release calendar, tracked changes, sandbox testing and a written rollback plan.]]></description>
            <link>https://tekunda.com/blog/Salesforce-Release-Management-for-Small-Admin-Teams</link>
            <guid isPermaLink="false">https://tekunda.com/blog/Salesforce-Release-Management-for-Small-Admin-Teams</guid>
            <dc:creator><![CDATA[Tekunda Team]]></dc:creator>
            <pubDate>Sun, 08 Nov 2026 12:00:00 GMT</pubDate>
            <content:encoded>&lt;p&gt;
  &lt;strong&gt;TL;DR:&lt;/strong&gt; Salesforce release management for a small admin team comes
  down to four habits: a shared release calendar, every change tracked in one place, a
  test pass in a sandbox before production, and a written rollback plan. You do not need
  a dedicated DevOps engineer to run it. Start with DevOps Center or change sets, and
  add the Salesforce CLI once the volume of change outgrows clicks.
&lt;/p&gt;
&lt;h2&gt;What is Salesforce release management for a small admin team?&lt;/h2&gt;
&lt;p&gt;
  It is the process that decides which changes reach production, when they go, and how
  you prove they work. For a team of one to five admins it is less about tooling and
  more about one rule: nobody deploys something the rest of the team cannot see.
&lt;/p&gt;
&lt;p&gt;
  Small teams carry a load that large teams split across roles. The same person gathers
  the requirement, builds the Flow, tests it, deploys it and answers the support ticket
  when it breaks. A light process protects that person from overwriting a colleague&apos;s
  work or shipping into the middle of a Salesforce upgrade.
&lt;/p&gt;
&lt;h2&gt;Why should a small team plan releases around Salesforce&apos;s own releases?&lt;/h2&gt;
&lt;p&gt;
  Salesforce ships three major releases a year: Spring, Summer and Winter.
  &lt;a
    href=&quot;https://www.salesforceben.com/salesforce-spring-27-release-what-to-expect-and-how-to-prepare-part-1/&quot;
    &gt;Spring &apos;27 arrives in January 2027&lt;/a
  &gt;, and some security release updates are enforced before the release window opens,
  starting with the OAuth 2.0 Device Flow restriction on November 30, 2026.
&lt;/p&gt;
&lt;p&gt;
  This is the part most release guides skip. A small team&apos;s calendar has two layers:
  your changes and Salesforce&apos;s. Preview sandboxes upgrade weeks before production, and
  &lt;a
    href=&quot;https://www.salesforceben.com/why-admins-should-beware-of-salesforce-sandbox-preview-orgs/&quot;
    &gt;Lightning Record Pages and Flows change structure between releases&lt;/a
  &gt;, so a deployment from a preview sandbox to a production org still on the old release
  is where things quietly break. In practice:
&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;
    Know which of your sandboxes sit on the preview instance before the upgrade starts.
  &lt;/li&gt;
  &lt;li&gt;
    Hold Flow and Lightning page deployments while sandboxes and production run
    different releases.
  &lt;/li&gt;
  &lt;li&gt;
    Test each release update in a sandbox first, then enable it in production on a date
    you chose, not the date Salesforce enforces it.
  &lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;What does a lightweight release process look like?&lt;/h2&gt;
&lt;ol&gt;
  &lt;li&gt;
    &lt;strong&gt;Log every change as a work item.&lt;/strong&gt; One request, one owner, one record
    of what changed and why.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Build in a sandbox, never in production.&lt;/strong&gt; Even a quick picklist
    value goes through the same path.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Keep metadata in source control.&lt;/strong&gt; A single branch is enough to
    start. It is the foundation of the
    &lt;a href=&quot;/blog/Salesforce-Metadata-Governance-for-Growing-Orgs-and-Teams&quot;
      &gt;metadata governance&lt;/a
    &gt;
    you will need as the org grows.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Test with a real user.&lt;/strong&gt; Ask one person from the affected team to run
    their daily task in the sandbox.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Tell users before you deploy.&lt;/strong&gt; A two-line message saying what
    changes and when prevents most surprise tickets.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Deploy outside working hours with a rollback plan.&lt;/strong&gt; Write down what
    you would reverse and how, before you click deploy.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Smoke-test and write release notes.&lt;/strong&gt; Check the three screens people
    use most, then record what shipped.
  &lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;Change sets, DevOps Center or the Salesforce CLI: which should you use?&lt;/h2&gt;
&lt;ul&gt;
  &lt;li&gt;
    &lt;strong&gt;Change sets:&lt;/strong&gt; built into Setup with no tooling to install. They are
    built by hand, have no version control and no native rollback, and must be recreated
    for each new target org.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;DevOps Center:&lt;/strong&gt; point-and-click change tracking backed by Git. The
    &lt;a
      href=&quot;https://www.salesforceben.com/next-generation-salesforce-devops-center-get-hands-on/&quot;
      &gt;next generation of DevOps Center&lt;/a
    &gt;
    runs natively in your production org with no managed package, works with GitHub and
    Bitbucket, and adds a dependency viewer, a Tests tab and DORA metrics.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Salesforce CLI:&lt;/strong&gt; scripted, repeatable deployments for teams ready to
    automate. Our guide on
    &lt;a href=&quot;/blog/How-Salesforce-CLI-Turns-Admin-Work-Into-Repeatable-Code&quot;
      &gt;how the Salesforce CLI turns admin work into repeatable code&lt;/a
    &gt;
    shows the first commands worth learning.
  &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
  Rule of thumb: if two admins have ever overwritten each other&apos;s change, move off
  change sets. If you deploy more than once a week, start scripting.
&lt;/p&gt;
&lt;h2&gt;What is a headless MCP server, and does it matter for release management?&lt;/h2&gt;
&lt;p&gt;
  A headless MCP server exposes a platform&apos;s capabilities as tools that AI agents call
  through the Model Context Protocol, with no user interface in between. Salesforce
  launched
  &lt;a
    href=&quot;https://www.salesforce.com/news/stories/expanding-headless-360-enterprise-capabilities/&quot;
    &gt;Headless 360&lt;/a
  &gt;
  at TDX in April 2026 to make the platform reachable through APIs, MCP and the CLI, and
  the Headless 360 MCP Server entered beta in July 2026. It runs under the calling
  user&apos;s permissions, including object, field and sharing access. The new DevOps Center
  also exposes its operations through the Salesforce MCP.
&lt;/p&gt;
&lt;p&gt;
  For a small team this is extra capacity, not a replacement. An agent can draft release
  notes, check metadata dependencies or prepare a work item, while an admin still
  approves the promotion. Tekunda is the first and only partner running headless CRM
  plus MCP in production, and the first to run agent-to-agent (A2A) and SWARM
  orchestration in production. We use both to add hands to admin teams on top of their
  Salesforce investment.
&lt;/p&gt;
&lt;h2&gt;When should a small admin team bring in a partner?&lt;/h2&gt;
&lt;p&gt;
  When releases start colliding, when one admin holds all the knowledge, or when the org
  carries specialised data such as devices and assets. Connected-device programs are a
  good example: the triage rules behind
  &lt;a
    href=&quot;/blog/How-connected-device-teams-cut-support-cases-by-93-percent-on-Salesforce&quot;
    &gt;how connected-device teams cut support cases by 93 percent&lt;/a
  &gt;
  stay reliable because they are versioned in source control, deployed through a
  pipeline and can be rolled back. &lt;a href=&quot;/&quot;&gt;Tekunda&lt;/a&gt; is a certified Salesforce SI,
  ISV, PDO and Agentforce partner, and an Anthropic (Claude) partner. If your release
  process needs a second pair of hands, &lt;a href=&quot;/contact&quot;&gt;talk to our team&lt;/a&gt;.
&lt;/p&gt;
&lt;h2&gt;FAQ&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Do small Salesforce teams really need release management?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  Yes. A light process with a calendar, tracked changes and a rollback plan prevents
  most production incidents, and it takes hours to set up, not weeks.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Is DevOps Center free?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  DevOps Center is included at no extra cost with Professional, Enterprise, Performance,
  Developer and Unlimited editions. Professional edition needs API access.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Should I deploy during the Salesforce sandbox preview?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  Avoid deploying Flows and Lightning pages from a preview sandbox to a production org
  that has not upgraded yet. Wait until both run the same release.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Can AI agents run Salesforce releases?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  Agents can prepare work through MCP, such as release notes and dependency checks,
  under the user&apos;s own permissions. Keep a human approval on every production promotion.
&lt;/p&gt;
</content:encoded>
        </item>
        <item>
            <title><![CDATA[Agentforce vs Custom AI Agents: When to Configure and When to Build]]></title>
            <description><![CDATA[Agentforce covers bounded CRM work. Novel decision support needs a custom agent. One test settles most cases, and the answer is often both.]]></description>
            <link>https://tekunda.com/blog/Agentforce-vs-Custom-AI-Agents%3A-When-to-Configure-and-When-to-Build</link>
            <guid isPermaLink="false">https://tekunda.com/blog/Agentforce-vs-Custom-AI-Agents%3A-When-to-Configure-and-When-to-Build</guid>
            <dc:creator><![CDATA[Tekunda Team]]></dc:creator>
            <pubDate>Sun, 08 Nov 2026 06:01:04 GMT</pubDate>
            <content:encoded>&lt;p&gt;
  &lt;strong&gt;Short answer:&lt;/strong&gt; configure Agentforce when the job is a bounded set of
  actions on data Salesforce already holds. Build your own AI agent when the hard part
  is the reasoning rather than the action, or when the decisive data lives outside the
  CRM. Most serious deployments in 2026 end up doing both, with a deliberate seam
  between them.
&lt;/p&gt;

&lt;h2&gt;What is the actual difference?&lt;/h2&gt;
&lt;ul&gt;
  &lt;li&gt;
    &lt;strong&gt;Agentforce&lt;/strong&gt; is Salesforce&apos;s agent layer. It runs on the Atlas
    Reasoning Engine, is configured in Agentforce Builder rather than coded from
    scratch, and inherits the platform&apos;s identity, sharing model, audit trail and
    governor limits (&lt;a
      href=&quot;https://developer.salesforce.com/docs/einstein/genai/guide/agent-apex-limits.html&quot;
      &gt;Agentforce Developer Guide&lt;/a
    &gt;).
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;A custom AI agent&lt;/strong&gt; is software you own: your model choice, your
    retrieval, your tools, your orchestration, running wherever you want, against
    whatever systems you have.
  &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
  The trade is not &quot;easy versus powerful&quot;. It is &lt;em&gt;bounded and governed&lt;/em&gt; against
  &lt;em&gt;unbounded and yours&lt;/em&gt;. Both are the right answer roughly half the time.
&lt;/p&gt;

&lt;h2&gt;What changed in Agentforce since 2025?&lt;/h2&gt;
&lt;p&gt;
  The line between configuring and building has moved, so an older comparison will
  mislead you. Four changes matter for this decision:
&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;
    &lt;strong&gt;Hybrid reasoning with Agent Script.&lt;/strong&gt; Agentforce 360, generally
    available since October 2025, lets developers define guardrails, tool use and logic
    in Agent Script, combining deterministic workflows with LLM reasoning (&lt;a
      href=&quot;https://www.salesforce.com/news/press-releases/2025/10/13/agentic-enterprise-announcement/&quot;
      &gt;Salesforce&lt;/a
    &gt;). Salesforce says Agent Script is included with Agentforce at no extra cost (&lt;a
      href=&quot;https://www.salesforce.com/au/agentforce/script/&quot;
      &gt;Salesforce&lt;/a
    &gt;).
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;More model choice.&lt;/strong&gt; Customers can run Anthropic models via Amazon
    Bedrock, Google Gemini and OpenAI models inside Agentforce, so &quot;you need model
    choice&quot; is a weaker reason to build than it was.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Open doors to outside agents.&lt;/strong&gt; Agentforce 3 announced a native MCP
    client so agents can connect to MCP-compliant servers (&lt;a
      href=&quot;https://investor.salesforce.com/news/news-details/2025/Salesforce-Launches-Agentforce-3-to-Solve-the-Biggest-Blockers-to-Scaling-AI-Agents-Visibility-and-Control/&quot;
      &gt;Salesforce&lt;/a
    &gt;). In August 2026 Salesforce put a Headless 360 MCP Server into open beta, letting
    agents discover and act on Salesforce capabilities at runtime (&lt;a
      href=&quot;https://cxtoday.com/crm/salesforce-headless-360-expansion-agentic-cx&quot;
      &gt;CX Today&lt;/a
    &gt;).
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Prebuilt agents and orchestration.&lt;/strong&gt; In September 2026 Salesforce
    released a portfolio of job-ready agents for service, IT and HR, commerce and supply
    chain, with Multi-Agent Orchestration generally available (&lt;a
      href=&quot;https://www.salesforce.com/ap/news/press-releases/2026/09/14/ph-salesforce-expands-agentforce-with-a-new-portfolio-of-ai-agents-built-for-high-value-work/&quot;
      &gt;Salesforce&lt;/a
    &gt;).
  &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
  The net effect: configuring now covers more ground, and building no longer means
  working outside Salesforce. The decision is about where the reasoning lives, not which
  vendor you pick.
&lt;/p&gt;

&lt;h2&gt;Agentforce vs building your own AI agent, side by side&lt;/h2&gt;
&lt;ul&gt;
  &lt;li&gt;
    &lt;strong&gt;Time to first agent:&lt;/strong&gt; Agentforce is faster when the work is
    CRM-shaped. A custom agent is faster only when the CRM is a minor data source.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Security and sharing:&lt;/strong&gt; Agentforce inherits them. A custom agent must
    rebuild them or route its writes back through the platform.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Reasoning control:&lt;/strong&gt; Agentforce gives you topics, actions and Agent
    Script. A custom agent gives you the whole loop, including planning and evaluation.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Data reach:&lt;/strong&gt; Agentforce is strongest on Salesforce and Data 360. A
    custom agent treats every system as equal.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Pricing model:&lt;/strong&gt; Agentforce Flex Credits cost $0.10 per action, or
    there are per-user licenses (&lt;a href=&quot;https://www.salesforce.com/blog/flex-credits/&quot;
      &gt;Salesforce&lt;/a
    &gt;). A custom agent costs model tokens, hosting and the engineers who keep it
    running.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Who maintains it:&lt;/strong&gt; admins and Salesforce developers for Agentforce;
    an engineering team for a custom agent.
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;When should you configure Agentforce?&lt;/h2&gt;
&lt;p&gt;Configure when most of these are true:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;
    &lt;strong&gt;The data that decides the answer is already in Salesforce&lt;/strong&gt;, or is
    landing in Data 360.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;The work is CRM-shaped:&lt;/strong&gt; case deflection and routing, service
    replies, opportunity hygiene, scheduling, guided sales actions.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;The actions are enumerable.&lt;/strong&gt; You can list what the agent is allowed
    to do, and the list is short enough to write on a whiteboard.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Governance is the hard requirement.&lt;/strong&gt; Permissions, sharing and audit
    come free because the agent is inside the platform.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;You have admin capacity.&lt;/strong&gt; Someone fluent in Flow, permission sets
    and the data model will get further, faster, than a team of engineers starting cold.
  &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
  The compounding reason people miss: an agent inside the platform inherits the
  platform&apos;s security model. Rebuilding that in a custom stack is expensive and easy to
  get subtly wrong. If this is your case, our
  &lt;a href=&quot;/agentforce&quot;&gt;Agentforce implementation work&lt;/a&gt; starts from exactly this
  list.
&lt;/p&gt;

&lt;h2&gt;When should you build your own AI agent?&lt;/h2&gt;
&lt;p&gt;
  Build when any one of these is true, because each is individually disqualifying for a
  configure-only approach:
&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;
    &lt;strong&gt;The decisive data is not in the CRM.&lt;/strong&gt; Telemetry, ERP, documents,
    ticketing, a warehouse, a device fleet. If the agent needs to reason over all of it,
    the CRM is one source among many.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;The reasoning is the product.&lt;/strong&gt; Multi-step analysis, planning, ranked
    recommendations with justification, or anything where the answer needs defending
    rather than executing.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;The workflow is not a CRM workflow.&lt;/strong&gt; Operations, engineering, supply
    chain, field diagnostics.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;You need control over the whole loop.&lt;/strong&gt; Your own evaluation, your own
    retrieval, model routing per task, and release cadence you decide.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;The agent must run where the users are&lt;/strong&gt;, and the users are not in
    Salesforce.
  &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
  Building is also where most projects go wrong, usually on evaluation and error
  handling rather than the model. We wrote up
  &lt;a
    href=&quot;/blog/why-most-ai-agents-fail-in-production-and-how-we-built-one-that-doesn-t&quot;
    &gt;why most AI agents fail in production&lt;/a
  &gt;
  and what we changed to ship one that holds up.
&lt;/p&gt;

&lt;h2&gt;What is the one test that settles most cases?&lt;/h2&gt;
&lt;blockquote&gt;
  &lt;p&gt;
    Write the agent&apos;s job as a list of actions. If you can, and every action reads or
    writes something Salesforce already knows, configure. If the hard part is deciding
    &lt;em&gt;which&lt;/em&gt; action, on evidence from several systems, build.
  &lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
  That test is faster than a bake-off and it is honest about the failure modes.
  Configure-only projects fail when a bounded action list turns out to need unbounded
  judgement. Build-only projects fail when a team spends a quarter reimplementing
  sharing rules, audit trails and case management that were already there.
&lt;/p&gt;

&lt;h2&gt;Why is the answer usually both?&lt;/h2&gt;
&lt;p&gt;
  Because the two layers want different jobs. Agentforce is a good &lt;em&gt;surface&lt;/em&gt;: it
  sits where service and sales people already work, with the platform&apos;s governance
  around it. A custom agent is a good &lt;em&gt;brain&lt;/em&gt; for anything that has to reason
  across systems. Connect them, and each does what it is good at.
&lt;/p&gt;
&lt;p&gt;
  That seam is now a first-class platform concern rather than a hack. Salesforce ships
  Model Context Protocol interfaces in its own tooling, including a Salesforce DX MCP
  Server behind the next generation of DevOps Center (&lt;a
    href=&quot;https://help.salesforce.com/s/articleView?id=platform.next_generation_devops_center.htm&amp;amp;language=en_US&amp;amp;type=5&quot;
    &gt;Salesforce Help&lt;/a
  &gt;). MuleSoft Agent Fabric, announced in April 2026, adds a control plane that
  discovers and governs agents across vendors, including Amazon Bedrock and Microsoft
  Foundry (&lt;a
    href=&quot;https://www.salesforce.com/au/news/stories/agent-fabric-control-plane-announcement/&quot;
    &gt;Salesforce&lt;/a
  &gt;). Agent-to-agent handoffs and MCP action hubs are how a governed CRM agent calls
  specialist agents without either side swallowing the other.
&lt;/p&gt;
&lt;p&gt;
  This is the architecture we build most often at Tekunda. We are a certified Salesforce
  SI, ISV and PDO and an Anthropic partner, we were first to put Agentforce
  agent-to-agent orchestration and SWARM architecture into production, and we build
  headless CRM and MCP action hubs so agents can act across systems from one place. On
  the connected-device side, our work for ASSA ABLOY cut weekly cases from 3,000 to 350,
  a 93% reduction across 11,000 devices and up to 2.5 million events per week, in three
  markets with no added support staff. See how we design
  &lt;a href=&quot;/ai-agents&quot;&gt;custom AI agents&lt;/a&gt; that plug into Salesforce.
&lt;/p&gt;

&lt;h2&gt;How do you decide without a six-month bake-off?&lt;/h2&gt;
&lt;ol&gt;
  &lt;li&gt;
    &lt;strong&gt;Write the action list.&lt;/strong&gt; Ten minutes, on a whiteboard, with the
    people who do the job today.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Mark the data source next to each action.&lt;/strong&gt; Count how many sit
    outside Salesforce.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Ask what breaks if the agent is wrong.&lt;/strong&gt; High blast radius pushes
    toward the governed platform layer.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Put a number on the value.&lt;/strong&gt; Price the Agentforce path in actions and
    the custom path in tokens and engineering time, then compare both against the
    before-number. Our guide to
    &lt;a href=&quot;/blog/what-it-takes-to-drive-roi-from-ai-agents-from-a-team-that-does-it&quot;
      &gt;driving ROI from AI agents&lt;/a
    &gt;
    covers which numbers to track.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Pilot the smaller half first.&lt;/strong&gt; Whichever side is bounded, ship that,
    and let the seam wait until the value is proven.
  &lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
  If you want a second opinion on your action list,
  &lt;a href=&quot;/contact&quot;&gt;talk to our team&lt;/a&gt;.
&lt;/p&gt;

&lt;h2&gt;FAQ&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Is Agentforce enough on its own?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  For CRM-bounded work on Salesforce data, usually yes. It stops being enough when the
  decisive evidence lives in systems Salesforce does not own.
&lt;/p&gt;
&lt;p&gt;
  &lt;strong&gt;Can a custom AI agent work with Agentforce rather than replace it?&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
  Yes, and that is the common pattern. Agentforce holds the governed CRM surface, custom
  agents handle cross-system reasoning, and they hand off to each other over MCP or
  agent-to-agent calls.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Does building custom mean giving up Salesforce governance?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  Only if you architect it that way. Keep CRM writes going through platform actions and
  you keep the sharing model and audit trail intact.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Is Agentforce cheaper than building your own AI agent?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  Not reliably. Agentforce bills per action or per user, a custom agent bills in tokens
  and engineering time, and the totals converge more often than people expect.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Where should a first project start?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  With one workflow that has a clear owner and a measurable before-number. Agent
  projects that begin as platform strategy tend not to finish.
&lt;/p&gt;
</content:encoded>
        </item>
        <item>
            <title><![CDATA[Signs Your Salesforce Org Needs a Health Check]]></title>
            <description><![CDATA[Untrusted reports, tangled automation and permission sprawl mean your Salesforce org needs a health check. Here is what to check in 2026.]]></description>
            <link>https://tekunda.com/blog/Signs-Your-Salesforce-Org-Needs-a-Health-Check</link>
            <guid isPermaLink="false">https://tekunda.com/blog/Signs-Your-Salesforce-Org-Needs-a-Health-Check</guid>
            <dc:creator><![CDATA[Tekunda Team]]></dc:creator>
            <pubDate>Sat, 07 Nov 2026 12:00:00 GMT</pubDate>
            <content:encoded>&lt;p&gt;
  &lt;strong&gt;TL;DR:&lt;/strong&gt; Your Salesforce org needs a health check when people stop
  trusting its reports, automation fires in ways nobody can explain, permissions have
  sprawled beyond what anyone can audit, or releases keep breaking things. In 2026 there
  is a new trigger as well: AI agents can now reach your org through APIs and MCP, so
  every weak setting your team once tolerated becomes something an agent can act on.
&lt;/p&gt;
&lt;h2&gt;What is a Salesforce org health check?&lt;/h2&gt;
&lt;p&gt;
  A health check is a structured review of how your org is built and used: security
  settings, data model, automation, code, integrations and adoption. It ends in a ranked
  list of fixes, not a rebuild. It is lighter than a formal audit, which tests the org
  against a compliance standard. If an audit is what you actually face, start with our
  guide on
  &lt;a href=&quot;/blog/How-to-Prepare-Your-Salesforce-Org-for-an-Audit&quot;
    &gt;how to prepare your Salesforce org for an audit&lt;/a
  &gt;.
&lt;/p&gt;
&lt;h2&gt;What are the signs your Salesforce org needs a health check?&lt;/h2&gt;
&lt;ol&gt;
  &lt;li&gt;
    &lt;strong&gt;Nobody trusts the reports.&lt;/strong&gt; Teams export to spreadsheets to re-check
    the numbers, or two dashboards disagree about the same pipeline.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Duplicates keep coming back.&lt;/strong&gt; Clean-up projects fix the symptom and
    the duplicates return within a quarter, which points at intake rules and
    integrations, not at users.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Automation nobody remembers building.&lt;/strong&gt; Flows, triggers and legacy
    workflow rules overlap on the same object and fire in an order nobody can explain.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Permissions have sprawled.&lt;/strong&gt; Users hold powerful permissions granted
    for a one-off task, profiles have been cloned and patched for years, and no one can
    say who can export what.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Releases break things.&lt;/strong&gt; Every deployment causes a regression, or the
    team avoids deploying at all.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Integrations fail silently.&lt;/strong&gt; Data from ERP, billing or field systems
    arrives late or not at all, and someone finds out from a customer. Our article on
    &lt;a href=&quot;/blog/Salesforce-and-SAP-Integration-Patterns-for-Manufacturers&quot;
      &gt;Salesforce and SAP integration patterns for manufacturers&lt;/a
    &gt;
    covers designs that avoid this.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;The people who built it have left.&lt;/strong&gt; When the admin or partner who
    knew the org moves on, the undocumented decisions leave with them.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;The business changed and the org did not.&lt;/strong&gt; A merger, a new product
    line or a new team inheriting the org leaves configuration designed for a company
    that no longer exists.
  &lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
  One sign is a nuisance. Three or more usually share a root cause, and finding that
  root cause is where a health check pays for itself.
&lt;/p&gt;
&lt;h2&gt;What is headless MCP, and why does it raise the stakes?&lt;/h2&gt;
&lt;p&gt;
  Salesforce is opening its platform to agents. At TDX on April 15, 2026 it launched
  &lt;a
    href=&quot;https://www.techwyse.com/news/industry-news/salesforce-headless-360-tdx-2026-announcement&quot;
    &gt;Headless 360&lt;/a
  &gt;, which exposes data, workflows and governance controls as APIs, MCP tools and CLI
  commands, and
  &lt;a
    href=&quot;https://developer.salesforce.com/blogs/2026/04/salesforce-hosted-mcp-servers-are-now-generally-available&quot;
    &gt;Salesforce Hosted MCP Servers&lt;/a
  &gt;
  reached general availability the same month. &lt;strong&gt;Headless MCP&lt;/strong&gt; simply
  means an agent works with your CRM through the Model Context Protocol instead of the
  browser.
&lt;/p&gt;
&lt;p&gt;
  That changes what an unhealthy org costs. A person stumbles over a loose permission
  set; an agent uses it at machine speed. Duplicate records confuse a rep; they lead an
  agent to a wrong answer delivered with full confidence. Tekunda was the first to run
  agent-to-agent (A2A) and SWARM orchestration in production, and is the first and only
  partner in headless CRM plus MCP, so we treat every health check as an agent-readiness
  check too. For the access side, read
  &lt;a href=&quot;/blog/How-to-keep-a-Salesforce-org-secure-as-your-team-scales&quot;
    &gt;how to keep a Salesforce org secure as your team scales&lt;/a
  &gt;.
&lt;/p&gt;
&lt;h2&gt;Can a health check help calculate the ROI of Agentforce?&lt;/h2&gt;
&lt;p&gt;
  Yes, because it supplies the inputs calculators leave out. Salesforce&apos;s own
  &lt;a href=&quot;https://www.salesforce.com/uk/agentforce/ai-agents-roi-calculator/&quot;
    &gt;Agentforce ROI calculator&lt;/a
  &gt;
  estimates three-year benefits and the Flex Credits a use case may need, but it states
  that Salesforce licences, Data 360 credit costs and implementation costs are not
  included, and that results are illustrative only. A health check measures how much
  data clean-up, permission work and automation consolidation stand between you and a
  working agent. That is the implementation figure the calculator expects you to bring
  yourself.
&lt;/p&gt;
&lt;p&gt;
  Data 360, the platform formerly called Data Cloud, was
  &lt;a
    href=&quot;https://www.salesforceben.com/salesforce-data-cloud-renamed-to-data-360-as-part-of-agentforce-360/&quot;
    &gt;renamed at Dreamforce 2025&lt;/a
  &gt;
  as the data foundation for Agentforce, so its readiness belongs in the same review.
&lt;/p&gt;
&lt;h2&gt;What can you check yourself first?&lt;/h2&gt;
&lt;ul&gt;
  &lt;li&gt;
    &lt;strong&gt;Salesforce Health Check.&lt;/strong&gt; In Setup, search Quick Find for Health
    Check. It scores your security settings from 0 to 100 against the Salesforce
    baseline, called Standard Values, and regulated teams can import a custom baseline.
    Salesforce
    &lt;a
      href=&quot;https://trailhead.salesforce.com/content/learn/modules/security_basics/security_basics_healthcheck&quot;
      &gt;warns&lt;/a
    &gt;
    that the Fix Risks button changes every flagged setting at once and can break
    integrations or remove access, so test in a sandbox and change settings one at a
    time.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Org Check.&lt;/strong&gt; Salesforce Optimizer has been retired: access was
    removed in the Winter &apos;26 upgrade for Hyperforce orgs and in Spring &apos;26 for the
    rest. The free
    &lt;a
      href=&quot;https://salesforcebreak.com/2025/12/10/salesforce-optimizer-retired-your-guide-switching-to-org-check/&quot;
      &gt;Org Check&lt;/a
    &gt;
    app from Salesforce Labs covers metadata quality, security and automation, but it is
    not an official Salesforce product and has no Salesforce Support.
  &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
  Both tools tell you &lt;em&gt;what&lt;/em&gt; is misconfigured. Neither tells you &lt;em&gt;why&lt;/em&gt; the
  org drifted, which fixes matter most to the business, or what has to change before
  agents arrive. That judgement is the health check.
&lt;/p&gt;
&lt;h2&gt;What should a health check deliver?&lt;/h2&gt;
&lt;ul&gt;
  &lt;li&gt;A ranked findings list tied to business impact, not a raw export.&lt;/li&gt;
  &lt;li&gt;An access map showing who can see, edit and export which data.&lt;/li&gt;
  &lt;li&gt;An automation inventory per object, with overlaps flagged.&lt;/li&gt;
  &lt;li&gt;A data quality baseline you can re-measure next quarter.&lt;/li&gt;
  &lt;li&gt;A roadmap that separates quick wins from structural work.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
  If you sell on AppExchange, add security review readiness to the scope; a
  &lt;a href=&quot;/blog/What-a-Salesforce-PDO-Does%2C-and-When-to-Hire-One&quot;&gt;Salesforce PDO&lt;/a&gt;
  can run that alongside the org review. &lt;a href=&quot;/&quot;&gt;Tekunda&lt;/a&gt; is a certified
  Salesforce SI, ISV, PDO and Agentforce partner, and the goal is always to get more
  from the Salesforce you already run, never to cut it back. See
  &lt;a href=&quot;/how-we-engage&quot;&gt;how we engage&lt;/a&gt; to scope a health check for your org.
&lt;/p&gt;
&lt;h2&gt;FAQ&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;How often should a Salesforce org get a health check?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  At least once a year is a common rule of thumb. Run one again after a merger, a major
  platform change or a new team taking over the org.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Is Salesforce Health Check the same as an org health check?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  No. Salesforce Health Check scores security settings only. An org health check also
  covers data, automation, code, integrations and adoption.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Is Salesforce Optimizer still available?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  No. It was retired across Winter &apos;26 and Spring &apos;26, and Salesforce Labs&apos; free Org
  Check app is the usual replacement.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Does a health check mean cutting Salesforce licences?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  No. The aim is to get more value from the platform you already pay for and to prepare
  it for what comes next, including Agentforce.
&lt;/p&gt;
</content:encoded>
        </item>
        <item>
            <title><![CDATA[Headless MCP on Salesforce: How to Adopt Headless 360 and Size the ROI]]></title>
            <description><![CDATA[Headless MCP runs Salesforce as tools an AI agent calls directly. What Headless 360 is, the security it enforces, how to adopt it and size the ROI.]]></description>
            <link>https://tekunda.com/blog/Headless-MCP-on-Salesforce%3A-How-to-Adopt-Headless-360-and-Size-the-ROI</link>
            <guid isPermaLink="false">https://tekunda.com/blog/Headless-MCP-on-Salesforce%3A-How-to-Adopt-Headless-360-and-Size-the-ROI</guid>
            <dc:creator><![CDATA[Tekunda Team]]></dc:creator>
            <pubDate>Sat, 07 Nov 2026 06:04:34 GMT</pubDate>
            <content:encoded>&lt;p&gt;
  &lt;strong
    &gt;The Headless 360 MCP Server is Salesforce&apos;s hosted Model Context Protocol endpoint
    that gives any MCP client four tools - discover, describe, dispatch and dispatch
    read only - over a growing library of platform skills, with no user interface in the
    loop.&lt;/strong
  &gt;
  It has been in open beta since July 2026 and sits on top of Salesforce&apos;s standard
  hosted MCP servers, generally available since April 2026. The agent authenticates as a
  real user and runs CRM and setup work under your org&apos;s existing security, so a
  natural-language prompt becomes a governed Salesforce operation. This guide covers
  what headless MCP is, how the server works, how to turn it on, what it can do today,
  the security it enforces, the agent metering Salesforce has announced, how to adopt it
  safely, how to size the ROI, and where a partner fits. We run headless MCP in
  production at Tekunda, so the adoption rules below are the ones we apply on every
  rollout.
&lt;/p&gt;
&lt;h2&gt;What is headless MCP on Salesforce?&lt;/h2&gt;
&lt;p&gt;
  The &lt;a href=&quot;https://modelcontextprotocol.io&quot;&gt;Model Context Protocol&lt;/a&gt; is an open
  standard that lets an AI model discover and call external tools, APIs and data at
  runtime, so any compatible client can talk to any compatible server without custom
  glue code. &quot;Headless&quot; means there is no screen in the loop: the work runs through the
  API and agent layer instead of clicks in the Lightning UI. Together, a headless MCP
  setup lets Claude, ChatGPT, Cursor, Agentforce or any MCP-compatible client read
  records, run queries and execute setup operations by calling Salesforce tools
  directly. The person sets the intent; the agent finds the right operation and executes
  it.
&lt;/p&gt;
&lt;p&gt;
  That matters because most agentic prototypes never reach production. They work in a
  demo, then fall over the moment they meet real permissions, real data volumes and a
  security team. Headless MCP closes that gap because the agent inherits context and
  policy from the platform rather than reinventing them.
&lt;/p&gt;
&lt;h2&gt;What is Salesforce Headless 360?&lt;/h2&gt;
&lt;p&gt;
  Salesforce introduced
  &lt;a
    href=&quot;https://www.salesforce.com/news/stories/salesforce-headless-360-announcement/&quot;
    &gt;Headless 360&lt;/a
  &gt;
  at TDX in April 2026 as an initiative to expose every platform capability as an API,
  an MCP tool or a CLI command, so the browser becomes optional rather than required.
  Per the
  &lt;a
    href=&quot;https://developer.salesforce.com/blogs/2026/05/headless-360-what-it-means-for-developers&quot;
    &gt;Salesforce Developers blog&lt;/a
  &gt;, it launched with 60+ MCP tools, 30+ coding skills, more than 4,000 existing APIs
  and 220+ CLI commands. Salesforce&apos;s
  &lt;a href=&quot;https://www.salesforce.com/headless/&quot;&gt;product page&lt;/a&gt; now markets that layer
  as the Headless Toolkit, while the server and its documentation keep the Headless 360
  name, so expect to see both.
&lt;/p&gt;
&lt;p&gt;Separate the layers, because several of them carry the Headless 360 name:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;
    &lt;strong&gt;The standard hosted MCP servers&lt;/strong&gt; handle record work: SObject All,
    Reads, Mutations and Deletes, plus Tableau Next. Generally available since April
    2026 for Enterprise Edition and above.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong
      &gt;The
      &lt;a
        href=&quot;https://developer.salesforce.com/blogs/2026/07/announcing-the-headless-360-mcp-server-beta&quot;
        &gt;Headless 360 MCP Server&lt;/a
      &gt;&lt;/strong
    &gt;
    collapses setup and integration work into four tools across the whole platform. In
    open beta since July 2026.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;The Data 360 MCP Server&lt;/strong&gt; works only with Data 360 data and is
    generally available, per Salesforce&apos;s
    &lt;a
      href=&quot;https://www.salesforce.com/news/stories/expanding-headless-360-enterprise-capabilities/&quot;
      &gt;August 2026 expansion&lt;/a
    &gt;.
  &lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;How does the Headless 360 MCP Server work?&lt;/h2&gt;
&lt;p&gt;
  Its headline idea is restraint: agents get four tools, not four thousand. An org has
  thousands of features, and loading every endpoint into a model&apos;s context wrecks its
  decision-making, so the server presents a small, stable surface and does the routing
  itself:
&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;
    &lt;strong&gt;&lt;code&gt;discover&lt;/code&gt;&lt;/strong&gt; - semantic search across a vector index of
    APIs and skills, returning ranked candidates for the request.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;&lt;code&gt;describe&lt;/code&gt;&lt;/strong&gt; - the technical spec for a chosen skill:
    parameters, dependencies, ordered steps.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;&lt;code&gt;dispatch&lt;/code&gt;&lt;/strong&gt; - invokes a skill, with access control
    enforced.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;&lt;code&gt;dispatch_readonly&lt;/code&gt;&lt;/strong&gt; - a separate path that runs
    read-only operations.
  &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
  The discover-describe-dispatch loop keeps the model&apos;s context small while the
  catalogue behind it grows. The beta launched with roughly 100 skills, most of them
  admin Setup tasks, with thousands planned.
&lt;/p&gt;
&lt;h2&gt;How do you turn on the Headless 360 MCP Server?&lt;/h2&gt;
&lt;p&gt;
  No code is needed for a first connection. The hosted servers follow one pattern, which
  the
  &lt;a
    href=&quot;https://www.apexhours.com/salesforce-headless-360-hands-on-run-your-org-from-claude-with-the-hosted-mcp-server/&quot;
    &gt;Apex Hours hands-on walkthrough&lt;/a
  &gt;
  documents end to end:
&lt;/p&gt;
&lt;ol&gt;
  &lt;li&gt;
    &lt;strong&gt;Activate the server.&lt;/strong&gt; In Setup, open the Salesforce Hosted MCP
    Servers list, find Headless 360 (or a narrower server such as SObject Reads) and
    click Activate. Every server ships disabled.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Create an External Client App.&lt;/strong&gt; Enable OAuth, add your client&apos;s
    callback URL, and grant only the &lt;code&gt;mcp_api&lt;/code&gt; and &lt;code&gt;refresh_token&lt;/code&gt;
    scopes. Require PKCE and JWT-based access tokens for named users.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Connect the client.&lt;/strong&gt; In Claude, for example, add a custom connector
    with the server&apos;s remote MCP URL and the app&apos;s consumer key and secret, then sign in
    through Salesforce.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Set permission modes per tool.&lt;/strong&gt; Start every write tool on &quot;needs
    approval&quot; rather than &quot;always allow&quot;.
  &lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
  Allow up to 30 minutes for a new External Client App to propagate before you debug an
  OAuth error, and use the sandbox endpoint for your first sessions.
&lt;/p&gt;
&lt;h2&gt;What can headless MCP do in Salesforce today?&lt;/h2&gt;
&lt;p&gt;At launch the Headless 360 MCP Server covers:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;
    User management, including creating and deactivating users, resetting passwords and
    assigning permissions.
  &lt;/li&gt;
  &lt;li&gt;Apex trigger development.&lt;/li&gt;
  &lt;li&gt;
    Event-driven integrations across Change Data Capture, platform events and event
    relays.
  &lt;/li&gt;
  &lt;li&gt;Named credential configuration.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
  Beyond setup, the hosted record servers let an agent list leads, run SOQL and update
  fields in natural language, and
  &lt;a
    href=&quot;https://siliconangle.com/2026/08/19/salesforce-expands-headless-data-360-mcp-developers-can-bring-insights-agents/&quot;
    &gt;Data 360&apos;s MCP surface&lt;/a
  &gt;
  exposes more than 200 APIs so an agent can build, map and query unified data with
  plain-language requests. The same pattern extends to the systems around Salesforce: a
  telephony integration that syncs call logs to records, or a WhatsApp conversation,
  becomes another set of governed actions an agent triggers, with Salesforce still the
  system of record. Instead of a custom connector for every AI surface, you expose one
  governed server and any MCP-aware client reaches it.
&lt;/p&gt;
&lt;p&gt;The ecosystem around it moved fast after launch:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;
    &lt;strong&gt;19 August 2026:&lt;/strong&gt; Salesforce made the Slackbot MCP Server and Client,
    the Data 360 MCP Server and a repository of 100+ agent skills generally available,
    while the Headless 360 MCP Server stayed in open beta.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;26 August 2026:&lt;/strong&gt; Salesforce and Anthropic
    &lt;a
      href=&quot;https://investor.salesforce.com/news/news-details/2026/Salesforce-and-Anthropic-Announce-Claudeforce-The-1-AI-Meets-the-1-AI-CRM/default.aspx&quot;
      &gt;announced Claudeforce&lt;/a
    &gt;, starting with a Salesforce in Claude plugin of 37 prebuilt sales skills for pilot
    customers.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;14 September 2026:&lt;/strong&gt; Copado
    &lt;a
      href=&quot;https://siliconangle.com/2026/09/14/copado-extends-agentia-agentic-ai-devops-platform-for-salesforce-with-headless-automation/&quot;
      &gt;extended Agentia with Headless&lt;/a
    &gt;, using MCP and command-line interfaces, with availability from November 2026.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;2 November 2026:&lt;/strong&gt; the local Salesforce DX MCP server reached end of
    life, with developer tooling moving to skills. The hosted servers are unaffected.
  &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
  Budget for beta, not GA, while you evaluate: the Headless 360 MCP Server itself is
  still in open beta as of this update, and Salesforce notes that server URLs and OAuth
  scopes can change between beta and GA.
&lt;/p&gt;
&lt;h2&gt;Is headless MCP secure?&lt;/h2&gt;
&lt;p&gt;
  An agent that can create users and deploy Apex is exactly as dangerous as the
  permissions behind it, so this is the question that matters. The reassuring part is
  that Headless 360 does not invent a new trust model; it rides on the one Salesforce
  already enforces. Every transaction runs as an authenticated user, scoped through an
  External Client App with the &lt;code&gt;mcp_api&lt;/code&gt; scope and OAuth 2.0 with PKCE, and
  every action is bounded by four layers:
&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;
    &lt;strong&gt;Identity&lt;/strong&gt; - the agent acts as an authenticated user, never above
    them.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Access&lt;/strong&gt; - profiles, permission sets, org-wide defaults, sharing
    rules and field-level security still apply.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Invocation scope&lt;/strong&gt; - only explicitly exposed skills can be called.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Governance&lt;/strong&gt; - validation rules, transaction security policies,
    approval chains and governor limits still fire.
  &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
  If a person cannot do it in Salesforce, their agent cannot do it through MCP either.
  Salesforce also ships the standard servers disabled and separates read, create/update
  and delete into different servers, so you never grant delete by accident. Enable it
  deliberately, because &quot;delete all leads&quot; is one prompt away once you do.
&lt;/p&gt;
&lt;p&gt;
  The identity model is about to get stricter. Salesforce has announced
  &lt;a
    href=&quot;https://www.salesforceben.com/salesforce-will-charge-flex-credits-for-agentic-mcp-and-api-calls/&quot;
    &gt;Agentic Identity&lt;/a
  &gt;, under which agents are registered on the platform with their own credentials and
  permissions instead of borrowing a user&apos;s, and MCP clients will eventually move to
  OAuth credentials tied to that registered identity. Design your permission sets now as
  if each agent were already its own user, and the migration becomes a configuration
  change.
&lt;/p&gt;
&lt;h2&gt;How do you adopt headless MCP safely in production?&lt;/h2&gt;
&lt;p&gt;
  The demos are easy. Production is where teams get burned. The rules we apply at
  &lt;a href=&quot;/&quot;&gt;Tekunda&lt;/a&gt; on every rollout:
&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;
    &lt;strong&gt;Start read-only.&lt;/strong&gt; Give agents &lt;code&gt;dispatch_readonly&lt;/code&gt; or the
    SObject Reads server before any write path is live.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Scope a dedicated permission set.&lt;/strong&gt; The agent inherits its user&apos;s
    access, so give it its own least-privilege user, not an admin login.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Require approval for writes.&lt;/strong&gt; Keep the client&apos;s permission mode on
    &quot;needs approval&quot; for create, update and delete until you trust the flow. Once a tool
    is approved in a session, later calls may run without a fresh prompt.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Log every dispatch.&lt;/strong&gt; Capture which skill ran, as whom, and against
    what records, so an agent action is as auditable as a human one.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Rehearse in a sandbox.&lt;/strong&gt; Never let a new skill touch production data
    on its first run.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Plan for agent registration.&lt;/strong&gt; Inventory every MCP client and API
    agent that touches the org, so registering them under Agentic Identity is a
    checklist, not an investigation.
  &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
  The security Salesforce enforces is a floor, not a strategy. The risk is not the
  protocol; it is over-broad permissions on the connected user, and an agent acting as
  that user can still do broad damage fast. If you are wiring several agents together,
  or want one action surface that spans Salesforce and the ERP, telephony and devices
  around it, the handoff design matters as much as the permissions - see
  &lt;a
    href=&quot;/blog/Headless-Salesforce-and-MCP%3A-Running-CRM-Actions-From-One-Agentic-Hub&quot;
    &gt;running CRM actions from one agentic hub&lt;/a
  &gt;
  and
  &lt;a
    href=&quot;/blog/Multi-Agent-Orchestration-on-Salesforce%3A-What-Makes-Agent-to-Agent-Handoffs-Work-in-Production&quot;
    &gt;what makes agent-to-agent handoffs work in production&lt;/a
  &gt;. When you want that rollout designed and governed properly, our
  &lt;a href=&quot;/headless-mcp&quot;&gt;headless MCP team&lt;/a&gt; does exactly this work.
&lt;/p&gt;
&lt;h2&gt;What belongs on a security review checklist for MCP-connected apps?&lt;/h2&gt;
&lt;p&gt;
  If you package software for the AppExchange, exposing capabilities over MCP does not
  exempt you from the
  &lt;a href=&quot;https://trailhead.salesforce.com/content/learn/modules/isv_security_review&quot;
    &gt;AppExchange Security Review&lt;/a
  &gt;; it raises the stakes. Our short version, drawn from shipping through the review
  ourselves:
&lt;/p&gt;
&lt;ol&gt;
  &lt;li&gt;
    &lt;strong&gt;Enforce CRUD, FLS and sharing&lt;/strong&gt; in every Apex entry point an agent
    can reach, not just the UI.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Kill SOQL injection&lt;/strong&gt; with bind variables, never string-built dynamic
    SOQL.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Encrypt data&lt;/strong&gt; in transit with TLS 1.2 or higher and at rest with
    AES-256.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Scope named credentials and connected apps&lt;/strong&gt; to the minimum, and
    prove it.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Set security headers and cookie flags&lt;/strong&gt; (X-Content-Type-Options,
    X-Frame-Options, Strict-Transport-Security, Secure and HttpOnly).
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Scan before you submit&lt;/strong&gt; with Salesforce Code Analyzer plus a scanner
    such as Checkmarx, OWASP ZAP or Burp Suite, and document every false positive.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Document&lt;/strong&gt; data storage, authentication and every external
    integration the agent uses.
  &lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
  Agentic surfaces add one line to that list: confirm no tool can escalate beyond the
  running user&apos;s permissions. A headless surface removes the human who used to be the
  last check, so the org&apos;s own controls have to carry that weight. Treat the agent as
  another authenticated client: if each dispatch would pass review on its own, the
  headless layer above it will too.
&lt;/p&gt;
&lt;p&gt;
  For those controls in the order that matters, work through our
  &lt;a href=&quot;/blog/Salesforce-Security-Review-Checklist%3A-What-to-Fix%2C-In-Order&quot;
    &gt;Salesforce security review checklist&lt;/a
  &gt;, and when the scanners flag issues you have already handled, our guide to
  &lt;a href=&quot;/blog/How-to-Document-False-Positives-for-the-Salesforce-Security-Review&quot;
    &gt;documenting false positives&lt;/a
  &gt;
  keeps them from stalling your submission.
&lt;/p&gt;
&lt;h2&gt;How do you size the ROI of a headless MCP rollout?&lt;/h2&gt;
&lt;p&gt;
  Size it before you build. Salesforce publishes an
  &lt;a href=&quot;https://www.salesforce.com/agentforce/ai-agents-roi-calculator/&quot;
    &gt;Agentforce ROI calculator&lt;/a
  &gt;
  that projects cost savings and efficiency over a three-year horizon and estimates the
  Flex Credits a use case will consume. It is a fair starting point, but it runs on
  generic assumptions, and a defensible model uses your numbers. Our
  &lt;a href=&quot;/tools/agentforce-roi&quot;&gt;Agentforce ROI tool&lt;/a&gt; lets you plug in your own
  volumes, handle times and rates.
&lt;/p&gt;
&lt;p&gt;
  Ground it with a simple frame, all normalized to a monthly figure:
  &lt;code
    &gt;(hours saved per process x monthly volume x loaded rate) - (monthly Flex Credit
    spend + build cost divided over the payback horizon + monthly governance)&lt;/code
  &gt;. Convert Flex Credits to their currency cost so every term is money per month.
  Headless MCP moves the &quot;hours saved&quot; side hardest on repetitive, multi-step setup and
  data tasks, the work that used to mean a dozen clicks across several screens, because
  it removes the interface tax: work that never needed a screen now runs as a direct
  call. The same math holds for AI voice agents on a telephony integration: model the
  deflected minutes and freed rep hours by volume, handle time and the Flex Credits each
  automated interaction consumes.
&lt;/p&gt;
&lt;p&gt;
  Leave room in the cost side for agent metering. Salesforce has said that, once agents
  are registered, each successful MCP or direct API call they make will count as a
  Headless Platform Interaction and draw down Flex Credits. As reported by
  &lt;a
    href=&quot;https://www.salesforceben.com/salesforce-will-charge-flex-credits-for-agentic-mcp-and-api-calls/&quot;
    &gt;Salesforce Ben&lt;/a
  &gt;, agentic usage is not metered yet, customers get 30 days&apos; notice before billing
  starts, the per-interaction rate has not been published, and sandboxes, scratch orgs
  and Developer Edition orgs are excluded. Model call volume per process now, because a
  chatty agent that loops through discover and describe on every request will cost more
  than one that reuses what it already knows.
&lt;/p&gt;
&lt;h2&gt;Where does a Salesforce PDO or Agentforce partner fit?&lt;/h2&gt;
&lt;p&gt;
  Adopting headless MCP safely is a governance project as much as a build. A Salesforce
  PDO (Product Development Outsourcer) builds commercial apps on the platform, packages
  them correctly and shepherds them through AppExchange security review. That skill set
  maps directly onto headless MCP: an ISV exposing its product as MCP tools needs
  someone who can design the tool surface, enforce the running-user model and pass
  review the first time. An Agentforce partner does the same for an internal agent,
  wiring the four tools to real business logic rather than a demo. When you evaluate
  either, weigh three things:
&lt;/p&gt;
&lt;ol&gt;
  &lt;li&gt;
    Do they design the permission model first, or bolt it on after the demo works?
  &lt;/li&gt;
  &lt;li&gt;Can they show real headless agent work against a governed org, not slideware?&lt;/li&gt;
  &lt;li&gt;
    Do they own integration, packaging and the security review, or hand you off midway?
  &lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
  That combination of platform depth and governance discipline is what
  &lt;a href=&quot;/&quot;&gt;Tekunda&lt;/a&gt; brings to headless projects, and we run it in production
  today, not on a roadmap. Our &lt;a href=&quot;/products&quot;&gt;Salesforce services team&lt;/a&gt; maps the
  safe path for your org, from tool surface to security review.
&lt;/p&gt;
&lt;h2&gt;FAQ&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;What is the Headless 360 MCP Server?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  It is Salesforce&apos;s hosted MCP endpoint that lets Agentforce, Claude, ChatGPT, Cursor
  and other clients discover and invoke platform skills through four tools: discover,
  describe, dispatch and dispatch read only.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Is the Headless 360 MCP Server generally available?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  Not yet. It has been in open beta since July 2026, while the standard hosted MCP
  servers have been generally available since April 2026, so pilot it before you commit
  critical flows.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Does an agent using headless MCP bypass Salesforce security?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  No. It runs as an authenticated user with the mcp_api scope, and CRUD, field-level
  security, sharing rules and permission sets are all enforced.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Will Salesforce charge for MCP calls?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  Salesforce plans to meter each successful call by a registered agent as a Headless
  Platform Interaction paid in Flex Credits. It is not metered yet, and customers get 30
  days&apos; notice first.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Where should we start?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  Enable a read-only server in a sandbox, connect one client, confirm the permission
  model behaves, then widen scope. Bring in a partner if governance is not your team&apos;s
  core skill.
&lt;/p&gt;
&lt;p&gt;
  Headless MCP is how agent-driven work reaches Salesforce, and the Headless 360 MCP
  Server is already in open beta. If you want that surface to move fast without widening
  your attack surface, that is the build and security work Tekunda does every day.
  &lt;a href=&quot;/contact&quot;&gt;Book a short scoping call&lt;/a&gt;.
&lt;/p&gt;
</content:encoded>
        </item>
        <item>
            <title><![CDATA[Salesforce Integration Patterns for Growing Companies]]></title>
            <description><![CDATA[The Salesforce integration patterns growing companies need, when to move from point-to-point to events and APIs, and where MCP agents fit.]]></description>
            <link>https://tekunda.com/blog/Salesforce-Integration-Patterns-for-Growing-Companies</link>
            <guid isPermaLink="false">https://tekunda.com/blog/Salesforce-Integration-Patterns-for-Growing-Companies</guid>
            <dc:creator><![CDATA[Tekunda Team]]></dc:creator>
            <pubDate>Fri, 06 Nov 2026 12:00:00 GMT</pubDate>
            <content:encoded>&lt;p&gt;
  &lt;strong&gt;TL;DR:&lt;/strong&gt; Salesforce documents six core integration patterns, from
  request and reply to data virtualization, and a growing company rarely needs all of
  them on day one. Start with a few well-governed API integrations, move record changes
  onto events as volume rises, and put an API or agent layer in front of Salesforce once
  many systems and AI agents need the same data.
&lt;/p&gt;
&lt;p&gt;
  Most guides list the patterns and stop. The harder question for a scaling team is
  sequencing: which pattern to adopt at which stage, and what to retire before it
  breaks. That is what this guide covers, including the new agent layer Salesforce
  opened with Headless 360.
&lt;/p&gt;
&lt;h2&gt;What are Salesforce integration patterns?&lt;/h2&gt;
&lt;p&gt;
  An integration pattern is a reusable answer to a recurring question: how data or a
  process should move between Salesforce and another system, and how fast. Salesforce&apos;s
  &lt;a
    href=&quot;https://developer.salesforce.com/docs/atlas.en-us.integration_patterns_and_practices.meta/integ_pat_patterns_platform.htm&quot;
    &gt;Integration Patterns and Practices&lt;/a
  &gt;
  guide names six:
&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;
    &lt;strong&gt;Request and reply:&lt;/strong&gt; Salesforce calls a remote system and waits for
    the answer.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Fire and forget:&lt;/strong&gt; Salesforce sends a message and carries on without
    waiting.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Batch data synchronization:&lt;/strong&gt; large record sets move on a schedule.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Remote call-in:&lt;/strong&gt; an external system creates, reads or updates
    Salesforce data.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;UI update based on data changes:&lt;/strong&gt; the screen refreshes when the
    underlying records change.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Data virtualization:&lt;/strong&gt; external data is shown in Salesforce without
    being stored there.
  &lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Which integration pattern fits which job?&lt;/h2&gt;
&lt;ul&gt;
  &lt;li&gt;
    &lt;strong&gt;A credit check or price quote before a user can continue:&lt;/strong&gt; request
    and reply.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;An order is placed and the ERP needs to know:&lt;/strong&gt; fire and forget,
    ideally through events.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;A nightly finance or warehouse load:&lt;/strong&gt; batch synchronization with
    Bulk API 2.0, which Salesforce&apos;s architects describe as well suited to extracting
    thousands of records efficiently.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;A web store or portal writing leads and cases:&lt;/strong&gt; remote call-in
    through the REST API.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Large external tables users only need to read:&lt;/strong&gt; data virtualization
    with Salesforce Connect, so nothing is replicated.
  &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
  For ERP-heavy estates, our guide to
  &lt;a href=&quot;/blog/Salesforce-and-SAP-Integration-Patterns-for-Manufacturers&quot;
    &gt;Salesforce and SAP integration patterns for manufacturers&lt;/a
  &gt;
  walks through these choices with order, pricing and inventory flows.
&lt;/p&gt;
&lt;h2&gt;
  Point-to-point, hub or API-led: which architecture should a growing company choose?
&lt;/h2&gt;
&lt;p&gt;
  Let the number of systems and consumers drive the architecture, not the size of the
  ambition.
&lt;/p&gt;
&lt;ol&gt;
  &lt;li&gt;
    &lt;strong&gt;A handful of systems:&lt;/strong&gt; direct point-to-point integrations are fine,
    as long as each has an owner, a dedicated integration user and logging.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;The same data needed in several places:&lt;/strong&gt; introduce a hub or
    middleware, so one change does not ripple through every connection.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Several teams consuming the same data:&lt;/strong&gt; move to API-led
    connectivity, where system, process and experience APIs separate concerns and get
    reused.
  &lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
  We cover the scaling logic in more depth in
  &lt;a href=&quot;/blog/Salesforce-Integration-Architecture%3A-Patterns-That-Actually-Scale&quot;
    &gt;Salesforce integration architecture patterns that actually scale&lt;/a
  &gt;.
&lt;/p&gt;
&lt;h2&gt;When should you move to event-driven integration?&lt;/h2&gt;
&lt;p&gt;
  Move when polling and chained callouts start to hurt: duplicate updates, timeouts, or
  downstream systems that always lag behind. Salesforce&apos;s
  &lt;a href=&quot;https://architect.salesforce.com/decision-guides/event-driven&quot;
    &gt;event-driven architecture decision guide&lt;/a
  &gt;
  is clear on the tools:
&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;
    &lt;strong&gt;Change Data Capture&lt;/strong&gt; publishes record creates, updates, deletes and
    undeletes to other systems.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Platform Events&lt;/strong&gt; carry custom payloads you define, published from
    APIs, Apex or Flow.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Pub/Sub API&lt;/strong&gt; is the recommended choice for any new publish and
    subscribe integration.
  &lt;/li&gt;
  &lt;li&gt;Events can be replayed for three days, and each payload is capped at 1 MB.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
  The same guidance steers new work away from outbound messages and PushTopic. If you
  still run them, plan the migration before volume forces it.
&lt;/p&gt;
&lt;h2&gt;What is headless MCP, and what does Headless 360 change?&lt;/h2&gt;
&lt;p&gt;
  Headless MCP means reaching Salesforce data, logic and workflows through APIs and
  Model Context Protocol servers instead of the browser UI. Salesforce announced
  Headless 360 at TDX on April 15, 2026, exposing platform capabilities as APIs, MCP
  tools and CLI commands, with more than 60 new MCP tools at launch. In August 2026 it
  expanded the program with a Headless 360 MCP Server and a Data 360 MCP Server that
  agents on Agentforce, Claude, ChatGPT and Cursor can use.
&lt;/p&gt;
&lt;p&gt;
  For integration teams this adds a new consumer: AI agents that discover and call
  capabilities at runtime. They need the same discipline as any integration, with
  least-privilege users, audited actions and clear ownership. Our guide to
  &lt;a
    href=&quot;/blog/Enterprise-MCP-Integration%3A-Connecting-AI-Agents-to-Salesforce-Safely&quot;
    &gt;connecting AI agents to Salesforce safely with MCP&lt;/a
  &gt;
  covers the controls. Tekunda is first and only in headless CRM plus MCP, and first to
  run agent-to-agent (A2A) and SWARM orchestration in production, so this is work we
  already run for clients.
&lt;/p&gt;
&lt;h2&gt;What do growing companies get wrong?&lt;/h2&gt;
&lt;ul&gt;
  &lt;li&gt;
    &lt;strong&gt;Replicating everything.&lt;/strong&gt; Salesforce&apos;s
    &lt;a href=&quot;https://architect.salesforce.com/decision-guides/data-integration&quot;
      &gt;data integration decision guide&lt;/a
    &gt;
    says to avoid unnecessary replication. Virtualize or call APIs where data can stay
    put.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Sharing a human login.&lt;/strong&gt; Use a dedicated API-only integration user
    and External Client Applications for authentication.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Treating admin tools as strategy.&lt;/strong&gt; Data Loader and the Salesforce
    CLI are for data stewardship, not a base for integrations.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;No change control on integration metadata.&lt;/strong&gt; Named credentials, event
    definitions and field mappings drift fast. Treat them like code, as covered in
    &lt;a href=&quot;/blog/Salesforce-Metadata-Governance-for-Growing-Orgs-and-Teams&quot;
      &gt;metadata governance for growing orgs and teams&lt;/a
    &gt;.
  &lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;How does Tekunda help growing companies integrate Salesforce?&lt;/h2&gt;
&lt;p&gt;
  Tekunda is a certified Salesforce SI, ISV, PDO and Agentforce partner, and an
  Anthropic (Claude) partner. We design an integration roadmap that fits your current
  stage, then extend Salesforce with event-driven flows, reusable APIs and MCP-connected
  agents as you grow. See how we approach
  &lt;a href=&quot;/products/integration&quot;&gt;Salesforce integration&lt;/a&gt;, or start from the
  &lt;a href=&quot;/&quot;&gt;Tekunda homepage&lt;/a&gt;.
&lt;/p&gt;
&lt;h2&gt;FAQ&lt;/h2&gt;
&lt;p&gt;
  &lt;strong&gt;What is the simplest Salesforce integration pattern to start with?&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
  Request and reply, where Salesforce calls another system and waits for the response.
  It suits low-volume lookups but should not carry bulk loads.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Do I need MuleSoft to integrate Salesforce?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  No. Native APIs, events and Salesforce Connect cover many needs. Middleware such as
  MuleSoft pays off when many systems and teams share integrations, and it needs its own
  license.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What is the Headless 360 MCP Server?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  It is a Salesforce MCP server that lets authorized AI agents discover and invoke
  Salesforce capabilities through the open Model Context Protocol. Check Salesforce&apos;s
  documentation for its current release status.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Should new integrations use outbound messages?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  No. Salesforce recommends the Pub/Sub API for new publish and subscribe work and does
  not plan further investment in outbound messaging.
&lt;/p&gt;
</content:encoded>
        </item>
        <item>
            <title><![CDATA[How to Build a Successful Software Team]]></title>
            <description><![CDATA[What we've learned building successful software teams: tackling technical challenges, fostering ownership, and hiring people who grow with the team.]]></description>
            <link>https://tekunda.com/blog/How-to-Build-a-Successful-Software-Team</link>
            <guid isPermaLink="false">https://tekunda.com/blog/How-to-Build-a-Successful-Software-Team</guid>
            <dc:creator><![CDATA[Andrew Hanna]]></dc:creator>
            <pubDate>Fri, 30 Oct 2026 05:41:57 GMT</pubDate>
            <content:encoded>&lt;p&gt;
  Building a successful software team takes more than technical skill. From our own
  delivery work, success comes from three things: dealing with common technical problems
  directly, giving people real ownership, and hiring people who grow with the team. This
  guide covers each one, then lists the research-backed resources we use to measure and
  improve how a team works.
&lt;/p&gt;
&lt;h2&gt;Common Technical Challenges&lt;/h2&gt;
&lt;p&gt;Every software team runs into problems that stall progress if left unmanaged:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;
    &lt;strong
      &gt;&lt;a
        href=&quot;https://serpent.cloud/resources/Managing-Salesforce-Metadata%3A-Tips-for-Developers&quot;
        target=&quot;_blank&quot;
        rel=&quot;noopener&quot;
        &gt;Feature fragmentation&lt;/a
      &gt;:&lt;/strong
    &gt;
    features built without a shared strategy create inconsistent products, especially
    when releases are rushed or decisions are made in silos.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Code duplication:&lt;/strong&gt; repeated logic across a project adds technical
    bloat and conflicting updates, most common in fast-growing teams.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Overly complex designs:&lt;/strong&gt; over-engineered architecture limits speed
    and experimentation. Clean, scalable abstractions beat trying to future-proof every
    edge case.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Maintenance overhead:&lt;/strong&gt; unstandardised environments and tightly
    coupled dependencies turn maintenance into firefighting instead of improvement.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Slow feedback loops:&lt;/strong&gt; manual testing and blocked deployments delay
    business value and frustrate teams.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Lack of visibility:&lt;/strong&gt; without clear ownership and traceability, teams
    duplicate work and struggle during incidents or audits.
  &lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Strategies That Work&lt;/h2&gt;
&lt;p&gt;We address these challenges with a few consistent practices:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;
    &lt;strong&gt;Modular, reusable design:&lt;/strong&gt; breaking systems into smaller components
    and following atomic design principles to keep UI components consistent.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Clean, maintainable code:&lt;/strong&gt; peer reviews, automated tests, and
    scheduled refactoring, enforced with tools like ESLint, Prettier, and SonarQube.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Cross-functional collaboration:&lt;/strong&gt; designers, developers, testers, and
    stakeholders align early using shared tools like Miro and Notion.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Clear team boundaries:&lt;/strong&gt; each team owns a well-defined slice of the
    product, so handoffs and waiting on other teams stay the exception.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Agile, disciplined workflows:&lt;/strong&gt; iterative development with regular
    feedback loops, backed by real backlog grooming, not chaos.
  &lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Breaking Free from &amp;ldquo;What Worked Last Time&amp;rdquo;&lt;/h2&gt;
&lt;p&gt;
  Long-standing teams often default to known approaches instead of asking what the best
  solution is now. That is efficient short-term but damaging once business requirements
  outpace the systems supporting them. Dynamic thinking keeps teams resilient: use code
  reviews for mentorship, not just nitpicking, revisit old features with a critical eye,
  and let engineers call ad hoc brainstorming sessions instead of waiting for the next
  retrospective. Leaders who protect time for experimentation, even one sprint per
  quarter, give the team room for its biggest breakthroughs.
&lt;/p&gt;
&lt;p&gt;
  New tools need the same thinking. DORA&apos;s 2025 research, published as the
  &lt;a href=&quot;https://dora.dev/research/2025/dora-report/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;
    &gt;State of AI-assisted Software Development&lt;/a
  &gt;, describes AI&apos;s main role as an amplifier of an organization&apos;s existing strengths
  and weaknesses. Adding AI tools to a team with weak practices will not fix the
  practices.
&lt;/p&gt;
&lt;h2&gt;Ownership, Trust, and Team Culture&lt;/h2&gt;
&lt;p&gt;
  Ownership is what keeps people invested. It starts with direct, simple stakeholder
  relationships: invite engineers into roadmap reviews, replace gatekeeping with direct
  access to domain experts, and explain the reasoning behind priorities. Engineers who
  understand the customer make better calls, which is the same principle behind
  &lt;a href=&quot;/blog/Going-the-Extra-Mile%3A-Creating-Exceptional-Customer-Experiences&quot;
    &gt;creating exceptional customer experiences&lt;/a
  &gt;.
&lt;/p&gt;
&lt;p&gt;
  Trust follows. Google&apos;s study of 180 teams, summarized in its
  &lt;a
    href=&quot;https://rework.withgoogle.com/intl/en/guides/understand-team-effectiveness&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
    &gt;re:Work team effectiveness guide&lt;/a
  &gt;, found five dynamics that set effective teams apart: psychological safety,
  dependability, structure and clarity, meaning, and impact. Psychological safety came
  first. In practice, that means letting junior team members own a small feature end to
  end with a senior shadowing, not correcting. It also means celebrating wins publicly
  through demos and shoutouts. A good sign is someone saying &amp;ldquo;I tried this
  approach, here&amp;rsquo;s why&amp;rdquo; before anyone asks.
&lt;/p&gt;
&lt;p&gt;
  At the team level, ownership means collaboration over competition: pair programming,
  shared feature ownership, and cross-team reviews. Align personal growth with team
  goals in 1:1s, so a developer interested in DevOps can lead a CI/CD project. Culture
  also lives outside the sprint board: regular tech talks and team-building days, like
  our
  &lt;a href=&quot;/blog/Freaky-Friday!-Team-Building%2C-Tech-Talks%3A-Why-I-Love-Working-here&quot;
    &gt;Freaky Friday sessions&lt;/a
  &gt;, give people a low-stakes place to share what they learned.
&lt;/p&gt;
&lt;h2&gt;Hiring and Growing the Right People&lt;/h2&gt;
&lt;p&gt;
  Hiring is not about filling a seat, it is about finding people who strengthen team
  dynamics and bring long-term value. Engagement is the risk to manage: Gallup&apos;s
  &lt;a
    href=&quot;https://www.gallup.com/workplace/697904/state-of-the-global-workplace-global-data.aspx&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
    &gt;State of the Global Workplace data&lt;/a
  &gt;
  for 2025 puts only 20% of employees worldwide as engaged, with 64% not engaged and 16%
  actively disengaged. In interviews, watch how candidates think, not just what they
  know: how they handle unknowns, and whether they understand context before acting.
&lt;/p&gt;
&lt;p&gt;
  Rotational internships help both sides find the right fit, exposing interns to
  product, support, ops, and engineering in one cycle. Career paths should not be rigid
  either: support internal mobility so people who outgrow a role stay with the company
  in a new one, instead of leaving altogether.
&lt;/p&gt;
&lt;h2&gt;Resources for Software Teams&lt;/h2&gt;
&lt;p&gt;
  These are the frameworks and references we return to when diagnosing or growing a
  team. All are free to read and grounded in research rather than opinion.
&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;
    &lt;strong
      &gt;&lt;a href=&quot;https://dora.dev/guides/dora-metrics/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;
        &gt;DORA metrics&lt;/a
      &gt;:&lt;/strong
    &gt;
    five delivery measures split into throughput (change lead time, deployment
    frequency, failed deployment recovery time) and instability (change fail rate,
    deployment rework rate).
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong
      &gt;&lt;a
        href=&quot;https://www.infoq.com/news/2021/03/space-developer-productivity&quot;
        target=&quot;_blank&quot;
        rel=&quot;noopener&quot;
        &gt;SPACE framework&lt;/a
      &gt;:&lt;/strong
    &gt;
    a 2021 model from GitHub, Microsoft and University of Victoria researchers covering
    satisfaction, performance, activity, communication and efficiency. Its core point is
    that productivity cannot be reduced to one metric.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong
      &gt;&lt;a href=&quot;https://teamtopologies.com/key-concepts&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;
        &gt;Team Topologies&lt;/a
      &gt;:&lt;/strong
    &gt;
    Matthew Skelton and Manuel Pais&apos;s model of four team types (stream-aligned,
    enabling, complicated subsystem, platform) and three interaction modes
    (collaboration, X-as-a-Service, facilitation).
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong
      &gt;&lt;a
        href=&quot;https://rework.withgoogle.com/intl/en/guides/understand-team-effectiveness&quot;
        target=&quot;_blank&quot;
        rel=&quot;noopener&quot;
        &gt;Google re:Work team effectiveness guide&lt;/a
      &gt;:&lt;/strong
    &gt;
    the five dynamics from Google&apos;s team research, with survey questions you can run on
    your own team.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Conferences and communities:&lt;/strong&gt; events are where teams pick up ideas
    that do not reach blog posts yet, as we found at
    &lt;a href=&quot;/blog/Inside-Web-Summit-Lisbon-2025%3A-What-It&apos;s-Really-Like&quot;
      &gt;Web Summit Lisbon 2025&lt;/a
    &gt;.
  &lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Putting It Into Practice&lt;/h2&gt;
&lt;ol&gt;
  &lt;li&gt;
    &lt;strong&gt;Encourage knowledge sharing:&lt;/strong&gt; rotate ownership of weekly demos or
    tech talks so junior members contribute too.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Invest in tooling:&lt;/strong&gt; version control, CI/CD, and AI-assisted tools
    like GitHub Copilot or
    &lt;a
      href=&quot;/blog/what-it-takes-to-drive-roi-from-ai-agents-from-a-team-that-does-it&quot;
      target=&quot;_blank&quot;
      rel=&quot;noopener&quot;
      &gt;internal AI agents&lt;/a
    &gt;
    cut boilerplate and review overhead, provided the underlying practices are sound.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Plan for scalability:&lt;/strong&gt; build modular, cloud-native systems from the
    outset instead of short-term fixes.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Run real retrospectives:&lt;/strong&gt; use them to fix root causes, not just
    symptoms. One internal fix came from noticing repeated staging failures, solved with
    pipeline step retries and health checks.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Fund continuous learning:&lt;/strong&gt; reserve budget and time for quarterly
    hackathons focused on tooling and side projects.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Track a balanced set of metrics:&lt;/strong&gt; pair DORA&apos;s delivery measures with
    at least one signal of developer satisfaction, as SPACE recommends, so speed never
    hides burnout.
  &lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;
  A successful software team is not built by rigid execution. It is built by how well it
  handles technical challenges, how genuinely it distributes ownership, and how
  carefully it hires and grows people. Every improvement compounds: reusable code, clear
  ownership, and the right hire all reinforce each other over time. If you want an
  experienced team to build alongside yours, or to help set these practices up,
  &lt;a href=&quot;/contact&quot;&gt;talk to Tekunda&lt;/a&gt;.
&lt;/p&gt;
&lt;h2&gt;FAQ&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;What are the best resources for software teams?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  Start with DORA&apos;s metrics guide for delivery, the SPACE framework for productivity,
  Team Topologies for structure, and Google&apos;s re:Work guide for team dynamics. All are
  free and research-based.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What metrics show a software team is healthy?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  DORA&apos;s five metrics cover throughput and instability: change lead time, deployment
  frequency, failed deployment recovery time, change fail rate and deployment rework
  rate. Pair them with a satisfaction measure, since no single metric captures
  productivity.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What makes a software team effective?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  Google&apos;s research on 180 teams found psychological safety mattered most, followed by
  dependability, structure and clarity, meaning, and impact. Who is on the team mattered
  less than how they work together.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;How do you give junior engineers real ownership?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  Let them own a small feature end to end with a senior shadowing rather than
  correcting. Ownership shows when someone explains their reasoning before anyone asks
  for it.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What should you look for when hiring engineers?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  How candidates think, not only what they know: how they handle unknowns, and whether
  they gather context before acting.
&lt;/p&gt;
</content:encoded>
        </item>
        <item>
            <title><![CDATA[Salesforce Security Review Checklist: What to Fix, In Order]]></title>
            <description><![CDATA[The AppExchange security review checklist in the order submissions really fail, plus which scanner findings are false positives and how to document them.]]></description>
            <link>https://tekunda.com/blog/Salesforce-Security-Review-Checklist%3A-What-to-Fix%2C-In-Order</link>
            <guid isPermaLink="false">https://tekunda.com/blog/Salesforce-Security-Review-Checklist%3A-What-to-Fix%2C-In-Order</guid>
            <dc:creator><![CDATA[Tekunda Team]]></dc:creator>
            <pubDate>Sun, 25 Oct 2026 05:48:04 GMT</pubDate>
            <content:encoded>&lt;p&gt;
  A Salesforce security review checklist is only useful if it is ordered. Most
  submissions fail on a short, predictable list, and access control sits at the top of
  it. Work in this order: enforce user-mode access in code, triage the three scanner
  reports, then assemble the submission materials and a test environment the reviewer
  can actually use. Salesforce puts a typical review at 4 to 5 weeks, so a rejection
  costs you a release cycle, not an afternoon.
&lt;/p&gt;
&lt;p&gt;
  Tekunda has taken managed packages through the review in healthcare, logistics and
  manufacturing. What follows is the order we work in, not a description of the process.
  For the end-to-end submission journey, see
  &lt;a href=&quot;/blog/How-ISVs-Pass-the-Salesforce-AppExchange-Security-Review&quot;
    &gt;How ISVs Pass the Salesforce AppExchange Security Review&lt;/a
  &gt;.
&lt;/p&gt;

&lt;h2&gt;The checklist at a glance&lt;/h2&gt;
&lt;ol&gt;
  &lt;li&gt;
    Confirm what you are submitting: a managed package, plus every external service it
    touches.
  &lt;/li&gt;
  &lt;li&gt;Fix access control: user mode, explicit sharing, no injectable SOQL.&lt;/li&gt;
  &lt;li&gt;Fix output handling, secrets, transport security and authentication.&lt;/li&gt;
  &lt;li&gt;Run Code Analyzer, the Partner Security Portal source scan and a DAST scan.&lt;/li&gt;
  &lt;li&gt;Fix what each scanner&apos;s bar requires, and document every false positive.&lt;/li&gt;
  &lt;li&gt;Package the documentation, credentials and a working test org.&lt;/li&gt;
  &lt;li&gt;Submit from the Partner Console and plan for the annual re-review.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;What changed in 2026&lt;/h2&gt;
&lt;p&gt;Three things moved this year, and older checklists predate all of them.&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;
    &lt;strong&gt;The marketplace is now AgentExchange.&lt;/strong&gt; Salesforce
    &lt;a
      href=&quot;https://www.salesforceben.com/salesforce-renames-appexchange-to-agentexchange-community-reacts/&quot;
      &gt;renamed AppExchange to AgentExchange&lt;/a
    &gt;
    at TrailblazerDX 2026 and folded the Slack Marketplace into it. Salesforce&apos;s own
    Trailhead material now uses the new name, but the security review itself is still
    the gate to a listing.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Apex API version 67.0 changes the security defaults.&lt;/strong&gt; Per
    &lt;a href=&quot;https://www.salesforce.com/blog/summer-26-release-architect-highlights/&quot;
      &gt;Salesforce&apos;s Summer &apos;26 architect highlights&lt;/a
    &gt;, database operations now run in user mode by default, classes without a sharing
    declaration default to &lt;code&gt;with sharing&lt;/code&gt;, and
    &lt;code&gt;WITH SECURITY_ENFORCED&lt;/code&gt;
    is removed, so a class still using it on v67.0 will not compile. Triggers are the
    exception: they always run in system mode.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;You run the dynamic scan yourself.&lt;/strong&gt; Salesforce&apos;s
    &lt;a
      href=&quot;https://trailhead.salesforce.com/content/learn/modules/isv_security_review/isv_security_review_prepare&quot;
      &gt;preparation guidance&lt;/a
    &gt;
    now recommends OWASP ZAP or Burp Suite Enterprise Edition for external endpoints and
    accepts your preferred DAST scanner. See
    &lt;a
      href=&quot;/blog/Salesforce-Security-Review%3A-Running-Your-Own-Dynamic-Scans-After-Chimera&quot;
      &gt;Running Your Own Dynamic Scans After Chimera&lt;/a
    &gt;
    for the tools and the report to submit.
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;Step 1: Confirm what is in scope&lt;/h2&gt;
&lt;p&gt;
  Salesforce&apos;s guidance is blunt that all of your solution&apos;s components and services, no
  matter where they live, are fair game. That means the package, any web service it
  calls, any site that stores Salesforce data, and any mobile or desktop client. Settle
  your package type before you start fixing code, because it decides what you upload;
  &lt;a href=&quot;/blog/Salesforce-Packaging-Models-for-ISVs%3A-1GP-vs-2GP-vs-Unmanaged&quot;
    &gt;Salesforce Packaging Models for ISVs: 1GP vs 2GP vs Unmanaged&lt;/a
  &gt;
  covers that choice.
&lt;/p&gt;

&lt;h2&gt;Step 2: Fix the findings that get submissions rejected, in order&lt;/h2&gt;
&lt;p&gt;
  Fix these top to bottom. The items near the top are both the most common findings and
  the most expensive to retrofit, which is why leaving them until last is how a
  submission slips a cycle.
&lt;/p&gt;
&lt;ol&gt;
  &lt;li&gt;
    &lt;strong&gt;Access control that is not enforced in user mode.&lt;/strong&gt; Every query and
    DML operation has to respect the running user&apos;s object permissions, field-level
    security and sharing. Do not rely on the v67.0 default alone: a package usually
    carries classes on older API versions, and trigger handlers can be entered from a
    trigger running in system mode. Set the access mode explicitly with
    &lt;code&gt;WITH USER_MODE&lt;/code&gt; on SOQL and &lt;code&gt;AccessLevel.USER_MODE&lt;/code&gt; on
    &lt;code&gt;Database&lt;/code&gt; calls, and replace any remaining
    &lt;code&gt;WITH SECURITY_ENFORCED&lt;/code&gt; before you bump the API version.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Sharing declared on the wrong classes.&lt;/strong&gt; Below v67.0, a class with no
    sharing keyword inherits sharing from its caller, so a helper invoked from an
    &lt;code&gt;@AuraEnabled&lt;/code&gt; method can quietly run without it. Declare
    &lt;code&gt;with sharing&lt;/code&gt;, &lt;code&gt;without sharing&lt;/code&gt; or
    &lt;code&gt;inherited sharing&lt;/code&gt; explicitly on every class, including inner and
    utility classes, so the reviewer never has to work out which default applies.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Dynamic SOQL assembled from input.&lt;/strong&gt; Use bind variables. If a query
    genuinely has to be built as a string, escape every interpolated value and keep that
    escaping visible in the same method, because that is where a reviewer reads it.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Unescaped output.&lt;/strong&gt; Anything reaching the page through
    &lt;code&gt;escape=&quot;false&quot;&lt;/code&gt;, &lt;code&gt;lwc:dom=&quot;manual&quot;&lt;/code&gt; or
    &lt;code&gt;innerHTML&lt;/code&gt; has to be sanitised before it gets there, not after.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Secrets and customer data in the wrong place.&lt;/strong&gt; Hardcoded keys in
    Apex, tokens in unprotected custom settings, a record with personal data passed to
    &lt;code&gt;System.debug&lt;/code&gt;. Named Credentials and protected custom metadata are what
    reviewers expect instead.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Weak transport or storage encryption.&lt;/strong&gt; Salesforce&apos;s
    &lt;a
      href=&quot;https://developer.salesforce.com/blogs/2023/08/the-top-20-vulnerabilities-found-in-the-appexchange-security-review&quot;
      &gt;list of the most common review findings&lt;/a
    &gt;
    requires TLS 1.2 on connections involving your sites and portals, and the team scans
    every external endpoint for it. Encrypt anything you store off-platform as well.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;External systems authenticated with a stored username and password.&lt;/strong&gt;
    Use OAuth for every connection your package opens to a service you or the customer
    runs. Stored credentials are a finding on their own, and they make the data flow
    document harder to defend.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;A composite site shipped without the basics.&lt;/strong&gt; If your solution
    includes a web surface outside the org, it needs security headers, and its cookies
    need &lt;code&gt;Secure&lt;/code&gt; and &lt;code&gt;HttpOnly&lt;/code&gt;. Reviewers check the site you
    hand them, not the one you describe.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;External endpoints nobody scanned.&lt;/strong&gt; If your package calls a service
    you operate, that service is in scope and needs its own dynamic scan report.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;A test environment the reviewer cannot use.&lt;/strong&gt; An expired org, an
    identity challenge that locks them out, or objects with no data in them. Salesforce
    tells partners to treat the review team as a potential customer test-driving the
    whole solution end to end, and it cannot review what will not run.
  &lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;Step 3: Run the scanners and meet each one&apos;s bar&lt;/h2&gt;
&lt;p&gt;
  You must include a Salesforce Code Analyzer report, a Partner Security Portal source
  scanner report and a DAST report. The bar is not zero findings, and it is different
  for each scanner:
&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;
    &lt;strong&gt;Salesforce Code Analyzer:&lt;/strong&gt; fix all security-related findings and
    errors except false positives, and ignore findings that are not security related. It
    does not scan external endpoints.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Partner Security Portal source scanner (Checkmarx):&lt;/strong&gt; fix Low, Medium
    and High findings, and leave informational warnings alone.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;DAST scanners&lt;/strong&gt; such as ZAP, Burp Suite, Veracode Dynamic Analysis,
    Intruder and Acunetix: fix everything except informational items and warnings, then
    attach a screenshot proving the right external endpoint was scanned.
  &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
  Generate the Code Analyzer v5 report with the AppExchange rule selector, so it matches
  what the reviewer expects. On a complex codebase the run can take hours:
&lt;/p&gt;
&lt;p&gt;
  &lt;code
    &gt;sf code-analyzer run --rule-selector AppExchange --rule-selector
    Recommended:Security --output-file CodeAnalyzerReport.html&lt;/code
  &gt;
&lt;/p&gt;
&lt;p&gt;
  Which scans are mandatory has shifted more than once, so confirm
  &lt;a href=&quot;/blog/Salesforce-Security-Review-Scanner-Requirements-in-2026&quot;
    &gt;the current scanner requirements&lt;/a
  &gt;
  before you generate anything.
&lt;/p&gt;

&lt;h2&gt;Step 4: Document every false positive&lt;/h2&gt;
&lt;p&gt;
  Across our submissions, four categories come back as genuine false positives often
  enough to plan for: access-control findings raised against code that already enforces
  user mode, sharing findings on classes only ever entered through a context that has
  applied sharing, retired-library findings matched on a version string inside a bundled
  static resource, and reflected cross-site scripting findings on parameters that never
  reach the DOM.
&lt;/p&gt;
&lt;p&gt;
  Being right is not enough, though. The document is what passes. Salesforce asks for
  &lt;a
    href=&quot;https://developer.salesforce.com/docs/atlas.en-us.packagingGuide.meta/packagingGuide/security_review_false_positives.htm&quot;
    &gt;a document explaining why each flagged item does not pose a security risk&lt;/a
  &gt;, and tells you to be specific about how you protect against the vulnerability
  indicated. Give every finding its own entry: scanner and rule identifier, file and
  line, one sentence describing the data path, the exact control that protects it, and
  where that control lives in the package. One-line dismissals come back as questions,
  and questions cost weeks. For the justification format and the mistakes that get it
  rejected, see
  &lt;a href=&quot;/blog/How-to-Document-False-Positives-for-the-Salesforce-Security-Review&quot;
    &gt;How to Document False Positives for the Salesforce Security Review&lt;/a
  &gt;.
&lt;/p&gt;

&lt;h2&gt;Step 5: Assemble the submission materials&lt;/h2&gt;
&lt;ul&gt;
  &lt;li&gt;
    Usage documentation written so that someone who has never seen the app can complete
    a full workflow.
  &lt;/li&gt;
  &lt;li&gt;
    Data flow documentation between the Salesforce org and any composite site, mobile
    app or browser extension.
  &lt;/li&gt;
  &lt;li&gt;
    Every scan report, the DAST endpoint screenshot and the false positive document.
  &lt;/li&gt;
  &lt;li&gt;A Developer Edition org with the package installed and realistic seeded data.&lt;/li&gt;
  &lt;li&gt;
    Credentials for each external system the app touches, or a hosted test instance of
    it.
  &lt;/li&gt;
  &lt;li&gt;Install links and credentials for any mobile or desktop client.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
  You then start the review from the Publishing Partner Console: open the Technologies
  tab, choose Start Review on your solution, and complete the contacts, technical
  details, documentation and test environment sections before payment.
&lt;/p&gt;

&lt;h2&gt;How long does the security review take, and what does it cost?&lt;/h2&gt;
&lt;p&gt;
  Salesforce states that a solution typically takes 4 to 5 weeks to get through the
  review, and that
  &lt;a
    href=&quot;https://trailhead.salesforce.com/content/learn/modules/isv_security_review/isv_security_review_submit&quot;
    &gt;for every paid solution there is a $999 fee&lt;/a
  &gt;
  for the initial submission and for any subsequent attempts. If the team finds
  vulnerabilities, you fix and resubmit, and that counts as another attempt. Salesforce
  also notes that most submissions pass on the second attempt. Both facts argue for the
  same thing: front-load the access control work, because the cheapest submission is the
  one you only have to make once.
&lt;/p&gt;
&lt;p&gt;
  If you would rather the review was handled by people who have cleared it before,
  Tekunda runs
  &lt;a href=&quot;/appexchange-security-review&quot;&gt;AppExchange security review preparation&lt;/a&gt;
  as a Salesforce partner. If you are still weighing whether to bring in outside help,
  &lt;a href=&quot;/blog/What-a-Salesforce-PDO-Does%2C-and-When-to-Hire-One&quot;
    &gt;What a Salesforce PDO Does, and When to Hire One&lt;/a
  &gt;
  sets out where a PDO earns its fee.
&lt;/p&gt;

&lt;h2&gt;FAQ&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Do free apps need a security review?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  Yes. A solution has to pass the review before it is listed on the marketplace. The
  $999 submission fee that Salesforce documents applies to paid solutions.
&lt;/p&gt;
&lt;p&gt;
  &lt;strong&gt;Does API version 67.0 mean I can skip CRUD, FLS and sharing work?&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
  No. The new defaults only apply to classes compiled at v67.0 or later, and triggers
  still run in system mode. Declare access modes and sharing explicitly so the reviewer
  can verify them line by line.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Is Salesforce Code Analyzer enough on its own?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  No. You also need the Partner Security Portal source scanner report, and any external
  endpoint your app calls needs a DAST report of its own.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Does an Agentforce or agent-based app change the checklist?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  The same review applies, but every external service your agent can call has to be
  described and scanned. See
  &lt;a href=&quot;/blog/AppExchange-Security-Review-for-Agentic-Apps%3A-What-Is-Different&quot;
    &gt;AppExchange Security Review for Agentic Apps: What Is Different&lt;/a
  &gt;.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Is the security review a one time event?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  No. Listed solutions are typically re-reviewed once a year, and Salesforce can request
  a review at any time. New package versions use an attestation in the Partner Console
  instead of a fresh review, so keep the checklist as a standing release gate.
&lt;/p&gt;
</content:encoded>
        </item>
        <item>
            <title><![CDATA[Agentforce ROI Calculator: How It Works and What It Really Costs (2026)]]></title>
            <description><![CDATA[How the Agentforce ROI calculator works, what Agentforce costs in 2026, the costs it leaves out, and how to turn the estimate into a payback you can defend.]]></description>
            <link>https://tekunda.com/blog/Agentforce-ROI-Calculator%3A-How-It-Works-and-What-It-Really-Costs-(2026)</link>
            <guid isPermaLink="false">https://tekunda.com/blog/Agentforce-ROI-Calculator%3A-How-It-Works-and-What-It-Really-Costs-(2026)</guid>
            <dc:creator><![CDATA[Tekunda Team]]></dc:creator>
            <pubDate>Sat, 24 Oct 2026 05:48:14 GMT</pubDate>
            <content:encoded>&lt;p&gt;
  &lt;strong&gt;TL;DR:&lt;/strong&gt; An Agentforce ROI calculator estimates the three-year net
  benefit of Salesforce AI agents: the labour you save, minus what the agents cost to
  run in Flex Credits. Salesforce&apos;s official calculator is free and quick, but it runs
  on built-in assumptions (a fixed per-case agent cost, a 70% year-on-year ramp) and
  excludes implementation, licences, and Data 360. Read its benefit line as a ceiling
  and its cost line as a floor. Run your own numbers on our
  &lt;a href=&quot;/tools/agentforce-roi&quot;&gt;Agentforce ROI calculator&lt;/a&gt;, then use this guide to
  turn the estimate into a figure you can defend.
&lt;/p&gt;
&lt;h2&gt;What is the Agentforce ROI calculator?&lt;/h2&gt;
&lt;p&gt;
  The Agentforce ROI calculator is Salesforce&apos;s free, no-login tool for estimating the
  financial return of deploying Agentforce agents. You pick use cases, enter a few
  operational numbers, and it returns a year-by-year view of productivity benefit, agent
  cost, net benefit, and the Flex Credits you would consume. Salesforce labels the
  output as illustrative only, and states that implementation costs, Salesforce
  licences, and Data 360 credits are not included.
&lt;/p&gt;
&lt;p&gt;
  Two versions are now in circulation. Some regional editions of the
  &lt;a href=&quot;https://www.salesforce.com/uk/agentforce/ai-agents-roi-calculator/&quot;
    &gt;official ROI calculator&lt;/a
  &gt;
  still show the classic three-year ROI model. The
  &lt;a href=&quot;https://www.salesforce.com/agentforce/ai-agents-roi-calculator/&quot;&gt;US page&lt;/a&gt;
  has been reworked toward a first-year pricing estimate built from seats, actions per
  agent template, and Data 360 inputs, rounded up to the nearest 100,000 credits. If you
  searched for an ROI figure and got a price, that is why. Partners publish their own
  variants; ours focuses on support teams and estimates ticket deflection, freed
  headcount, and payback from numbers you already know.
&lt;/p&gt;
&lt;h2&gt;How does the Agentforce ROI calculator work?&lt;/h2&gt;
&lt;p&gt;The three-year model follows the same three steps for every use case:&lt;/p&gt;
&lt;ol&gt;
  &lt;li&gt;
    &lt;strong&gt;Pick your use cases.&lt;/strong&gt; The presets are Customer Service, Sales
    Development Rep, Sales Coach, Field Service and Back Office, Employee Help in Slack,
    Loan Product Assistance, Quoting, and Customer Insights in Slack. Each has its own
    action profile, so a service agent and an SDR agent produce very different math.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Enter your numbers.&lt;/strong&gt; Headcount, salary, volumes (cases per rep per
    day, leads per rep per week, quotes per week), and a year-three target for the share
    of work agents absorb. Sales presets add conversion rate, deal size, close rate, and
    gross margin.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Read the projection.&lt;/strong&gt; You get productivity benefit by year, agent
    cost, net benefit, the cost of doing nothing, total Agentforce investment, and an
    estimated Flex Credit total.
  &lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;The assumptions the calculator makes for you&lt;/h3&gt;
&lt;p&gt;
  The inputs you type are only half the model. The other half is a set of built-in
  defaults that Salesforce discloses on the page but most users never read:
&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;
    &lt;strong&gt;Customer Service:&lt;/strong&gt; each agent-handled case costs about $0.30, and
    adoption ramps so year one is 70% of year two and year two is 70% of year three.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Appointment Scheduling:&lt;/strong&gt; about $0.43 per scheduled appointment,
    based on 4 to 5 actions.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Employee Help in Slack:&lt;/strong&gt; agents resolve 30% of questions in year
    one, 40% in year two, and 50% in year three, at $0.20 per task.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Sales Development Rep:&lt;/strong&gt; about $0.84 per lead, with untouched leads
    converting to qualified leads at 50% in year one, 75% in year two, and 100% in year
    three.
  &lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Quoting:&lt;/strong&gt; a 20% efficiency gain at $0.40 per quote.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
  Those per-unit costs are the real lever. If your agent takes twice the actions
  Salesforce assumes, your cost line doubles while the benefit line stays put. The
  year-three target matters just as much: a 50% target and a 20% one produce very
  different paybacks, so anchor it to a small pilot rather than a vendor default. Check which of these inputs the headline number quietly depends on.
&lt;/p&gt;
&lt;h2&gt;How is Agentforce priced in 2026?&lt;/h2&gt;
&lt;p&gt;
  You cannot trust an ROI number without understanding the meter behind it. According to
  &lt;a href=&quot;https://www.salesforce.com/agentforce/pricing/&quot;&gt;Salesforce&apos;s pricing page&lt;/a
  &gt;, Agentforce is sold in four ways:
&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;
    &lt;strong&gt;Flex Credits:&lt;/strong&gt; $500 per 100,000 credits. A standard or custom action
    uses 20 credits (about $0.10) in production and 16 in a sandbox, and an Agentforce
    Voice action uses 30 credits (about $0.15). Prompts run through Salesforce-enabled
    models also consume credits, from 2 for a basic prompt to 16 for an advanced one,
    per the
    &lt;a
      href=&quot;https://www.salesforce.com/en-us/wp-content/uploads/sites/4/assets/pdf/Flex_Credits_Rate_Card_Effective-10.24.25.pdf&quot;
      &gt;Flex Credits rate card&lt;/a
    &gt;.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Conversations:&lt;/strong&gt; a flat $2 per conversation, regardless of how many
    actions it contains.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Per-user add-ons:&lt;/strong&gt; $125 per user per month for Sales, Service, and
    Field Service, and $150 for Industries clouds. A $5 Agentforce User License is also
    listed, which requires Flex Credits.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Editions:&lt;/strong&gt; in September 2026 Salesforce
    &lt;a
      href=&quot;https://www.salesforce.com/news/stories/salesforce-simplifies-editions-2026/&quot;
      &gt;replaced its edition lineup&lt;/a
    &gt;
    with Core ($195 per user per month, 500,000 Flex Credits), Advanced ($395, 1 million
    credits), and Max ($550, 2.75 million credits). Max takes over from Agentforce 1
    Edition at the same price, and existing Agentforce 1 customers can move to it at no
    extra cost.
  &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
  The break-even between the two consumption models is simple arithmetic: $2 buys 20
  standard actions at $0.10 each. A conversation that takes 5 to 15 actions costs $0.50
  to $1.50 on Flex Credits, so short, deterministic agents favour credits and long,
  multi-step sessions can favour the flat rate. If your calculator assumes a single
  per-conversation price, its cost line is wrong in one direction or the other.
&lt;/p&gt;
&lt;p&gt;
  Three more lines belong in the model. Enterprise Edition customers and above can get
  100,000 Flex Credits free through Salesforce Foundations, according to
  &lt;a href=&quot;https://help.salesforce.com/s/articleView?id=004811240&amp;language=en_US&amp;type=1&quot;
    &gt;Salesforce Help&lt;/a
  &gt;, which is enough to prototype before you commit. Customer-facing agents in
  Salesforce&apos;s estimator include an assumption of 10% sandbox credit use, so testing is
  not free. And Data 360 consumption is billed separately from the agents. Salesforce
  marks all of this pricing as subject to change, so recheck before you put a figure in
  front of finance. Each model shifts the payback month differently.
&lt;/p&gt;
&lt;h2&gt;Can you estimate the ROI of AI-powered phone agents like Agentforce?&lt;/h2&gt;
&lt;p&gt;
  Yes, and it is worth doing as its own line, because a voice action costs 50% more than
  a standard one. You model call volume and average handle time the way you would cases,
  but you price credits against voice actions and count actions per call rather than per
  chat.
&lt;/p&gt;
&lt;p&gt;
  The calculator assumes the telephony is already in place. In practice a phone agent
  needs a CTI layer that brings call routing, logging, and live caller context into
  Service Cloud so the agent has something to act on. Budget that integration and its
  per-seat licensing separately, or your phone-agent payback will look better on paper
  than in the bank.
&lt;/p&gt;
&lt;h2&gt;What does the Agentforce ROI calculator leave out?&lt;/h2&gt;
&lt;p&gt;
  Every calculator shares one blind spot: it prices the software, not the project. The
  number assumes the agents are already built, integrated, and trusted. Six costs live
  outside the tool, and together they often outweigh the software line:
&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;
    &lt;strong&gt;Data readiness and Data 360.&lt;/strong&gt; Agents are only as good as the records
    they read, so deduplication, field hygiene, permissions, and grounding are real line
    items. Data 360 is optional for agents that only need native CRM data, but required
    once an agent needs unified or unstructured data, and Salesforce excludes its
    credits from the ROI output.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Implementation labour.&lt;/strong&gt; Topics, actions, instructions, guardrails,
    testing, and rollout. Some use cases are a few clicks; others need custom actions
    and Apex, and the calculator does not know which you face.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Integration.&lt;/strong&gt; Every system an agent must read from or write to
    (telephony, billing, ticketing, ERP) is a small project of its own, not a checkbox.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Change and adoption.&lt;/strong&gt; Salesforce&apos;s own disclaimer names
    implementation practices and user adoption as factors in actual results. A
    deflection target you never train your team to hit is fiction.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Governance and security.&lt;/strong&gt; Audit, privacy alignment, and agent
    monitoring are recurring work, not a one-time setup.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Attribution.&lt;/strong&gt; Isolating the agent&apos;s impact from concurrent staffing
    or process changes needs a measured baseline, not a projection.
  &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
  The gap between an agent as a demo and an agent as a dependable decision-support
  platform is exactly where projects stall; we wrote about closing it in
  &lt;a href=&quot;/blog/what-it-takes-to-drive-roi-from-ai-agents-from-a-team-that-does-it&quot;
    &gt;what it takes to drive ROI from AI agents&lt;/a
  &gt;.
&lt;/p&gt;
&lt;h2&gt;How do MCP and headless agents change the integration line?&lt;/h2&gt;
&lt;p&gt;
  The biggest recent shift in that integration line is the Model Context Protocol (MCP),
  the open standard for connecting agents to tools and data. Salesforce
  &lt;a
    href=&quot;https://developer.salesforce.com/blogs/2025/06/introducing-mcp-support-across-salesforce&quot;
    &gt;announced MCP support across its platform&lt;/a
  &gt;
  in June 2025, including a native MCP client for Agentforce, and its
  &lt;a href=&quot;https://www.salesforce.com/agentforce/mcp-support/&quot;&gt;MCP gateway&lt;/a&gt; adds a
  central server registry, access controls, and rate limiting. In April 2026 it launched
  Headless 360, which exposes core Salesforce functions as APIs, MCP tools, and CLI
  commands, with more than 60 new MCP tools at launch. The new Max edition is slated to
  include an allocation of Headless 360 capacity.
&lt;/p&gt;
&lt;p&gt;
  For an ROI model, that means an agent can reach external systems through one standard
  handshake instead of a bespoke connector per system, and agents can run inside your
  own product or workflow rather than only inside the Salesforce UI. Done right, it
  lowers the per-connector build cost older ROI models never captured, but only when
  your data and permissions are already in order. Tekunda is the first and only firm
  delivering headless Salesforce with MCP in production, building the MCP servers and
  the headless CRM implementation together. We cover the adoption path on our
  &lt;a href=&quot;/headless-mcp&quot;&gt;headless MCP on Salesforce&lt;/a&gt; page.
&lt;/p&gt;
&lt;h2&gt;How do you turn the estimate into a number you can defend?&lt;/h2&gt;
&lt;p&gt;Treat the calculator output as step one, then do four things:&lt;/p&gt;
&lt;ol&gt;
  &lt;li&gt;
    &lt;strong&gt;Capture a real baseline first.&lt;/strong&gt; Average handle time, interaction
    volume, cost per interaction, resolution rate, and escalation rate. A calculator
    that starts from a guessed baseline returns a guessed ROI, and every post-launch
    gain should be a measured delta against these numbers.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Right-size the automation target.&lt;/strong&gt; Replace the default year-three
    target with what a pilot actually achieved on your case mix and knowledge coverage.
    We cap our own estimate at a deflection we have sustained in production (see our
    &lt;a href=&quot;/case-studies/assa-abloy&quot;&gt;ASSA ABLOY engagement&lt;/a&gt;), not a marketing best
    case, because an inflated rate produces a payback no one hits.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Replace the per-unit cost with a real action count.&lt;/strong&gt; Count the
    actions a representative conversation takes, price them against the billing model
    you will run, add sandbox testing and prompt consumption, then add Data 360 if your
    agents need it.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Put the project in the investment line.&lt;/strong&gt; Integration, data
    preparation, and change management belong there, and payback should be the month
    cumulative savings overtake cumulative spend, not a three-year total.
  &lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
  The result will almost always be smaller and later than the calculator&apos;s figure. That
  is the point: a conservative number that lands is worth more than an optimistic one
  that gets the programme cancelled in year two.
&lt;/p&gt;
&lt;h2&gt;Do you need a security review or a Salesforce PDO?&lt;/h2&gt;
&lt;p&gt;
  For an internal Agentforce rollout, no AppExchange security review applies; that gate
  is for managed packages listed on the AppExchange. If you are an ISV building an
  agent-powered product to sell, it does apply and it belongs in your model: a paid
  submission fee, a code and behavioural audit against secure coding practices, and
  scans you now run yourself since Salesforce retired its hosted Chimera scanner.
  Working through the
  &lt;a
    href=&quot;https://developer.salesforce.com/docs/atlas.en-us.packagingGuide.meta/packagingGuide/security_review_prepare.htm&quot;
    &gt;security review checklist&lt;/a
  &gt;
  up front is far cheaper than a failed submission.
&lt;/p&gt;
&lt;p&gt;
  That distinction also decides the partner type you need. A system integrator
  implements Salesforce inside your business; a Salesforce PDO (product development
  outsourcer) designs, builds, and maintains commercial AppExchange apps and shepherds
  them through the review. Internal rollouts want implementation depth; an ISV shipping
  an agent-powered product wants PDO experience.
&lt;/p&gt;
&lt;h2&gt;How do you choose an Agentforce implementation partner?&lt;/h2&gt;
&lt;p&gt;
  A calculator gives you a target; a partner gets you there, and the calculator&apos;s blind
  spots are exactly where that partner earns its fee. Ask for specifics on four things:
  an agent they shipped to production, not demoed; how they integrated it; the
  deflection they actually measured; and whether they price against current Flex Credit
  and edition rates rather than a stale spreadsheet. Then ask them to rebuild the
  estimate with your real data before you sign anything.
&lt;/p&gt;
&lt;p&gt;
  The calculator also cannot tell you whether to configure Agentforce or build a custom
  agent: standard use cases with clean data favour configuration, while deep,
  differentiated workflows sometimes justify a custom build. We lay out that decision in
  &lt;a href=&quot;/blog/Agentforce-vs-Custom-AI-Agents%3A-When-to-Configure-and-When-to-Build&quot;
    &gt;Agentforce vs custom AI agents&lt;/a
  &gt;. Either way, &lt;a href=&quot;/&quot;&gt;Tekunda&lt;/a&gt; builds, integrates, and ships the agents behind
  these numbers, which is why our estimates start conservative. See
  &lt;a href=&quot;/agentforce&quot;&gt;how we approach Agentforce&lt;/a&gt;, or
  &lt;a href=&quot;/contact&quot;&gt;talk through your numbers&lt;/a&gt; once the estimate is worth acting on.
&lt;/p&gt;
&lt;h2&gt;FAQ&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Is the Agentforce ROI calculator free?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  Yes. Salesforce&apos;s official calculator and Tekunda&apos;s are both free and return an
  estimate without a purchase.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;How accurate is the Agentforce ROI calculator?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  It is directional. It relies on built-in per-unit costs and ramp assumptions and
  excludes implementation, licences, and Data 360, so pressure-test it against a pilot.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;How much does an Agentforce action cost?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  A standard action uses 20 Flex Credits, about $0.10 at $500 per 100,000 credits. A
  voice action uses 30 credits, about $0.15.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Should I use Flex Credits or the $2 conversation model?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  Below roughly 20 standard actions per conversation, Flex Credits are cheaper; above
  it, the flat $2 rate can win. Model both against a real action count.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Does the calculator include Data 360 costs?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  No. Salesforce excludes Data 360 credits from the ROI output, so add them yourself if
  your agents need unified or unstructured data.
&lt;/p&gt;
</content:encoded>
        </item>
        <item>
            <title><![CDATA[Salesforce Asset Lifecycle Management for Connected Devices]]></title>
            <description><![CDATA[How to model installed assets, entitlements and device telemetry on Salesforce so service, warranty and renewals all read one asset record.]]></description>
            <link>https://tekunda.com/blog/Salesforce-Asset-Lifecycle-Management-for-Connected-Devices</link>
            <guid isPermaLink="false">https://tekunda.com/blog/Salesforce-Asset-Lifecycle-Management-for-Connected-Devices</guid>
            <dc:creator><![CDATA[Tekunda Team]]></dc:creator>
            <pubDate>Fri, 16 Oct 2026 06:00:12 GMT</pubDate>
            <content:encoded>&lt;p&gt;
  &lt;strong&gt;Short answer:&lt;/strong&gt; Salesforce Asset Service Lifecycle Management (ASLM) is
  Salesforce&apos;s packaged set of features for servicing a physical asset from installation
  to retirement: an interactive asset hierarchy, a coverage view of entitlements, work
  order estimation, recall and upgrade campaigns, exchanges, depot repair and service
  inventory, all built on the standard Asset object. It works when each installed unit
  is one Asset record that service, warranty and renewals all read. For connected
  devices, the hard part is telemetry, because device events must not land in the org
  row by row.
&lt;/p&gt;

&lt;h2&gt;What is Salesforce Asset Service Lifecycle Management?&lt;/h2&gt;
&lt;p&gt;
  Salesforce describes ASLM as a way to &quot;manage the entire lifecycle of asset service
  operations&quot; (&lt;a
    href=&quot;https://help.salesforce.com/s/articleView?id=xcloud.aslm_asset_service_lifecycle_management.htm&amp;amp;language=en_US&amp;amp;type=5&quot;
    &gt;Salesforce Help&lt;/a
  &gt;). In practice it groups into five capability areas:
&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;
    &lt;strong&gt;Asset visibility.&lt;/strong&gt; Asset Interactive Hierarchy shows parent and
    child assets, and Asset Coverage View puts a customer&apos;s entitlements in front of the
    agent.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Service execution.&lt;/strong&gt; Work Order Estimation prices work before it
    starts, Book Service Appointment handles scheduling, and Product Service Campaign
    runs large-scale recalls and upgrades.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Returns and repair.&lt;/strong&gt; Advanced Exchange creates return and
    replacement requests, Depot Repair handles units sent back for repair, and Service
    Parts Return covers damaged parts tied to work orders.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Service inventory.&lt;/strong&gt; Inventory allocation, batch management, search
    and transfer, counts and replenishment.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Labour and AI.&lt;/strong&gt; Timesheets and Labor Cost Optimization, plus
    Agentforce for ASLM, which provides agent templates for inventory tasks and service
    estimation.
  &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
  The short version: standard Salesforce gives you the asset and its coverage, and ASLM
  adds the service operations that run around it.
&lt;/p&gt;

&lt;h2&gt;Which clouds and licences does ASLM need?&lt;/h2&gt;
&lt;p&gt;
  According to the same Help article, ASLM is available in Lightning Experience in
  Service Cloud, Manufacturing Cloud, Automotive Cloud, Communications Cloud, Consumer
  Goods Cloud, Energy and Utilities Cloud and Media Cloud. Some features need add-on
  licences, bought through Salesforce Go, so check the editions table for each feature
  before you plan around it.
&lt;/p&gt;
&lt;p&gt;
  Two related products are easy to confuse with it. When Salesforce announced ASLM in
  June 2024 as a separate add-on, it also announced &lt;strong&gt;Connected Assets&lt;/strong&gt;, a
  separate add-on for acting on two-way telematics events such as firmware updates, work
  order creation or safety alerts, and an &lt;strong&gt;Asset Health Score&lt;/strong&gt; for Field
  Service (&lt;a
    href=&quot;https://futurumgroup.com/insights/salesforce-announces-asset-management-tools-powered-by-analytics-ai/&quot;
    &gt;Futurum Group&lt;/a
  &gt;). ASLM is the service layer. Connected Assets and your own integration are the
  telemetry layer.
&lt;/p&gt;

&lt;h2&gt;Which object should hold what?&lt;/h2&gt;
&lt;p&gt;
  None of those features help if the data model underneath is wrong. Most failed
  connected-asset programmes we are called into failed here, not in the integration. A
  clean split looks like this.
&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;
    &lt;strong&gt;Product2&lt;/strong&gt; is the model. It is what you sell, not what the customer
    has.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Asset&lt;/strong&gt; is the individual unit: serial number, install date, status,
    account, contact and location. Use the parent and root asset fields to model a
    device that sits inside a gateway, a panel or a building, so a fault on a component
    rolls up to something a technician can be dispatched to. This is also what the
    interactive hierarchy draws.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;WarrantyTerm&lt;/strong&gt; defines what is covered, meaning labour, parts and
    expenses, and &lt;strong&gt;AssetWarranty&lt;/strong&gt; attaches that term to a specific unit
    with its own dates (&lt;a
      href=&quot;https://developer.salesforce.com/docs/atlas.en-us.object_reference.meta/object_reference/sforce_api_objects_warrantyterm.htm&quot;
      &gt;object reference&lt;/a
    &gt;).
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Entitlement&lt;/strong&gt; and &lt;strong&gt;ServiceContract&lt;/strong&gt; carry what the
    customer bought and until when. Entitlements can hang off the account, the asset,
    the case or the contract, which is exactly why teams end up with the same coverage
    recorded in three places, and why the coverage view shows conflicting answers.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Case&lt;/strong&gt; and &lt;strong&gt;WorkOrder&lt;/strong&gt; reference the asset, never the
    product. A case without an asset id is a case you cannot bill, cover or trend.
  &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
  One rule keeps this honest: coverage is asserted in exactly one place, and everything
  else reads it. If sales can edit a renewal date that service does not see, you do not
  have asset lifecycle management, you have three spreadsheets in a trench coat.
&lt;/p&gt;

&lt;h2&gt;How do you get device telemetry in without drowning the org?&lt;/h2&gt;
&lt;p&gt;
  Salesforce retired IoT Explorer and pointed customers at platform events and flows
  instead (&lt;a
    href=&quot;https://help.salesforce.com/s/articleView?id=000380519&amp;amp;language=en_US&amp;amp;type=1&quot;
    &gt;retirement notice&lt;/a
  &gt;). That is the right instinct, but it needs a rule attached:
  &lt;strong&gt;Salesforce stores state and decisions, not the raw stream.&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;In practice we run three layers.&lt;/p&gt;
&lt;ol&gt;
  &lt;li&gt;
    &lt;strong&gt;Ingest and reduce outside the org.&lt;/strong&gt; Heartbeats, readings and
    duplicate alarms are collapsed into meaningful transitions before anything crosses
    the API boundary.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Publish transitions as platform events.&lt;/strong&gt; One event per state change,
    carrying the serial number, the condition and the timestamp, resolved to the Asset
    by serial rather than by record id. The integration user that publishes them usually
    authenticates through a connected app, so review it against the
    &lt;a href=&quot;/blog/Salesforce-Connected-App-Security-Changes%3A-A-Readiness-Guide&quot;
      &gt;Salesforce connected app security changes&lt;/a
    &gt;
    before go-live.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Write derived state onto the Asset, and let automation decide.&lt;/strong&gt;
    Current health, last seen, firmware version, open fault. A flow or Apex handler then
    decides case, work order, or nothing at all.
  &lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
  That last option matters most. The triage rule, not the ingestion, is what keeps a
  connected fleet serviceable. For ASSA ABLOY, across FocusCura and Phoniro, we run
  11,000 connected devices producing up to 2.5 million events a week and cut weekly
  cases from 3,000 to 350, a 93% reduction across three markets with no added support
  staff. The devices did not get quieter. The model stopped creating a case for every
  symptom. The full breakdown is in
  &lt;a
    href=&quot;/blog/How-connected-device-teams-cut-support-cases-by-93-percent-on-Salesforce&quot;
    &gt;how connected-device teams cut support cases by 93 percent on Salesforce&lt;/a
  &gt;.
&lt;/p&gt;

&lt;h2&gt;What does one asset record actually buy you?&lt;/h2&gt;
&lt;ul&gt;
  &lt;li&gt;
    &lt;strong&gt;Service&lt;/strong&gt; sees coverage before dispatch, so nobody sends a paid
    technician to a unit under warranty.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Warranty&lt;/strong&gt; claims resolve against the term attached to that unit, not
    against a policy someone remembers.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Recalls and upgrades&lt;/strong&gt; target the right units, because a product
    service campaign can only reach assets that carry a real model, serial and firmware
    version.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Renewals&lt;/strong&gt; are forecast from install dates and warranty end dates
    that are already in the system, so expiries stop being discovered by the customer.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Product teams&lt;/strong&gt; get failure rates per model and per firmware version,
    because every case points at a real unit.
  &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
  None of that needs an AI layer to be worth doing. It does make the AI layer possible
  later, because an agent can only reason about an installed base that is actually
  modelled.
&lt;/p&gt;

&lt;h2&gt;How should you sequence the build?&lt;/h2&gt;
&lt;ol&gt;
  &lt;li&gt;
    Load the installed base with real serial numbers and install dates, even if it is
    partial. Assets without serials cannot be reconciled later.
  &lt;/li&gt;
  &lt;li&gt;
    Model the hierarchy before automating anything, because rework here touches every
    downstream record.
  &lt;/li&gt;
  &lt;li&gt;
    Attach warranty terms and entitlements, and pick the single object that owns
    coverage.
  &lt;/li&gt;
  &lt;li&gt;
    Wire telemetry as state transitions, with a written triage rule per condition.
  &lt;/li&gt;
  &lt;li&gt;
    Only then switch on ASLM features such as estimation, campaigns and exchanges, along
    with service contracts, renewal forecasting and agents.
  &lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
  Teams that reverse steps one and four end up with a beautiful integration writing
  events onto assets nobody trusts. If you want this reviewed against your own org, see
  how Tekunda delivers
  &lt;a href=&quot;/asset-lifecycle-management&quot;&gt;asset lifecycle management on Salesforce&lt;/a&gt;
  alongside Field Service and connected-device work.
&lt;/p&gt;

&lt;h2&gt;FAQ&lt;/h2&gt;
&lt;p&gt;
  &lt;strong&gt;What is Salesforce Asset Service Lifecycle Management in one line?&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
  It is a set of Salesforce features for servicing installed assets end to end, from
  hierarchy and coverage to estimates, recalls, exchanges, repair and service inventory.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Should each device be an Asset or a custom object?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  Asset, in almost every case. Entitlements, warranties, work orders, ASLM and Field
  Service already relate to it, and a custom object means rebuilding those relationships
  by hand.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Where should raw telemetry live?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  Outside the transactional org, in a store built for time series. Salesforce should
  hold current state, the events that changed it and the decisions taken, not every
  reading.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;How do warranty and entitlement differ?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  A warranty term describes what is covered on a unit, such as parts, labour and
  expenses. An entitlement or service contract describes what the customer has bought,
  including support levels and dates. Most organisations need both.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Can we do this without Field Service?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  Yes. Asset, warranty and entitlement modelling works in Service Cloud alone. Field
  Service becomes necessary once you are dispatching technicians, managing parts and
  scheduling maintenance visits.
&lt;/p&gt;
</content:encoded>
        </item>
        <item>
            <title><![CDATA[What a Salesforce PDO Does, and When to Hire One]]></title>
            <description><![CDATA[A Salesforce PDO builds, packages and security-reviews AppExchange products. What one does, and five signals that say it is time to hire.]]></description>
            <link>https://tekunda.com/blog/What-a-Salesforce-PDO-Does%2C-and-When-to-Hire-One</link>
            <guid isPermaLink="false">https://tekunda.com/blog/What-a-Salesforce-PDO-Does%2C-and-When-to-Hire-One</guid>
            <dc:creator><![CDATA[Tekunda Team]]></dc:creator>
            <pubDate>Thu, 08 Oct 2026 06:03:15 GMT</pubDate>
            <content:encoded>&lt;p&gt;
  &lt;strong&gt;Short answer:&lt;/strong&gt; a Salesforce PDO (Product Development Outsourcer) is a
  Salesforce consulting partner that builds commercial apps on the platform for software
  vendors, packages them, and takes them through security review onto AgentExchange, the
  marketplace that absorbed AppExchange in April 2026. You hire one when you have a
  product to ship on Salesforce, not when you are short one developer.
&lt;/p&gt;

&lt;h2&gt;What is a Salesforce PDO?&lt;/h2&gt;
&lt;p&gt;
  A Product Development Outsourcer is a Salesforce partner whose speciality is building
  products &lt;em&gt;on&lt;/em&gt; the platform rather than configuring the platform
  &lt;em&gt;for&lt;/em&gt; one company. Salesforce runs PDO as a named partner track, with Master
  Navigator and Specialist Navigator tiers listed in its own PDO directory, so
  &quot;Salesforce PDO&quot; is a defined role, not a marketing label. ISVs (independent software
  vendors) hand a PDO the parts of product delivery that are specific to Salesforce:
  package architecture, namespace and dependency strategy, licensing, the marketplace
  listing, and the security review that gates all of it.
&lt;/p&gt;
&lt;p&gt;The one-line difference:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;A system integrator&lt;/strong&gt; makes Salesforce fit your business.&lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;A PDO&lt;/strong&gt; turns your idea into something other businesses install into
    theirs.
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;What does a Salesforce PDO actually do?&lt;/h2&gt;
&lt;ul&gt;
  &lt;li&gt;
    &lt;strong&gt;Product architecture.&lt;/strong&gt; What belongs inside the managed package, what
    stays in your own service, and what has to be configurable per subscriber.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Packaging.&lt;/strong&gt; 1GP or 2GP, namespace registration, cross-package
    dependencies, and a version strategy you can live with for years. If you have not
    settled that yet, our guide to
    &lt;a href=&quot;/blog/Salesforce-Packaging-Models-for-ISVs%3A-1GP-vs-2GP-vs-Unmanaged&quot;
      &gt;Salesforce packaging models for ISVs&lt;/a
    &gt;
    lays out the trade-offs before a PDO locks them in.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Security review.&lt;/strong&gt; Preparation, submission, and remediation when the
    reviewers come back with findings.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Licensing and provisioning.&lt;/strong&gt; The License Management App, trial
    flows, and the listing itself.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Release engineering after launch.&lt;/strong&gt; Patches, upgrades and pushed
    versions that do not break orgs you cannot see.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Support design.&lt;/strong&gt; An ISV supports installs it does not control, which
    is a different discipline from supporting one org.
  &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
  Only the first item resembles ordinary Salesforce delivery work. The rest is product
  operations, and it is where first-time ISVs lose quarters. That full scope, from first
  design to a listed package, is what our
  &lt;a href=&quot;/build-appexchange-app&quot;&gt;AppExchange app build service&lt;/a&gt; covers.
&lt;/p&gt;

&lt;h2&gt;What changed for Salesforce PDOs and ISVs in 2026?&lt;/h2&gt;
&lt;p&gt;Three platform shifts change what a PDO has to know this year:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;
    &lt;strong&gt;AppExchange became AgentExchange.&lt;/strong&gt; On 17 April 2026 Salesforce
    &lt;a
      href=&quot;https://www.salesforce.com/it/news/press-releases/2026/04/17/nasce-agentexchange-il-marketplace-unificato-per-limpresa-agentica/&quot;
      &gt;announced AgentExchange&lt;/a
    &gt;, one marketplace that merges AppExchange, the Slack Marketplace and the Agentforce
    ecosystem, with more than 10,000 Salesforce and partner apps. Every listed solution
    still goes through security review.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Connected apps gave way to external client apps.&lt;/strong&gt; Salesforce&apos;s
    developer docs state that
    &lt;a
      href=&quot;https://developer.salesforce.com/docs/atlas.en-us.mobile_sdk.meta/mobile_sdk/connected_apps_creating.htm&quot;
      &gt;connected app creation is restricted as of Spring &apos;26&lt;/a
    &gt;
    and recommend external client apps instead. Trailhead calls the ability to
    &lt;a
      href=&quot;https://trailhead.salesforce.com/content/learn/modules/external-client-app-basics/package-and-distribute-external-client-apps&quot;
      &gt;distribute external client apps with second-generation managed packages&lt;/a
    &gt;
    their greatest advantage, with OAuth consumer credentials kept out of the package.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;The OAuth hardening deadline has passed.&lt;/strong&gt; Partners had until 11 May
    2026 to enable four controls on their apps and self-attest to them. More on that
    below.
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;When should you hire a Salesforce PDO?&lt;/h2&gt;
&lt;p&gt;Five signals, in rough order of urgency:&lt;/p&gt;
&lt;ol&gt;
  &lt;li&gt;
    &lt;strong&gt;You have a product thesis and a first design partner&lt;/strong&gt;, but no
    namespace and no packaging decision on paper. This is the cheapest moment to bring a
    PDO in, because nothing is locked yet.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Your app works in a sandbox and breaks as a package.&lt;/strong&gt; Namespace
    prefixes, dynamic SOQL and cross-package dependencies fail in ways unpackaged code
    never does.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;You are approaching security review for the first time.&lt;/strong&gt; The failure
    mode is rarely a single rejection. It is three rejections and two lost quarters. Our
    walkthrough of
    &lt;a href=&quot;/blog/How-ISVs-Pass-the-Salesforce-AppExchange-Security-Review&quot;
      &gt;how ISVs pass the AppExchange security review&lt;/a
    &gt;
    shows where those cycles usually get lost.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;You are on 1GP and want to move to 2GP.&lt;/strong&gt; Salesforce made
    &lt;a
      href=&quot;https://developer.salesforce.com/blogs/2025/06/move-to-managed-2gp-with-package-migrations&quot;
      &gt;Package Migrations&lt;/a
    &gt;
    generally available in Summer &apos;25, which converts a 1GP package to 2GP and migrates
    installed subscribers. The question is no longer whether, but when and in what
    order, and
    &lt;a
      href=&quot;/blog/planning-a-salesforce-managed-package-decide-the-permanent-2gp-choices-first&quot;
      &gt;which 2GP choices are permanent&lt;/a
    &gt;
    once you make them. External client apps only add to the case, because they are
    built to ship in 2GP.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;You have subscribers and every release now carries risk.&lt;/strong&gt; Once other
    companies depend on your version numbers, release engineering stops being optional.
  &lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;Why is hiring a PDO a product decision, not a staffing one?&lt;/h2&gt;
&lt;p&gt;
  Staff augmentation answers a capacity question: we need two more Apex developers for
  six months. A PDO engagement answers a product question: we need version 1.0 listed,
  reviewed and installable by Q2. The second framing is harder to buy and far better to
  own, because almost every expensive mistake in ISV delivery is a decision, not a
  shortage of hands.
&lt;/p&gt;
&lt;p&gt;
  A namespace is registered once and stays with the package. The 1GP or 2GP choice sets
  your release model for years. What you put inside the package determines what you can
  change later without asking every subscriber for permission. None of that is solved by
  adding capacity to a team that has never shipped a package.
&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;
    If your Salesforce work has a roadmap, subscribers and a version number, you are
    buying product engineering. Buy it that way.
  &lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;What does Salesforce security review actually gate?&lt;/h2&gt;
&lt;p&gt;
  Security review is a product gate, not a code-style check. It looks at how your
  package handles data, secrets, sharing and access, and it comes back around as the
  platform&apos;s requirements tighten.
&lt;/p&gt;
&lt;p&gt;
  The live example is OAuth on connected apps and external client apps. Salesforce&apos;s
  ISVforce guide required partners to enable OAuth PKCE, refresh token rotation, a
  30-day idle refresh token time-to-live and a refresh token IP allowlist, and to
  &lt;a
    href=&quot;https://developer.salesforce.com/docs/atlas.en-us.packagingGuide.meta/packagingGuide/secure_code_ac_eca.htm&quot;
    &gt;self-attest&lt;/a
  &gt;
  to them by 11 May 2026. Once attested, the controls lock and cannot be disabled, and
  the guide warns that non-compliance can lead to de-listing or suspension of the app&apos;s
  interoperation with Salesforce. If your app missed that date, it is now a remediation
  item, not a roadmap item, and it is the kind of obligation a PDO tracks for you.
&lt;/p&gt;
&lt;p&gt;
  For the review itself, our
  &lt;a href=&quot;/blog/Salesforce-Security-Review-Checklist%3A-What-to-Fix%2C-In-Order&quot;
    &gt;Salesforce security review checklist&lt;/a
  &gt;
  lists the common findings to fix in order before you submit, and our
  &lt;a href=&quot;/appexchange-security-review&quot;&gt;security review service&lt;/a&gt; takes the
  submission and remediation off your plate.
&lt;/p&gt;

&lt;h2&gt;How do you choose a Salesforce PDO?&lt;/h2&gt;
&lt;p&gt;Ask five questions and weigh the answers heavily:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;
    &lt;strong
      &gt;Which packages have you taken through security review, and in which
      industries?&lt;/strong
    &gt;
    Regulated sectors raise the bar.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Show me a 2GP package you maintain today.&lt;/strong&gt; Building one is not the
    same as versioning one across subscriber orgs.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong
      &gt;How are you handling external client apps and the 2026 OAuth controls?&lt;/strong
    &gt;
    A current PDO answers this without looking it up.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Who owns remediation if review comes back with findings?&lt;/strong&gt; The answer
    should be them.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;What happens after launch?&lt;/strong&gt; A partner who disappears at listing
    leaves you the hardest part.
  &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
  Tekunda answers those from delivery rather than from a brochure. We are a certified
  Salesforce SI, ISV and PDO, we have cleared AppExchange security review in healthcare,
  logistics and manufacturing, and we have shipped and maintained packages in
  production: the Syntilio managed packages we engineered for an eHealth ISV (2022 to
  2025) on the AppExchange, and the 2GP managed package for ASSA ABLOY that carries its
  connected-device workload. Being an ISV and a PDO also makes us a faster integrator,
  because product-grade components get reused instead of rebuilt.
  &lt;a href=&quot;/contact&quot;&gt;Talk to us&lt;/a&gt; about your app.
&lt;/p&gt;

&lt;h2&gt;FAQ&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;What does PDO stand for in Salesforce?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  Product Development Outsourcer: a Salesforce consulting partner specialised in
  building, packaging and listing commercial apps for software vendors.
&lt;/p&gt;
&lt;p&gt;
  &lt;strong
    &gt;What is the difference between a PDO and a Salesforce implementation
    partner?&lt;/strong
  &gt;
&lt;/p&gt;
&lt;p&gt;
  An implementation partner configures Salesforce for one company&apos;s own use. A PDO
  builds a packaged product that many companies install, which adds namespace,
  versioning, licensing and security review to the job.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Do I need a PDO to pass security review?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  No. Plenty of ISVs pass on their own. A PDO mainly buys you fewer review cycles,
  because the common findings become predictable once you have been through it several
  times.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Is a Salesforce PDO the same as Plauti PDO?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  No. Plauti Data Orchestration, also shortened to PDO, is a Salesforce product from
  Plauti. A Salesforce PDO is a type of consulting partner.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;How early should an ISV bring in a PDO?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  Before the namespace and packaging decisions are made. Those are the choices that are
  expensive to reverse, and they are usually made in week one.
&lt;/p&gt;
</content:encoded>
        </item>
        <item>
            <title><![CDATA[Agentforce Partner With Proven Deployments: How to Check the Proof]]></title>
            <description><![CDATA[How to tell an Agentforce partner with proven deployments from one with slides: what counts as proof, what to ask, ROI math and MCP readiness.]]></description>
            <link>https://tekunda.com/blog/Agentforce-Partner-With-Proven-Deployments%3A-How-to-Check-the-Proof</link>
            <guid isPermaLink="false">https://tekunda.com/blog/Agentforce-Partner-With-Proven-Deployments%3A-How-to-Check-the-Proof</guid>
            <dc:creator><![CDATA[Tekunda Team]]></dc:creator>
            <pubDate>Mon, 05 Oct 2026 12:00:00 GMT</pubDate>
            <content:encoded>&lt;p&gt;
  &lt;strong
    &gt;An Agentforce partner with proven deployments is one that can show agents running
    in production for real customers, with measured outcomes, a client you can verify
    and a support model after go-live.&lt;/strong
  &gt;
  Certifications and partner tiers show a firm has studied Agentforce. Production
  evidence shows it has shipped it. Ask for the second before you sign.
&lt;/p&gt;
&lt;h2&gt;What counts as a proven Agentforce deployment?&lt;/h2&gt;
&lt;p&gt;
  Salesforce drew the line itself in April 2026 when it launched its
  &lt;a
    href=&quot;https://www.salesforce.com/news/stories/salesforce-launches-forward-deployed-engineer-partner-network-announcement/&quot;
    &gt;Forward Deployed Engineering Partner Network&lt;/a
  &gt;: partners were chosen for a track record of delivering Agentforce, and the
  designation prioritises technical rigor and production outcomes over firm size or
  tenure. Use the same filter. A deployment is proven when it passes four tests:
&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;
    &lt;strong&gt;It is live.&lt;/strong&gt; Real users or customers rely on it every day. A pilot,
    a demo org or a hackathon build is not a deployment.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;It is measured.&lt;/strong&gt; There is a before and after number: cases
    deflected, handle time, resolution rate, hours saved.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;It is verifiable.&lt;/strong&gt; You can speak to the client, or the partner can
    walk you through it under NDA.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;It is maintained.&lt;/strong&gt; Someone owns the agent after go-live, tunes it
    and watches what it costs.
  &lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;How do you verify an Agentforce partner&apos;s proof?&lt;/h2&gt;
&lt;p&gt;
  Most partner rankings sort firms by size, certifications and reviews. That says little
  about whether the team in front of you has taken an agent from sandbox to production.
  Ask these five questions instead:
&lt;/p&gt;
&lt;ol&gt;
  &lt;li&gt;
    &lt;strong&gt;Is this case study a live deployment or a scenario?&lt;/strong&gt; Honest partners
    label the difference. We do: our real-estate story is marked as a scenario, not a
    named engagement.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Which actions does the agent take, and on which systems?&lt;/strong&gt; Good
    answers name objects, flows, APIs and guardrails, not adjectives.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;What happened in the first 90 days after go-live?&lt;/strong&gt; A partner who has
    run agents in production can tell you what broke and how they tuned it.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Who on this team built it?&lt;/strong&gt; Make sure the people behind the
    reference are the people staffed on your project.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;How do you test agents before release?&lt;/strong&gt; Look for regression tests on
    topics and actions, sandbox deployments and a real release pipeline, not manual
    clicking.
  &lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
  For the contract, staffing and governance side, use our
  &lt;a
    href=&quot;/blog/How-to-choose-a-Salesforce-implementation-partner%3A-a-buyer-side-checklist&quot;
    &gt;buyer-side checklist for choosing a Salesforce implementation partner&lt;/a
  &gt;. It applies whether you are looking for a Salesforce Implementierungspartner in
  Germany or a partner in the Netherlands.
&lt;/p&gt;
&lt;h2&gt;Can you help me calculate the ROI of implementing Agentforce?&lt;/h2&gt;
&lt;p&gt;
  Yes, and a proven partner should start there. Agentforce pricing is usage based: Flex
  Credits cost $500 per 100,000 credits and a standard action consumes 20 credits, about
  $0.10, according to
  &lt;a href=&quot;https://www.salesforceben.com/complete-guide-to-agentforce-pricing-options/&quot;
    &gt;Salesforce Ben&apos;s pricing guide&lt;/a
  &gt;. The ROI math is the volume of actions times the cost per action, set against the
  minutes of human work each action removes. Our
  &lt;a
    href=&quot;/blog/Agentforce-ROI-Calculator%3A-How-It-Works-and-What-It-Really-Costs-(2026)&quot;
    &gt;guide to the Agentforce ROI calculator&lt;/a
  &gt;
  walks through the inputs and the costs most calculators leave out, such as data
  cleanup and integration work.
&lt;/p&gt;
&lt;h2&gt;Does your Agentforce partner understand Headless 360 and MCP?&lt;/h2&gt;
&lt;p&gt;
  Agents rarely live inside one system. In August 2026 Salesforce
  &lt;a
    href=&quot;https://www.salesforce.com/news/stories/expanding-headless-360-enterprise-capabilities/&quot;
    &gt;expanded Headless 360&lt;/a
  &gt;, its model for letting authorised AI agents discover and use Salesforce
  capabilities, including a Headless 360 MCP Server in open beta that works with agents
  running in Agentforce, Claude, ChatGPT and other platforms. A partner with enterprise
  integration experience should explain when an agent calls Salesforce through MCP, when
  it calls your ERP or telephony platform, and how permissions stay enforced across
  both. If your agent must reach an ERP such as Odoo, a partner who integrates it too
  saves you a handoff, which is why we
  &lt;a href=&quot;/blog/Tekunda-Becomes-an-Odoo-Partner&quot;&gt;became an Odoo partner&lt;/a&gt;.
&lt;/p&gt;
&lt;h2&gt;When should a partner tell you not to use Agentforce?&lt;/h2&gt;
&lt;p&gt;
  Proof includes saying no. Agentforce fits bounded CRM work: case triage, record
  updates, knowledge answers. Novel decision support across many data sources often
  needs a custom agent. A partner with only one answer is a vendor, not an advisor. We
  break the decision down in
  &lt;a href=&quot;/blog/Agentforce-vs-Custom-AI-Agents%3A-When-to-Configure-and-When-to-Build&quot;
    &gt;Agentforce vs custom AI agents&lt;/a
  &gt;.
&lt;/p&gt;
&lt;h2&gt;What does Tekunda&apos;s production proof look like?&lt;/h2&gt;
&lt;p&gt;
  We are a certified Salesforce SI, ISV, PDO and Agentforce partner, and an Anthropic
  (Claude) partner. Here is what we can show:
&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;20+ organisations live in production on Salesforce.&lt;/li&gt;
  &lt;li&gt;
    For ASSA ABLOY (FocusCura and Phoniro), weekly cases fell from 3,000 to 350, a 93%
    reduction, across 11,000 connected devices in three markets with no added support
    staff.
  &lt;/li&gt;
  &lt;li&gt;Agentforce agent-to-agent (A2A) orchestration running in production.&lt;/li&gt;
  &lt;li&gt;
    AppExchange security review cleared in healthcare, logistics and manufacturing,
    which matters when your agent ships as a managed package and your security review
    checklist has to pass for real.
  &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
  See how we scope and run a first use case on our
  &lt;a href=&quot;/agentforce&quot;&gt;Agentforce implementation page&lt;/a&gt;, or start at
  &lt;a href=&quot;/&quot;&gt;Tekunda&lt;/a&gt; for the full portfolio.
&lt;/p&gt;
&lt;h2&gt;FAQ&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;What is an Agentforce partner with proven deployments?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  A Salesforce partner that can show Agentforce agents live in production for real
  customers, with measured outcomes and a client you can verify.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Is an Agentforce Specialist certification enough proof?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  No. A certification shows individual knowledge. Ask for live deployments, metrics and
  references from the team you will actually work with.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;How much does Agentforce cost per action?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  Under the Flex Credits model a standard action uses 20 credits, about $0.10, with
  credits sold at $500 per 100,000.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What is the Headless 360 MCP Server?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  A Salesforce MCP server, in open beta as of August 2026, that lets authorised agents
  in Agentforce, Claude, ChatGPT and other tools discover and invoke Salesforce
  capabilities.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;How long does an Agentforce deployment take?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  It depends on data readiness and integrations. Partners with reusable, packaged
  components can bring a bounded use case live in weeks rather than months.
&lt;/p&gt;
</content:encoded>
        </item>
        <item>
            <title><![CDATA[Why Most AI Agents Fail in Production & How We Built One That Doesn’t]]></title>
            <description><![CDATA[Most AI agents fail because they chase demos, not durability: the flashy GPT prototype that wows in a meeting but breaks on real users, data, and operations.]]></description>
            <link>https://tekunda.com/blog/why-most-ai-agents-fail-in-production-and-how-we-built-one-that-doesn-t</link>
            <guid isPermaLink="false">https://tekunda.com/blog/why-most-ai-agents-fail-in-production-and-how-we-built-one-that-doesn-t</guid>
            <dc:creator><![CDATA[Tekunda Team]]></dc:creator>
            <pubDate>Sun, 04 Oct 2026 07:44:58 GMT</pubDate>
            <content:encoded>&lt;p&gt;
  &lt;strong&gt;Short answer:&lt;/strong&gt; AI agents usually fail in production because of the
  system around the model, not the model itself. The usual causes are demo-sized scope,
  no real integration with the systems of record, generic context, silent failures
  nobody can trace, no feedback loop, and no one who owns the outcome or the cost. We
  hit most of these building our own outbound prospecting agent. Below is how to
  diagnose yours, and what we changed to make ours hold up.
&lt;/p&gt;
&lt;h2&gt;Why do AI agents fail in production?&lt;/h2&gt;
&lt;p&gt;
  The failure rate is not anecdotal. Gartner predicts that
  &lt;a
    href=&quot;https://www.gartner.com/en/newsroom/press-releases/2025-06-25-gartner-predicts-over-40-percent-of-agentic-ai-projects-will-be-canceled-by-end-of-2027&quot;
    &gt;over 40% of agentic AI projects will be canceled by the end of 2027&lt;/a
  &gt;, citing escalating costs, unclear business value and inadequate risk controls.
  S&amp;amp;P Global Market Intelligence found that
  &lt;a href=&quot;https://www.ciodive.com/news/AI-project-fail-data-SPGlobal/742590/&quot;
    &gt;42% of companies abandoned most of their AI initiatives in 2025&lt;/a
  &gt;, up from 17% the year before, and that organisations scrapped 46% of proofs of
  concept before production. MIT&apos;s NANDA research put the core problem in integration
  and learning, not model quality. We cover the wider picture in
  &lt;a href=&quot;/blog/AI-Agents-in-2026%3A-What-Actually-Works-and-Why-Most-Efforts-Stalled&quot;
    &gt;AI agents in 2026: what actually works and why most efforts stalled&lt;/a
  &gt;.
&lt;/p&gt;
&lt;p&gt;In our experience, those numbers break down into six failure modes:&lt;/p&gt;
&lt;ol&gt;
  &lt;li&gt;
    &lt;strong&gt;Demo scope, production reality.&lt;/strong&gt; The prototype ran on clean sample
    data and one happy path. Real records are messy, incomplete and full of edge cases.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;No real integration.&lt;/strong&gt; The agent cannot read from or write to the
    system of record, so its output dies in a chat window instead of changing anything.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Generic context.&lt;/strong&gt; A clever prompt stands in for knowledge of your
    business. Without retrieval over your own data and outcomes, answers are plausible
    but wrong.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Silent failures.&lt;/strong&gt; A wrong tool call, an empty retrieval or an
    invented field looks like a normal answer unless every step is traced.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;No feedback loop.&lt;/strong&gt; The agent never learns which outputs worked, so
    quality decays as your data and market drift.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;No owner for value or cost.&lt;/strong&gt; Nobody owns the business metric, token
    and API spend grows, and the project is cut at the next budget review.
  &lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;How can you tell which one is breaking your agent?&lt;/h2&gt;
&lt;p&gt;Match the symptom to the cause before you change the model or the prompt:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;
    &lt;strong&gt;It worked in the demo and fails on real records:&lt;/strong&gt; scope and data.
    Test against a sample of real historical cases, not hand-picked ones.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Outputs look right but nobody acts on them:&lt;/strong&gt; integration. Write
    results back to the CRM or ticketing system where people already work.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Answers are generic or confidently wrong:&lt;/strong&gt; context. Ground the agent
    in retrieval over your own records and outcomes.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;You cannot explain why it did something:&lt;/strong&gt; observability. Trace
    inputs, tool calls, retrievals and outputs for every run.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;It was good at launch and got worse:&lt;/strong&gt; feedback. Feed real outcomes
    back into ranking and prompts on a fixed cadence.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Costs climb and nobody can say what it earns:&lt;/strong&gt; ownership. Tie the
    agent to one measurable outcome, as we explain in
    &lt;a href=&quot;/blog/what-it-takes-to-drive-roi-from-ai-agents-from-a-team-that-does-it&quot;
      &gt;what it takes to drive ROI from AI agents&lt;/a
    &gt;.
  &lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;How did we build an outbound agent that holds up in production?&lt;/h2&gt;
&lt;p&gt;
  At Tekunda we wanted more than a meeting-room demo: an agent that automates outbound
  prospecting across LinkedIn and Salesforce, reasons over real context and books calls.
  Each step below exists because one of the failure modes above bit us first.
&lt;/p&gt;
&lt;h3&gt;1. Start from one bounded job&lt;/h3&gt;
&lt;p&gt;
  The agent owns a single workflow: from a LinkedIn lead list to a booked call. A search
  result or Sales Navigator list goes into Linked Helper, which automates connection
  invites within LinkedIn&apos;s weekly invitation limits, thank-you follow-ups and the sync
  into Salesforce. Once a new connection lands in the CRM, the agent takes over.
&lt;/p&gt;
&lt;h3&gt;2. Ground it in your own outcomes&lt;/h3&gt;
&lt;p&gt;
  The agent reasons over past lead data, including conversion history, success criteria
  and segment traits, as retrieval context. We tested both vector stores and
  PostgreSQL-based retrieval and chose on performance and cost, with chunking and
  retrieval tuned for lead qualification rather than generic search.
&lt;/p&gt;
&lt;h3&gt;3. Orchestrate with real tooling, not one giant prompt&lt;/h3&gt;
&lt;p&gt;
  Logic runs in Langflow, backed by custom Python flows and our internal MCP servers
  that handle API calls, enrichment and prompt execution. The flow is stateless and
  split into small micro-flows we reuse across campaigns. When one agent becomes
  several, handoffs become the next failure point, which is why we wrote up
  &lt;a
    href=&quot;/blog/Multi-Agent-Orchestration-on-Salesforce%3A-What-Makes-Agent-to-Agent-Handoffs-Work-in-Production&quot;
    &gt;what makes agent-to-agent handoffs work in production&lt;/a
  &gt;.
&lt;/p&gt;
&lt;h3&gt;4. Enrich, score and explain every decision&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;Each lead is enriched with a verified work email using Findymail.&lt;/li&gt;
  &lt;li&gt;
    The agent pulls signals such as job changes, funding and tech stack from public
    sources using OpenAI search or Perplexity.
  &lt;/li&gt;
  &lt;li&gt;
    It scores each lead out of 100 by similarity to past wins and writes an explanation
    for every score, so a human can audit the reasoning.
  &lt;/li&gt;
  &lt;li&gt;Only leads scoring above 50 get outreach.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;5. Write back to the system of record&lt;/h3&gt;
&lt;p&gt;
  For qualifying leads, the agent drafts a personalised email from company information,
  role signals and recent activity, with a call-to-action modelled on what worked in
  earlier wins. Every email is pushed back into Salesforce, so sales sees the same
  record the agent acted on.
&lt;/p&gt;
&lt;h3&gt;6. Observe everything and iterate weekly&lt;/h3&gt;
&lt;p&gt;
  We trace every agent output in Langfuse and internal dashboards, with structured error
  handling, prompt diffing and outcome analysis built into the flow. Conversion signals
  feed back into the ranking and prompt layers, and each week we refine prompts, retrain
  embeddings and tune scoring. That loop is the difference between an agent that decays
  and one that improves.
&lt;/p&gt;
&lt;p&gt;
  The result is no manual handoff from invite to booked call. LinkedIn caps the top of
  the funnel, but enrichment, scoring and email generation behind it scale with the
  pipeline.
&lt;/p&gt;
&lt;h2&gt;What should be in place before an agent goes live?&lt;/h2&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;One measurable outcome&lt;/strong&gt; and a named owner for it.&lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Read and write access&lt;/strong&gt; to the system of record, with the least
    privilege the job needs.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;An evaluation set of real historical cases&lt;/strong&gt;, run before every prompt
    or model change.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Tracing for every step&lt;/strong&gt;: inputs, tool calls, retrievals and outputs.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;A human checkpoint&lt;/strong&gt; wherever a mistake is expensive, such as a score
    threshold or an approval step.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;A feedback loop&lt;/strong&gt; on a fixed cadence, with real outcomes as input.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;A cost budget per outcome&lt;/strong&gt;, reviewed alongside the business metric.
  &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
  If your agent lives inside Salesforce, decide early whether to configure or build: our
  guide to
  &lt;a href=&quot;/blog/Agentforce-vs-Custom-AI-Agents%3A-When-to-Configure-and-When-to-Build&quot;
    &gt;Agentforce vs custom AI agents&lt;/a
  &gt;
  walks through that call. And if you want an agent like this built around your own
  workflow, see &lt;a href=&quot;/ai-agents&quot;&gt;how we build production AI agents&lt;/a&gt; or
  &lt;a href=&quot;/contact&quot;&gt;talk to our team&lt;/a&gt;.
&lt;/p&gt;
&lt;h2&gt;FAQ&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Why do my AI agents work in testing but fail in production?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  Testing usually runs on clean data and a single happy path. Production adds messy
  records, real integrations and edge cases, and without tracing those failures stay
  silent.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;How many AI agent projects fail?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  Gartner predicts over 40% of agentic AI projects will be canceled by the end of 2027,
  and S&amp;amp;P Global found 42% of companies abandoned most of their AI initiatives in
  2025.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;How do you monitor an AI agent in production?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  Trace every run, including tool calls and retrievals, and track prompt changes against
  outcomes. Tools like Langfuse plus internal dashboards make agent decisions
  debuggable.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Should we build an AI agent in-house or work with a partner?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  MIT&apos;s NANDA research reported that solutions bought from specialised vendors succeed
  far more often than internal builds. Build in-house when the workflow is core and you
  can staff observability and iteration.
&lt;/p&gt;
</content:encoded>
        </item>
        <item>
            <title><![CDATA[Enterprise MCP Integration: Connecting AI Agents to Salesforce Safely]]></title>
            <description><![CDATA[What enterprise MCP integration is, how Salesforce Headless 360 MCP works, the security checklist to follow and how to size the ROI.]]></description>
            <link>https://tekunda.com/blog/Enterprise-MCP-Integration%3A-Connecting-AI-Agents-to-Salesforce-Safely</link>
            <guid isPermaLink="false">https://tekunda.com/blog/Enterprise-MCP-Integration%3A-Connecting-AI-Agents-to-Salesforce-Safely</guid>
            <dc:creator><![CDATA[Tekunda Team]]></dc:creator>
            <pubDate>Sat, 03 Oct 2026 12:00:00 GMT</pubDate>
            <content:encoded>&lt;p&gt;
  &lt;strong&gt;Enterprise MCP integration&lt;/strong&gt; means exposing your business systems to AI
  agents through the Model Context Protocol, an open standard, instead of building one
  custom connector per agent and per tool. Done well, every agent call runs under a real
  user&apos;s identity and permissions, so the security model you already trust carries over.
  Done badly, it is a new, unaudited back door into your CRM.
&lt;/p&gt;
&lt;h2&gt;What is enterprise MCP integration?&lt;/h2&gt;
&lt;p&gt;
  MCP is an open protocol that lets an AI client (Claude, ChatGPT, Agentforce, an IDE)
  discover and call tools published by an MCP server. Anthropic introduced it in
  November 2024, and in December 2025 it was donated to the
  &lt;a href=&quot;https://en.wikipedia.org/wiki/Model_Context_Protocol&quot;
    &gt;Agentic AI Foundation under the Linux Foundation&lt;/a
  &gt;, so no single vendor controls it.
&lt;/p&gt;
&lt;p&gt;
  The word &quot;enterprise&quot; adds three requirements that quick demos skip: per-user
  authentication, least-privilege authorization and an audit trail for every tool call.
&lt;/p&gt;
&lt;h2&gt;Why are enterprises standardizing on MCP now?&lt;/h2&gt;
&lt;p&gt;
  Because the major platforms shipped it. OpenAI adopted MCP in March 2025 and Google
  DeepMind followed in April 2025. On the Salesforce side, hosted MCP servers reached
  general availability on April 29, 2026 for Enterprise Edition and above,
  &lt;a href=&quot;https://www.usecarly.com/blog/salesforce-mcp/&quot;
    &gt;with no separate connector fee&lt;/a
  &gt;. On August 19, 2026 Salesforce
  &lt;a
    href=&quot;https://www.salesforce.com/news/stories/expanding-headless-360-enterprise-capabilities/&quot;
    &gt;expanded Headless 360&lt;/a
  &gt;
  with a Headless 360 MCP Server in open beta and a generally available Data 360 MCP
  Server.
&lt;/p&gt;
&lt;p&gt;
  The practical effect: integration work shifts from writing connectors to governing
  what agents may do. It is the same discipline as classic
  &lt;a href=&quot;/blog/Salesforce-Integration-Architecture%3A-Patterns-That-Actually-Scale&quot;
    &gt;Salesforce integration architecture&lt;/a
  &gt;, applied to a new kind of caller.
&lt;/p&gt;
&lt;h2&gt;What is the Salesforce Headless 360 MCP server?&lt;/h2&gt;
&lt;p&gt;
  The Headless 360 MCP Server gives an agent four tools instead of thousands of
  endpoints:
&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Discover&lt;/strong&gt; - semantic search over a library of skills.&lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Describe&lt;/strong&gt; - returns the API contract and ordered steps for one
    skill.
  &lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Dispatch&lt;/strong&gt; - executes the chosen skill.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Dispatch Read Only&lt;/strong&gt; - runs read-only operations.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
  The beta launched in July 2026 with roughly 100 skills, covering user management, Apex
  triggers, platform events, Change Data Capture and Named Credentials. Salesforce says
  agents inherit the identity, permissions and business logic already configured in the
  org. We cover rollout and sizing in
  &lt;a
    href=&quot;/blog/Headless-MCP-on-Salesforce%3A-How-to-Adopt-Headless-360-and-Size-the-ROI&quot;
    &gt;our Headless 360 adoption guide&lt;/a
  &gt;.
&lt;/p&gt;
&lt;h2&gt;How is MCP different from a direct API integration?&lt;/h2&gt;
&lt;ul&gt;
  &lt;li&gt;
    &lt;strong&gt;Caller:&lt;/strong&gt; an API integration is a fixed program; an MCP caller is an
    agent choosing tools at runtime.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Contract:&lt;/strong&gt; APIs are coded against ahead of time; MCP tools are
    discovered and described on the fly.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Identity:&lt;/strong&gt; API integrations often run as one integration user; a
    well-built MCP setup runs per user with OAuth.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Risk:&lt;/strong&gt; an API does exactly what it was coded to do; an agent can
    chain tools in ways nobody tested.
  &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
  MCP does not replace your middleware. Order sync between Salesforce and an ERP still
  belongs in deterministic flows, as in our
  &lt;a href=&quot;/blog/Salesforce-and-SAP-Integration-Patterns-for-Manufacturers&quot;
    &gt;Salesforce and SAP integration patterns&lt;/a
  &gt;. MCP is the layer for agent-driven, human-supervised actions.
&lt;/p&gt;
&lt;h2&gt;What belongs on an enterprise MCP security checklist?&lt;/h2&gt;
&lt;ol&gt;
  &lt;li&gt;
    &lt;strong&gt;Per-user OAuth, never a shared token.&lt;/strong&gt; Salesforce hosted servers use
    OAuth 2.0 with PKCE through an External Client App, so CRUD, field-level security
    and sharing rules apply to every call.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Audience-bound tokens.&lt;/strong&gt; The
    &lt;a
      href=&quot;https://modelcontextprotocol.io/specification/2026-07-28/basic/authorization&quot;
      &gt;MCP authorization specification&lt;/a
    &gt;
    requires servers to accept only tokens issued for them and forbids passing other
    tokens through.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Read first.&lt;/strong&gt; Start with a read-only server or tool, then grant write
    access per use case.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Human approval on writes.&lt;/strong&gt; Require approval before any tool call
    that changes data.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Vet every third-party server.&lt;/strong&gt; Prefer vendor-published servers and
    review community ones like code you are about to deploy.
  &lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Log every tool call&lt;/strong&gt; with user, input and outcome.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
  For Salesforce teams the upshot is simple: your Salesforce security checklist
  (profiles, permission set groups, sharing) is now your agent security checklist too.
  Over-permissioned users become over-permissioned agents.
&lt;/p&gt;
&lt;h2&gt;Does RingCentral have an MCP server?&lt;/h2&gt;
&lt;p&gt;
  Yes, in labs form. RingCentral staff point users to servers for RingEX Phone, Chat and
  Admin documented at mcp.labs.ringcentral.com, according to the
  &lt;a
    href=&quot;https://community.ringcentral.com/claude-chatgpt-mcp-and-ai-assistants-43/does-ringcentral-have-an-mcp-server-11063&quot;
    &gt;RingCentral community&lt;/a
  &gt;. (If you searched for ringcentral.vom, the domain is ringcentral.com.)
  Community-built RingCentral servers also exist, and their security quality varies,
  which is exactly why item 5 on the checklist exists.
&lt;/p&gt;
&lt;h2&gt;How do you calculate the ROI of Agentforce and MCP integration?&lt;/h2&gt;
&lt;p&gt;
  Salesforce&apos;s
  &lt;a href=&quot;https://www.salesforce.com/agentforce/ai-agents-roi-calculator/&quot;
    &gt;Agentforce calculator&lt;/a
  &gt;
  estimates Flex Credits and list price from your industry, company size, seats and
  action volumes, for the first year, and Salesforce labels the results illustrative
  only. To build a business case you can defend:
&lt;/p&gt;
&lt;ol&gt;
  &lt;li&gt;Pick one workflow and count how often it runs per month.&lt;/li&gt;
  &lt;li&gt;Measure today&apos;s handling time, including swivel-chair work across systems.&lt;/li&gt;
  &lt;li&gt;Estimate the share of runs an agent can complete with human approval.&lt;/li&gt;
  &lt;li&gt;Subtract consumption costs and the integration and governance build.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
  Cross-system workflows usually carry the most value, because that is where people copy
  data between tabs. See
  &lt;a
    href=&quot;/blog/Headless-Salesforce-and-MCP%3A-Running-CRM-Actions-From-One-Agentic-Hub&quot;
    &gt;running CRM actions from one agentic hub&lt;/a
  &gt;
  for a worked example.
&lt;/p&gt;
&lt;h2&gt;How do you choose a Salesforce implementation partner for MCP work?&lt;/h2&gt;
&lt;ul&gt;
  &lt;li&gt;They start with your permission model, not the demo.&lt;/li&gt;
  &lt;li&gt;They can explain which flows stay in middleware and which move to MCP.&lt;/li&gt;
  &lt;li&gt;
    They scope a read-only pilot with a measurable outcome before granting write access.
  &lt;/li&gt;
  &lt;li&gt;They hand over logging, runbooks and ownership, not just a working agent.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
  That is how we run &lt;a href=&quot;/headless-mcp&quot;&gt;Headless MCP projects at Tekunda&lt;/a&gt;: one
  governed workflow first, then scale. You can learn more about our team on
  &lt;a href=&quot;/&quot;&gt;tekunda.com&lt;/a&gt;.
&lt;/p&gt;
&lt;h2&gt;FAQ&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Does the Salesforce hosted MCP server cost extra?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  There is no separate connector fee, but it requires Enterprise Edition or above.
  Agentforce usage is metered separately, which is what the Agentforce calculator
  estimates.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Is the Headless 360 MCP server generally available?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  As of August 2026 it is in open beta. The Data 360 MCP Server is generally available.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Can an MCP agent bypass Salesforce permissions?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  Not on Salesforce&apos;s hosted servers. Each user signs in with OAuth, and object
  permissions, field-level security and sharing rules apply to every call.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Should MCP replace our integration middleware?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  No. Keep high-volume, deterministic syncs in middleware and use MCP for agent-driven
  actions that benefit from human oversight.
&lt;/p&gt;
</content:encoded>
        </item>
        <item>
            <title><![CDATA[Why and How to Start a Career in the Salesforce; Skills and Resources]]></title>
            <description><![CDATA[Looking to skyrocket your career in the tech industry? With a growing demand for Salesforce professionals, look no further than the Salesforce ecosystem!]]></description>
            <link>https://tekunda.com/blog/Why-and-How-to-Start-a-Career-in-the-Salesforce%3B-Skills-and-Resources</link>
            <guid isPermaLink="false">https://tekunda.com/blog/Why-and-How-to-Start-a-Career-in-the-Salesforce%3B-Skills-and-Resources</guid>
            <dc:creator><![CDATA[Tekunda Team]]></dc:creator>
            <pubDate>Wed, 23 Sep 2026 20:18:20 GMT</pubDate>
            <content:encoded>&lt;p&gt;
  Looking to skyrocket your career in the tech industry? Look no further than the
  Salesforce ecosystem! With a growing demand for Salesforce professionals, there has
  never been a better time to jumpstart your career in this dynamic and fast-paced
  field.
&lt;/p&gt;
&lt;p&gt;
  But where do you start? Fear not, as we&apos;ve got you covered with our comprehensive
  guide on why and how to start a career in the Salesforce ecosystem. From must-have
  skills to top certifications and resources, this blog post has everything you need to
  know to kickstart your career in Salesforce.
&lt;/p&gt;
&lt;p&gt;
  Whether you&apos;re a recent graduate or looking to switch careers, this post will equip
  you with the knowledge and tools to take your career to new heights. Don&apos;t miss out on
  the opportunity to join one of the most exciting and lucrative industries in tech -
  read on to learn more!
&lt;/p&gt;
&lt;h2 id=&quot;section_1&quot;&gt;
  &lt;strong&gt;Why should you consider a career in the Salesforce ecosystem?&lt;/strong&gt;
&lt;/h2&gt;
&lt;ol&gt;
  &lt;li&gt;
    Work with a world-dominating technology: Salesforce is the world&amp;rsquo;s leading CRM
    platform posting an average year-on-year growth of 25% for the past four years and
    has ambitious plans to double its growth over the next few years.
  &lt;/li&gt;
  &lt;li&gt;
    Enjoy numerous job prospects: Salesforce is used by over 150,000 firms worldwide,
    ranging from small enterprises to Fortune 500 corporations, like Tekunda, providing
    enough chances for future Salesforce developers like yourself.
  &lt;/li&gt;
  &lt;li&gt;
    Participate in an exciting, innovative environment that is always changing, and have
    the chance to work with cutting-edge technology in a dynamic and fast-paced
    industry.
  &lt;/li&gt;
  &lt;li&gt;
    You become a member of an inclusive community of developers, administrators, and
    users who are always happy to assist and support one another, providing you with
    access to a plethora of information, resources, and training opportunities to help
    you grow and improve your talents.
  &lt;/li&gt;
  &lt;li&gt;
    Multiple routes into the ecosystem to become a Salesforce developer. Whether you are
    a recent graduate or an experienced developer, there are many opportunities
    available to help you get started in this exciting and dynamic field.
  &lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 id=&quot;section_2&quot;&gt;&lt;strong&gt;Essential Skills for a Salesforce Professional&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;
  To thrive in the Salesforce ecosystem, it&apos;s crucial to develop a mix of technical and
  non-technical skills. Some of the most sought-after skills include:
&lt;/p&gt;
&lt;ol&gt;
  &lt;li&gt;
    &lt;strong&gt;Salesforce Administration:&lt;/strong&gt;&amp;nbsp;Mastery of core CRM
    functionalities, such as user management, security settings, and data management.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Salesforce Development:&lt;/strong&gt;&amp;nbsp;Proficiency in Apex, Visualforce, and
    &lt;a
      href=&quot;/blog/How-Salesforce-CLI-Turns-Admin-Work-Into-Repeatable-Code&quot;
      target=&quot;_blank&quot;
      rel=&quot;noopener&quot;
      &gt;Lightning Web Components&lt;/a
    &gt;
    to create custom solutions and integrations.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Salesforce Configuration:&lt;/strong&gt;&amp;nbsp;Understanding of declarative tools,
    such as Process Builder, Flow, and Workflow Rules, to automate processes without
    coding.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Data Analysis and Reporting:&lt;/strong&gt;&amp;nbsp;Ability to extract insights from
    data using Salesforce reporting tools and dashboards.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Project Management:&lt;/strong&gt;&amp;nbsp;Expertise in managing Salesforce
    implementation projects, following best practices, and ensuring timely delivery.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Communication and Collaboration:&lt;/strong&gt;&amp;nbsp;Strong interpersonal skills
    to effectively collaborate with cross-functional teams and stakeholders.
  &lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 id=&quot;section_3&quot;&gt;Common job roles in Salesforce development&lt;/h2&gt;
&lt;ol&gt;
  &lt;li&gt;
    &lt;strong&gt;Salesforce Administrator&lt;/strong&gt;&amp;nbsp;is responsible for configuring and
    managing the Salesforce platform. They ensure that the system is running smoothly,
    and they are responsible for managing user accounts, data security, and
    customisations.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Salesforce Developer&lt;/strong&gt;&amp;nbsp;is responsible for creating custom
    solutions using programming languages like Apex and Visualforce. They&apos;re also
    responsible for integrating Salesforce with other systems and platforms, such as ERP
    systems and marketing automation systems.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Salesforce Consultant&amp;nbsp;&lt;/strong&gt;is responsible for helping businesses
    implement Salesforce solutions. They work with clients to understand their needs and
    requirements and provide guidance on how to best use the platform to meet their
    business goals.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Salesforce Architect&lt;/strong&gt;&amp;nbsp;is responsible for designing and
    overseeing the implementation of complex Salesforce solutions. They have a deep
    understanding of the Salesforce platform and its capabilities and work closely with
    clients and developers to ensure that solutions are designed and implemented
    correctly.
  &lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 id=&quot;section_4&quot;&gt;
  &lt;strong&gt;How to kick off my Salesforce Development career?&lt;/strong&gt;
&lt;/h2&gt;
&lt;h4 id=&quot;section_4_1&quot;&gt;&lt;strong&gt;Technical Skills&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;
  Salesforce Development requires a strong understanding of the Salesforce platform,
  including its architecture, data model, security features, and customisation options,
  as well as programming languages like Apex and Visualforce.
&lt;/p&gt;
&lt;ol&gt;
  &lt;li&gt;
    &lt;strong&gt;Apex&lt;/strong&gt;&amp;nbsp;is the programming language used to write custom code for
    the Salesforce platform. It&apos;s essential that you have an in depth understanding of
    Apex and the best practices for writing efficient and scalable code.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Visualforce&lt;/strong&gt;&amp;nbsp;is a markup language used on the Salesforce
    platform to construct bespoke user interfaces. You must be well-versed on
    Visualforce and its capabilities, as well as its best practices to build successful
    user interfaces.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;a
      href=&quot;/blog/How-Salesforce-CLI-Turns-Admin-Work-Into-Repeatable-Code&quot;
      target=&quot;_self&quot;
      &gt;&lt;strong&gt;Lightning Web Components (LWC)&lt;/strong&gt;&lt;/a
    &gt;
    is a programming model and framework for building responsive web interfaces on the
    Salesforce platform. You should develop a strong understanding of LWC and its
    capabilities, as well as best practices for building efficient and effective web
    interfaces.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Integration:&lt;/strong&gt;&amp;nbsp;you must be well-versed in integration methods
    and technologies such as
    &lt;a
      href=&quot;/blog/Salesforce-Integration-Architecture%3A-Patterns-That-Actually-Scale&quot;
      target=&quot;_blank&quot;
      rel=&quot;noopener&quot;
      &gt;REST, SOAP, and OAuth&lt;/a
    &gt;
    to be able to integrate Salesforce with other systems and platforms, such as ERP
    systems, marketing automation systems, and other third-party applications
  &lt;/li&gt;
&lt;/ol&gt;
&lt;h4 id=&quot;section_4_2&quot;&gt;&lt;strong&gt;Gain Experience&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;
  To build a successful career, you need practical experience working on projects. You
  can gain this experience by working on personal projects, contributing to open-source
  projects, or working on small projects for willing clients.
&lt;/p&gt;
&lt;h4 id=&quot;section_4_3&quot;&gt;&lt;strong&gt;Get Certified&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;
  Salesforce offers a range of certifications for developers, including the Salesforce
  Certified Platform Developer I and II certifications.
&lt;/p&gt;
&lt;h4 id=&quot;section_4_4&quot;&gt;&lt;strong&gt;Network&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;
  Building a strong network of contacts in the Salesforce community can help you to find
  job opportunities, connect with other developers, and stay up-to-date with the latest
  trends and best practices in the industry.
&lt;/p&gt;
&lt;h4 id=&quot;section_4_5&quot;&gt;&lt;strong&gt;Develop Your Soft Skills&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;
  It&apos;s crucial that you have excellent communication skills, as well as the ability to
  work with a variety of stakeholders, including business users, project managers, and
  other developers. So work on sharpening those communication skills to prepare yourself
  for a successful career.
&lt;/p&gt;
&lt;h2 id=&quot;section_5&quot;&gt;&lt;strong&gt;Free Resources to Learn Salesforce Development&lt;/strong&gt;&lt;/h2&gt;
&lt;ol&gt;
  &lt;li&gt;
    &lt;strong&gt;Trailhead&lt;/strong&gt;: Salesforce&apos;s free learning platform offers a variety of
    modules and trails on Salesforce development. You can learn at your own pace and
    earn badges and certifications as you complete modules.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Developer Community&lt;/strong&gt;: The Salesforce Developer Community is a
    fantastic environment to meet other developers, ask questions, and learn from
    industry leaders.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;YouTube&lt;/strong&gt;: Some popular channels include Salesforce Developers, Admin
    Hero, SFDC Monkey, and many more YouTube channels that offer tutorials and
    walkthroughs on Salesforce development.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Blogs&lt;/strong&gt;: Including the official Salesforce Developer Blog, which
    offers insights and best practices on Salesforce development.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Open-Source Projects&lt;/strong&gt;: Contributing to open-source projects can be a
    great way to gain practical experience and build your portfolio. The Salesforce
    Open-Source Community offers a variety of projects that you can contribute to.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Meetups&lt;/strong&gt;: Attending local meetups and user groups can be a great way
    to network with other developers and learn about the latest trends and best
    practices in the industry.
  &lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 id=&quot;section_6&quot;&gt;
  &lt;strong
    &gt;&lt;a href=&quot;/blog&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Salesforce Certifications&lt;/a&gt; to
    Elevate Your Career&lt;/strong
  &gt;
&lt;/h2&gt;
&lt;p&gt;
  Salesforce offers a range of certifications catering to various roles, such as
  administrators, developers, architects, consultants, and marketers. Some popular
  certifications include:
&lt;/p&gt;
&lt;ol&gt;
  &lt;li&gt;
    &lt;strong&gt;Salesforce Certified Administrator:&lt;/strong&gt;&amp;nbsp;Validates your knowledge
    of Salesforce configuration, management, and best practices.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Salesforce Certified Platform Developer I:&lt;/strong&gt;&amp;nbsp;Demonstrates your
    ability to build custom applications using Apex and Visualforce.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Salesforce Certified Platform App Builder:&lt;/strong&gt;&amp;nbsp;Showcases your
    proficiency in designing, building, and implementing custom applications using
    declarative tools.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Salesforce Certified Sales Cloud Consultant:&lt;/strong&gt;&amp;nbsp;Validates your
    expertise in designing and implementing Sales Cloud solutions that meet customer
    requirements.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Salesforce Certified Service Cloud Consultant:&lt;/strong&gt;&amp;nbsp;Demonstrates
    your ability to design and deploy Service Cloud solutions to enhance customer
    support.
  &lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;FAQ&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Do you need a degree to start a Salesforce career?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  No. Many admins and developers move in from support, sales or operations. Trailhead
  badges, one certification and a few real projects carry more weight than a degree.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Which Salesforce certification should you start with?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  Most people start with Salesforce Certified Administrator, then add Platform App
  Builder or Platform Developer I. Choose the one that matches the role you want.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Should you learn admin skills or Apex first?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  Learn the admin side first. Once the data model, security and declarative automation
  make sense, Apex and Lightning Web Components are much easier to pick up.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;How do you get experience without a Salesforce job?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  Build in a free Developer Edition org, contribute to open-source Salesforce projects,
  and take on small projects for community groups. A portfolio you can demo beats a line
  on a CV.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Is Salesforce still a good career choice?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  Yes. The ecosystem needs admins, developers, consultants and architects, so there are
  several ways in and clear routes to move between them later.
&lt;/p&gt;
&lt;h2 id=&quot;section_7&quot;&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;
  Embarking on a career in the Salesforce ecosystem&amp;nbsp;can be both interesting and
  lucrative. Because of the platform&apos;s popularity and the growing need for competent
  developers, there are several opportunities for anyone willing to put in the effort to
  get the necessary skills and expertise. Building a successful career&amp;nbsp;requires a
  combination of technical expertise, professional certifications, and real-world
  experience outlined in this article. You can get started by&amp;nbsp;taking advantage of
  the free resources available, such as Trailhead, the Developer Community, and
  open-source projects. If you want to join a creative team that is developing
  breakthrough Salesforce products, visit our
  &lt;a href=&quot;/careers&quot; rel=&quot;noopener&quot;
    &gt;&lt;strong&gt;&lt;u&gt;careers page&lt;/u&gt;&lt;/strong&gt;&lt;/a
  &gt;
  and apply for one of our open roles.
&lt;/p&gt;
</content:encoded>
        </item>
        <item>
            <title><![CDATA[Case Study: Transforming Customer Support with Salesforce 🚀]]></title>
            <description><![CDATA[We helped the retailer leverage Salesforce Service Cloud to transform their customer support operations. Here’s how we made it happen.]]></description>
            <link>https://tekunda.com/blog/Case-Study%3A-Transforming-Customer-Support-with-Salesforce-%F0%9F%9A%80</link>
            <guid isPermaLink="false">https://tekunda.com/blog/Case-Study%3A-Transforming-Customer-Support-with-Salesforce-%F0%9F%9A%80</guid>
            <dc:creator><![CDATA[Tekunda Team]]></dc:creator>
            <pubDate>Wed, 23 Sep 2026 20:18:20 GMT</pubDate>
            <content:encoded>&lt;h2&gt;Challenge&lt;/h2&gt;
&lt;p&gt;
  Our client, a top player in the retail industry, was grappling with the complexities
  of managing customer support across multiple channels. They needed a robust solution
  to streamline communications, improve case handling, and integrate various systems for
  a seamless customer experience.
&lt;/p&gt;
&lt;h2&gt;Solution&lt;/h2&gt;
&lt;p&gt;
  Partnering with Tekunda, we helped the retailer leverage Salesforce Service Cloud to
  transform their customer support operations. Here&amp;rsquo;s how we made it happen:
&lt;/p&gt;
&lt;h3&gt;1. Enhanced Communication Channels:&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;
    Implemented phone, email, chatbot, WhatsApp, FB Messenger, and web forms for broader
    reach and convenience.
  &lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;2. Improved Internal Collaboration:&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;Chatter: Enabled Chatter for real-time collaboration within the support team.&lt;/li&gt;
  &lt;li&gt;
    Inter-Org Communication: Established seamless data exchange with their international
    branches using Salesforce-to-Salesforce integration.
  &lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;3. Streamlined Case Handling:&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;
    Developed a smart feature to guide agents through a standardised support flow with
    dynamic questions and answers.
  &lt;/li&gt;
  &lt;li&gt;
    RingCentral Integration: Integrated RingCentral for efficient call handling directly
    within Salesforce.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;a
      href=&quot;/blog/Salesforce-Metadata-Governance-for-Growing-Orgs-and-Teams&quot;
      target=&quot;_blank&quot;
      rel=&quot;noopener&quot;
      &gt;Knowledge Base&lt;/a
    &gt;: Provided knowledge articles based on case reasons to empower agents with quick,
    accurate information.
  &lt;/li&gt;
  &lt;li&gt;
    Automation: Automated customer email notifications, case owner changes, and
    post-case surveys to enhance efficiency and
    &lt;a
      href=&quot;https://tekunda.com/blog/Going-the-Extra-Mile%3A-Creating-Exceptional-Customer-Experiences&quot;
      target=&quot;_blank&quot;
      rel=&quot;noopener&quot;
      &gt;customer satisfaction.&lt;/a
    &gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;a
      href=&quot;/blog/How-Salesforce-Service-Cloud-is-Revolutionising-Customer-Support&quot;
      target=&quot;_blank&quot;
      rel=&quot;noopener&quot;
      &gt;Omni-Channel Routing&lt;/a
    &gt;: Deployed Omni-Channel to intelligently route cases to the most suitable agents.
  &lt;/li&gt;
  &lt;li&gt;
    SLA Dashboard: Implemented a dashboard for real-time monitoring of service level
    agreements, ensuring timely case resolutions.
  &lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;4. Robust Collaboration Features:&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;Displayed case history, order history, and track &amp;amp; trace functionalities.&lt;/li&gt;
  &lt;li&gt;
    Displayed all relevant information to streamline case handling and enhance agent
    productivity.
  &lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Results:&lt;/h2&gt;
&lt;ul&gt;
  &lt;li&gt;Increased Efficiency: Achieved a 30% reduction in case resolution time.&lt;/li&gt;
  &lt;li&gt;
    Higher
    &lt;a
      href=&quot;https://tekunda.com/blog/Going-the-Extra-Mile%3A-Creating-Exceptional-Customer-Experiences&quot;
      target=&quot;_blank&quot;
      rel=&quot;noopener&quot;
      &gt;Customer Satisfaction&lt;/a
    &gt;:
    &lt;a
      href=&quot;https://tekunda.com/blog/Going-the-Extra-Mile%3A-Creating-Exceptional-Customer-Experiences&quot;
      target=&quot;_blank&quot;
      rel=&quot;noopener&quot;
      &gt;Customer satisfaction&lt;/a
    &gt;
    scores improved by a staggering 35%.
  &lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;FAQ&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Can Service Cloud handle WhatsApp and Messenger?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  Yes. Phone, email, chat, web forms and messaging channels such as WhatsApp and
  Facebook Messenger all land in the same console, so agents work one queue instead of
  five inboxes.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What does Omni-Channel routing do?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  It assigns each case to the agent best placed to solve it, using skills, availability
  and current workload, instead of leaving work in a shared queue for whoever grabs it
  first.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;How can two Salesforce orgs share case data?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  Salesforce-to-Salesforce lets separate orgs publish and subscribe to records, so
  international branches exchange cases and accounts without building a custom
  integration.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;How do you monitor SLAs in Salesforce?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  Entitlements and milestones put a clock on each case, and an SLA dashboard shows which
  cases are close to breaching so supervisors can step in before they do.
&lt;/p&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;
  By leveraging Salesforce Service Cloud, Tekunda transformed the retailer&amp;rsquo;s
  customer support operations, delivering a superior customer experience and driving
  operational excellence.
&lt;/p&gt;
&lt;p&gt;
  Ready to elevate your customer support?&lt;a
    href=&quot;#contact&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
  &gt;
    Let Tekunda guide you&lt;/a
  &gt;
  through the transformation with Salesforce Service Cloud!
&lt;/p&gt;
&lt;p&gt;
  &lt;strong class=&quot;ql-hashtag&quot; data-test-ql-hashtag=&quot;true&quot;&gt;#Salesforce&lt;/strong&gt;
  &lt;strong class=&quot;ql-hashtag&quot; data-test-ql-hashtag=&quot;true&quot;&gt;#CustomerSupport&lt;/strong&gt;
  &lt;strong class=&quot;ql-hashtag&quot; data-test-ql-hashtag=&quot;true&quot;&gt;#CaseStudy&lt;/strong&gt;
  &lt;strong class=&quot;ql-hashtag&quot; data-test-ql-hashtag=&quot;true&quot;&gt;#Innovation&lt;/strong&gt;
  &lt;strong class=&quot;ql-hashtag&quot; data-test-ql-hashtag=&quot;true&quot;&gt;#Retail&lt;/strong&gt;
  &lt;strong class=&quot;ql-hashtag&quot; data-test-ql-hashtag=&quot;true&quot;&gt;#CustomerExperience&lt;/strong&gt;
  &lt;strong class=&quot;ql-hashtag&quot; data-test-ql-hashtag=&quot;true&quot;&gt;#Tekunda&lt;/strong&gt;
  &lt;strong class=&quot;ql-hashtag&quot; data-test-ql-hashtag=&quot;true&quot;&gt;#ServiceCloud&lt;/strong&gt;
  &lt;strong class=&quot;ql-hashtag&quot; data-test-ql-hashtag=&quot;true&quot;&gt;#DigitalTransformation&lt;/strong&gt;
&lt;/p&gt;
</content:encoded>
        </item>
        <item>
            <title><![CDATA[Case Study: Syntilio Platform on the AppExchange (Salesforce PDO)]]></title>
            <description><![CDATA[Tekunda helped Syntilio realise its vision for connected care; building a Service Cloud managed package, accelerating time to market, security, and scalability.]]></description>
            <link>https://tekunda.com/blog/Case-Study%3A-Syntilio-Platform-on-the-AppExchange-(Salesforce-PDO)</link>
            <guid isPermaLink="false">https://tekunda.com/blog/Case-Study%3A-Syntilio-Platform-on-the-AppExchange-(Salesforce-PDO)</guid>
            <dc:creator><![CDATA[Tekunda Team]]></dc:creator>
            <pubDate>Wed, 23 Sep 2026 20:18:20 GMT</pubDate>
            <content:encoded>&lt;h2 class=&quot;solution-title&quot;&gt;Introduction&lt;/h2&gt;
&lt;p&gt;
  Tekunda helped
  &lt;strong
    &gt;&lt;a href=&quot;https://www.syntilio.com&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;
      &gt;Syntilio&lt;/a
    &gt;&lt;/strong
  &gt;
  realise its vision of reducing the pressure on healthcare by facilitating personal and
  efficient unplanned care using insight-driven triage. We delivered Syntilio as a
  PDO-grade
  &lt;a
    href=&quot;/blog/Salesforce-Packaging-Models-for-ISVs%3A-1GP-vs-2GP-vs-Unmanaged&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
    &gt;managed package&lt;/a
  &gt;
  on top of Salesforce Service Cloud, giving every stakeholder a single, secure,
  scalable platform.
&lt;/p&gt;
&lt;p&gt;
  For every care request, clinicians gain a 360&amp;deg; view of each client - including
  medical history, social context, and telemetry - tightened to urgent decision-making.
  The same platform activates formal and informal care networks, so care teams can
  deploy the right resources, at the right time, across an entire region.
&lt;/p&gt;
&lt;h2 class=&quot;solution-title&quot;&gt;Why Chose Tekunda&lt;/h2&gt;
&lt;p&gt;
  Syntilio asked for an enterprise-grade platform that could orchestrate unplanned care,
  unify disparate partner systems, and respect strict health regulations. Tekunda
  responded with a managed-package architecture that blends modularity, multi-tenant
  upgrade paths, and uncompromising governance. Queueable Apex jobs with guarded retries
  and chained follow-on scheduling keep the data fabric fresh, even while handling
  millions of telemetry updates or care-plan revisions. Each capability is surfaced
  through LWC, Experience Cloud, or omni-channel flows, so the front-line teams feel the
  impact immediately.
&lt;/p&gt;
&lt;p&gt;
  Because Tekunda is a PDO, we owned the delivery lifecycle on the vendor&apos;s behalf:
  packaging strategy, security review preparation, licensing setup and AppExchange
  release operations. Clients trust us to keep their product roadmap in motion while
  staying compliant with local rules.
&lt;/p&gt;
&lt;section
  style=&quot;
    border: 2px solid #0ea5e9;
    border-radius: 12px;
    padding: 20px;
    margin: 28px 0;
    background: #f0fbff;
  &quot;
  aria-label=&quot;Partner with Tekunda&quot;
&gt;
  &lt;h3&gt;&lt;strong&gt;Let Tekunda Build Your Salesforce Product&lt;/strong&gt;&lt;/h3&gt;
  &lt;p&gt;
    Need a Salesforce-managed package with complex integrations, high scalability, IoT,
    LWCs, etc..? Tekunda is your Salesforce-native partner, contact us and map your
    managed package in a PDO-focused session.
  &lt;/p&gt;
  &lt;a
    style=&quot;
      display: inline-block;
      padding: 10px 18px;
      background: #0ea5e9;
      color: white;
      border-radius: 8px;
      text-decoration: none;
    &quot;
    href=&quot;#contact&quot;
    &gt;Talk to Tekunda&lt;/a
  &gt;
&lt;/section&gt;
&lt;h2&gt;Solution Breakdown&lt;/h2&gt;
&lt;h3 class=&quot;solution-title&quot;&gt;Insight-Driven Triage&lt;/h3&gt;
&lt;p&gt;
  Care teams start every engagement with a holistic, real-time dossier. Dynamic
  protocols, telemetry readings, social determinants, and medical notes flow into a
  single Lightning workspace. Omni-Channel routing flags the right specialist instantly,
  while RingCentral telephony and secure messaging initiate support in seconds.
&lt;/p&gt;
&lt;h3 class=&quot;solution-title&quot;&gt;Appropriate And Fast Follow-Up&lt;/h3&gt;
&lt;p&gt;
  The platform connects formal and informal care networks. Families, volunteers,
  community nurses, and specialists share one canvas - driving faster follow-up with
  full accountability. The system nudges human interventions only when necessary,
  reducing healthcare pressure without compromising outcomes.
&lt;/p&gt;
&lt;h3 class=&quot;solution-title&quot;&gt;A No-Code Triage Toolkit That Ships In Hours&lt;/h3&gt;
&lt;p&gt;
  Clinical leaders customise triage without waiting on deployments. Tekunda embedded a
  SurveyJS-powered React builder directly inside Salesforce via custom LWCs.
  Subject-matter experts drag and drop new assessments, flows, and reusable content,
  then publish instantly to the React triage app. Guardrails ensure no duplicate
  questions, no missing validations, and a consistent experience across teams. One
  regional partner launched a specialised fall-risk protocol in a single afternoon -
  something that previously took multiple sprints.
&lt;/p&gt;
&lt;h3 class=&quot;solution-title&quot;&gt;DataHub In Action&lt;/h3&gt;
&lt;p&gt;
  Interoperability is the backbone. When a new client is qualified in Syntilio, the
  DataHub automatically synchronises records with ECDs, tele-monitoring platforms, and
  scheduling apps - and vice versa. DataHub understands destinations dynamically: we
  compose headers on the fly, fan out to
  &lt;a
    href=&quot;/blog/Salesforce-Integration-Architecture%3A-Patterns-That-Actually-Scale&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
    &gt;multiple external APIs&lt;/a
  &gt;, and apply recursive post-processing so every downstream system receives exactly the
  payload it expects.
&lt;/p&gt;
&lt;p&gt;
  Each callout is audited end-to-end. Destinations, payloads, responses, and status
  codes are persisted in Salesforce for operational dashboards. When something goes
  wrong, care teams investigate with full traceability and Tekunda&amp;rsquo;s support
  engineers already have the context they need. This &amp;ldquo;always-on audit trail&amp;rdquo;
  is why partners trust Tekunda to keep their data lakes, IoT brokers, and systems in
  check.
&lt;/p&gt;
&lt;p&gt;
  Built for scale and IoT, powered by stateless Azure Functions, DataHub processes
  millions of events with low latency and zero infrastructure overhead. GitHub Actions
  orchestrate every &quot;hot swapped&quot; API deployment, so releases move from feature branch
  to production with automated tests, security scans, and compliance gates.
&lt;/p&gt;
&lt;h3 class=&quot;solution-title&quot;&gt;CareHub&lt;/h3&gt;
&lt;p&gt;
  The CareHub managed package anchors remote monitoring in Salesforce Service Cloud:
&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Flows orchestrate complex IoT device data and automate patient workflows.&lt;/li&gt;
  &lt;li&gt;
    Custom LWCs provide omni/smart search, safety badges, and contextual insights.
  &lt;/li&gt;
  &lt;li&gt;
    Apex services integrate on-demand with ECDs/EPDs, scheduling engines, and partner
    networks.
  &lt;/li&gt;
  &lt;li&gt;The React triage app streamlines protocol execution for front-line workers.&lt;/li&gt;
  &lt;li&gt;
    Omni-Channel routing pushes tasks, alerts, and escalations to the right responder in
    real time.
  &lt;/li&gt;
  &lt;li&gt;
    RingCentral telephony integration enables direct provider-client communication.
  &lt;/li&gt;
  &lt;li&gt;
    Experience Cloud portals empower patients, families, and partners with secure
    self-service.
  &lt;/li&gt;
  &lt;li&gt;
    Salesforce Scheduler coordinates appointments across clinics and home-care teams.
  &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
  Regional cooperation, asset tracking, and device monitoring (battery status,
  connectivity, fault detection) all live in one platform. Managed package
  modularisation - core, device, triage, portal - keeps upgrades predictable and
  extensible.
&lt;/p&gt;
&lt;h3 class=&quot;solution-title&quot;&gt;VideoHub&lt;/h3&gt;
&lt;p&gt;
  VideoHub delivers Telehealth purpose-built for acute and planned care. Developed with
  WebRTC, React Native, and LWC, it plugs into CareHub so clinicians can launch secure
  calls directly from the case dossier. Encrypted media streams, consent-aware logging,
  and intuitive UI elevate patient satisfaction while maintaining strict
  confidentiality.
&lt;/p&gt;
&lt;h3 class=&quot;solution-title&quot;&gt;Reliability &amp;amp; Governance You Can Trust&lt;/h3&gt;
&lt;p&gt;Tekunda&amp;rsquo;s architecture prioritises compliance and resilience:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;
    &lt;strong&gt;Standards-compliant interoperability:&lt;/strong&gt; FHIR/HL7 APIs with optional
    SMART on FHIR for clinical data exchange.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Event-driven sync:&lt;/strong&gt; Salesforce Platform Events and server-less
    handlers (Azure Functions, IoT Hub) avoid polling.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Resilience patterns:&lt;/strong&gt; Retries, circuit breakers, and DLQs ensure no
    data loss - ever.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Security:&lt;/strong&gt; Encryption, OAuth 2.0/JWT handshakes, granular sharing,
    and event monitoring.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Tenant-aware packaging:&lt;/strong&gt; Licensing, isolation, and safe upgrade
    paths baked into every module.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Metadata-driven configuration:&lt;/strong&gt; Routing rules, questionnaires, and
    Experience pages are editable without code.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Global readiness:&lt;/strong&gt; Extensive localisation (cases, clinical objects,
    portals) supports multi-country rollouts from day one.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Observability:&lt;/strong&gt; Unified dashboards surface logs, callouts, and
    telemetry so teams act before issues escalate.
  &lt;/li&gt;
&lt;/ul&gt;
&lt;h3 class=&quot;solution-title&quot;&gt;Tekunda&amp;rsquo;s Delivery Playbook&lt;/h3&gt;
&lt;p&gt;
  Our DevOps foundation mirrors what regulated industries expect. Every Salesforce
  change runs through Serpent pipelines: scratch-org spins, static code analysis,
  Apex/LWC tests, UI regression suites, and packaging checks happen automatically. Azure
  DataHub services use GitHub Actions for CI/CD with automated contract tests and
  security scanning. When Tekunda presses deploy, stakeholders already have the evidence
  they need to sign off.
&lt;/p&gt;
&lt;p&gt;
  We also operate a dedicated PDO success squad, architects, release engineers, and
  support specialists, who coach client teams on roadmap planning, differentiation, and
  AppExchange growth. The result is a predictable cadence of innovation that keeps
  Syntilio and its partners ahead of the curve.
&lt;/p&gt;
&lt;h3 class=&quot;solution-title&quot;&gt;Less Administration, More Impact&lt;/h3&gt;
&lt;p&gt;
  Every triage and follow-up step is automatically recorded. Case notes, telemetry,
  scheduling, and volunteer coordination sync in the background, so teams spend less
  time on manual updates and more time with patients. Managers gain real-time insights
  into caseloads, outcomes, and bottlenecks.
&lt;/p&gt;
&lt;h2 class=&quot;solution-title&quot;&gt;Conclusion: Elevate Your Salesforce Product&lt;/h2&gt;
&lt;p&gt;
  Syntilio&amp;rsquo;s success is a blueprint for any organisation building enterprise-grade
  Salesforce solutions. If you need a partner who understands managed packaging,
  compliance, interoperability, and go-to-market equally well, Tekunda is ready to help.
&lt;/p&gt;
&lt;h2&gt;FAQ&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;What does a Salesforce PDO do?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  A PDO builds the product for a software vendor and owns packaging, security review
  preparation, licensing and AppExchange operations. The vendor keeps ownership of the
  product itself.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Why build a managed package instead of org work?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  A managed package gives every customer the same versioned code with a controlled
  upgrade path. Custom work inside each org has to be rebuilt and re-tested tenant by
  tenant.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;How do you keep a healthcare package compliant?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  Design for it from the start: standards-based interoperability with FHIR and HL7,
  encryption, OAuth handshakes, granular sharing and event monitoring. Compliance bolted
  on late is what delays a release.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What slows down AppExchange security review?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  Findings that could have been caught earlier: insecure sharing, unescaped output, weak
  secret handling. Preparing the package during development rather than after it keeps
  the review off the critical path.
&lt;/p&gt;
&lt;section
  style=&quot;
    border: 2px solid #0ea5e9;
    border-radius: 12px;
    padding: 20px;
    margin: 28px 0;
    background: #f0fbff;
  &quot;
  aria-label=&quot;Schedule a Tech Planning Session&quot;
&gt;
  &lt;h3&gt;&lt;strong&gt;Get the Best out of your Salesforce&lt;/strong&gt;&lt;/h3&gt;
  &lt;p&gt;
    Tekunda architects and implements Service Cloud, Sales Cloud, Health Cloud,
    Scheduler, Experience Cloud, IoT, and integrations. Let&amp;rsquo;s map how
    Serpent-powered releases, GitHub Actions, and managed-package engineering can
    accelerate your roadmap.
  &lt;/p&gt;
  &lt;a
    style=&quot;
      display: inline-block;
      padding: 10px 18px;
      background: #0ea5e9;
      color: white;
      border-radius: 8px;
      text-decoration: none;
    &quot;
    href=&quot;#contact&quot;
    &gt;Book a Discovery Session&lt;/a
  &gt;
&lt;/section&gt;
</content:encoded>
        </item>
        <item>
            <title><![CDATA[How Salesforce Service Cloud is Revolutionising Customer Support]]></title>
            <description><![CDATA[The latest trends in CRM and how Salesforce Service Cloud is leading the charge in transforming customer support.]]></description>
            <link>https://tekunda.com/blog/How-Salesforce-Service-Cloud-is-Revolutionising-Customer-Support</link>
            <guid isPermaLink="false">https://tekunda.com/blog/How-Salesforce-Service-Cloud-is-Revolutionising-Customer-Support</guid>
            <dc:creator><![CDATA[Tekunda Team]]></dc:creator>
            <pubDate>Wed, 23 Sep 2026 20:18:20 GMT</pubDate>
            <content:encoded>&lt;p&gt;
  Customer Relationship Management (CRM) systems have come a long way over the past few
  decades. What started as basic tools to manage customer data has evolved into powerful
  platforms that not only store information but also help businesses engage with their
  customers more effectively. Salesforce Service Cloud is at the forefront of this
  evolution, revolutionising the way companies handle customer support.
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;The Changing Landscape of Customer Support&lt;/h2&gt;
&lt;p&gt;
  Customer expectations are higher than ever. In today&amp;rsquo;s fast-paced digital world,
  people expect quick, personalised, and efficient service. They don&amp;rsquo;t want to
  wait days for a response or be passed from one agent to another without getting their
  issue resolved. This shift in expectations has pushed companies to rethink how they
  approach customer support, and CRM systems like Salesforce Service Cloud are stepping
  up to meet these demands.
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;What Makes Salesforce Service Cloud Different?&lt;/h2&gt;
&lt;p&gt;
  Salesforce Service Cloud is more than just a tool to manage customer inquiries;
  it&amp;rsquo;s a comprehensive platform that integrates various aspects of customer
  service into one cohesive system. Here are some key features that set it apart:
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;
  1.
  &lt;strong
    &gt;&lt;a
      href=&quot;/blog/Case-Study%3A-Transforming-Customer-Support-with-Salesforce-%F0%9F%9A%80&quot;
      target=&quot;_blank&quot;
      rel=&quot;noopener&quot;
      &gt;Omni-Channel Support&lt;/a
    &gt;&lt;/strong
  &gt;
&lt;/p&gt;
&lt;p&gt;
  &amp;bull; &lt;strong&gt;What It Does:&lt;/strong&gt; Salesforce Service Cloud offers
  &lt;a
    href=&quot;/blog/Case-Study%3A-Transforming-Customer-Support-with-Salesforce-%F0%9F%9A%80&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
    &gt;omni-channel support&lt;/a
  &gt;, allowing businesses to manage customer interactions across multiple channels like
  phone, email, live chat, social media, and more - all from a single platform.
&lt;/p&gt;
&lt;p&gt;
  &amp;bull; &lt;strong&gt;Example:&lt;/strong&gt; Imagine a customer starts a conversation on social
  media, continues it via email, and then calls for further assistance. With Salesforce
  Service Cloud, the support agent handling the call can see the entire history of that
  customer&amp;rsquo;s interactions, ensuring a seamless experience.
&lt;/p&gt;
&lt;p&gt;
  2.
  &lt;strong
    &gt;&lt;a href=&quot;/blog&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;AI-Powered Assistance&lt;/a&gt;&lt;/strong
  &gt;
&lt;/p&gt;
&lt;p&gt;
  &amp;bull; &lt;strong&gt;What It Does:&lt;/strong&gt; Salesforce Service Cloud leverages artificial
  intelligence through its Einstein AI feature to provide smart suggestions, predict
  customer needs, and automate routine tasks.
&lt;/p&gt;
&lt;p&gt;
  &amp;bull; &lt;strong&gt;Example:&lt;/strong&gt; Suppose a customer contacts support about a billing
  issue. Einstein AI can automatically suggest relevant knowledge base articles or
  pre-written responses, speeding up resolution time. It can also predict what the
  customer might ask next, allowing agents to proactively address their concerns.
&lt;/p&gt;
&lt;p&gt;3. &lt;strong&gt;Customer Portal Capabilities&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  &amp;bull; &lt;strong&gt;What It Does:&lt;/strong&gt; Salesforce Service Cloud empowers customers to
  solve their issues independently through
  &lt;a
    href=&quot;/blog/Case-Study%3A-Transforming-Customer-Support-with-Salesforce-%F0%9F%9A%80&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
    &gt;customer portals&lt;/a
  &gt;
  and communities. Customers can access a knowledge base, FAQs, and community forums,
  reducing the load on support agents.
&lt;/p&gt;
&lt;p&gt;
  &amp;bull; &lt;strong&gt;Example:&lt;/strong&gt; A customer needing help with a product setup can
  access a detailed guide in the customer portal without waiting for an agent. If they
  have further questions, they can post in a community forum where other customers or
  support staff can provide answers.
&lt;/p&gt;
&lt;p&gt;4. &lt;strong&gt;Customisation and Integration&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  &amp;bull; &lt;strong&gt;What It Does:&lt;/strong&gt; Salesforce Service Cloud is highly customizable,
  allowing businesses to tailor it to their specific needs. It also integrates
  seamlessly with other systems, including marketing, sales, and third-party
  applications.
&lt;/p&gt;
&lt;p&gt;
  &amp;bull; &lt;strong&gt;Example:&lt;/strong&gt; A retail company can integrate Salesforce Service
  Cloud with its inventory management system, enabling support agents to check product
  availability, process returns, or issue refunds directly from the CRM.
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;Real-World Impact: Use Cases&lt;/h2&gt;
&lt;p&gt;
  Let&amp;rsquo;s look at a couple of scenarios where Salesforce Service Cloud has made a
  significant difference for businesses:
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Use Case 1: Enhancing Customer Experience for a Global Retailer&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  A global retail company was struggling with fragmented customer support across
  different regions. Each region used different tools and processes, leading to
  inconsistent service and frustrated customers.
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;
  &lt;strong&gt;Solution:&lt;/strong&gt; By implementing Salesforce Service Cloud, the company
  centralised its customer support operations. Now, all regions use the same platform,
  ensuring consistent service.
  &lt;a
    href=&quot;/blog/Case-Study%3A-Transforming-Customer-Support-with-Salesforce-%F0%9F%9A%80&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
    &gt;Omni-channel support&lt;/a
  &gt;
  allows customers to reach out through their preferred channels, while the AI-powered
  suggestions help agents resolve issues faster. The result? A 40% reduction in response
  times and a significant boost in customer satisfaction.
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Use Case 2: Streamlining Support for a Tech Company&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  A tech company offering software solutions was dealing with an overwhelming number of
  support tickets, many of which were repetitive inquiries. Their agents were bogged
  down by routine tasks, leaving them with little time to handle complex issues.
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;
  &lt;strong&gt;Solution:&lt;/strong&gt; Salesforce Service Cloud&amp;rsquo;s customer portal allowed
  customers to find answers to common questions on their own, reducing the number of
  incoming tickets. Meanwhile, Einstein AI automated responses to frequently asked
  questions, freeing up agents to focus on more challenging issues. This led to a 50%
  reduction in ticket volume and improved overall support efficiency.
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;The Future: What&amp;rsquo;s Next for Salesforce Service Cloud?&lt;/h2&gt;
&lt;p&gt;
  As technology continues to evolve, so too will Salesforce Service Cloud. Here are a
  few trends and developments that we can expect to see:
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;1. &lt;strong&gt;Deeper AI Integration&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  &amp;bull; AI will play an even bigger role in customer support, with predictive analytics
  becoming more sophisticated. This means anticipating customer needs before they even
  contact support, leading to a more proactive service approach.
&lt;/p&gt;
&lt;p&gt;2. &lt;strong&gt;Enhanced Mobile Support&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  &amp;bull; With more customers using mobile devices, Salesforce is likely to further
  enhance its mobile support capabilities, making it easier for customers to access help
  on the go.
&lt;/p&gt;
&lt;p&gt;3. &lt;strong&gt;Increased Focus on Personalisation&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  &amp;bull; Personalisation will be taken to the next level, with CRM systems like
  Salesforce Service Cloud offering even more tailored experiences based on customer
  data, preferences, and behavior.
&lt;/p&gt;
&lt;p&gt;4. &lt;strong&gt;Greater Emphasis on Data Security&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  &amp;bull; As data privacy concerns continue to grow, Salesforce will likely introduce
  more robust security features to protect customer information and ensure compliance
  with global regulations.
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;Conclusion: Why Salesforce Service Cloud is a Game-Changer&lt;/h2&gt;
&lt;p&gt;
  Salesforce Service Cloud is not just keeping up with the changing landscape of
  customer support; it&amp;rsquo;s leading the charge. By offering a platform that combines
  &lt;a
    href=&quot;/blog/Case-Study%3A-Transforming-Customer-Support-with-Salesforce-%F0%9F%9A%80&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
    &gt;omni-channel support&lt;/a
  &gt;, &lt;a href=&quot;/blog&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;AI-powered assistance&lt;/a&gt;, customer
  portals, and deep customisation, it empowers businesses to deliver exceptional
  customer service. Whether you&amp;rsquo;re a small business or a global enterprise,
  Salesforce Service Cloud can help you meet - and exceed - your customers&amp;rsquo;
  expectations.
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;
  If you&amp;rsquo;re ready to transform your customer support, now is the time to explore
  what Salesforce Service Cloud can do for you. At Tekunda, we specialize in helping
  businesses unlock the full potential of Salesforce solutions. Contact us today to
  learn how we can help you create a future-proof customer support system that keeps
  your customers happy and your business thriving.
&lt;/p&gt;
</content:encoded>
        </item>
        <item>
            <title><![CDATA[Inside Web Summit Lisbon 2025: What It's Really Like]]></title>
            <description><![CDATA[First-hand account of Web Summit Lisbon 2025: networking tactics, Night Summit tips, and how to prepare for Europe's top tech conference.]]></description>
            <link>https://tekunda.com/blog/Inside-Web-Summit-Lisbon-2025%3A-What-It&apos;s-Really-Like</link>
            <guid isPermaLink="false">https://tekunda.com/blog/Inside-Web-Summit-Lisbon-2025%3A-What-It&apos;s-Really-Like</guid>
            <dc:creator><![CDATA[Tekunda Team]]></dc:creator>
            <pubDate>Wed, 23 Sep 2026 20:18:20 GMT</pubDate>
            <content:encoded>&lt;p&gt;
  Web Summit Lisbon 2025 in Portugal was simply &amp;ldquo;huge.&amp;rdquo; Not in the
  overwhelming sense, but in how everything was built , the scale, the energy, the
  execution. I&amp;rsquo;ve seen it firsthand, and everyone around me was simply amazed.
&lt;/p&gt;
&lt;p&gt;
  Picture this: a spacious arena with more than 70,000 people, thousands of startups, a
  sea of investors, and enough coffee to keep you talking for six days straight. But the
  real value wasn&amp;rsquo;t the size. It was the crowd &amp;amp; the pace, creating an
  exceptional business speed dating experience with inspiring people who are actually in
  the mood to talk, listen, and connect.
&lt;/p&gt;
&lt;p&gt;
  For everyone who couldn&amp;rsquo;t be there this year. this is both a recap of my
  experience and a practical guide for anyone planning to visit one of the leading tech
  conferences in Europe.
&lt;/p&gt;
&lt;h3&gt;Networking at Web Summit Lisbon: Everyone Talks to Everyone.&lt;/h3&gt;
&lt;p&gt;
  What surprised me most is how easy it is to speak to people. You talk to someone in a
  queue or at a coffee stand, and suddenly they turn out to be exactly the type of
  company that needs your product or services.&lt;br /&gt;The market is competitive, but in a
  good way. People show up ready to engage. You don&amp;rsquo;t need icebreakers; the
  atmosphere does the work.
&lt;/p&gt;
&lt;h3&gt;The App, WhatsApp, and Random Encounters All Have a Purpose&lt;/h3&gt;
&lt;p&gt;
  The Web Summit Lisbon networking app helps with fast replies, scanning badges,
  planning talks, and finding people you&amp;rsquo;d never notice otherwise.The WhatsApp
  groups are nonstop invitations, event links, meetups, and intros.&lt;br /&gt;&lt;br /&gt;But the
  best connections came from random encounters: standing in a queue, sitting on the
  floor, waiting for a stage changeover, grabbing a drink. Those moments created better
  leads and more honest conversations than anything formal.
&lt;/p&gt;
&lt;h3&gt;Night Summit Matters More Than You Think&lt;/h3&gt;
&lt;p&gt;
  The
  &lt;a href=&quot;https://websummit.com/night-summit/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;
    &gt;Night Summit&lt;/a
  &gt;
  events in Lisbon&amp;rsquo;s tech ecosystem were all worth attending. It&amp;rsquo;s less
  formal, people open up faster, and you see the same faces again and again, which helps
  real relationships form.&lt;br /&gt;If you&amp;rsquo;re worn out, just go anyway; these evenings
  were the ones that had the loudest laughter and most meaningful interactions of the
  whole week.
&lt;/p&gt;
&lt;h3&gt;Mistakes Made (So You Don&amp;rsquo;t Repeat Them)&lt;/h3&gt;
&lt;p&gt;
  A few things I learned the hard way:&lt;br /&gt;&amp;bull; While we reached out to people before
  the event and followed up each evening, which helped a lot. But the better approach is
  to start weeks earlier: connect in advance, schedule meetups, and warm up key
  conversations long before you land in Lisbon.&lt;br /&gt;&amp;bull; Attended too many talks at
  the start. It&amp;rsquo;s better to stay on the floor and speak to people.&lt;br /&gt;&amp;bull; Not
  taking enough photos or videos due to always being in valuable conversations. Get your
  content early, before things get fully engaged, your marketing team will thank you for
  not coming back empty-handed.&lt;br /&gt;&amp;bull; If a conversation isn&amp;rsquo;t aligned with
  that you are looking for, it is okay to take their LinkedIn and move on. It&amp;rsquo;s
  normal; everyone gets it, and proudly, nobody is offended.
&lt;/p&gt;
&lt;h3&gt;Your Pitch Improves Every Day&lt;/h3&gt;
&lt;p&gt;
  Didn&amp;rsquo;t stick to one script. I adapted the pitch depending on who I was speaking
  to. By day three it sounded sharper.&lt;br /&gt;By day five, I could explain our value in a
  few seconds without thinking. When you say it so many times, it becomes second nature.
&lt;/p&gt;
&lt;h3&gt;Logistics and Small Things That Actually Matter&lt;/h3&gt;
&lt;p&gt;
  Usually you&amp;rsquo;re just walking. The Lisbon venue feels big but easy to follow. The
  badge stays on everyone, even outside the event, so the city becomes part of the
  summit.&lt;br /&gt;A few practical notes from my week:&lt;br /&gt;&amp;bull; Wear comfy shoes.
  You&amp;rsquo;ll walk more than you expect, and your brain needs to focus on gain, not
  pain.&lt;br /&gt;&amp;bull; Night Summit events fill fast on Luma. Register days before.&lt;br /&gt;&amp;bull;
  Bring a universal adaptor. We got a monitor for our booth, and thesocket didn&amp;rsquo;t
  match, so the adaptor saved us.&lt;br /&gt;&amp;bull; If you plan to give away merch, prepare it
  early. We were too busy talking to actually hand things out.
&lt;/p&gt;
&lt;h3&gt;Lead Tracking Is Simple&lt;/h3&gt;
&lt;p&gt;
  The badge QR code is your best friend. Scan it, add notes, and export everything
  everyday. The follow-up becomes easy.&lt;br /&gt;All you need in the moment is to capture
  interest. The real conversation can happen later, either on a quick online call or in
  person once the event is over.
&lt;/p&gt;
&lt;h3&gt;Who Should Go&lt;/h3&gt;
&lt;p&gt;
  Web Summit is right for anyone who wants to:&lt;br /&gt;&amp;bull; Enter a new market,&lt;br /&gt;&amp;bull;
  Expand their network fast,&lt;br /&gt;&amp;bull; Find early clients or partners,&lt;br /&gt;&amp;bull;
  Land an investment, or pressure-test their story with people who don&amp;rsquo;t know
  them.
&lt;/p&gt;
&lt;p&gt;
  If you show up with a clear goal, stay flexible, and talk to people everywhere, even
  the random ones, the event pays off.
&lt;/p&gt;
&lt;p&gt;
  Get ready for
  &lt;a href=&quot;https://websummit.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Web Summit&lt;/a&gt;
  2026&lt;br /&gt;I&amp;rsquo;ve already bought my ticket. And if you ever want help preparing for
  your Web Summit run, feel free to reach out.
&lt;/p&gt;
</content:encoded>
        </item>
        <item>
            <title><![CDATA[Salesforce Security Review Scanner Requirements in 2026]]></title>
            <description><![CDATA[The scans Salesforce requires in 2026: Code Analyzer v5, the Checkmarx source scanner, and your own DAST run now that Chimera is gone.]]></description>
            <link>https://tekunda.com/blog/Salesforce-Security-Review-Scanner-Requirements-in-2026</link>
            <guid isPermaLink="false">https://tekunda.com/blog/Salesforce-Security-Review-Scanner-Requirements-in-2026</guid>
            <dc:creator><![CDATA[Tekunda Team]]></dc:creator>
            <pubDate>Tue, 22 Sep 2026 12:00:00 GMT</pubDate>
            <content:encoded>&lt;p&gt;
  &lt;strong
    &gt;Salesforce changed which scans the security review requires: Code Analyzer moved to
    version 5, and Salesforce stopped running the dynamic scan for you when Chimera was
    decommissioned.&lt;/strong
  &gt;
  Here is what you must run in 2026, how the pieces fit, and how to document the results
  so the review clears on the first submission. For the full pre-submission controls,
  see our
  &lt;a href=&quot;/blog/Salesforce-Security-Review-Checklist%3A-What-to-Fix%2C-In-Order&quot;
    &gt;Salesforce security review checklist&lt;/a
  &gt;.
&lt;/p&gt;
&lt;h2&gt;Which scans are required in 2026?&lt;/h2&gt;
&lt;p&gt;
  Two automated scans are mandatory, and skipping either is the fastest way to fail:
&lt;/p&gt;
&lt;ol&gt;
  &lt;li&gt;
    &lt;strong&gt;Salesforce Code Analyzer&lt;/strong&gt; is now generally available at version 5,
    free, and built into the Salesforce CLI. It runs multiple engines and ships with
    more than 500 rules across Apex, Lightning, Visualforce, and Flow. Version 4 was
    retired in August 2025, so make sure your pipeline calls v5.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;The Source Code Scanner (Checkmarx)&lt;/strong&gt; runs through the partner portal
    and is required in addition to Code Analyzer.
  &lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
  Salesforce also gives you a
  &lt;a
    href=&quot;https://developer.salesforce.com/docs/platform/isvforce/guide/security-review-code-analyzer-scan.html&quot;
    &gt;requirements checklist builder&lt;/a
  &gt;
  that tailors the scan list to the technologies your package actually uses, so you are
  not proving controls you never ship.
&lt;/p&gt;
&lt;h2&gt;Who runs the dynamic scan now that Chimera is gone?&lt;/h2&gt;
&lt;p&gt;
  You do. If your package calls a service you operate, that service is in scope: run
  your own dynamic (DAST) scan with an accepted tool such as OWASP ZAP or Burp Suite and
  attach the report. Salesforce stopped running that scan for you when Chimera was
  decommissioned in June 2025, so see
  &lt;a
    href=&quot;/blog/Salesforce-Security-Review%3A-Running-Your-Own-Dynamic-Scans-After-Chimera&quot;
    &gt;running your own dynamic scans after Chimera&lt;/a
  &gt;
  and remove Chimera from your runbook if it is still there.
&lt;/p&gt;
&lt;h2&gt;How do you document the scanner results?&lt;/h2&gt;
&lt;p&gt;
  The scanners are the easy part. Packages fail on the human steps around them. The two
  we see most often:
&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;
    Undocumented false positives. A scanner flags a line you have already mitigated, you
    leave it unexplained, and the reviewer treats an unanswered finding as an open risk.
  &lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
  The fix is a short remediation note for every flagged item you did not change,
  explaining why it is safe. When a scan comes back noisy, our companion piece on
  &lt;a href=&quot;/blog/Salesforce-Security-Review-Checklist%3A-What-to-Fix%2C-In-Order&quot;
    &gt;what to fix, in order&lt;/a
  &gt;
  sets the priority. The second trap is treating remediation as a single pass. You scan,
  fix, and re-scan until the report is clean, then submit the clean report, not the
  first one. Budget for that loop; a rushed submission with a noisy scan almost always
  comes back.
&lt;/p&gt;
&lt;p&gt;
  Tekunda builds and ships AppExchange packages through this process, so we run these
  scans before every submission rather than after a rejection. If you want a partner who
  has passed the review repeatedly, &lt;a href=&quot;/&quot;&gt;start here&lt;/a&gt;.
&lt;/p&gt;
&lt;h2&gt;FAQ&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Is Salesforce Code Analyzer enough on its own?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  No. Code Analyzer is required, but you must also run the Checkmarx source scanner, and
  dynamic testing is expected for any external endpoint your package calls.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What replaced the Chimera scanner?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  Nothing from Salesforce. Since Chimera was decommissioned in June 2025 you run your
  own dynamic scan with a tool such as OWASP ZAP or Burp Suite and attach the report.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Which Code Analyzer version does the review require?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  Version 5. It is generally available and built into the Salesforce CLI; version 4 was
  retired in August 2025, so point your pipeline at v5.
&lt;/p&gt;
</content:encoded>
        </item>
        <item>
            <title><![CDATA[Salesforce OAuth Flows: Choosing the Right Authentication Design]]></title>
            <description><![CDATA[A practical guide to picking the right Salesforce OAuth flow, from PKCE to JWT Bearer, and migrating off legacy password logins.]]></description>
            <link>https://tekunda.com/blog/Salesforce-OAuth-Flows%3A-Choosing-the-Right-Authentication-Design</link>
            <guid isPermaLink="false">https://tekunda.com/blog/Salesforce-OAuth-Flows%3A-Choosing-the-Right-Authentication-Design</guid>
            <dc:creator><![CDATA[Tekunda Team]]></dc:creator>
            <pubDate>Wed, 16 Sep 2026 07:41:34 GMT</pubDate>
            <content:encoded>&lt;p&gt;
  How do you choose the right Salesforce OAuth flow? Send a human through the
  Authorization Code Flow with PKCE, wire a server-to-server job to the JWT Bearer Flow
  (or the Client Credentials Flow), and never fall back to a username, password, and
  security token because it is quicker to stand up. That last shortcut is now on a
  countdown. Salesforce announced the retirement of the OAuth 2.0 username-password flow
  for connected apps in Spring &apos;26, originally listed it for enforcement with the Winter
  &apos;27 rollout, then pinned it to a single fixed date: &lt;strong&gt;20 February 2027&lt;/strong&gt;.
  That date is the same for every org on the platform, not tied to your instance upgrade
  weekend, so there is no staggered window to hide behind. Orgs created in Summer &apos;23 or
  later already block the flow outright. Get the design wrong and you either lock
  legitimate integrations out of your org or leave a long-lived credential where an
  attacker can find it.
&lt;/p&gt;
&lt;h2&gt;How do you choose the right Salesforce OAuth flow?&lt;/h2&gt;
&lt;p&gt;
  Every OAuth decision starts with one question: is a person authorizing this
  connection, or is a machine?
&lt;/p&gt;
&lt;p&gt;
  If a person is present, route them through the Authorization Code Flow with PKCE
  (Proof Key for Code Exchange), which Salesforce documents as the OAuth 2.0 web server
  flow with the PKCE extension and now names as its recommended replacement for
  user-based logins. PKCE binds the authorization code to the client that requested it,
  so a code intercepted in transit is useless to an attacker. Prefer it over the OAuth
  2.0 Device Flow, which Salesforce has been pulling back: it removed Device Flow
  support from the auto-installed Data Loader connected app on 2 September 2025, and
  Data Loader 64.1.0 dropped both the Device Flow and the User-Agent Flow. Both were
  easy to abuse because they could be kicked off with little more than a client ID, a
  favorite target for social engineering.
&lt;/p&gt;
&lt;p&gt;
  If no person is present, such as a nightly ETL job or middleware pushing records into
  Salesforce, choose a server-to-server flow: the JWT Bearer Flow or the Client
  Credentials Flow. Both let a backend service authenticate without a browser or a
  session to redirect. The same either-or choice sits underneath most of the
  &lt;a href=&quot;/blog/Salesforce-Integration-Architecture%3A-Patterns-That-Actually-Scale&quot;
    &gt;integration architecture patterns that actually scale&lt;/a
  &gt;, because the authentication design has to survive every retry, timeout, and
  credential rotation those patterns throw at it.
&lt;/p&gt;
&lt;h2&gt;JWT Bearer vs Client Credentials: which server-to-server flow?&lt;/h2&gt;
&lt;p&gt;
  Both flows authenticate the app itself with no user in the loop, but they trade
  differently on secret handling.
&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;
    &lt;strong&gt;JWT Bearer Flow&lt;/strong&gt; authenticates with a digitally signed certificate
    instead of a shared secret. There is no client secret sitting in a config file to
    leak, the signed assertion is short-lived, and rotating the key means swapping a
    certificate rather than redeploying code. Reach for this when you want the strongest
    posture and can manage a private key.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Client Credentials Flow&lt;/strong&gt; exchanges a consumer key and consumer
    secret for an access token and runs as a designated integration user. It is simpler
    to set up, but the secret is a bearer credential: anyone who intercepts it can
    impersonate the integration, so it has to be stored and rotated with real
    discipline.
  &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
  Whichever you pick, scope the running or integration user tightly with a dedicated
  profile and permission sets instead of granting broad admin access for convenience. A
  machine account that can only touch the objects it needs is the difference between a
  contained incident and a full-org compromise.
&lt;/p&gt;
&lt;h2&gt;Connected Apps vs External Client Apps: what changed for 2026?&lt;/h2&gt;
&lt;p&gt;
  Salesforce has been splitting the classic connected app into two purpose-built app
  types, and the timeline now forces the decision. As of &lt;strong&gt;Spring &apos;26&lt;/strong&gt;,
  Salesforce blocks the creation of new connected apps through both the UI and the API,
  with package installation the only exception, and recommends external client apps
  instead. Existing connected apps keep working during and after the change - nothing in
  your org breaks on the upgrade weekend. If you genuinely must create a new connected
  app, Salesforce Support can re-enable creation for your org for now, but Salesforce
  has said that ability will be removed in a later release, so it is a bridge, not a
  long-term plan.
&lt;/p&gt;
&lt;p&gt;
  External client apps are the newer, recommended path for any external system
  authenticating into Salesforce over OAuth, including your own middleware, ETL tools,
  and partner integrations. They take a deliberately stricter stance: they support the
  secure OAuth flows only and exclude the username-password flow entirely. They also
  support the Metadata API fully and keep consumer secrets out of packaged components,
  which makes them far easier to manage through source control and
  &lt;a href=&quot;/blog/Salesforce-Connected-App-Security-Changes%3A-A-Readiness-Guide&quot;
    &gt;CI/CD pipelines&lt;/a
  &gt;
  than a legacy connected app.
&lt;/p&gt;
&lt;p&gt;
  The practical takeaway in an architecture review: default to an external client app
  for new integrations, and reserve connected apps for the Salesforce-native cases that
  still need them, such as canvas and mobile publishing. Reaching for a legacy connected
  app out of habit now means running into a creation restriction on your next build.
&lt;/p&gt;
&lt;h2&gt;Where do Named Credentials fit into a secure integration design?&lt;/h2&gt;
&lt;p&gt;
  Named Credentials solve a different problem: outbound callouts from Salesforce to
  external systems, driven by Apex or Flow. Instead of hardcoding an endpoint URL and
  OAuth details inside a class, you register a Named Credential once and reference it by
  name, scoped per user or org-wide, and Salesforce handles the token exchange and
  refresh behind the scenes.
&lt;/p&gt;
&lt;p&gt;
  This matters for security review because it removes credentials from code entirely.
  Whether the underlying handshake is JWT Bearer or Client Credentials, the secret or
  key lives outside your integration code, so rotating it happens in one place instead
  of hunting through Apex classes and Flow definitions. When you connect Salesforce to a
  heavyweight system of record like an ERP, this is what keeps the
  &lt;a href=&quot;/blog/Salesforce-and-SAP-Integration-Patterns-for-Manufacturers&quot;
    &gt;Salesforce and SAP integration patterns&lt;/a
  &gt;
  auditable rather than a pile of embedded passwords.
&lt;/p&gt;
&lt;h2&gt;How do you migrate legacy username-password integrations to modern OAuth flows?&lt;/h2&gt;
&lt;p&gt;
  Most orgs we review still have at least one integration authenticating with a
  username, password, and security token, sometimes from a script nobody remembers
  writing. The 20 February 2027 cutoff already slipped once, from the Winter &apos;27
  enforcement list, so treat the extra runway as migration time rather than a reprieve.
  There is no deprecation banner in the UI: on the cutoff date, a password-based
  integration simply stops receiving an access token and starts returning an
  authentication error. A structured migration looks like this:
&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;
    Inventory every integration user and API-enabled profile to find where
    password-based logins are still in use.
  &lt;/li&gt;
  &lt;li&gt;
    Classify each integration as user-present or server-to-server, then map it to
    Authorization Code Flow with PKCE, JWT Bearer Flow, or Client Credentials Flow.
  &lt;/li&gt;
  &lt;li&gt;
    Register a dedicated External Client App per integration rather than sharing one app
    across unrelated systems.
  &lt;/li&gt;
  &lt;li&gt;
    Move outbound callouts behind Named Credentials so secrets live outside the
    codebase.
  &lt;/li&gt;
  &lt;li&gt;
    Rotate the old integration user&apos;s password and revoke its API access once traffic
    has fully cut over.
  &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
  Sequence the cutover integration by integration, confirming each connection
  authenticates in a sandbox before touching the credential production depends on. The
  same authentication design also underpins newer patterns like
  &lt;a
    href=&quot;/blog/Headless-Salesforce-and-MCP%3A-Running-CRM-Actions-From-One-Agentic-Hub&quot;
    &gt;running CRM actions from an agentic hub&lt;/a
  &gt;, where a single machine identity fans out across many actions and a leaked secret
  would be that much more damaging.
&lt;/p&gt;
&lt;p&gt;
  This is the kind of work our
  &lt;a href=&quot;/products/integration&quot;&gt;consulting team&lt;/a&gt; handles regularly. If your org
  still runs password-based integrations, we can map the migration path well before 20
  February 2027 turns it into a fire drill. &lt;a href=&quot;/contact&quot;&gt;Get in touch&lt;/a&gt; to talk
  through your setup.
&lt;/p&gt;
&lt;h2&gt;FAQ&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;When is the Salesforce username-password OAuth flow retired?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  Salesforce moved the retirement from the Winter &apos;27 rollout to a single fixed date, 20
  February 2027, which applies to every org at once rather than following each org&apos;s
  upgrade weekend. Orgs created in Summer &apos;23 or later already block the flow. Migrate
  affected integrations to the web server flow with PKCE, the JWT Bearer Flow, or the
  Client Credentials Flow before then.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Can I still create a new Connected App in 2026?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  Salesforce restricts creation of new connected apps as of Spring &apos;26 and recommends
  external client apps instead. Existing connected apps keep working, and you can
  request an exception through Salesforce Support if you truly need one.
&lt;/p&gt;
&lt;p&gt;
  &lt;strong
    &gt;What is the difference between JWT Bearer and Client Credentials flows?&lt;/strong
  &gt;
&lt;/p&gt;
&lt;p&gt;
  Both are server-to-server flows with no user present. JWT Bearer authenticates with a
  signed certificate and has no shared secret to leak, while Client Credentials
  exchanges a consumer key and secret and runs as a designated integration user, which
  is simpler but relies on a bearer secret you must store and rotate carefully.
&lt;/p&gt;
&lt;p&gt;
  &lt;strong&gt;Should new integrations use Connected Apps or External Client Apps?&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
  Default to external client apps for new external integrations. They support only the
  secure OAuth flows, work fully with the Metadata API for CI/CD, and are the path
  Salesforce now recommends. Reserve connected apps for Salesforce-native cases like
  canvas and mobile publishing.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Do Named Credentials replace OAuth flows?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  No. Named Credentials manage outbound callout authentication and can use OAuth flows
  like JWT Bearer under the hood, keeping secrets out of Apex and Flow rather than
  replacing the flow itself.
&lt;/p&gt;
</content:encoded>
        </item>
        <item>
            <title><![CDATA[Salesforce Code Analyzer v5: Moving Your Pipeline Off sfdx-scanner]]></title>
            <description><![CDATA[Translate your sfdx-scanner commands to Code Analyzer v5: rule selectors instead of engine flags, config in a file, and a severity threshold that gates CI.]]></description>
            <link>https://tekunda.com/blog/Salesforce-Code-Analyzer-v5%3A-Moving-Your-Pipeline-Off-sfdx-scanner</link>
            <guid isPermaLink="false">https://tekunda.com/blog/Salesforce-Code-Analyzer-v5%3A-Moving-Your-Pipeline-Off-sfdx-scanner</guid>
            <dc:creator><![CDATA[Tekunda Team]]></dc:creator>
            <pubDate>Wed, 05 Aug 2026 12:00:00 GMT</pubDate>
            <content:encoded>&lt;p&gt;
  &lt;strong&gt;TL;DR:&lt;/strong&gt; Salesforce Code Analyzer v5 replaces the sfdx-scanner plugin.
  Install it with &lt;code&gt;sf plugins install code-analyzer&lt;/code&gt;, swap
  &lt;code&gt;sf scanner run&lt;/code&gt; for &lt;code&gt;sf code-analyzer run&lt;/code&gt;, and replace the old
  &lt;code&gt;--engine&lt;/code&gt; and &lt;code&gt;--category&lt;/code&gt; flags with a single
  &lt;code&gt;--rule-selector&lt;/code&gt;. The Graph Engine moves under the same command, and
  engine tuning moves out of CLI flags into a &lt;code&gt;code-analyzer.yml&lt;/code&gt;.
&lt;/p&gt;
&lt;p&gt;
  If your CI still shells out to &lt;code&gt;sf scanner run&lt;/code&gt;, this is the migration to
  schedule before your next AppExchange submission, not after. The rest of the security
  review does not change, so this guide sticks to the tooling swap. For what reviewers
  actually reject and in what order to fix it, see
  &lt;a href=&quot;/blog/Salesforce-Security-Review-Checklist%3A-What-to-Fix%2C-In-Order&quot;
    &gt;Salesforce Security Review Checklist: What to Fix, In Order&lt;/a
  &gt;.
&lt;/p&gt;
&lt;h2&gt;What changed between sfdx-scanner and Code Analyzer v5?&lt;/h2&gt;
&lt;p&gt;
  Same job, new front door. Code Analyzer v5 is a &lt;code&gt;sf&lt;/code&gt; plugin that unifies
  the static analysis engines behind one command and one result format, instead of the
  engine-by-engine flags v4 exposed. Three differences matter when you migrate:
&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;
    &lt;strong&gt;One command surface.&lt;/strong&gt; &lt;code&gt;sf code-analyzer run&lt;/code&gt; covers the
    engines that used to be split across &lt;code&gt;sf scanner run&lt;/code&gt; and
    &lt;code&gt;sf scanner run dfa&lt;/code&gt;, so the Graph Engine is no longer a separate
    invocation with its own flags.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Selectors instead of engine and category flags.&lt;/strong&gt; You ask for rules
    by name, tag, engine or severity through &lt;code&gt;--rule-selector&lt;/code&gt; rather than
    combining &lt;code&gt;--engine&lt;/code&gt; with &lt;code&gt;--category&lt;/code&gt;.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Configuration in a file.&lt;/strong&gt; Engine tuning that used to live in CLI
    flags and per-engine config paths now belongs in a &lt;code&gt;code-analyzer.yml&lt;/code&gt;,
    which you commit alongside the code it governs.
  &lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;How do you install and run it?&lt;/h2&gt;
&lt;p&gt;Install the plugin, then run it against your workspace:&lt;/p&gt;
&lt;pre&gt;
sf plugins install code-analyzer
sf code-analyzer run --workspace . --view detail&lt;/pre
&gt;
&lt;p&gt;
  Generate a starting configuration once and commit it, so every developer and every CI
  job analyses with the same rules:
&lt;/p&gt;
&lt;pre&gt;sf code-analyzer config --output-file code-analyzer.yml&lt;/pre&gt;
&lt;p&gt;
  Before you trust a selector, list what it resolves to. This is the fastest way to
  catch a migration that silently narrowed your coverage:
&lt;/p&gt;
&lt;pre&gt;sf code-analyzer rules --rule-selector Security&lt;/pre&gt;
&lt;h2&gt;How do you translate your existing commands?&lt;/h2&gt;
&lt;p&gt;Work through your pipeline definitions and your local scripts in one pass:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;
    &lt;code&gt;sf scanner run --target force-app&lt;/code&gt; becomes
    &lt;code&gt;sf code-analyzer run --workspace force-app&lt;/code&gt;.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;code&gt;--engine pmd --category Security&lt;/code&gt; becomes
    &lt;code&gt;--rule-selector pmd:Security&lt;/code&gt;, or just
    &lt;code&gt;--rule-selector Security&lt;/code&gt; when you want that tag across every engine.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;code&gt;sf scanner run dfa&lt;/code&gt; becomes a selector on the Graph Engine inside the
    normal run, rather than its own subcommand.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;code&gt;--format&lt;/code&gt; plus &lt;code&gt;--outfile&lt;/code&gt; become &lt;code&gt;--output-file&lt;/code&gt;,
    where the extension picks the format. Use
    &lt;code&gt;--output-file results.sarif&lt;/code&gt; if you upload findings to your host&apos;s code
    scanning view.
  &lt;/li&gt;
  &lt;li&gt;
    Per-engine config flags become entries in &lt;code&gt;code-analyzer.yml&lt;/code&gt;. Move them
    rather than reproducing them as flags.
  &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
  Do not migrate a suppression list by hand-copying rule names. Rule identifiers moved
  with the engines, so re-derive your exclusions from a fresh
  &lt;code&gt;sf code-analyzer rules&lt;/code&gt; listing and delete the ones that no longer
  resolve.
&lt;/p&gt;
&lt;h2&gt;How do you gate CI on the results?&lt;/h2&gt;
&lt;p&gt;
  Use &lt;code&gt;--severity-threshold&lt;/code&gt;. The command exits non-zero when it finds a
  violation at or above the level you pass, which is what turns the scan from a report
  into a gate:
&lt;/p&gt;
&lt;pre&gt;
sf code-analyzer run --workspace . \
  --rule-selector Security \
  --severity-threshold 3 \
  --output-file results.sarif&lt;/pre
&gt;
&lt;p&gt;
  Set the threshold where your codebase is today, not where you want it, then tighten it
  once the backlog clears. A gate that fails on every pull request from day one gets
  disabled within a week, and a disabled gate catches nothing.
&lt;/p&gt;
&lt;h2&gt;What does this migration not change?&lt;/h2&gt;
&lt;p&gt;
  Code Analyzer covers the code inside your package. The rest of the submission evidence
  is untouched by the version swap:
&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;The source scan you run through the Partner portal still runs separately.&lt;/li&gt;
  &lt;li&gt;
    Any external endpoint your package calls still needs its own dynamic scan report.
    See
    &lt;a
      href=&quot;/blog/Salesforce-Security-Review%3A-Running-Your-Own-Dynamic-Scans-After-Chimera&quot;
      &gt;Running Your Own Dynamic Scans After Chimera&lt;/a
    &gt;.
  &lt;/li&gt;
  &lt;li&gt;
    Findings you consider false positives still need a written justification per
    finding.
    &lt;a href=&quot;/blog/How-to-Document-False-Positives-for-the-Salesforce-Security-Review&quot;
      &gt;How to Document False Positives for the Salesforce Security Review&lt;/a
    &gt;
    covers the format.
  &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
  Migrating a pipeline you did not build, on a deadline? &lt;a href=&quot;/&quot;&gt;Tekunda&lt;/a&gt; builds
  and packages AppExchange products as a Salesforce PDO, security review included.
  &lt;a href=&quot;/contact&quot;&gt;Tell us where your pipeline is stuck&lt;/a&gt; and we will scope the
  swap.
&lt;/p&gt;
&lt;h2&gt;FAQ&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Is sfdx-scanner still supported?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  Treat it as the previous generation. Code Analyzer v5 is the successor, and new rules
  and engine updates land there, so a pipeline left on the old plugin quietly falls
  behind on coverage.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Do my results change after migrating?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  Expect them to. Selectors resolve to a different rule set than your old engine and
  category combination, and severities are normalised across engines. Run both versions
  once, side by side, and diff the findings before you delete the old job.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Where do I put engine settings now?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  In &lt;code&gt;code-analyzer.yml&lt;/code&gt;, committed to the repo. Generate a starting file
  with &lt;code&gt;sf code-analyzer config&lt;/code&gt; and edit from there rather than writing one
  from scratch.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Can I run it in a pipeline without the whole Salesforce CLI?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  It is a &lt;code&gt;sf&lt;/code&gt; plugin, so the CLI is a prerequisite. Install the CLI and the
  plugin in your build image rather than on every run, or the install dominates the job
  time.
&lt;/p&gt;
</content:encoded>
        </item>
        <item>
            <title><![CDATA[How the AppExchange Security Review Submission Loop Works]]></title>
            <description><![CDATA[What happens after you submit to the Salesforce security review: the queue, the findings report, remediation, and what a second lap costs.]]></description>
            <link>https://tekunda.com/blog/How-the-AppExchange-Security-Review-Submission-Loop-Works</link>
            <guid isPermaLink="false">https://tekunda.com/blog/How-the-AppExchange-Security-Review-Submission-Loop-Works</guid>
            <dc:creator><![CDATA[Tekunda Team]]></dc:creator>
            <pubDate>Sun, 02 Aug 2026 12:00:00 GMT</pubDate>
            <content:encoded>&lt;p&gt;
  &lt;strong
    &gt;The AppExchange security review is a loop, not a gate. You self-assess, submit, get
    a findings report back, remediate, and resubmit until Salesforce signs off.&lt;/strong
  &gt;
  Knowing what each lap costs, and which findings force one, is what turns a multi-cycle
  slog into a single pass.
&lt;/p&gt;
&lt;p&gt;
  Tekunda takes managed packages through AppExchange security review as a Salesforce
  PDO. What follows is the loop as we run it.
&lt;/p&gt;

&lt;h2&gt;What happens after you hit submit?&lt;/h2&gt;
&lt;p&gt;
  Your submission joins a queue, then three lenses run against it: static code analysis
  with the Salesforce Code Analyzer, dynamic testing against a running org, and a manual
  review by Salesforce&apos;s product security team. What comes back is a findings report,
  not a verdict, and every line on it either gets fixed or gets a written explanation.
  Salesforce states that a solution typically takes 4 to 5 weeks to get through the
  review, and that
  &lt;a
    href=&quot;https://trailhead.salesforce.com/content/learn/modules/isv_security_review/isv_security_review_submit&quot;
    &gt;for every paid solution sold on the marketplace there is a $999 fee&lt;/a
  &gt;
  for the initial submission and for any subsequent attempts. That is what makes an
  extra lap expensive: another invoice, and another trip through the same queue.
&lt;/p&gt;

&lt;h2&gt;What do you fix before the first lap?&lt;/h2&gt;
&lt;p&gt;
  Everything a scanner can find without help. Access control enforced in user mode,
  sharing declared on every Apex class, bind variables instead of concatenated SOQL,
  escaped output, and secrets in Named Credentials or protected custom metadata rather
  than in code. The full list, in the order that costs least to work, is in
  &lt;a href=&quot;/blog/Salesforce-Security-Review-Checklist%3A-What-to-Fix%2C-In-Order&quot;
    &gt;Salesforce Security Review Checklist: What to Fix, In Order&lt;/a
  &gt;. A finding you could have caught yourself is the most expensive kind, because it
  buys a whole extra lap.
&lt;/p&gt;

&lt;h2&gt;How do you run the loop, step by step?&lt;/h2&gt;
&lt;ol&gt;
  &lt;li&gt;
    &lt;strong&gt;Self-assess.&lt;/strong&gt; Run the Code Analyzer and your own dynamic scan,
    triage every finding, and fix the real ones. Salesforce retired the hosted Chimera
    scanner on 2025-06-16, so the dynamic scan is yours to run now. See
    &lt;a
      href=&quot;/blog/Salesforce-Security-Review%3A-Running-Your-Own-Dynamic-Scans-After-Chimera&quot;
      &gt;Running Your Own Dynamic Scans After Chimera&lt;/a
    &gt;
    for the accepted tools and the report to attach.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Document what is left.&lt;/strong&gt; Every finding you are not fixing needs its
    own written justification: scanner and rule, file and line, the data path, and the
    control that protects it.
    &lt;a href=&quot;/blog/How-to-Document-False-Positives-for-the-Salesforce-Security-Review&quot;
      &gt;How to Document False Positives for the Salesforce Security Review&lt;/a
    &gt;
    covers the format reviewers accept.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Assemble the submission.&lt;/strong&gt; Work the Security Review Requirements
    Checklist in the Partner Community: scan reports, the false positive document, usage
    and data flow documentation, credentials for every external system, and a Developer
    Edition org with seeded data a reviewer can actually drive.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Submit, then leave the version alone.&lt;/strong&gt; The queue is not a place to
    keep iterating. Freeze the package version you submitted and keep developing on a
    branch, so the reviewer and your team are never reading different code.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Remediate against the report.&lt;/strong&gt; Treat it as a punch list, and fix
    each item at its root rather than at the symptom the scanner reported, because the
    next scan runs against the whole package again.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Resubmit with evidence.&lt;/strong&gt; Answer every finding explicitly, including
    the ones you disagreed with, and say where the fix lives. Unanswered items are what
    turn a second lap into a third.
  &lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;What sends a package around the loop a second time?&lt;/h2&gt;
&lt;p&gt;
  The same short list every time: missing CRUD/FLS checks, dynamic SOQL built from
  input, unescaped output, cross-site request forgery, insecure direct object
  references, and Apex classes that never declared sharing. Almost all of them are
  catchable in self-assessment. The other repeat offender is procedural rather than
  technical, a stale or unexplained scan report or a test org the reviewer cannot log
  into, which stalls the lap before the code is even read.
&lt;/p&gt;

&lt;h2&gt;Where Tekunda fits&lt;/h2&gt;
&lt;p&gt;
  Listed packages are re-reviewed periodically, so the loop never fully closes. Keeping
  a living remediation log, and rerunning the scans on every release instead of every
  submission, is what makes the next lap a formality. If you would rather the review was
  handled by people who have cleared it before, &lt;a href=&quot;/&quot;&gt;Tekunda&lt;/a&gt; builds and
  packages AppExchange products as a Salesforce PDO.
&lt;/p&gt;

&lt;h2&gt;FAQ&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;How long does the AppExchange security review take?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  Salesforce states that a solution typically takes 4 to 5 weeks to get through the
  review. A resubmission re-enters the same queue, so plan a second lap into the release
  schedule rather than assuming a fast track.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;How much does the security review cost?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  Salesforce documents a $999 fee for every paid solution sold on the marketplace,
  charged for the initial submission and for any subsequent attempts. A clean first pass
  is the only way to pay it once.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Is the Salesforce Code Analyzer scan mandatory?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  Yes, for managed packages listing on AppExchange. Upload the Code Analyzer results
  with your submission, alongside a dynamic scan report for every external endpoint your
  package calls.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What replaced Chimera for dynamic scanning?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  Nothing hosted. Since Chimera was retired on 2025-06-16, partners run their own
  dynamic application security testing with tools such as OWASP ZAP, Burp Suite or
  Qualys and submit the report.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Do I have to repeat the review?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  Yes. Listed packages are subject to periodic re-review, so build remediation and
  documentation into your release process rather than treating security as a one-time
  event.
&lt;/p&gt;
</content:encoded>
        </item>
        <item>
            <title><![CDATA[How to Document False Positives for the Salesforce Security Review]]></title>
            <description><![CDATA[When a scanner flags an issue that is not a real vulnerability, here is how to write a false-positive justification the Salesforce security review team accepts.]]></description>
            <link>https://tekunda.com/blog/How-to-Document-False-Positives-for-the-Salesforce-Security-Review</link>
            <guid isPermaLink="false">https://tekunda.com/blog/How-to-Document-False-Positives-for-the-Salesforce-Security-Review</guid>
            <dc:creator><![CDATA[Tekunda Team]]></dc:creator>
            <pubDate>Sat, 01 Aug 2026 12:00:00 GMT</pubDate>
            <content:encoded>&lt;p&gt;
  &lt;strong&gt;TL;DR:&lt;/strong&gt; A false positive is a scanner finding that flags code that is
  not actually vulnerable. Salesforce does not want you to silence it, it wants a
  written justification for each one: the scanner and rule, the exact file and line, the
  data path, and the control that already protects it. Vague, one-line dismissals are
  the most common reason a false-positive document comes back with questions.
&lt;/p&gt;
&lt;p&gt;
  Every AppExchange security review submission includes scan reports, and no real
  codebase scans perfectly clean. Some findings are true issues you fix. Others flag
  code that is already safe, and those you document. This guide is about the second
  group: how to write false-positive justifications the Salesforce security review team
  accepts, and the mistakes that get them rejected. For the failures you should actually
  fix, and the order to fix them in, see
  &lt;a href=&quot;/blog/Salesforce-Security-Review-Checklist%3A-What-to-Fix%2C-In-Order&quot;
    &gt;Salesforce Security Review Checklist: What to Fix, In Order&lt;/a
  &gt;.
&lt;/p&gt;
&lt;h2&gt;What counts as a false positive?&lt;/h2&gt;
&lt;p&gt;
  A false positive is a finding that is technically wrong for your code, not one you
  would rather not deal with. A scanner flags a pattern; whether that pattern is
  exploitable depends on context the scanner cannot always see. If the code is genuinely
  protected, you have a false positive to document. If you are not sure it is protected,
  treat it as a real finding and fix it, because guessing here is what turns a document
  into a rejection.
&lt;/p&gt;
&lt;p&gt;The categories that recur often enough to plan for are:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;
    &lt;strong&gt;Access-control findings&lt;/strong&gt; raised against code that already runs in
    user mode with &lt;code&gt;WITH USER_MODE&lt;/code&gt; or &lt;code&gt;AccessLevel.USER_MODE&lt;/code&gt;.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Sharing findings&lt;/strong&gt; on classes only ever entered through a context
    that has already applied sharing.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Injection findings&lt;/strong&gt; on queries that use bind variables the scanner
    did not trace.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Cross-site scripting findings&lt;/strong&gt; on parameters that never reach the
    DOM or are encoded before they do.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Vulnerable-library findings&lt;/strong&gt; matched on a version string inside a
    bundled static resource that the package never executes.
  &lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;The bar is different for each scanner&lt;/h2&gt;
&lt;p&gt;
  Before you write a single justification, know which findings you even have to address.
  The threshold is not zero findings, and it changes by tool:
&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;
    &lt;strong&gt;Salesforce Code Analyzer:&lt;/strong&gt; resolve every security-related error, and
    disregard findings that are not security related. Read the tool docs at
    &lt;a
      href=&quot;https://developer.salesforce.com/docs/platform/salesforce-code-analyzer/guide/code-analyzer.html&quot;
      &gt;Salesforce Code Analyzer&lt;/a
    &gt;.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Source scanner:&lt;/strong&gt; address Low, Medium and High findings, and leave
    purely informational warnings alone.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Dynamic (DAST) scanners:&lt;/strong&gt; address everything except informational
    items and warnings, and keep a screenshot proving the correct endpoint was scanned.
  &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
  Anything above the noise line is either fixed or documented. There is no third option
  where you ignore it silently.
&lt;/p&gt;
&lt;h2&gt;What Salesforce asks for in the false-positive document&lt;/h2&gt;
&lt;p&gt;
  Salesforce asks for
  &lt;a
    href=&quot;https://developer.salesforce.com/docs/atlas.en-us.packagingGuide.meta/packagingGuide/security_review_false_positives.htm&quot;
    &gt;a document explaining why each flagged item does not pose a security risk&lt;/a
  &gt;, and it tells you to be specific about how you protect against the vulnerability the
  scanner indicated. Being right is not enough. The document is what the reviewer reads,
  so the document is what has to prove it.
&lt;/p&gt;
&lt;h2&gt;What a good entry looks like&lt;/h2&gt;
&lt;p&gt;
  Give every flagged item its own entry rather than one blanket paragraph. A strong
  entry answers, in order:
&lt;/p&gt;
&lt;ol&gt;
  &lt;li&gt;
    &lt;strong&gt;Which finding.&lt;/strong&gt; The scanner name, the rule or category identifier,
    and the severity it assigned.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Where.&lt;/strong&gt; The exact file and line, so the reviewer can open it without
    hunting.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;The data path.&lt;/strong&gt; One sentence on how data reaches that line, and why
    the flagged pattern does not apply to it.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;The control.&lt;/strong&gt; The specific mechanism that protects it, named
    concretely: the bind variable, the user-mode enforcement, the encoding call, the
    sharing context.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Proof.&lt;/strong&gt; Where that control lives in the package, and for dynamic
    findings, the screenshot showing the endpoint that was actually tested.
  &lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
  Write it so someone who has never opened your code can follow the path from input to
  the control and agree it is safe. That is the whole test.
&lt;/p&gt;
&lt;h2&gt;Why false-positive documents get rejected&lt;/h2&gt;
&lt;p&gt;The rejections we see cluster into a handful of avoidable mistakes:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;
    &lt;strong&gt;One-line dismissals.&lt;/strong&gt; &quot;Not exploitable&quot; or &quot;handled elsewhere&quot; gives
    the reviewer nothing to verify, so it comes back as a question, and questions cost a
    review cycle.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;No file and line.&lt;/strong&gt; A justification the reviewer cannot locate in the
    code cannot be confirmed.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Documenting a real issue.&lt;/strong&gt; Arguing a genuine finding is a false
    positive erodes trust in the entire document, and the reviewer starts re-checking
    the ones that were fine.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Missing dynamic-scan evidence.&lt;/strong&gt; A DAST finding waved away without a
    screenshot of the scanned endpoint reads as untested, not safe.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Stale references.&lt;/strong&gt; Line numbers that no longer match the submitted
    package because the code moved after the scan.
  &lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;How metadata discipline makes this repeatable&lt;/h2&gt;
&lt;p&gt;
  Salesforce periodically re-audits listed packages, which means you will write
  false-positive justifications more than once. When your package metadata lives in
  source control, every permission set, sharing rule and named credential is versioned,
  so you can point to the exact control that backs a justification and show it has not
  changed. Teams that treat metadata as code reuse last year&apos;s document instead of
  reconstructing the reasoning from scratch.
&lt;/p&gt;
&lt;p&gt;
  If you would rather a partner who has cleared the review before writes these
  justifications with you, &lt;a href=&quot;/&quot;&gt;Tekunda&lt;/a&gt; builds and packages AppExchange
  products as a Salesforce PDO.
&lt;/p&gt;
&lt;h2&gt;FAQ&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Can I just suppress a finding instead of documenting it?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  No. Anything above the scanner&apos;s noise threshold is either fixed or explained in the
  false-positive document. A suppressed finding with no justification reads as an
  unaddressed one.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;How detailed does each entry need to be?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  Detailed enough for a reviewer to locate the code and confirm the control without
  asking you. In practice that is scanner and rule, file and line, the data path, and
  the exact control that protects it.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Do dynamic-scan false positives need extra evidence?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  Yes. Attach a screenshot proving the correct endpoint was scanned, otherwise the
  finding reads as untested rather than safe.
&lt;/p&gt;
</content:encoded>
        </item>
        <item>
            <title><![CDATA[Salesforce Security Review: Running Your Own Dynamic Scans After Chimera]]></title>
            <description><![CDATA[Salesforce retired the hosted Chimera scanner on 2025-06-16. How to run your own dynamic (DAST) scan and document the results for AppExchange security review.]]></description>
            <link>https://tekunda.com/blog/Salesforce-Security-Review%3A-Running-Your-Own-Dynamic-Scans-After-Chimera</link>
            <guid isPermaLink="false">https://tekunda.com/blog/Salesforce-Security-Review%3A-Running-Your-Own-Dynamic-Scans-After-Chimera</guid>
            <dc:creator><![CDATA[Tekunda Team]]></dc:creator>
            <pubDate>Fri, 31 Jul 2026 12:00:00 GMT</pubDate>
            <content:encoded>&lt;p&gt;
  &lt;strong&gt;TL;DR:&lt;/strong&gt; Salesforce retired its hosted Chimera dynamic scanner on
  2025-06-16, so partners now run their own dynamic (DAST) scan and submit the results
  with their AppExchange security review. Point an accepted tool such as OWASP ZAP, Burp
  Suite or Qualys at a full install, keep proof you scanned the right endpoint, and
  document every finding you triaged. This guide covers what changed, which tools
  qualify, how to produce a submission-ready report, and the mistakes that send one
  back.
&lt;/p&gt;
&lt;p&gt;
  For years Salesforce ran the dynamic scan for you through Chimera. That service is
  gone. The static analysis and manual review are unchanged, but the dynamic scan is now
  yours to run and yours to evidence. This guide covers that one shift. For the failure
  modes that send submissions back and the order to fix them in, see
  &lt;a href=&quot;/blog/Salesforce-Security-Review-Checklist%3A-What-to-Fix%2C-In-Order&quot;
    &gt;Salesforce Security Review Checklist: What to Fix, In Order&lt;/a
  &gt;.
&lt;/p&gt;

&lt;h2&gt;What changed when Chimera retired?&lt;/h2&gt;
&lt;p&gt;
  Chimera was Salesforce&apos;s hosted service that dynamically tested a partner&apos;s external
  endpoints during the review. Since it retired on 2025-06-16, partners submitting a
  managed package run their own dynamic scan against any service the package calls and
  attach the report to the submission. Salesforce still performs static analysis and
  manual review; only the dynamic testing moved to you.
&lt;/p&gt;
&lt;p&gt;
  If your package only ever calls Salesforce APIs and hosts nothing external, you may
  have little to scan. The moment your app talks to a service you operate, that service
  is in scope and needs its own report.
&lt;/p&gt;

&lt;h2&gt;Which dynamic scan tools does Salesforce accept?&lt;/h2&gt;
&lt;p&gt;
  You pick the tool, as long as it produces a credible DAST report. The ones partners
  reach for most often are:
&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;
    &lt;strong&gt;OWASP ZAP.&lt;/strong&gt; Free and open source, and the usual starting point for a
    first submission.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Burp Suite.&lt;/strong&gt; The professional edition covers most partner needs,
    with a stronger active scanner than the free tier.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Qualys WAS.&lt;/strong&gt; A hosted option for teams that already run it elsewhere
    in their stack.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Other DAST tools&lt;/strong&gt; such as Veracode, Acunetix, Intruder or JiT DAST
    are equally acceptable if your team already owns one.
  &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
  Salesforce cares about the report, not the brand on it. Whatever you run has to show
  it reached and exercised the live endpoint.
&lt;/p&gt;

&lt;h2&gt;How do you run a scan and document the results?&lt;/h2&gt;
&lt;ol&gt;
  &lt;li&gt;
    Stand up a full install of the package in a test org with realistic seeded data, so
    the scanner exercises real workflows rather than empty pages.
  &lt;/li&gt;
  &lt;li&gt;
    Authenticate the scanner as a real user, then let it crawl and actively scan every
    external endpoint the app calls. An unauthenticated scan misses most of the surface.
  &lt;/li&gt;
  &lt;li&gt;
    Capture a screenshot or log proving the scan hit the correct endpoint. Salesforce
    asks for evidence the right target was tested, not just a clean summary.
  &lt;/li&gt;
  &lt;li&gt;
    Triage every finding. Fix the real issues, and for each false positive write one
    entry: tool and rule id, the endpoint, the data path, and the control that protects
    it.
  &lt;/li&gt;
  &lt;li&gt;
    Export the full report plus your false-positive document, and attach both to the
    submission alongside your static scan reports.
  &lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;What are the common pitfalls?&lt;/h2&gt;
&lt;ul&gt;
  &lt;li&gt;
    &lt;strong&gt;Scanning the wrong target.&lt;/strong&gt; Pointing the tool at a staging URL the
    package never calls produces a report Salesforce cannot match to your app.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Skipping authentication.&lt;/strong&gt; An unauthenticated scan never reaches the
    logged-in surface, so the report looks clean because it tested almost nothing.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Submitting raw output.&lt;/strong&gt; A dump of findings with no triage reads as
    unreviewed. Every item needs a fix or a written justification.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Leaving it until the week before.&lt;/strong&gt; Run the scan during development
    so findings surface while they are still cheap to fix.
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;Where Tekunda fits&lt;/h2&gt;
&lt;p&gt;
  Running and evidencing a dynamic scan is exactly the step that stalls a launch when a
  team meets it for the first time. &lt;a href=&quot;/&quot;&gt;Tekunda&lt;/a&gt; builds and packages
  AppExchange products as a Salesforce PDO, dynamic scan and submission included.
&lt;/p&gt;

&lt;h2&gt;FAQ&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Do I still need a dynamic scan after Chimera retired?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  Yes, more than before. Chimera used to run it for you; now you run it yourself and
  submit the report with your package.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Which tool should I use?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  Any credible DAST tool. OWASP ZAP is the free default; Burp Suite, Qualys and Veracode
  are common paid options. Salesforce judges the report, not the brand.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What if my package has no external endpoints?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  Then there may be nothing to scan dynamically. As soon as the app calls a service you
  operate, that service is in scope and needs its own report.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;When should I run the scan?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  During development, not the week before you submit, so findings surface while they are
  still cheap to remediate.
&lt;/p&gt;
</content:encoded>
        </item>
        <item>
            <title><![CDATA[Building a Salesforce Center of Excellence From Scratch]]></title>
            <description><![CDATA[The minimum viable Salesforce CoE for a mid-size company: four part-time roles, explicit decision rights, and why committees get routed around.]]></description>
            <link>https://tekunda.com/blog/Building-a-Salesforce-Center-of-Excellence-From-Scratch</link>
            <guid isPermaLink="false">https://tekunda.com/blog/Building-a-Salesforce-Center-of-Excellence-From-Scratch</guid>
            <dc:creator><![CDATA[Tekunda Team]]></dc:creator>
            <pubDate>Mon, 27 Jul 2026 12:00:00 GMT</pubDate>
            <content:encoded>&lt;p&gt;
  &lt;strong&gt;Short answer:&lt;/strong&gt; a Salesforce center of excellence is a small team with
  real decision rights over the platform, not a committee that meets monthly to review
  other people&apos;s work. At mid-size you can build one with four part-time people and
  three artefacts. Governance fails when it is designed to prevent decisions rather than
  to make them quickly.
&lt;/p&gt;

&lt;h2&gt;What is a Salesforce center of excellence, actually?&lt;/h2&gt;
&lt;p&gt;Strip away the enterprise vocabulary and a CoE is three things:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;
    &lt;strong&gt;A named owner of the platform.&lt;/strong&gt; One person who is accountable for
    whether Salesforce serves the business, not five who are consulted.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;A short list of decisions that only they make.&lt;/strong&gt; Data model,
    integrations, security model, release process.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;A set of reusable assets&lt;/strong&gt; so the next project starts at 60% rather
    than zero.
  &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
  Everything else people put in a CoE charter is either a meeting or a document, and
  neither changes what ships.
&lt;/p&gt;

&lt;h2&gt;Do you need one at mid-size?&lt;/h2&gt;
&lt;p&gt;
  Most CoE advice is written for orgs with thousands of users. You do not need the
  enterprise version, but you do need something the moment these signals appear:
&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;
    Two departments have built overlapping objects that mean nearly the same thing.
  &lt;/li&gt;
  &lt;li&gt;Nobody can say what a change to Account will break.&lt;/li&gt;
  &lt;li&gt;Every project rebuilds the same integration or approval pattern from scratch.&lt;/li&gt;
  &lt;li&gt;Releases wait on one person&apos;s calendar.&lt;/li&gt;
  &lt;li&gt;The backlog is arbitrated by whoever escalates loudest.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
  Two or three of those and you already have a governance problem. You just have not
  named it yet.
&lt;/p&gt;

&lt;h2&gt;Who is on the minimum viable CoE?&lt;/h2&gt;
&lt;p&gt;
  Four roles, and at mid-size most of them are part of somebody&apos;s existing job. Resist
  the urge to staff a department.
&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;
    &lt;strong&gt;Platform owner (20-40%).&lt;/strong&gt; Usually a product or ops leader. Owns the
    roadmap and says no. This is the role that cannot be shared.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Lead architect or senior admin (50%).&lt;/strong&gt; Owns the data model, the
    security model and technical standards. Reviews changes that cross object
    boundaries.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Release owner (20%).&lt;/strong&gt; Owns the pipeline, environments and the
    release calendar. Often the same person as the architect early on, but the
    responsibility should be written down separately.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Business representative per major function (10% each).&lt;/strong&gt; Sales,
    service, finance. They bring demand and take decisions back to their teams. They are
    not there to approve technical work.
  &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
  Four people, roughly 1.2 full-time equivalents. That is the whole thing. A CoE that
  needs six new hires before it can operate will be cancelled in the next budget round.
&lt;/p&gt;

&lt;h2&gt;What decisions does the CoE own, and what does it not?&lt;/h2&gt;
&lt;p&gt;
  This is the part teams skip, and it is the only part that determines whether the CoE
  survives. Write two explicit lists.
&lt;/p&gt;
&lt;p&gt;
  &lt;strong&gt;The CoE decides:&lt;/strong&gt; changes to shared objects and the data model, new
  integrations and the systems of record behind them, the security and sharing model,
  the release process and its gates, which capabilities get built as reusable
  components, and what goes on the roadmap.
&lt;/p&gt;
&lt;p&gt;
  &lt;strong&gt;The CoE does not decide:&lt;/strong&gt; report and dashboard layouts, page layout
  tweaks inside one team&apos;s own objects, field label wording, or which of two equally
  valid implementations a developer picks. Those belong to the people doing the work.
&lt;/p&gt;
&lt;p&gt;
  The second list matters more than the first. A body that reviews everything becomes a
  queue, and a queue gets routed around. Within a couple of quarters people will be
  building in their own sandboxes and asking forgiveness, which is exactly the state you
  set the CoE up to end.
&lt;/p&gt;

&lt;h2&gt;Why committees fail and small teams do not&lt;/h2&gt;
&lt;p&gt;
  A committee optimises for consensus, which means its default answer is delay. A team
  optimises for throughput, which means its default answer is a decision, sometimes a
  wrong one. On a platform where a wrong field can be renamed next sprint but a stalled
  roadmap costs a year, the team wins that trade every time.
&lt;/p&gt;
&lt;p&gt;Three rules keep it a team:&lt;/p&gt;
&lt;ol&gt;
  &lt;li&gt;
    &lt;strong&gt;Decisions have a deadline.&lt;/strong&gt; Anything not decided within one week
    defaults to the architect&apos;s recommendation. Silence is consent.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Meet weekly for 45 minutes, not monthly for two hours.&lt;/strong&gt; Short
    cadence means small decisions, which are the reversible kind.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Publish decisions, not minutes.&lt;/strong&gt; One line per decision, with the
    reason and the date. That log becomes the standards document nobody had time to
    write.
  &lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;What should it produce in the first 90 days?&lt;/h2&gt;
&lt;ol&gt;
  &lt;li&gt;
    &lt;strong&gt;Days 1-30:&lt;/strong&gt; the decision-rights document above, and an honest
    inventory of what exists. Objects, integrations, automation, technical debt, who
    owns what.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Days 31-60:&lt;/strong&gt; the release process. One pipeline, one set of
    environments, approval gates by environment, and no direct changes in production.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Days 61-90:&lt;/strong&gt; the first two reusable components. Pick the patterns
    you have already built twice, package them properly, and use them on the next
    project.
  &lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
  That third item is what turns a CoE from an overhead into an asset. Building products
  taught us this the hard way: at &lt;a href=&quot;/&quot;&gt;Tekunda&lt;/a&gt; we work as a Salesforce SI,
  ISV and PDO, and the packaging rigor from the product side is exactly what lets a
  delivery team bring new work live in weeks rather than months. A CoE that produces
  reusable parts pays for itself. A CoE that produces policy documents gets cut.
&lt;/p&gt;

&lt;h2&gt;FAQ&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;How big should a Salesforce CoE be?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  At mid-size, four roles totalling roughly one to one and a half full-time equivalents.
  Add people only when a specific decision keeps waiting on capacity.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Should the CoE sit in IT or in the business?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  Neither exclusively. The platform owner should come from the business and the
  architect from IT, reporting jointly. A CoE owned entirely by IT drifts from demand,
  one owned entirely by the business drifts from architecture.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What is the difference between a CoE and a governance board?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  A governance board reviews decisions made elsewhere. A CoE makes them and is
  accountable for the outcome. If your CoE only reviews, you built a board.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;How do you know the CoE is working?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  Time from request to production falls, the number of changes made outside the release
  process approaches zero, and each project reuses more than it rebuilds.
&lt;/p&gt;
</content:encoded>
        </item>
        <item>
            <title><![CDATA[How to Prepare Your Salesforce Org for an Audit]]></title>
            <description><![CDATA[What auditors actually ask for in a Salesforce org, and how to produce access, change and retention evidence without a two-week fire drill.]]></description>
            <link>https://tekunda.com/blog/How-to-Prepare-Your-Salesforce-Org-for-an-Audit</link>
            <guid isPermaLink="false">https://tekunda.com/blog/How-to-Prepare-Your-Salesforce-Org-for-an-Audit</guid>
            <dc:creator><![CDATA[Tekunda Team]]></dc:creator>
            <pubDate>Sun, 26 Jul 2026 12:00:00 GMT</pubDate>
            <content:encoded>&lt;p&gt;
  &lt;strong&gt;Short answer:&lt;/strong&gt; an auditor does not want a tour of your org. They want
  three evidence packs: who had access and who approved it, what changed in production
  and who signed it off, and how long you keep records before deleting them. If those
  three exports are routine, an audit is a meeting. If they are not, it is a two-week
  fire drill.
&lt;/p&gt;

&lt;h2&gt;What does an auditor actually ask a Salesforce team for?&lt;/h2&gt;
&lt;p&gt;
  Most Salesforce audit advice describes an internal health check: dead fields, unused
  reports, storage cleanup. That is useful housekeeping, but it is not what an external
  auditor tests. Under SOX, SOC 2 or ISO 27001, they sample and ask you to prove a
  control:
&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;
    &lt;strong&gt;Access evidence.&lt;/strong&gt; A user list with profiles, permission sets and
    roles, plus who approved each grant and when it was last reviewed.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Change evidence.&lt;/strong&gt; For a sample of production changes: the request,
    the approval, the test result and the deployment record.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Retention and deletion evidence.&lt;/strong&gt; What personal data you hold, how
    long you keep it, and proof that deletion requests were honoured.
  &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
  Almost every finding we have seen comes from one of those three, not from a messy page
  layout.
&lt;/p&gt;

&lt;h2&gt;What is in scope, and who decides?&lt;/h2&gt;
&lt;p&gt;You decide first, then defend it. Scope follows risk, not the org chart:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;
    &lt;strong&gt;Financial reporting (SOX):&lt;/strong&gt; quoting, orders, billing, revenue
    objects and any automation that can change those values, including integration
    users.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Personal data (GDPR and similar):&lt;/strong&gt; Contact, Lead, Case, Person
    Account, chat transcripts and every sandbox copy.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Privileged access:&lt;/strong&gt; Modify All Data, View All Data, Manage Users,
    Author Apex, and anyone who can deploy.
  &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
  Write this down as a one-page scope memo before the kickoff call. An auditor who has
  to define scope for you will define it generously.
&lt;/p&gt;

&lt;h2&gt;How do you produce access evidence without screenshots?&lt;/h2&gt;
&lt;p&gt;
  Screenshots age badly and prove nothing about the other 51 weeks of the year. Export
  instead, on a schedule:
&lt;/p&gt;
&lt;ol&gt;
  &lt;li&gt;
    &lt;strong&gt;Query the permission objects.&lt;/strong&gt; &lt;code&gt;PermissionSetAssignment&lt;/code&gt;,
    &lt;code&gt;ObjectPermissions&lt;/code&gt; and &lt;code&gt;FieldPermissions&lt;/code&gt; give you the real
    picture, including everything granted through permission set groups.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Export Login History.&lt;/strong&gt; Salesforce keeps six months online and lets
    you download it as CSV. Dormant accounts with live privileges are the classic
    finding.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Run Security Health Check and Optimizer&lt;/strong&gt; and keep the output.
    Auditors accept a dated self-assessment as evidence that monitoring exists.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Do the review quarterly, with a named approver.&lt;/strong&gt; An access review
    nobody signed is not a control. Record the reviewer, the date and the exceptions.
  &lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
  Integration users deserve their own line. They usually carry the widest permissions
  and the least scrutiny, and auditors have learned to look there first.
&lt;/p&gt;

&lt;h2&gt;How do you produce change evidence?&lt;/h2&gt;
&lt;p&gt;
  This is where change sets hurt. They cannot separate the person who builds from the
  person who deploys, and they leave no linked approval. A pipeline answers with links:
  the work item and its business reason, the commit showing exactly which metadata
  moved, the pull request with a reviewer who is not the author, the test result, and
  the deployment record.
&lt;/p&gt;
&lt;p&gt;
  Two properties decide whether it passes. The evidence must be immutable, and it must
  be complete, meaning there is no route to production that bypasses it. A process
  covering most changes still fails, because the sample can land on the exception.
&lt;/p&gt;
&lt;p&gt;
  Native history helps but does not carry the whole load. Setup Audit Trail holds 180
  days and is queryable through the &lt;code&gt;SetupAuditTrail&lt;/code&gt; object before it is
  purged. Field History Tracking keeps roughly 18 months in the UI and 24 through the
  API, unless you licence
  &lt;a
    href=&quot;https://help.salesforce.com/s/articleView?id=xcloud.field_audit_trail.htm&amp;amp;type=5&quot;
    &gt;Field Audit Trail&lt;/a
  &gt;
  with
  &lt;a href=&quot;https://www.salesforce.com/platform/shield/guide/&quot;&gt;Salesforce Shield&lt;/a&gt; and
  set a retention policy. Audit cycles are annual, so keep your own copy in Git and your
  DevOps platform.
&lt;/p&gt;

&lt;h2&gt;How do you prove retention and deletion?&lt;/h2&gt;
&lt;p&gt;
  Retention is the question teams answer worst, because nobody owns it. Three artefacts
  settle it:
&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;
    A data map: which objects and fields hold personal data, and the lawful basis for
    each.
  &lt;/li&gt;
  &lt;li&gt;
    A retention schedule per object, with the deletion mechanism named (scheduled job,
    archive, hard delete).
  &lt;/li&gt;
  &lt;li&gt;
    A deletion log showing that erasure requests were executed, including in sandboxes
    and backups.
  &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
  The sandbox line is the one that surprises people. A full sandbox refreshed from
  production is a copy of the same personal data in a less controlled environment. Seed
  a subset and mask personal fields as part of the refresh job, so the control evidences
  itself.
&lt;/p&gt;

&lt;h2&gt;How do you prepare in two weeks instead of two months?&lt;/h2&gt;
&lt;ol&gt;
  &lt;li&gt;
    &lt;strong&gt;Days 1-2:&lt;/strong&gt; write the scope memo and name an owner per evidence pack.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Days 3-5:&lt;/strong&gt; export access data, run Health Check, list every
    integration user and privileged profile.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Days 6-8:&lt;/strong&gt; pull 10 recent production changes at random and walk each
    one end to end. Whatever you cannot trace is your real finding.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Days 9-10:&lt;/strong&gt; write the retention schedule and check sandbox data
    handling.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Then automate what you just did by hand,&lt;/strong&gt; so next year is an export
    rather than a project.
  &lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
  That last step is the whole game. Teams that pass cleanly are not the ones with the
  tidiest org, they are the ones whose controls run on their own and leave a trail.
  &lt;a href=&quot;/&quot;&gt;Tekunda&lt;/a&gt; builds Salesforce this way as a certified SI, ISV and PDO, and
  we have taken managed packages through AppExchange security review in healthcare,
  logistics and manufacturing, where the evidence bar is set by someone else.
&lt;/p&gt;

&lt;h2&gt;FAQ&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;How long does Salesforce keep setup change history?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  Setup Audit Trail retains 180 days, then purges. Export it on a schedule or keep the
  equivalent record in your DevOps platform.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Do we need Salesforce Shield to pass an audit?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  Not necessarily. Shield extends field history retention and adds Event Monitoring,
  which helps, but the controls and their evidence matter more than the licence.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;How often should we run user access reviews?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  Quarterly for privileged and integration users, at least annually for everyone else,
  with a named approver recorded each time.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Is a full sandbox with production data a problem?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  It can be. Treat it as a processing activity: seed a subset instead of cloning, mask
  personal fields during the refresh, and restrict access as you would in production.
&lt;/p&gt;
</content:encoded>
        </item>
        <item>
            <title><![CDATA[How to keep a Salesforce org secure as your team scales]]></title>
            <description><![CDATA[Salesforce security degrades through permission sprawl and over-privileged integration users, not attacks. The controls that survive headcount growth.]]></description>
            <link>https://tekunda.com/blog/How-to-keep-a-Salesforce-org-secure-as-your-team-scales</link>
            <guid isPermaLink="false">https://tekunda.com/blog/How-to-keep-a-Salesforce-org-secure-as-your-team-scales</guid>
            <dc:creator><![CDATA[Tekunda Team]]></dc:creator>
            <pubDate>Sat, 25 Jul 2026 12:00:00 GMT</pubDate>
            <content:encoded>&lt;p&gt;
  &lt;strong&gt;Short answer:&lt;/strong&gt; Salesforce orgs almost never become insecure because
  someone attacked them. They become insecure because permissions accumulate faster than
  anyone removes them, and because integration users are handed far more access than the
  integration needs. Both problems are silent, both scale with headcount, and both are
  fixed by design decisions rather than by security products.
&lt;/p&gt;

&lt;h2&gt;What actually degrades Salesforce security as a team grows?&lt;/h2&gt;
&lt;p&gt;Two mechanisms, and neither of them looks like a breach on the day it happens.&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;
    &lt;strong&gt;Permission sprawl.&lt;/strong&gt; Access is granted as a series of exceptions.
    Someone needs a report on Friday, gets a permission set, and keeps it for three
    years. Multiply by every hire, every project, every leaver whose access was never
    reclaimed.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Over-privileged integration users.&lt;/strong&gt; The middleware needs to write to
    two objects, so it gets a System Administrator profile because that is the fastest
    way to make the sync work.
  &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
  Both are additive by nature. Nothing in the platform removes access on its own. That
  asymmetry, easy to grant and nobody&apos;s job to revoke, is the entire story of how a
  well-designed org becomes an audit problem in two years.
&lt;/p&gt;

&lt;h2&gt;Why does permission sprawl happen even in disciplined teams?&lt;/h2&gt;
&lt;p&gt;Because the fast path and the correct path point in different directions:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;
    &lt;strong&gt;Cloning is easier than modelling.&lt;/strong&gt; Cloning a profile takes a minute
    and creating a proper permission set group takes an afternoon, so orgs end up with
    dozens of near-identical profiles nobody dares consolidate.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Temporary access has no expiry.&lt;/strong&gt; Salesforce will not take it back
    for you, and no ticket exists to remind anyone.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Nobody owns removal.&lt;/strong&gt; Grants have a requester. Revocations have
    nobody, which is why access reviews get scheduled and then quietly skipped.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Sensitive permissions hide in aggregate.&lt;/strong&gt; Two harmless permission
    sets can combine into an ability neither was meant to grant.
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;What permission model survives headcount growth?&lt;/h2&gt;
&lt;p&gt;
  The model that scales is boring and well documented. What matters is committing to it
  before you have 200 users, not after.
&lt;/p&gt;
&lt;ol&gt;
  &lt;li&gt;
    &lt;strong&gt;Minimal base profile.&lt;/strong&gt; Give the profile only what every user in that
    licence type needs. No object access that belongs to a job function.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Permission sets for capabilities, not for people.&lt;/strong&gt; A permission set
    should describe a task, so its name should survive the person who first needed it.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Permission set groups for roles&lt;/strong&gt;, with muting where a group grants
    slightly too much. This is the mechanism that lets you assemble a role without
    cloning yet another profile.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Automate assignment with User Access Policies&lt;/strong&gt; so joiners and movers
    get access from criteria rather than from memory.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Keep the dangerous permissions on a named list.&lt;/strong&gt; Modify All Data,
    View All Data, API Enabled, export and Manage Users deserve an owner and a written
    justification per holder. If that list is longer than your leadership team, you have
    found your first project.
  &lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
  Salesforce Ben&apos;s
  &lt;a
    href=&quot;https://www.salesforceben.com/salesforce-admins-how-to-implement-the-principle-of-least-privilege/&quot;
    &gt;walkthrough of least privilege&lt;/a
  &gt;
  is a good companion if you want the click-level detail. The design decision above is
  the part that has to come from you.
&lt;/p&gt;

&lt;h2&gt;Why are integration users the biggest blind spot?&lt;/h2&gt;
&lt;p&gt;
  Because they are invisible in every conversation about security. They do not attend
  onboarding, they never leave the company, and nobody reviews them when a project ends.
  Meanwhile they typically hold broader data access than any human in the org and they
  authenticate without MFA prompts.
&lt;/p&gt;
&lt;p&gt;Four rules that hold up as the integration count grows:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;
    &lt;strong&gt;One integration user per integration.&lt;/strong&gt; Shared integration users make
    it impossible to answer who wrote a record, and impossible to revoke one system
    without breaking another.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Use the API-only integration licence where you can.&lt;/strong&gt; Salesforce
    provides
    &lt;a
      href=&quot;https://www.salesforceben.com/how-to-set-up-free-api-only-integration-users/&quot;
      &gt;five free Salesforce Integration licences&lt;/a
    &gt;
    on Enterprise, Unlimited and Performance editions, with no UI access at all, which
    removes an entire class of misuse.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Scope to objects and fields, not to profiles.&lt;/strong&gt; Write down what the
    integration is allowed to touch and enforce it with a permission set built for that
    integration alone.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Restrict by IP and monitor the volume.&lt;/strong&gt; An integration user&apos;s
    behaviour is predictable, which means anomalies in it are unusually meaningful
    compared with human activity.
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;Which controls actually survive scale?&lt;/h2&gt;
&lt;p&gt;
  These are the ones that keep working when the team doubles, ordered by how much they
  repay the effort:
&lt;/p&gt;
&lt;ol&gt;
  &lt;li&gt;
    &lt;strong&gt;Deploy permissions through the pipeline, not by hand in production.&lt;/strong&gt;
    If access changes are in version control, every grant has an author, a review and a
    date. This one control makes the next four possible.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Run a recurring access review with a named owner&lt;/strong&gt; and a fixed
    agenda: the dangerous-permission list, integration users, and anyone whose role
    changed last quarter.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Set an expiry convention for exception access&lt;/strong&gt;, even if you have to
    enforce it with a calendar reminder. Access with no end date is permanent access.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Track Health Check and Setup Audit Trail as a trend&lt;/strong&gt;, not as a
    screenshot before an audit.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Include permissions in code review.&lt;/strong&gt; A profile or permission set
    diff belongs under the same scrutiny as Apex, because it can do more damage faster.
  &lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;How do you know it is working?&lt;/h2&gt;
&lt;p&gt;
  Pick metrics that go down. Count the holders of each dangerous permission. Count
  permissions granted outside a permission set group. Count integration users with UI
  access. Count profiles. If those four numbers are not falling quarter on quarter, your
  security posture is drifting even if nothing has gone wrong yet.
&lt;/p&gt;

&lt;h2&gt;FAQ&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Are profiles deprecated in Salesforce?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  No, and you still need one per user. The practical guidance is to keep profiles
  minimal and to express everything role-specific through permission sets and permission
  set groups.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;How often should access be reviewed?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  Quarterly for dangerous permissions and integration users, and immediately on any role
  change or departure. An annual review is an audit exercise, not a control.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Do integration users need MFA?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  API-only integration users authenticate system to system, so the meaningful controls
  are IP restrictions, scoped permissions and monitoring rather than an MFA prompt no
  human will ever see.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Is this a security tooling problem?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  Tools help you see the sprawl. They do not decide who should have access. The
  decisions are architectural, which is why the fix belongs in your delivery process
  rather than in a product purchase.
&lt;/p&gt;

&lt;p&gt;
  We build on Salesforce as a certified SI, ISV and PDO, and we have taken packages
  through AppExchange security review in healthcare, logistics and manufacturing, so the
  permission model is something we design rather than inherit. If your org has grown
  faster than its access model, &lt;a href=&quot;/&quot;&gt;talk to us&lt;/a&gt;.
&lt;/p&gt;
</content:encoded>
        </item>
        <item>
            <title><![CDATA[How connected-device teams cut support cases by 93 percent on Salesforce]]></title>
            <description><![CDATA[Routing device telemetry into Service Cloud took one fleet from 3,000 weekly cases to 350. The architecture, triage design and operating model.]]></description>
            <link>https://tekunda.com/blog/How-connected-device-teams-cut-support-cases-by-93-percent-on-Salesforce</link>
            <guid isPermaLink="false">https://tekunda.com/blog/How-connected-device-teams-cut-support-cases-by-93-percent-on-Salesforce</guid>
            <dc:creator><![CDATA[Tekunda Team]]></dc:creator>
            <pubDate>Fri, 24 Jul 2026 12:00:00 GMT</pubDate>
            <content:encoded>&lt;p&gt;
  &lt;strong&gt;Short answer:&lt;/strong&gt; connected-device teams do not cut case volume by
  staffing support harder. They cut it by letting the device report its own fault,
  resolving most of those reports automatically, and reserving a Salesforce case for the
  exception that genuinely needs a person. On a programme we delivered for ASSA ABLOY
  (FocusCura and Phoniro), that model took weekly support cases from roughly 3,000 to
  350, a 93 percent reduction, across 11,000 connected devices and up to 2.5 million
  events per week in three markets, with no added support staff.
&lt;/p&gt;

&lt;h2&gt;What is telemetry-driven service?&lt;/h2&gt;
&lt;p&gt;
  Telemetry-driven service is a model where the asset opens the conversation instead of
  the customer. Device events flow into the CRM continuously, get matched to an asset
  and an entitlement, and trigger a resolution path before anyone picks up a phone.
&lt;/p&gt;
&lt;p&gt;
  Three levels are worth separating, because most teams collapse them into one word:
&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;
    &lt;strong&gt;Reactive.&lt;/strong&gt; The customer notices the fault and calls. Every incident
    costs an agent.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Proactive.&lt;/strong&gt; The platform notices first and warns someone. Better for
    the customer, but a human still handles it.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Autonomous triage.&lt;/strong&gt; The platform notices, classifies and remediates.
    A case exists only when the remediation fails.
  &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
  Almost all of the 93 percent lives in the jump from proactive to autonomous. Proactive
  alerting on its own tends to &lt;em&gt;increase&lt;/em&gt; workload, because you have added a
  queue without removing the old one.
&lt;/p&gt;

&lt;h2&gt;How does a device event become a resolved incident without a case?&lt;/h2&gt;
&lt;ol&gt;
  &lt;li&gt;
    &lt;strong&gt;Ingest at event rate, not at case rate.&lt;/strong&gt; Millions of weekly events
    belong in a data layer built for volume. Salesforce now calls that layer
    &lt;a
      href=&quot;https://www.salesforceben.com/salesforce-data-cloud-renamed-to-data-360-as-part-of-agentforce-360/&quot;
      &gt;Data 360&lt;/a
    &gt;, the renamed Data Cloud that sits under Agentforce 360.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Resolve identity before anything else.&lt;/strong&gt; Every event is matched to an
    asset record, its location, its customer and its entitlement. An event that cannot
    be attributed is an integration defect, not an incident.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Classify against a rule set.&lt;/strong&gt; Signature patterns map to known fault
    classes with a known remedy: reboot, re-pair, firmware push, consumable order,
    dispatch.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Remediate automatically where the remedy is deterministic.&lt;/strong&gt; Most
    field faults are a small set of repeats. Automate the repeats first and the long
    tail never becomes urgent.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Create a case only on escalation.&lt;/strong&gt; The case is opened after
    automation has tried and failed, and it carries the full attempt history so the
    agent does not start from zero.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong
      &gt;Dispatch through Field Service only when someone must physically attend&lt;/strong
    &gt;, with the part and the diagnosis already attached to the work order.
  &lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;Which device events deserve a case at all?&lt;/h2&gt;
&lt;p&gt;
  This is the question most published guidance on connected service skips, and it is
  where the number actually comes from. A case is a unit of human work, not a unit of
  telemetry. Sort every event signature into one of three buckets before you build
  anything:
&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;
    &lt;strong&gt;Noise.&lt;/strong&gt; Transient, self-correcting, no customer impact. Suppress it
    and count it. Never surface it.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Deterministic.&lt;/strong&gt; Known fault, known fix, no judgement required.
    Automate end to end.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Ambiguous.&lt;/strong&gt; Needs a person, a decision or a visit. This is the only
    bucket allowed to create a case.
  &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
  Teams that skip this exercise end up with proactive alerting that generates more
  tickets than the old phone line did.
&lt;/p&gt;

&lt;h2&gt;What did the 93 percent look like in practice?&lt;/h2&gt;
&lt;p&gt;
  ASSA ABLOY&apos;s connected-care business ran a fleet of 11,000 devices producing up to 2.5
  million events a week across three markets. Support was absorbing around 3,000 cases a
  week, and the obvious answer on the table was to hire.
&lt;/p&gt;
&lt;p&gt;
  Instead the telemetry was routed into Service Cloud through an autonomous triage
  layer, and the fleet began resolving itself. Weekly cases settled at about 350.
  Support headcount did not move.
&lt;/p&gt;
&lt;p&gt;Two details matter more than the headline:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;
    &lt;strong&gt;The cases that remain are harder, and that is correct.&lt;/strong&gt; What is left
    is the ambiguous bucket. Expect average handle time per case to rise while total
    service cost falls, and have that conversation with your service director before
    go-live, not after.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Nothing was rebuilt per market.&lt;/strong&gt; The device-to-Service-Cloud path
    shipped as a packaged 2GP component, which is what made the second and third market
    cheap rather than a repeat project.
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;What operating model makes the reduction stick?&lt;/h2&gt;
&lt;p&gt;
  Architecture gets you the first drop. The operating model is what stops it drifting
  back within two quarters.
&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;
    &lt;strong&gt;Treat the rule set as product, not configuration.&lt;/strong&gt; Version it in
    source control, review it, deploy it through a pipeline, and be able to roll it
    back. Rules edited live in production always rot.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Give service leadership ownership of thresholds.&lt;/strong&gt; The people who
    feel the queue should be able to change what fires without waiting for a release.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Measure cases per thousand devices, not cases.&lt;/strong&gt; Absolute case count
    flatters you when the fleet is flat and punishes you when you win customers. The
    ratio is the only honest signal.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Review the suppression list on a fixed cadence.&lt;/strong&gt; Everything you
    silenced is a bet, and firmware changes turn good bets bad.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Keep one asset record.&lt;/strong&gt; The moment device state lives in two
    systems, agents stop trusting the automation and start opening cases defensively.
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;Where does this usually go wrong?&lt;/h2&gt;
&lt;ul&gt;
  &lt;li&gt;
    &lt;strong&gt;Alerting without remediation.&lt;/strong&gt; A dashboard of red tiles is a new
    job, not a saved one.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Storing every raw event as a platform record.&lt;/strong&gt; Event volume and case
    volume are different orders of magnitude and belong in different places.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;No entitlement in the path.&lt;/strong&gt; Without contract context the automation
    cannot decide who pays for the visit, so it escalates everything to be safe.
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;FAQ&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Do you need Data 360 to start?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  Not for a pilot. You need a volume data layer when event rate outgrows what your core
  org should be storing, which for most fleets happens well before the millions-per-week
  mark.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Does this replace Field Service?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  No. It reduces how many dispatches happen and improves the ones that remain, because
  the diagnosis and the part are known before the van leaves.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;How quickly does case volume move?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  The first measurable drop comes from the deterministic bucket, which is also the
  smallest build. Sequence that first and you get proof before you get scope.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Will Agentforce do this out of the box?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  Agentforce reasons over the context you give it. It does not invent your fault
  taxonomy, so the classification rules, asset data and entitlement model still have to
  exist underneath.
&lt;/p&gt;

&lt;p&gt;
  We build this pattern as Tekunda IoT Cloud: device events to autonomous triage on
  Service Cloud, Field Service dispatch, grounded in Data 360. If you run a connected
  fleet and your case queue grows with your install base, &lt;a href=&quot;/&quot;&gt;talk to us&lt;/a&gt;.
&lt;/p&gt;
</content:encoded>
        </item>
        <item>
            <title><![CDATA[How to Scope a Salesforce Project So It Ships on Time]]></title>
            <description><![CDATA[Fixed-scope Salesforce projects slip because discovery priced features, not decisions. Outcome-based scoping with explicit non-goals fixes it.]]></description>
            <link>https://tekunda.com/blog/How-to-Scope-a-Salesforce-Project-So-It-Ships-on-Time</link>
            <guid isPermaLink="false">https://tekunda.com/blog/How-to-Scope-a-Salesforce-Project-So-It-Ships-on-Time</guid>
            <dc:creator><![CDATA[Tekunda Team]]></dc:creator>
            <pubDate>Thu, 23 Jul 2026 12:00:00 GMT</pubDate>
            <content:encoded>&lt;p&gt;
  A Salesforce project ships on time when the scope prices the decisions the project
  needs, not the features it will build. Most fixed-scope projects slip because
  discovery produced a feature list, and a feature list is silent about who has to
  decide what, and by when. The fix is an outcome, a decision register, and a written
  list of non-goals.
&lt;/p&gt;

&lt;h2&gt;Why do fixed-scope Salesforce projects slip?&lt;/h2&gt;
&lt;p&gt;
  Not because the build was underestimated. Build estimates are usually close. The
  calendar breaks somewhere else.
&lt;/p&gt;
&lt;p&gt;
  The numbers are unkind. In its
  &lt;a href=&quot;https://johnnygrow.com/crm/the-crm-failure-rate-is-55-percent/&quot;
    &gt;2025 CRM failure research&lt;/a
  &gt;, Johnny Grow found that 55% of CRM deployments did not achieve their planned
  objectives, roughly 30% met their planned timeline, and only 25% hit objectives,
  timeline and budget together. Seven in ten overran the timeline by 30% or more. Those
  overruns are rarely engineering overruns.
&lt;/p&gt;
&lt;p&gt;
  Here is the actual mechanism. A scope line says &quot;build an approval process for
  discounts over 15%&quot;. The build is three days. The unanswered question underneath it is
  who approves, at what threshold, in which currency, what happens when that person is
  on leave, and whether Finance or Sales owns the exception. That question needs four
  people in a room who are hard to get in a room. It does not go faster if you add
  developers. The project waits, and the wait lands on the delivery date.
&lt;/p&gt;

&lt;h2&gt;What does it mean to price decisions instead of features?&lt;/h2&gt;
&lt;p&gt;
  A feature is work. A decision is a dependency on a human being. Scoping that only
  counts the work produces an estimate that is right about the build and wrong about the
  calendar.
&lt;/p&gt;
&lt;p&gt;Your scope was priced as features if:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Every line starts with build, configure or migrate.&lt;/li&gt;
  &lt;li&gt;No line names a person who has to decide something.&lt;/li&gt;
  &lt;li&gt;
    Integration lines do not say which system is the source of truth for each object.
  &lt;/li&gt;
  &lt;li&gt;Data migration is one line.&lt;/li&gt;
  &lt;li&gt;There is no non-goals section.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
  Each of those is a place where an unmade decision is hiding behind an estimated task.
&lt;/p&gt;

&lt;h2&gt;How do you scope a Salesforce project so it ships on time?&lt;/h2&gt;
&lt;ol&gt;
  &lt;li&gt;
    &lt;strong&gt;Write one outcome sentence, with a number and a date.&lt;/strong&gt; Not &quot;improve
    service efficiency&quot; but &quot;cut weekly manual case triage from X to Y by the end of
    Q2&quot;. If nobody will commit to a number, you do not have a project yet, you have an
    interest.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Build a decision register before a task list.&lt;/strong&gt; Every open question
    that blocks a build, with a named owner and a date it must be answered. This is the
    document that predicts your go-live, not the Gantt chart.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Split known from unknown.&lt;/strong&gt; Work you have done before gets an
    estimate. Work you have not gets a timebox and an explicit exit condition. Never
    average the two into one number.
  &lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Write the non-goals down and get them read aloud.&lt;/strong&gt; See below.&lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Slice to a first release a real user group uses in production.&lt;/strong&gt; One
    team, one process, live. A pilot that nobody depends on teaches you nothing about
    the decisions you got wrong.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Fix the cadence, not the scope.&lt;/strong&gt; Two-week sprints with working
    software at the end of each is what lets you trade scope without renegotiating the
    contract. That is how we run engagements at &lt;a href=&quot;/&quot;&gt;Tekunda&lt;/a&gt;, and it is why a
    fixed date survives a changed requirement.
  &lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;What belongs in a non-goals list?&lt;/h2&gt;
&lt;p&gt;
  A non-goal is something a reasonable person would assume is included, written down as
  excluded. It is the cheapest artefact in the project and the one most often skipped.
&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;
    Things stakeholders asked for that are not in this release, named, not summarised.
  &lt;/li&gt;
  &lt;li&gt;
    Silent assumptions: historical data beyond a stated cutoff, offline mobile, a second
    language, a second country&apos;s tax rules.
  &lt;/li&gt;
  &lt;li&gt;Processes that stay outside Salesforce for now.&lt;/li&gt;
  &lt;li&gt;
    Integrations that will be one-way in this release even though everyone pictures
    two-way.
  &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
  The rule that makes it work: a non-goal only counts if the person who asked for it has
  seen it in writing and not objected. A non-goals list nobody read is just a defence
  exhibit for the post-mortem.
&lt;/p&gt;

&lt;h2&gt;How do you handle the request that arrives in week six?&lt;/h2&gt;
&lt;p&gt;
  It will arrive, and refusing it outright is usually the wrong answer, because week-six
  requests are often better informed than week-one requests. Ask two questions:
&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;
    Does it change the outcome number? If yes, it is a re-scope and needs the sponsor.
  &lt;/li&gt;
  &lt;li&gt;
    Does it invalidate a decision already made and built on? If yes, price the rework
    separately and visibly.
  &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
  If neither, trade it. Something of comparable size leaves the release and moves to the
  non-goals list, in writing, the same day. Adding without subtracting is how a date
  quietly dies.
&lt;/p&gt;

&lt;h2&gt;What does a scope document that survives contact contain?&lt;/h2&gt;
&lt;ul&gt;
  &lt;li&gt;One outcome sentence with a metric and a date.&lt;/li&gt;
  &lt;li&gt;A decision register: question, owner, due date, status.&lt;/li&gt;
  &lt;li&gt;Assumptions, each one falsifiable.&lt;/li&gt;
  &lt;li&gt;Non-goals, named and acknowledged.&lt;/li&gt;
  &lt;li&gt;Data scope: which objects, how far back, who owns cleansing.&lt;/li&gt;
  &lt;li&gt;System of record per object, and the direction of every integration.&lt;/li&gt;
  &lt;li&gt;Definition of done for the first release, in user terms.&lt;/li&gt;
  &lt;li&gt;What happens after go-live, including who holds the backlog.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
  Eight items. It fits on two pages, and it will tell you more about your delivery date
  than a three-hundred-line requirements matrix.
&lt;/p&gt;

&lt;h2&gt;FAQ&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;How long should Salesforce discovery take?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  Long enough to close the decisions that block the first release, and no longer. Judge
  it by the state of the decision register, not by a fixed number of weeks.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Is fixed-scope always the wrong model for Salesforce?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  No, but it only works when the decisions are already made. Fixed scope on an undecided
  process fixes the wrong variable and the date pays for it.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What is the difference between a non-goal and out of scope?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  Out of scope is contractual. A non-goal is communicated. The value is in the
  stakeholder having read it, not in it being defensible later.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Who should own the decision register?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  Someone on the client side with the authority to escalate. If your delivery partner
  owns it, every overdue decision becomes a vendor complaint rather than an internal
  deadline.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Can phasing fix a scope that is too big?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  Only if each phase goes live to real users. Phases that all land at the end are one
  project with extra documents.
&lt;/p&gt;
</content:encoded>
        </item>
        <item>
            <title><![CDATA[How to Run a Successful Salesforce Data Migration]]></title>
            <description><![CDATA[A migration playbook: profiling, what not to move, mapping with external IDs, dry runs and a cutover plan you can actually execute.]]></description>
            <link>https://tekunda.com/blog/How-to-Run-a-Successful-Salesforce-Data-Migration</link>
            <guid isPermaLink="false">https://tekunda.com/blog/How-to-Run-a-Successful-Salesforce-Data-Migration</guid>
            <dc:creator><![CDATA[Tekunda Team]]></dc:creator>
            <pubDate>Wed, 22 Jul 2026 12:00:00 GMT</pubDate>
            <content:encoded>&lt;p&gt;
  &lt;strong&gt;Short answer:&lt;/strong&gt; a Salesforce data migration is decided in the
  data-quality phase, weeks before load day. Profile the source data, decide
  deliberately what not to move, map every field with an external ID behind it, then
  rehearse the cutover until it is boring. Loading is the easy part, and it is almost
  never what goes wrong.
&lt;/p&gt;

&lt;h2&gt;Why do Salesforce data migrations actually fail?&lt;/h2&gt;
&lt;p&gt;
  Rarely because of the load. Data Loader, Bulk API and the ETL tools all work. Failures
  trace back to decisions dodged earlier:
&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;No named owner for a data domain, so nobody could approve a rule.&lt;/li&gt;
  &lt;li&gt;Duplicates that everyone saw and nobody agreed how to resolve.&lt;/li&gt;
  &lt;li&gt;A source field whose meaning drifted years ago and was mapped on its label.&lt;/li&gt;
  &lt;li&gt;
    A scope that quietly became &quot;everything&quot;, because deleting nothing felt safer than
    choosing.
  &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
  All four are cheap to fix in week two and brutal on cutover night. That is the whole
  argument for front-loading data quality.
&lt;/p&gt;

&lt;h2&gt;What does profiling actually mean here?&lt;/h2&gt;
&lt;p&gt;
  Profiling is measurement, not inspection. Before anyone writes a mapping row, produce
  numbers for each source object:
&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;
    &lt;strong&gt;Fill rate per field.&lt;/strong&gt; A field populated in 4% of records is not a
    field, it is a rumour.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Distinct values against the target picklist.&lt;/strong&gt; This is where
    &quot;Prospect&quot;, &quot;prospect&quot; and &quot;PROSPECT &quot; become three values and one argument.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Duplicate rate on the intended matching key.&lt;/strong&gt; Measure it before you
    choose the key, not after.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Orphan rate on every relationship.&lt;/strong&gt; Child records with no resolvable
    parent decide your load order and your error volume.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Owner resolution rate.&lt;/strong&gt; What percentage of records map to an active
    Salesforce user, and who gets the rest.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Date ranges and outliers.&lt;/strong&gt; Records dated 1900 or 2099 fail a
    validation rule at the worst moment.
  &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
  The output is a short profile report. Its real job is turning opinions into numbers,
  so scope conversations end in a decision instead of a meeting.
&lt;/p&gt;

&lt;h2&gt;What should you decide not to migrate?&lt;/h2&gt;
&lt;p&gt;
  This is the highest-leverage decision in the project and the one most plans skip.
  Every record has four possible fates, and only one of them is expensive:
&lt;/p&gt;
&lt;ol&gt;
  &lt;li&gt;
    &lt;strong&gt;Migrate.&lt;/strong&gt; It is needed operationally, in Salesforce, by a named
    process.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Summarise.&lt;/strong&gt; The history matters as an aggregate, not row by row.
    Load a rollup, not ten years of transactions.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Archive.&lt;/strong&gt; Keep it in a warehouse or export for compliance, out of
    the CRM.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Leave it.&lt;/strong&gt; Keep the legacy system read-only for a defined period and
    let people look things up.
  &lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
  Sensible defaults: closed records older than your reporting horizon get summarised,
  contacts with no activity and no reachable email get archived, and free-text fields
  nobody reports on do not come across at all. Every record you exclude removes mapping
  effort, validation failures, test cases and post-go-live support. Reduced scope is the
  cheapest performance improvement available.
&lt;/p&gt;

&lt;h2&gt;How do you build a mapping that survives contact with the data?&lt;/h2&gt;
&lt;p&gt;
  One row per target field, carrying: source field, transform rule, default value,
  owner, the validation it must pass, and the sign-off date. A row with no owner is not
  a mapping, it is a hope.
&lt;/p&gt;
&lt;p&gt;Two technical decisions determine how calm the rest of the project is:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;
    &lt;strong&gt;Put an external ID on every object you load.&lt;/strong&gt; It carries the legacy
    key, so parent-child relationships resolve without Salesforce IDs, upsert makes
    loads idempotent, and a re-run is safe. Without it, every retry risks duplicates.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Choose the matching key before you write a single transform.&lt;/strong&gt; Email,
    tax number, legacy ID, or a composite. The profile report tells you which of them is
    actually unique in your data.
  &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
  Then decide, in writing, which automation is suspended during the load and who turns
  it back on: validation rules, triggers, flows, assignment rules, duplicate rules and
  email alerts. An unplanned welcome email to 40,000 migrated contacts is the classic
  version.
&lt;/p&gt;

&lt;h2&gt;How many dry runs, and what do you measure?&lt;/h2&gt;
&lt;p&gt;Three, minimum, in a sandbox that resembles production.&lt;/p&gt;
&lt;ol&gt;
  &lt;li&gt;
    &lt;strong&gt;Shape run.&lt;/strong&gt; Does it load at all? Field types, required fields,
    picklist values, record types.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Correctness run.&lt;/strong&gt; Validate relationships rather than row counts.
    Matching totals with broken parents is the most reassuring failure mode in this
    whole discipline.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Timed run.&lt;/strong&gt; Full volume, measured end to end, so the cutover window
    is a number you observed rather than one you estimated.
  &lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
  Keep every error log and treat the error rate as a trend. If run three is not
  materially cleaner than run one, the mapping is not converging and the go-live date is
  fiction.
&lt;/p&gt;

&lt;h2&gt;What belongs in the cutover plan?&lt;/h2&gt;
&lt;p&gt;
  A cutover plan is a sequence with clock times and an owner per line, not a narrative:
&lt;/p&gt;
&lt;ol&gt;
  &lt;li&gt;
    Freeze the source system and announce the freeze to users, not just to the project
    channel.
  &lt;/li&gt;
  &lt;li&gt;Take the final delta extract.&lt;/li&gt;
  &lt;li&gt;Suspend the automation on the agreed list.&lt;/li&gt;
  &lt;li&gt;
    Load parents before children, in the declared order, in waves that isolate errors.
  &lt;/li&gt;
  &lt;li&gt;Re-enable automation and confirm each item is back on.&lt;/li&gt;
  &lt;li&gt;
    Run reconciliation queries: counts per object, orphan checks, spot checks on named
    records that business users chose in advance.
  &lt;/li&gt;
  &lt;li&gt;Business sign-off against those named records, then go or no-go.&lt;/li&gt;
  &lt;li&gt;Unfreeze, or execute the rollback.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
  Define rollback before cutover night, while it is a design question and not a panic.
  In practice: keep the legacy system authoritative and read-only until sign-off, and
  keep an external ID on every migrated record so a targeted delete or full re-load
  stays possible. Then staff the first 48 to 72 hours properly, because day-one
  questions reveal what the profile report missed.
&lt;/p&gt;

&lt;p&gt;
  We run migrations this way on client delivery, and it is part of how we have taken 20+
  organisations live in production. Scoping one and want a second opinion on the data
  before a date is committed? &lt;a href=&quot;/&quot;&gt;Start here&lt;/a&gt;.
&lt;/p&gt;

&lt;h2&gt;FAQ&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;How long does a Salesforce data migration take?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  The load takes hours. The project takes as long as data-quality decisions take, which
  is why the timed dry run, not the plan, should set your cutover window.
&lt;/p&gt;
&lt;p&gt;
  &lt;strong&gt;Should we clean the data in the source system or during the load?&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
  In the source where the owners are, wherever possible. Transform rules in a load
  script are invisible to the business and get re-litigated after go-live.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Do we need external IDs if we migrate only once?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  Yes. They make retries safe, resolve relationships without Salesforce IDs, and are
  what makes a rollback or a targeted re-load possible later.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;How much history should we bring across?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  Only what a named process or report uses. Summarise the rest and archive the remainder
  outside the CRM: history is the most common source of scope creep here.
&lt;/p&gt;
</content:encoded>
        </item>
        <item>
            <title><![CDATA[Salesforce Technical Debt: How to Find It and Pay It Down]]></title>
            <description><![CDATA[Inventory your org's debt, then rank it against the roadmap instead of cleaning wholesale. A practical find-and-pay-down playbook.]]></description>
            <link>https://tekunda.com/blog/Salesforce-Technical-Debt%3A-How-to-Find-It-and-Pay-It-Down</link>
            <guid isPermaLink="false">https://tekunda.com/blog/Salesforce-Technical-Debt%3A-How-to-Find-It-and-Pay-It-Down</guid>
            <dc:creator><![CDATA[Tekunda Team]]></dc:creator>
            <pubDate>Tue, 21 Jul 2026 12:00:00 GMT</pubDate>
            <content:encoded>&lt;p&gt;
  &lt;strong&gt;Short answer:&lt;/strong&gt; Salesforce technical debt is the accumulated cost of
  every past shortcut still sitting in your org, in clicks as much as in code. You find
  it with a full metadata inventory joined to usage data. You pay it down in the order
  your roadmap demands, not top to bottom, because debt that blocks nothing on the
  roadmap can wait, sometimes indefinitely.
&lt;/p&gt;

&lt;h2&gt;What is Salesforce technical debt?&lt;/h2&gt;
&lt;p&gt;
  Technical debt is the extra work a future change will cost because of a decision taken
  earlier. On Salesforce it accumulates faster than on most stacks, for two structural
  reasons: a change is one admin and five clicks away, and nothing in the platform
  expires when people stop using it.
&lt;/p&gt;
&lt;p&gt;It arrives in four shapes:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;
    &lt;strong&gt;Automation debt.&lt;/strong&gt; Workflow Rules, Process Builder processes and
    Flows doing overlapping work, in a firing order nobody can draw on a whiteboard.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Configuration debt.&lt;/strong&gt; Fields nobody has filled in two years, layouts
    for roles that no longer exist, profiles carrying permissions that belong in
    permission sets.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Code debt.&lt;/strong&gt; More than one trigger per object, tests written to reach
    a coverage number rather than to assert behaviour, hardcoded IDs.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Integration debt.&lt;/strong&gt; Callers pinned to API versions the platform no
    longer serves, and middleware whose owner has left the company.
  &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
  Only the fourth kind breaks loudly. The other three quietly tax every project you run.
&lt;/p&gt;

&lt;h2&gt;Where is it hiding right now?&lt;/h2&gt;
&lt;p&gt;
  Two dated items are worth checking this week, because the platform moved and most orgs
  did not.
&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;
    &lt;strong&gt;Workflow Rules and Process Builder are past end of support.&lt;/strong&gt;
    Salesforce set that date at 31 December 2025. Anything still on them keeps running,
    but bugs will not be fixed and you cannot build new ones. The Migrate to Flow tool
    exists for exactly this.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Legacy API versions are gone.&lt;/strong&gt; Platform API versions 21.0 through
    30.0 across SOAP, REST and Bulk were deprecated in Summer &apos;22 and
    &lt;a href=&quot;https://help.salesforce.com/s/articleView?id=000354473&amp;amp;type=1&quot;
      &gt;retired with Summer &apos;25&lt;/a
    &gt;. Callers now receive 410 GONE on REST, 500 UNSUPPORTED_API_VERSION on SOAP and 400
    InvalidVersion on Bulk. If an old nightly job went quiet, check this first.
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;How do you inventory debt without stopping delivery?&lt;/h2&gt;
&lt;ol&gt;
  &lt;li&gt;
    &lt;strong&gt;Run Salesforce Optimizer and export it.&lt;/strong&gt; Free, in Setup, and it
    hands you a starting list rather than an opinion.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Retrieve the org metadata into source control.&lt;/strong&gt; Even if you never
    deploy from it, you now have something to grep, diff and count.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Join the inventory to usage.&lt;/strong&gt; Field history, report and dashboard
    subscriptions, page views, Apex logs. A field with no reads and no writes in twelve
    months is a candidate; the same field on an object carrying 400 others is a
    priority.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Map dependencies before you delete anything.&lt;/strong&gt; The where-is-this-used
    question is the entire difference between a cleanup and an outage.
  &lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Name an owner per area.&lt;/strong&gt; Debt with no owner is never paid.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
  For a mid-sized org this is a two-week exercise that runs alongside a normal sprint.
  What it produces is a register, not a project plan.
&lt;/p&gt;

&lt;h2&gt;How should you rank what you found?&lt;/h2&gt;
&lt;p&gt;
  This is where most debt programmes go wrong. Ranking by severity orders the list by
  how bad things look; ranking by effort orders it by how easy they are. Neither is a
  list your business will fund twice.
&lt;/p&gt;
&lt;p&gt;
  Rank against the roadmap instead. For every item in the register, ask one question:
  &lt;em&gt;which committed roadmap item does this make slower, riskier or impossible?&lt;/em&gt;
  That single question sorts the register into three tiers.
&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;
    &lt;strong&gt;Blocking.&lt;/strong&gt; The roadmap item cannot ship until the debt is paid. Do
    the work inside that project, funded by that project, with its business case.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Taxing.&lt;/strong&gt; The roadmap item ships anyway, but costs more or carries
    risk it should not. Do it in the sprint before, tightly scoped.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Dormant.&lt;/strong&gt; Nothing on the roadmap touches it. Log it, monitor it, do
    not fund it.
  &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
  Two categories override the ranking: anything with a security or compliance
  consequence, and anything failing silently in production. Those are fixed regardless
  of what the roadmap says, because their cost is not paid in delivery time.
&lt;/p&gt;

&lt;h2&gt;Why does wholesale cleanup fail?&lt;/h2&gt;
&lt;p&gt;Three reasons, and we have watched all three.&lt;/p&gt;
&lt;ol&gt;
  &lt;li&gt;
    &lt;strong&gt;No visible outcome.&lt;/strong&gt; An org-wide cleanup produces no feature and no
    number a sponsor can point at, so it loses its budget the first time priorities are
    re-cut.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Attribution damage.&lt;/strong&gt; Deleting metadata nobody was watching causes an
    incident, the incident gets attributed to the cleanup, and the next one never gets
    approved.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;It never converges.&lt;/strong&gt; An org that shipped all year has fresh debt
    before the sweep finishes. Pay-down attached to roadmap items ends when the item
    ships.
  &lt;/li&gt;
&lt;/ol&gt;
&lt;blockquote&gt;
  &lt;p&gt;
    The goal is not a clean org. It is an org where the next twelve months of roadmap
    can be delivered at a predictable cost.
  &lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;What cadence actually works?&lt;/h2&gt;
&lt;ul&gt;
  &lt;li&gt;
    &lt;strong&gt;Every sprint.&lt;/strong&gt; A fixed slice of capacity, commonly 10 to 20%, spent
    on taxing debt in the areas the next stories touch.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Every Salesforce release.&lt;/strong&gt; Three times a year, re-run Optimizer,
    re-read the retirement notices and re-check the API versions your integrations
    request.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Every year.&lt;/strong&gt; Refresh the inventory and re-rank against the new
    roadmap. Dormant debt sometimes becomes blocking overnight.
  &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
  One preventive control outperforms all three: deploy from source control, so org state
  is reproducible and every change arrives with an author, a reason and a test. Debt you
  can see in a diff rarely becomes debt you discover in an incident.
&lt;/p&gt;

&lt;p&gt;
  We run this inventory at the start of engagements rather than after the first
  surprise, which is part of how we have taken 20+ organisations live on Salesforce.
  Want a second opinion on your org before committing next year&apos;s roadmap?
  &lt;a href=&quot;/&quot;&gt;Start here&lt;/a&gt;.
&lt;/p&gt;

&lt;h2&gt;FAQ&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;How do I know if my org has too much technical debt?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  Measure it in delivery, not in counts. If routine changes need regression testing
  across unrelated areas, or if nobody can predict what a change will break, the debt is
  already expensive.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Should we delete unused fields?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  Only after a dependency check, and only when something on the roadmap benefits. Unused
  fields are usually dormant debt, and dormant debt is the cheapest thing to leave
  alone.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Is Salesforce Optimizer enough?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  It is the right first move, not the last. Optimizer flags platform-level issues but
  cannot tell you which stand between you and next quarter&apos;s roadmap.
&lt;/p&gt;
&lt;p&gt;
  &lt;strong&gt;Do we have to migrate off Workflow Rules and Process Builder now?&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
  They still run, but passed end of support on 31 December 2025, so defects stay
  unfixed. Migrate the automations your roadmap touches first, not all at once.
&lt;/p&gt;
</content:encoded>
        </item>
        <item>
            <title><![CDATA[Salesforce and SAP Integration Patterns for Manufacturers]]></title>
            <description><![CDATA[Four integration patterns, and why manufacturers should choose on data ownership and latency rather than on middleware brand.]]></description>
            <link>https://tekunda.com/blog/Salesforce-and-SAP-Integration-Patterns-for-Manufacturers</link>
            <guid isPermaLink="false">https://tekunda.com/blog/Salesforce-and-SAP-Integration-Patterns-for-Manufacturers</guid>
            <dc:creator><![CDATA[Tekunda Team]]></dc:creator>
            <pubDate>Sun, 19 Jul 2026 12:00:00 GMT</pubDate>
            <content:encoded>&lt;p&gt;
  &lt;strong&gt;Short answer:&lt;/strong&gt; almost every Salesforce and SAP integration in
  manufacturing reduces to four patterns: batch synchronization, request and reply, data
  virtualization, and event streaming. Pick one per data object, and pick on two
  questions only: which system owns the record, and how stale a copy is allowed to be.
  The middleware follows from those answers, not the other way round.
&lt;/p&gt;

&lt;p&gt;
  We have made this call on order, product and service data for asset-heavy
  manufacturers. Projects rarely fail because somebody picked the wrong iPaaS. They fail
  because nobody wrote down who owns the record.
&lt;/p&gt;

&lt;h2&gt;What is a Salesforce and SAP integration pattern?&lt;/h2&gt;

&lt;p&gt;
  An integration pattern is the shape of a data flow, independent of the tool that
  carries it. Salesforce&apos;s own architecture guidance names a small set:
  &lt;strong&gt;batch data synchronization&lt;/strong&gt;,
  &lt;strong&gt;remote process invocation&lt;/strong&gt; (request and reply, or fire and forget),
  &lt;strong&gt;remote call-in&lt;/strong&gt;, &lt;strong&gt;UI update based on data changes&lt;/strong&gt;, and
  &lt;strong&gt;data virtualization&lt;/strong&gt;. Every connector and iPaaS on the market is one
  of those patterns with a logo on it. Choosing the pattern is architecture. Choosing
  the product is procurement.
&lt;/p&gt;

&lt;h2&gt;Which SAP data actually has to move for a manufacturer?&lt;/h2&gt;

&lt;p&gt;Three families cover most of it, and they do not want the same treatment.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;strong&gt;Order data.&lt;/strong&gt; Quotes and opportunities start in Salesforce, but SAP
    owns the order the moment it is confirmed. Sales needs the confirmed quantity,
    promised date and status back.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Product, pricing and inventory data.&lt;/strong&gt; SAP owns the material master,
    condition records and stock. Salesforce is a consumer here, never an author.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Service and asset data.&lt;/strong&gt; Ownership genuinely splits. SAP holds
    serial numbers, bills of material and warranty terms; Salesforce holds the case, the
    entitlement and the field visit.
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
  Write the owner next to each object before you evaluate a tool. If two systems can
  write the same field, you have not designed an integration. You have designed a
  conflict with a schedule.
&lt;/p&gt;

&lt;h2&gt;What are the four patterns worth considering?&lt;/h2&gt;

&lt;h3&gt;Batch synchronization&lt;/h3&gt;
&lt;p&gt;
  A scheduled bulk transfer, usually nightly. Right for material master, cost data and
  historical actuals. Cheap, easy to reason about, easy to replay after a failure. The
  price is staleness measured in hours, and a nightly window that tightens as volume
  grows.
&lt;/p&gt;

&lt;h3&gt;Request and reply&lt;/h3&gt;
&lt;p&gt;
  Salesforce calls SAP and waits: availability check, credit check, price simulation,
  order submission. Right when the user needs the truth at that exact second and a
  cached copy would be worse than a short spinner. The price is that SAP availability
  becomes CRM availability.
&lt;/p&gt;

&lt;h3&gt;Data virtualization&lt;/h3&gt;
&lt;p&gt;
  Salesforce Connect exposes SAP data as external objects over OData 2.0 or 4.0,
  typically through an SAP gateway, so records are read live and never stored in
  Salesforce. Right for long-tail reference data people look up but nobody reports on:
  historical invoices, delivery documents, closed service orders. The price is weak
  reporting, weak automation and nothing offline.
&lt;/p&gt;

&lt;h3&gt;Event streaming&lt;/h3&gt;
&lt;p&gt;
  SAP publishes a change and Salesforce reacts: delivery confirmed, batch released,
  shipment blocked, asset commissioned. Right for state changes where minutes matter and
  volume is too high to poll. The price is that you now own ordering, retries and
  duplicate handling.
&lt;/p&gt;

&lt;h2&gt;How do you choose? Data ownership and latency, not middleware brand&lt;/h2&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;strong&gt;Name the owner per object.&lt;/strong&gt; One writer, everyone else reads. Put it
    in the design document, not in someone&apos;s head.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Set a latency budget in plain language.&lt;/strong&gt; &quot;A rep must never promise a
    date the plant cannot meet&quot; is a budget. &quot;Real time&quot; is a wish.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Count the volume honestly.&lt;/strong&gt; Peaks, not averages. An event pattern
    that is comfortable at a thousand messages a day behaves differently at a million a
    week.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Decide the failure behaviour first.&lt;/strong&gt; What does a rep see when SAP is
    down during the quarterly close? Silence is the worst possible answer.
  &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;
  Run those four and the pattern usually picks itself. Most manufacturers end up hybrid:
  batch for master data, events for order and delivery status, request and reply for the
  two or three checks that must be live, virtualization for the archive nobody wants to
  copy.
&lt;/p&gt;

&lt;h2&gt;Where do manufacturers get this wrong?&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;strong&gt;Syncing everything.&lt;/strong&gt; Every field copied is a field to reconcile
    forever. Copy what a Salesforce process actually acts on.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;No stable ID map.&lt;/strong&gt; Matching on customer name or material description
    works in the demo and fails in production. Carry the SAP key as an external ID.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Order posting that is not idempotent.&lt;/strong&gt; A retry that creates a second
    order in SAP is the most expensive bug in this category. Every write needs a
    correlation key.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;No reconciliation job.&lt;/strong&gt; Drift is a certainty, not a risk. Something
    has to count both sides and report the delta.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Buying middleware first.&lt;/strong&gt; The tool then dictates the architecture,
    which inherits whatever that tool happens to be good at.
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;Does the middleware brand matter at all?&lt;/h2&gt;

&lt;p&gt;
  It matters, second. Salesforce ships
  &lt;a
    href=&quot;https://developer.salesforce.com/docs/industries/manufacturing/guide/mulesoft-direct-integrations.html&quot;
    &gt;MuleSoft Direct integrations for Manufacturing Cloud&lt;/a
  &gt;
  that keep customer, product and sales order data in sync with SAP. Data 360 offers an
  &lt;a
    href=&quot;https://developer.salesforce.com/docs/data/data-cloud-int/guide/c360-a-create-saphana-data-stream.html&quot;
    &gt;SAP HANA connector&lt;/a
  &gt;
  where batch ingestion is generally available and zero copy federation is still in
  beta, worth knowing before you plan an analytics layer around it. SAP Integration
  Suite, Boomi and direct API work remain valid. Each is a pattern in packaged form.
  Pick the pattern first, then the product that implements it with the least custom
  code.
&lt;/p&gt;

&lt;p&gt;
  The payoff is operational. On a connected-asset programme for ASSA ABLOY we took
  weekly cases from 3,000 to 350, a 93% reduction across 11,000 devices and up to 2.5
  million events per week, with no added support staff. Event volume was routed by
  pattern, not pushed through one generic sync. &lt;a href=&quot;/&quot;&gt;Tekunda&lt;/a&gt; integrates
  Salesforce across 70+ enterprise systems, SAP included, as a certified Salesforce SI,
  ISV and PDO.
&lt;/p&gt;

&lt;h2&gt;FAQ&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Should Salesforce or SAP own the sales order?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  SAP, from confirmation onward. Salesforce should own the quote and the opportunity and
  then read order status back, so there is exactly one place where a confirmed order
  lives.
&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Is real time integration always better?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  No. Real time raises cost, coupling and failure surface. Use it only where a stale
  value would cause a wrong commitment to a customer, and use batch everywhere else.
&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Do we need MuleSoft to integrate Salesforce and SAP?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  No. MuleSoft is a strong fit for API-led programmes with many consumers, but the same
  patterns run on SAP Integration Suite, other iPaaS platforms or direct API work.
&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How long does a Salesforce and SAP integration take?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  It depends far more on how many objects you sync than on the tooling. Two or three
  well-owned objects can go live in weeks; an undecided ownership model can stall a
  project for a year.
&lt;/p&gt;
</content:encoded>
        </item>
        <item>
            <title><![CDATA[Salesforce for ports and terminal operations: where the TOS ends]]></title>
            <description><![CDATA[Terminal operators do not replace the TOS. Here is where Salesforce starts, and how vessel, equipment and commercial workflows map across the line.]]></description>
            <link>https://tekunda.com/blog/Salesforce-for-ports-and-terminal-operations%3A-where-the-TOS-ends</link>
            <guid isPermaLink="false">https://tekunda.com/blog/Salesforce-for-ports-and-terminal-operations%3A-where-the-TOS-ends</guid>
            <dc:creator><![CDATA[Tekunda Team]]></dc:creator>
            <pubDate>Sat, 18 Jul 2026 12:00:00 GMT</pubDate>
            <content:encoded>&lt;p&gt;
  &lt;strong&gt;TL;DR:&lt;/strong&gt; A terminal operator does not replace its Terminal Operating
  System with Salesforce. The TOS owns the box: yard, gate, vessel and equipment moves.
  Salesforce owns everyone who talks to the terminal and everything that happens around
  the move, which is contracts and tariffs, service requests and claims, equipment as
  maintained assets, and the portals that shipping lines and hauliers actually log into.
  Getting that boundary right is the whole design problem.
&lt;/p&gt;

&lt;h2&gt;What does a TOS own, and what does it not?&lt;/h2&gt;
&lt;p&gt;
  A
  &lt;a href=&quot;https://en.wikipedia.org/wiki/Terminal_Operating_System&quot;
    &gt;Terminal Operating System&lt;/a
  &gt;
  exists to control the movement and storage of cargo in and around a port or marine
  terminal. It covers vessel operations, yard management, gate operations, equipment
  coordination, inventory and the rail and road interfaces. It is the operational system
  of record and nothing should displace it.
&lt;/p&gt;
&lt;p&gt;
  What it was never built for is the commercial and relationship layer around those
  moves:
&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;
    The contract, the tariff and the annual renewal with a shipping line or forwarder.
  &lt;/li&gt;
  &lt;li&gt;
    The damage claim, the gate dispute, the demurrage query and the escalation that
    follows.
  &lt;/li&gt;
  &lt;li&gt;
    The crane as a maintained asset with a warranty, a service history and a spare parts
    trail.
  &lt;/li&gt;
  &lt;li&gt;The lease on a warehouse, a laydown area or a quay slot.&lt;/li&gt;
  &lt;li&gt;
    The haulier who wants a slot, an invoice copy and a status, at 03:00, without
    phoning anyone.
  &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
  Those are CRM problems wearing operational clothing, and they are where a platform
  earns its place.
&lt;/p&gt;

&lt;h2&gt;Which terminal workflows actually belong on Salesforce?&lt;/h2&gt;
&lt;p&gt;Three groups, in the order most operators should adopt them.&lt;/p&gt;
&lt;h3&gt;Commercial&lt;/h3&gt;
&lt;p&gt;
  Shipping line and forwarder accounts, rate cards and tariff negotiation, quotes for
  ancillary services such as storage, reefer plugs, weighing and inspections, renewals,
  and property or tenancy management for land and sheds. None of this touches
  operations, which is exactly why it is the safest place to start.
&lt;/p&gt;
&lt;h3&gt;Service&lt;/h3&gt;
&lt;p&gt;
  One queue for gate disputes, damage claims, booking exceptions, documentation chasing
  and demurrage questions, with real service levels attached. Most terminals run this
  from shared mailboxes and a phone rota today, which is why nobody can answer how long
  a claim actually takes.
&lt;/p&gt;
&lt;h3&gt;Equipment and maintenance&lt;/h3&gt;
&lt;p&gt;
  Cranes, reach stackers, straddle carriers, reefer points and gate lanes modelled as
  assets with a real hierarchy, then work orders, preventive maintenance plans, and
  field scheduling for the crews who do the work. This is asset lifecycle management,
  and it is where a terminal usually finds the fastest unglamorous savings.
&lt;/p&gt;

&lt;h2&gt;
  How do vessel and equipment events reach Salesforce without duplicating the TOS?
&lt;/h2&gt;
&lt;p&gt;
  One rule keeps these programmes out of trouble:
  &lt;strong
    &gt;the TOS stays the system of record for the move, and Salesforce holds the
    reference, not the copy.&lt;/strong
  &gt;
&lt;/p&gt;
&lt;p&gt;
  In practice that means an event-driven integration rather than a nightly table sync.
  Gate-in and gate-out, vessel arrival and departure, equipment fault codes and reefer
  alarms arrive as events. Salesforce keeps the identifier, the status and the business
  context, then deep links back into the TOS for operational detail. Container-level
  inventory does not belong in CRM objects: it is high volume, it changes constantly,
  and nobody makes a commercial decision from a stale copy of it.
&lt;/p&gt;
&lt;p&gt;
  The same pipe carries the useful automation. An equipment fault event can open a case,
  triage it against the maintenance history, and create a work order with the right
  skill and the right part before a supervisor has read the alarm.
&lt;/p&gt;

&lt;h2&gt;What does a portal change for a terminal?&lt;/h2&gt;
&lt;p&gt;
  More than most operators expect, because it removes work rather than moving it. A
  portal for shipping lines, hauliers, tenants and customs brokers can carry slot and
  appointment requests, invoice and dispute status, document exchange, and damage
  reports with photos attached at the source.
&lt;/p&gt;
&lt;p&gt;
  Ports do run this publicly. A Carahsoft webinar on
  &lt;a href=&quot;https://www.govevents.com/event/24403&quot;
    &gt;optimising port communication with Salesforce&lt;/a
  &gt;
  featured Port Corpus Christi&apos;s results, which is a useful signal for anyone who still
  thinks CRM stops at the quay gate.
&lt;/p&gt;

&lt;h2&gt;How should a terminal phase the programme?&lt;/h2&gt;
&lt;ol&gt;
  &lt;li&gt;
    &lt;strong&gt;Commercial first.&lt;/strong&gt; Accounts, contracts, tariffs and pipeline. No
    operational risk, immediate reporting value.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Then the service queue.&lt;/strong&gt; Move the shared mailboxes into cases with
    owners and service levels.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Then equipment.&lt;/strong&gt; Assets, then work orders, then field scheduling for
    the maintenance crews.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Then the portal.&lt;/strong&gt; Only open it once the data behind it is
    trustworthy, because a portal exposes your data quality to your customers.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Agents last.&lt;/strong&gt; An AI agent answering &quot;where is my slot&quot; is only safe
    when the records underneath it are right.
  &lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;What goes wrong?&lt;/h2&gt;
&lt;ul&gt;
  &lt;li&gt;
    &lt;strong&gt;Building a second TOS.&lt;/strong&gt; The moment someone asks for yard planning in
    Salesforce, stop and redraw the boundary.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Wholesale data sync.&lt;/strong&gt; Copying container tables into custom objects
    produces volume, cost and no decisions.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Portal first.&lt;/strong&gt; It exposes every gap in the data to the people you
    least want to show them to.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Equipment as custom objects.&lt;/strong&gt; You lose the standard asset, work
    order and maintenance model, and rebuild it worse.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Desk-shaped design.&lt;/strong&gt; Terminals run around the clock, on gates with
    poor connectivity, on mobile. Design for that or it will not be used.
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;Where we come in&lt;/h2&gt;
&lt;p&gt;
  &lt;a href=&quot;/&quot;&gt;Tekunda&lt;/a&gt; works across logistics and ports and terminals as a certified
  Salesforce SI, ISV and PDO, including a Gulf terminal operator we deliver for under
  NDA. The parts that matter here are the ones we already run in production elsewhere:
  Service Cloud and Field Service for maintenance, Experience Cloud portals, asset
  lifecycle management, and an integration layer across 70 or more enterprise systems
  for the TOS, ERP and customs side.
&lt;/p&gt;

&lt;h2&gt;FAQ&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Does Salesforce replace a Terminal Operating System?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  No. The TOS remains the system of record for cargo, yard, gate and equipment moves.
  Salesforce carries the commercial, service and maintenance layer around them.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Should container data be synced into Salesforce?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  Only the references and statuses that drive a business decision. Full container-level
  inventory belongs in the TOS with a deep link from the CRM record.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Which Salesforce clouds do terminal operators actually use?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  Most commonly Sales Cloud for contracts and tariffs, Service Cloud for claims and
  disputes, Field Service for equipment maintenance, and Experience Cloud for the
  customer and haulier portal.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;How do equipment faults become work orders?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  Fault and alarm events arrive from the equipment or the TOS, open a case, get triaged
  against maintenance history, and generate a work order with the required skill and
  parts.
&lt;/p&gt;
&lt;p&gt;
  &lt;strong&gt;Where should a terminal start if the budget only covers one phase?&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
  The commercial layer. It carries no operational risk, it is quick to prove, and it
  produces the contract and tariff data every later phase depends on.
&lt;/p&gt;
</content:encoded>
        </item>
        <item>
            <title><![CDATA[Enterprise RAG on Salesforce Data: An Architecture That Holds Up]]></title>
            <description><![CDATA[Retrieval quality, not model choice, decides whether RAG on CRM data works. Chunking, permission-aware retrieval and evaluation for Salesforce corpora.]]></description>
            <link>https://tekunda.com/blog/Enterprise-RAG-on-Salesforce-Data%3A-An-Architecture-That-Holds-Up</link>
            <guid isPermaLink="false">https://tekunda.com/blog/Enterprise-RAG-on-Salesforce-Data%3A-An-Architecture-That-Holds-Up</guid>
            <dc:creator><![CDATA[Tekunda Team]]></dc:creator>
            <pubDate>Fri, 17 Jul 2026 12:00:00 GMT</pubDate>
            <content:encoded>&lt;p&gt;
  &lt;strong&gt;Short answer:&lt;/strong&gt; retrieval quality decides whether RAG on Salesforce
  data works, not which model you pick. A frontier model given the wrong three records
  will answer confidently and wrongly, and swapping the model changes nothing. The three
  things that actually move the needle are what you treat as a chunk, how permissions
  are enforced during retrieval, and whether you measure retrieval separately from
  generation.
&lt;/p&gt;

&lt;h2&gt;Why does RAG on CRM data fail more often than RAG on documents?&lt;/h2&gt;
&lt;p&gt;Because a CRM corpus breaks the assumptions that document RAG is built on.&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;
    &lt;strong&gt;Records are short and repetitive.&lt;/strong&gt; Ten thousand cases about the same
    product produce near-identical embeddings, so similarity search returns ten
    variations of one answer.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Meaning lives across objects.&lt;/strong&gt; The answer to &quot;why did this customer
    churn&quot; is spread over an account, three opportunities, a contract and a case thread.
    No single record contains it.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;The corpus mutates constantly.&lt;/strong&gt; Opportunities move stage, cases
    close, contacts change role. A document corpus is mostly static; a CRM corpus is a
    moving target with an index behind it.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Access is per user.&lt;/strong&gt; Two people asking the same question must
    legitimately get different answers, which is not a scenario most RAG tutorials
    consider at all.
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;What is the right chunk when the source is a Salesforce record?&lt;/h2&gt;
&lt;p&gt;
  Field-by-field chunking is the most common mistake we are asked to fix. A field value
  is not a retrievable unit of meaning. Assemble instead.
&lt;/p&gt;
&lt;ol&gt;
  &lt;li&gt;
    &lt;strong&gt;Chunk at the level of a business event, not a field.&lt;/strong&gt; For a case,
    that is subject plus description plus resolution plus the comment thread, rendered
    as one passage. For an opportunity, the record plus its close reason and key notes.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Denormalize the identifiers a human would use.&lt;/strong&gt; Account name,
    product name, serial number, contract number. Embeddings do not resolve foreign
    keys.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Keep hard metadata alongside the vector.&lt;/strong&gt; Object type, record id,
    owner, account, last modified date. Every filter you will ever need at query time
    has to exist as metadata, not as text.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Keep exact-match retrieval in the loop.&lt;/strong&gt; Case numbers, SKUs and
    error codes are precisely where pure vector search is weakest. Salesforce&apos;s own
    hybrid search combines keyword and vector indexes and fuses the ranked results,
    reporting better performance than either alone (&lt;a
      href=&quot;https://engineering.salesforce.com/how-data-cloud-hybrid-search-combines-keyword-and-vector-retrieval-to-elevate-the-search-experience/&quot;
      &gt;Salesforce Engineering&lt;/a
    &gt;).
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Re-embed on change, not on schedule.&lt;/strong&gt; Tie re-indexing to record
    change events, or your agent will confidently quote last quarter&apos;s status.
  &lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;How do you make retrieval permission-aware without rebuilding sharing?&lt;/h2&gt;
&lt;p&gt;
  This is the requirement that separates an enterprise RAG system from a demo, and it
  has exactly one safe shape:
  &lt;strong&gt;filter before you retrieve, using the asking user&apos;s identity.&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;Three patterns, in descending order of how well they hold up.&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;
    &lt;strong&gt;Pre-filtered retrieval.&lt;/strong&gt; The query carries the user&apos;s identity, the
    retrieval layer restricts candidates to what that user can see, and ranking happens
    inside that set. Correct, and the only one that survives an audit.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Segmented indexes.&lt;/strong&gt; One index per audience, such as per region or
    per business unit. Workable when your access model is coarse and stable,
    unmanageable when it is not.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Post-filtering.&lt;/strong&gt; Retrieve broadly, then drop what the user cannot
    see. Do not do this. Restricted records still consume the top-k slots, so the answer
    silently degrades, and any ranking signal exposed to the user leaks the existence of
    the records you filtered out.
  &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
  Whatever store you use, identity has to propagate all the way through: session,
  retrieval, prompt, and the audit log. Never ask the language model to enforce access.
  It is a text predictor, not a policy engine, and a prompt instruction is not a
  security control.
&lt;/p&gt;

&lt;h2&gt;How do you know whether retrieval is actually good?&lt;/h2&gt;
&lt;p&gt;
  Most teams cannot answer this, which is why they keep changing models. Separate the
  two failure modes: either the right record was not in the context, or it was there and
  the model ignored it. Only the second is a model problem.
&lt;/p&gt;
&lt;ol&gt;
  &lt;li&gt;
    Build a golden set of 100 to 200 real questions from actual users, each labelled
    with the record ids that genuinely answer it.
  &lt;/li&gt;
  &lt;li&gt;
    Measure retrieval on its own with recall at k and mean reciprocal rank. If the right
    record is not in the top k, nothing downstream can save you.
  &lt;/li&gt;
  &lt;li&gt;
    Track context precision too. Padding the prompt with near-duplicate chunks costs
    budget and makes the model hedge.
  &lt;/li&gt;
  &lt;li&gt;
    Run the golden set in CI on every change to chunking, embeddings, ranking or
    filters, and treat a drop as a build failure.
  &lt;/li&gt;
  &lt;li&gt;
    Only then evaluate answers, with citations back to record ids so a reviewer can
    check the claim in Salesforce.
  &lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
  Teams that add this harness usually discover their retrieval recall was somewhere
  around half, and that no model upgrade was ever going to fix it.
&lt;/p&gt;

&lt;h2&gt;What does a stack that holds up look like?&lt;/h2&gt;
&lt;p&gt;
  Native or external matters less than the retrieval contract. Data 360 supports vector
  search and retrievers over unstructured content such as knowledge articles, PDFs and
  transcripts (&lt;a
    href=&quot;https://help.salesforce.com/s/articleView?id=data.c360_a_search_index_retrieve_content.htm&amp;amp;language=en_US&amp;amp;type=5&quot;
    &gt;Salesforce Help&lt;/a
  &gt;), which keeps grounding close to the data and inside the platform&apos;s governance. An
  external vector store gives more control over chunking, hybrid ranking and
  cross-system corpora, which matters when the answer also lives in your ERP or your
  ticketing system.
&lt;/p&gt;
&lt;p&gt;
  Pick either, but write the contract down first: what is a chunk, what metadata every
  chunk carries, how identity is enforced, and what the golden set says good looks like.
  We build agentic RAG systems on this pattern across Salesforce and 70+ enterprise
  systems, and it is the contract, not the model, that we spend the most time on. More
  on how we work is at &lt;a href=&quot;/&quot;&gt;Tekunda&lt;/a&gt;.
&lt;/p&gt;

&lt;h2&gt;FAQ&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Does a bigger model fix bad retrieval?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  No. If the answering record never enters the context window, model size is irrelevant.
  Fix recall first, then compare models.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Should I fine-tune instead of doing RAG on CRM data?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  Rarely. CRM data changes daily and access is per user, so a fine-tuned model would be
  both stale and unable to respect sharing. Fine-tuning is for behaviour and format,
  retrieval is for facts.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;How do I stop the agent leaking records a user cannot see?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  Filter candidates by the asking user&apos;s access before ranking, and log every retrieval
  with the identity that made it. Prompt instructions are not an access control.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;How often should the index be refreshed?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  Drive it from record change events rather than a nightly job. In a CRM corpus, a stale
  index produces answers that are wrong in a way users find hard to detect.
&lt;/p&gt;
</content:encoded>
        </item>
        <item>
            <title><![CDATA[Headless Salesforce and MCP: Running CRM Actions From One Agentic Hub]]></title>
            <description><![CDATA[Headless Salesforce plus an MCP server gives you one action surface across CRM, ERP and the systems around them, not just a nicer UI.]]></description>
            <link>https://tekunda.com/blog/Headless-Salesforce-and-MCP%3A-Running-CRM-Actions-From-One-Agentic-Hub</link>
            <guid isPermaLink="false">https://tekunda.com/blog/Headless-Salesforce-and-MCP%3A-Running-CRM-Actions-From-One-Agentic-Hub</guid>
            <dc:creator><![CDATA[Tekunda Team]]></dc:creator>
            <pubDate>Wed, 15 Jul 2026 12:00:00 GMT</pubDate>
            <content:encoded>&lt;p&gt;
  &lt;strong&gt;The short answer:&lt;/strong&gt; headless Salesforce means the platform&apos;s data,
  logic and workflows are callable without the Lightning UI, and an MCP server is the
  standard way to expose those calls to an AI client. Together they give you one action
  surface, so an agent, a Slack thread or your own front end can run a CRM action and an
  ERP action in the same step. Salesforce made this official at TrailblazerDX on 15
  April 2026 with Headless 360, and its hosted MCP servers became generally available
  the same month for Enterprise Edition and above.
&lt;/p&gt;

&lt;h2&gt;What does headless Salesforce actually mean now?&lt;/h2&gt;
&lt;p&gt;
  It means the browser is optional. Every capability is reachable as an API, an MCP tool
  or a CLI command, so the system of record can be driven by something other than a
  Lightning page. That was the framing at
  &lt;a
    href=&quot;https://www.salesforceben.com/salesforce-headless-360-and-agentforce-vibes-2-0-revealed-at-tdx-2026/&quot;
    &gt;TrailblazerDX 2026&lt;/a
  &gt;, alongside more than 60 new MCP tools and an experience layer that renders
  components into Slack, Teams, mobile and MCP-compatible clients.
&lt;/p&gt;
&lt;p&gt;Two clarifications, because both get muddled:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;
    &lt;strong&gt;Headless is not UI-less.&lt;/strong&gt; It means the interface is a choice rather
    than a dependency. Most headless builds still have a screen. It just is not the org.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Headless is not rip and replace.&lt;/strong&gt; Your objects, flows, validation
    rules and sharing model stay exactly where they are. What changes is who is allowed
    to call them.
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;What is an MCP server in a Salesforce context?&lt;/h2&gt;
&lt;p&gt;
  An MCP server publishes a list of tools an AI client can call, with typed inputs and a
  permission model behind them. In practice you will meet three kinds:
&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;
    &lt;strong&gt;Salesforce hosted MCP servers,&lt;/strong&gt; generally available since April 2026
    for Enterprise Edition and above, exposing org data, Flows, Apex invocable actions,
    AuraEnabled methods and named queries.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;The Salesforce DX MCP server,&lt;/strong&gt; aimed at developer workflows such as
    deploying metadata and running Apex tests.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Your own MCP server,&lt;/strong&gt; which is where the interesting work sits,
    because it is the only one that can span Salesforce and everything around it.
  &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
  The security model is the part worth memorising. The hosted server authenticates per
  user with OAuth 2.0 and PKCE, and the agent acts inside that user&apos;s permissions, with
  CRUD, field-level security and sharing rules still enforced. An agent is not a
  superuser.
&lt;/p&gt;

&lt;h2&gt;Why is the value a single action surface, not a nicer UI?&lt;/h2&gt;
&lt;p&gt;
  Here is the gap in almost everything written on this topic. Most of it describes
  Salesforce exposing Salesforce. That is useful, and it is not where the pain is.
&lt;/p&gt;
&lt;p&gt;
  Real operational work does not stay inside one system. &quot;Approve this credit exception,
  release the order and tell the customer&quot; is three systems and one intention. Today
  that intention is executed by a person tabbing between the CRM, the ERP and a
  telephony console, translating between them by hand. Every one of those translations
  is a chance to be wrong.
&lt;/p&gt;
&lt;p&gt;A single action surface collapses the tab-switching into one callable action:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;The agent, or the front end, calls one tool.&lt;/li&gt;
  &lt;li&gt;The tool orchestrates the CRM write, the ERP call and the notification.&lt;/li&gt;
  &lt;li&gt;The permission check happens once, somewhere you can audit.&lt;/li&gt;
  &lt;li&gt;A failure in any leg is one failure, not a half-finished process nobody owns.&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
  &lt;p&gt;
    A headless implementation that only exposes CRM has moved the buttons. One that
    exposes intentions has removed the swivel chair.
  &lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;What does one action hub look like across CRM and the systems around it?&lt;/h2&gt;
&lt;ol&gt;
  &lt;li&gt;
    &lt;strong&gt;Salesforce stays the system of record.&lt;/strong&gt; Objects, sharing and
    validation are untouched.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;An MCP layer publishes intentions, not tables.&lt;/strong&gt;
    &lt;code&gt;release_order&lt;/code&gt;, not &lt;code&gt;update_order_record&lt;/code&gt;.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Connectors sit behind each intention:&lt;/strong&gt; ERP, finance, telephony,
    scheduling, connected devices. We run this across more than 70 enterprise systems.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;One identity model.&lt;/strong&gt; The caller&apos;s permissions decide what the tool
    will do, in every system it touches.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Clients are interchangeable.&lt;/strong&gt; Claude, Cursor, Agentforce, a Slack
    app or your own front end all call the same tools.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Every call is recorded as a business event,&lt;/strong&gt; not just an API hit.
  &lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
  Tekunda has been building this shape since before it had a product name, and we are the first and only firm delivering headless CRM plus MCP action hubs in
  production.
&lt;/p&gt;

&lt;h2&gt;What do most teams get wrong?&lt;/h2&gt;
&lt;ul&gt;
  &lt;li&gt;
    &lt;strong&gt;Publishing objects instead of actions.&lt;/strong&gt; A tool per object gives an
    agent a thousand ways to make a mess. A tool per business intention gives it one
    right way.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Skipping idempotency.&lt;/strong&gt; Agents retry. If
    &lt;code&gt;release_order&lt;/code&gt; is not idempotent, a retry ships the order twice.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Letting the agent own the permission.&lt;/strong&gt; Run as the user, not as an
    integration account that can do everything.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;No approval gate on irreversible actions.&lt;/strong&gt; Read freely. Write with a
    check on anything financial or customer-facing.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Treating it as an integration project.&lt;/strong&gt; It is an interface design
    project that happens to require integration.
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;Where should you start?&lt;/h2&gt;
&lt;ol&gt;
  &lt;li&gt;
    Pick one workflow that already crosses two systems and annoys somebody every week.
  &lt;/li&gt;
  &lt;li&gt;Write down the three or four intentions it contains, as verbs.&lt;/li&gt;
  &lt;li&gt;
    Implement them as MCP tools, with typed inputs, per-user auth and one audit line
    each.
  &lt;/li&gt;
  &lt;li&gt;
    Point two different clients at them, an agent and a Slack action for instance, to
    prove the surface is genuinely shared.
  &lt;/li&gt;
  &lt;li&gt;Only then widen the catalogue.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;FAQ&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Does headless Salesforce mean giving up the Lightning UI?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  No. It makes the UI optional. Most implementations keep Lightning for the people who
  like it and add other entry points for the people who do not.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Is the Salesforce hosted MCP server enough on its own?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  It is enough to let an AI client work inside your org. It is not enough for actions
  that span the org and other systems, which is where a custom MCP layer comes in.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Is an agent with MCP access a security risk?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  It carries the risk of the identity it runs as. With per-user OAuth, CRUD, field-level
  security and sharing rules still apply, so the answer is to scope the user rather than
  to trust the agent.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Do we need Agentforce to do this?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  No. MCP is an open standard, so Claude, Cursor and your own applications can call the
  same tools. Agentforce is one client among several.
&lt;/p&gt;

&lt;p&gt;
  &lt;a href=&quot;/&quot;&gt;Tekunda&lt;/a&gt; builds headless Salesforce implementations and MCP action hubs
  across CRM, ERP, telephony and connected devices. If your team is tab-switching
  through a process that ought to be one action, that is the workflow to start with.
&lt;/p&gt;
</content:encoded>
        </item>
        <item>
            <title><![CDATA[Multi-Agent Orchestration on Salesforce: What Makes Agent-to-Agent Handoffs Work in Production]]></title>
            <description><![CDATA[Orchestrator plus specialist agents on Salesforce: why handoff contracts, not bigger prompts, make production workflows reliable.]]></description>
            <link>https://tekunda.com/blog/Multi-Agent-Orchestration-on-Salesforce%3A-What-Makes-Agent-to-Agent-Handoffs-Work-in-Production</link>
            <guid isPermaLink="false">https://tekunda.com/blog/Multi-Agent-Orchestration-on-Salesforce%3A-What-Makes-Agent-to-Agent-Handoffs-Work-in-Production</guid>
            <dc:creator><![CDATA[Tekunda Team]]></dc:creator>
            <pubDate>Tue, 14 Jul 2026 12:00:00 GMT</pubDate>
            <content:encoded>&lt;p&gt;
  &lt;strong&gt;The short answer:&lt;/strong&gt; multi-agent orchestration on Salesforce means one
  orchestrator agent owns the conversation and hands each task to a specialist agent
  that owns a narrow domain. What makes it reliable in production is not a bigger prompt
  on the orchestrator, it is a tight handoff contract between agents: what gets passed,
  what comes back, and who is allowed to act. Salesforce moved Agentforce multi-agent
  orchestration to general availability on 15 June 2026, and the Agent2Agent (A2A)
  protocol extends the same pattern to agents that do not run on Salesforce.
&lt;/p&gt;

&lt;h2&gt;What is multi-agent orchestration on Salesforce?&lt;/h2&gt;
&lt;p&gt;
  It is a routing architecture. One primary agent is the user&apos;s only point of contact
  and holds the session context. Behind it sit specialist agents, each scoped to a
  bounded domain and equipped with its own actions: Apex, Flow, prompt templates,
  external APIs.
&lt;/p&gt;
&lt;p&gt;
  The routing is not a decision tree. The
  &lt;a href=&quot;https://www.salesforce.com/agentforce/multi-agent-orchestration/&quot;
    &gt;Atlas Reasoning Engine&lt;/a
  &gt;
  reads every registered agent&apos;s description, instructions and available actions, then
  picks the best fit at runtime. That has a consequence teams underestimate:
  &lt;strong&gt;an agent description is routing logic, not documentation.&lt;/strong&gt; Vague
  descriptions produce vague routing.
&lt;/p&gt;

&lt;h2&gt;Why does one big prompt stop working?&lt;/h2&gt;
&lt;p&gt;
  Almost every team tries the single-agent version first. It demos well and degrades in
  production, for reasons that are structural rather than fixable:
&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;
    &lt;strong&gt;Instruction dilution.&lt;/strong&gt; Rules that matter in one workflow leak into
    another, and the model averages them.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Tool sprawl.&lt;/strong&gt; Past roughly a dozen actions, selection accuracy drops
    and the wrong tool starts firing.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;No blast radius.&lt;/strong&gt; One agent with refund rights has refund rights in
    every conversation it ever holds.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Untestable changes.&lt;/strong&gt; A new paragraph about returns can silently
    change warranty behaviour, and there is nothing to unit test.
  &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
  A specialist with one job and five actions has none of those problems. The complexity
  does not vanish. It moves to the seams between agents, which is where it belongs,
  because a seam can be specified.
&lt;/p&gt;

&lt;h2&gt;What does an orchestrator plus specialists look like in production?&lt;/h2&gt;
&lt;ol&gt;
  &lt;li&gt;
    An orchestrator that resolves intent, holds context and escalates. It carries
    &lt;strong&gt;no business actions of its own&lt;/strong&gt;.
  &lt;/li&gt;
  &lt;li&gt;
    One specialist per bounded domain, for example entitlement checks, field dispatch or
    billing adjustments, each with its own action set and its own test cases.
  &lt;/li&gt;
  &lt;li&gt;A structured context payload passed between them instead of free text.&lt;/li&gt;
  &lt;li&gt;A human approval gate on anything irreversible or financial.&lt;/li&gt;
  &lt;li&gt;
    Tracing on every hop, so a bad outcome is attributable to one agent rather than to
    &quot;the AI&quot;.
  &lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
  Scale is why this matters. In our ASSA ABLOY programme (FocusCura and Phoniro), the
  operational surface is 11,000 connected devices producing up to 2.5 million events a
  week across three markets, and weekly cases fell from 3,000 to 350 with no added
  support staff. Nobody holds an operational load of that shape inside a single prompt.
&lt;/p&gt;

&lt;h2&gt;What makes a handoff between agents reliable?&lt;/h2&gt;
&lt;p&gt;
  This is the part vendor material skips, and it is where production systems actually
  break. Treat every handoff as an interface, not a conversation.
&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;
    &lt;strong&gt;Typed in, typed out.&lt;/strong&gt; If you cannot write the handoff as a function
    signature, the orchestrator will invent one, and it will invent a different one
    tomorrow.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Pass identifiers, not prose.&lt;/strong&gt; A &lt;code&gt;CaseId&lt;/code&gt; and an
    &lt;code&gt;AssetId&lt;/code&gt; survive a handoff. A paraphrased summary does not.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Give the specialist a way to refuse.&lt;/strong&gt; &quot;I cannot proceed, the
    entitlement has lapsed&quot; is a routable answer. Silent improvisation is not.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Make actions idempotent.&lt;/strong&gt; Orchestrators retry. A retry must never
    issue a second refund.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Version the descriptions.&lt;/strong&gt; Routing depends on them, so editing one
    is a production change and belongs in review.
  &lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
  &lt;p&gt;
    The seam is the product. Agents are the easy part; the contract between them is the
    engineering.
  &lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;Where do A2A and MCP actually fit?&lt;/h2&gt;
&lt;p&gt;
  &lt;strong&gt;A2A&lt;/strong&gt; handles delegation across platforms. An agent publishes an agent
  card describing what it can do; a client agent discovers it, delegates a task, and
  receives messages and artifacts back. That is how an Agentforce orchestrator reaches a
  specialist running somewhere else entirely.
&lt;/p&gt;
&lt;p&gt;
  &lt;strong&gt;MCP&lt;/strong&gt; is the other axis. It gives a single agent access to tools and
  data. We build MCP servers so one agent can act across the systems a business already
  runs, instead of forcing every action back through a CRM screen.
&lt;/p&gt;
&lt;p&gt;
  Rule of thumb: A2A is agent to agent, MCP is agent to system. Reaching for the wrong
  one is the most common architecture mistake we see.
&lt;/p&gt;

&lt;h2&gt;How do you roll this out without breaking the seams?&lt;/h2&gt;
&lt;ol&gt;
  &lt;li&gt;
    Start with three agents on one workflow that already has clean data. Agents layered
    over messy data multiply the mess.
  &lt;/li&gt;
  &lt;li&gt;
    Instrument before you scale. If you cannot trace a single hop today, you will not
    debug ten agents next quarter.
  &lt;/li&gt;
  &lt;li&gt;Give every specialist a named human owner.&lt;/li&gt;
  &lt;li&gt;
    Test routing adversarially, with ambiguous and multi-intent requests, not with the
    happy path.
  &lt;/li&gt;
  &lt;li&gt;
    Keep a kill switch per specialist, so one bad agent does not take the whole workflow
    down.
  &lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;FAQ&lt;/h2&gt;
&lt;p&gt;
  &lt;strong
    &gt;Is multi-agent orchestration available in production on Salesforce today?&lt;/strong
  &gt;
&lt;/p&gt;
&lt;p&gt;
  Yes. Salesforce moved Agentforce multi-agent orchestration to general availability on
  15 June 2026, with A2A support for agents outside the platform.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;How many specialist agents should we start with?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  Three, on one workflow. Prove the handoffs and the tracing first, then add domains one
  at a time.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Does a bigger model remove the need for orchestration?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  No. A stronger model improves reasoning inside an agent. It does not give you scoped
  permissions, per-domain tests or an attributable failure. Those come from the
  architecture.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What breaks most often in production?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  Handoffs. Context lost between agents, misrouting caused by a vague agent description,
  and retries that repeat an action which was never idempotent.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Do we have to rebuild agents that live on other platforms?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  No. A2A lets an Agentforce orchestrator delegate to third-party agents, so a
  non-Salesforce specialist can join the same workflow.
&lt;/p&gt;

&lt;p&gt;
  &lt;a href=&quot;/&quot;&gt;Tekunda&lt;/a&gt; builds multi-agent systems on Salesforce and off it. It was first to run agent-to-agent orchestration and SWARM architecture in production, and still does. If you are moving from one agent
  to a team of them, designing the seams is the work worth doing first.
&lt;/p&gt;
</content:encoded>
        </item>
        <item>
            <title><![CDATA[How to reduce Salesforce license and platform costs: audit the drift, not the contract]]></title>
            <description><![CDATA[Most Salesforce overspend comes from drift, not negotiation. A practical pass over users, license mix, add-ons and storage.]]></description>
            <link>https://tekunda.com/blog/How-to-reduce-Salesforce-license-and-platform-costs%3A-audit-the-drift%2C-not-the-contract</link>
            <guid isPermaLink="false">https://tekunda.com/blog/How-to-reduce-Salesforce-license-and-platform-costs%3A-audit-the-drift%2C-not-the-contract</guid>
            <dc:creator><![CDATA[Tekunda Team]]></dc:creator>
            <pubDate>Mon, 13 Jul 2026 12:00:00 GMT</pubDate>
            <content:encoded>&lt;p&gt;
  &lt;strong&gt;Short answer:&lt;/strong&gt; Most Salesforce overspend is not the result of a bad
  negotiation. It is drift: people who left, licenses that no longer match what anyone
  actually does, add-ons bought for a project that finished, and data nobody ever
  deleted. An honest audit of activity, license mix, feature licenses, add-ons and
  storage usually finds more money than the renewal conversation will.
&lt;/p&gt;

&lt;h2&gt;Why do most orgs overpay for Salesforce?&lt;/h2&gt;
&lt;p&gt;
  Because the org changes every week and the contract changes once a year. Every
  offboarding, role change, cancelled project and abandoned integration leaves a paid
  artefact behind, and removing it is nobody&apos;s job. Zylo&apos;s 2026 SaaS Management Index
  puts average license utilisation at 54%, with $19.8M in wasted spend annually per
  organisation across the SaaS estate (&lt;a
    href=&quot;https://zylo.com/blog/salesforce-license-management&quot;
    &gt;Zylo&lt;/a
  &gt;).
&lt;/p&gt;
&lt;p&gt;
  Drift also compounds. Salesforce announced an average 6% list price increase effective
  1 August 2025 across Enterprise and Unlimited editions of Sales Cloud, Service Cloud,
  Field Service and selected Industry Clouds, with no change to Foundations, Starter and
  Pro editions (&lt;a href=&quot;https://www.salesforce.com/news/stories/pricing-update-2025/&quot;
    &gt;Salesforce&lt;/a
  &gt;). Every seat you are not using gets slightly more expensive to not use.
&lt;/p&gt;

&lt;h2&gt;Where does the money actually leak?&lt;/h2&gt;

&lt;h3&gt;Inactive and departed users&lt;/h3&gt;
&lt;p&gt;
  Start with last login. Anyone with no login in 90 days is either gone, on the wrong
  license, or was never onboarded. One detail matters here: freezing a user blocks the
  login but keeps consuming the license. Only deactivating releases it for reassignment.
&lt;/p&gt;

&lt;h3&gt;A license mix nobody revisited&lt;/h3&gt;
&lt;p&gt;
  Most orgs buy one edition for everyone at go-live and never revisit it. Three years
  later, warehouse staff, finance approvers and read-only managers are all on the same
  full CRM seat as the sales team.
&lt;/p&gt;

&lt;h3&gt;Feature and permission set licenses&lt;/h3&gt;
&lt;p&gt;
  Some are free, some are paid, and the paid ones tend to get assigned in bulk during a
  rollout and never reviewed again. Pull the assignment counts and compare them against
  who has used the feature this quarter.
&lt;/p&gt;

&lt;h3&gt;Add-ons that outlived their project&lt;/h3&gt;
&lt;p&gt;
  Managed packages, industry add-ons and AppExchange subscriptions bought for a specific
  initiative. If nobody can name the business process an add-on serves today, it is a
  candidate for removal.
&lt;/p&gt;

&lt;h3&gt;Storage and data volume&lt;/h3&gt;
&lt;p&gt;
  File and data storage grows quietly: old attachments, orphaned records, a recycle bin
  nobody empties, and integration logs written to a custom object with no retention
  rule. Data volume is a real cost line, not a rounding error.
&lt;/p&gt;

&lt;h3&gt;Integration users and sandboxes&lt;/h3&gt;
&lt;p&gt;
  Integration accounts often sit on a full CRM license because that is what was
  available on the day. Check what your edition entitles you to before renewing another
  one. The same goes for sandboxes that were spun up for a migration and never refreshed
  or removed.
&lt;/p&gt;

&lt;h2&gt;How do you run a license audit in a week?&lt;/h2&gt;
&lt;ol&gt;
  &lt;li&gt;
    Export every user with last login, license type, profile and role. Flag anyone with
    no login in 90 days.
  &lt;/li&gt;
  &lt;li&gt;
    Split that list into leavers and occasional users. Leavers get deactivated, which
    returns the license to the pool.
  &lt;/li&gt;
  &lt;li&gt;
    Map the remaining users to what they actually open. Object usage tells you more than
    a job title does.
  &lt;/li&gt;
  &lt;li&gt;
    List every paid add-on with a named owner. No owner, no business process, no
    renewal.
  &lt;/li&gt;
  &lt;li&gt;
    Check storage consumption against your entitlement and identify the top consumers.
  &lt;/li&gt;
  &lt;li&gt;
    Total the findings and take them into the renewal, not after it. The numbers are
    only leverage if they exist before the conversation starts.
  &lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;When does switching to a cheaper license type make sense?&lt;/h2&gt;
&lt;p&gt;
  When the user genuinely lives in custom objects rather than in the standard CRM.
  Platform licenses keep Accounts, Contacts, custom objects, reports and dashboards, but
  they do not give access to Leads, Opportunities, Cases or Campaigns, and Entitlements,
  Orders and Price Books are out too. Salesforce Ben&apos;s worked example puts a Platform
  seat at $25 per user per month against $165 for Enterprise (&lt;a
    href=&quot;https://www.salesforceben.com/optimize-your-salesforce-licensing-costs-with-platform-licenses/&quot;
    &gt;Salesforce Ben&lt;/a
  &gt;).
&lt;/p&gt;
&lt;p&gt;
  The discipline is simple: before you move anyone, list the objects and features they
  touched over a full quarter. A migration that saves a licence fee and then breaks a
  service agent&apos;s case queue costs more than it saved.
&lt;/p&gt;

&lt;h2&gt;What should you not cut?&lt;/h2&gt;
&lt;ul&gt;
  &lt;li&gt;
    The sandbox you actually deploy through. Saving that line item means testing in
    production.
  &lt;/li&gt;
  &lt;li&gt;
    Backup and recovery. The cheapest possible org is the one that cannot be restored.
  &lt;/li&gt;
  &lt;li&gt;
    Audit and security capabilities you are relying on for a compliance obligation.
  &lt;/li&gt;
  &lt;li&gt;
    The admin capacity that runs the audit. Cut that and you are back here in eighteen
    months.
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;How do you keep the drift from coming back?&lt;/h2&gt;
&lt;ul&gt;
  &lt;li&gt;Put deactivation in the offboarding checklist, not in someone&apos;s memory.&lt;/li&gt;
  &lt;li&gt;Give every paid add-on a named owner and a review date.&lt;/li&gt;
  &lt;li&gt;Re-run the activity export quarterly. It takes an hour once the query exists.&lt;/li&gt;
  &lt;li&gt;Attach a retention rule to any object an integration writes to.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
  We do this pass at &lt;a href=&quot;/&quot;&gt;Tekunda&lt;/a&gt; before designing anything new on a client
  org, for a plain reason: a smaller, cleaner org is cheaper to run and faster to
  change.
&lt;/p&gt;

&lt;h2&gt;FAQ&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Does deactivating a user free up the license?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  Yes. Deactivating releases the license for reassignment. Freezing only blocks the
  login and keeps the license consumed, which is why frozen users are a common hidden
  cost.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Can we reduce our license count in the middle of a contract?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  Usually not. Most subscriptions are committed for the term, so the practical move is
  to reassign freed licenses instead of buying more, and to right-size at renewal.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;How much can a license audit realistically recover?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  It depends on how long the org has run unattended. With average utilisation at 54%
  across SaaS estates, an org that has never audited should expect to find unused seats,
  unassigned add-ons and storage it is paying to keep.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Is a Platform license always the cheaper option?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  Only when the user does not need the standard CRM objects. Check real object usage
  over a quarter before moving anyone, because the objects Platform excludes are the
  ones service and sales teams live in.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;When should we start preparing for renewal?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  Early enough that the usage data already exists when the conversation opens, and early
  enough to deactivate and reassign rather than simply accept the quote.
&lt;/p&gt;
</content:encoded>
        </item>
        <item>
            <title><![CDATA[When to Build a Custom Salesforce App Instead of Configuring]]></title>
            <description><![CDATA[A decision framework for the configure-first default: five trip-wires that show where declarative work stops paying off and custom is cheaper.]]></description>
            <link>https://tekunda.com/blog/When-to-Build-a-Custom-Salesforce-App-Instead-of-Configuring</link>
            <guid isPermaLink="false">https://tekunda.com/blog/When-to-Build-a-Custom-Salesforce-App-Instead-of-Configuring</guid>
            <dc:creator><![CDATA[Tekunda Team]]></dc:creator>
            <pubDate>Sun, 12 Jul 2026 12:00:00 GMT</pubDate>
            <content:encoded>&lt;p&gt;
  &lt;strong&gt;Short answer:&lt;/strong&gt; configure first, every time. Build custom when the
  logic is a genuine differentiator, when it must run outside a single record&apos;s
  lifecycle, or when you are rebuilding the same workaround for the third time. The
  trigger for building is not complexity, it is repetition and ownership: complexity you
  configure once is fine, complexity you re-explain every quarter is not.
&lt;/p&gt;

&lt;h2&gt;What is the difference between configuring, extending and building?&lt;/h2&gt;
&lt;ul&gt;
  &lt;li&gt;
    &lt;strong&gt;Configure:&lt;/strong&gt; standard objects, page layouts, validation rules, Flow.
    No deployable code, and it upgrades with the platform.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Extend:&lt;/strong&gt; custom objects and fields plus a little Apex or a Lightning
    Web Component around a mostly standard process. Still Salesforce-shaped.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Build:&lt;/strong&gt; a designed application. Its own data model, services, tests
    and release cycle, whether that ships as Apex and LWC in your org or as a packaged
    product.
  &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
  Most arguments about &quot;build versus configure&quot; are really arguments about the middle
  one, where the honest answer is usually to extend rather than to start a project.
&lt;/p&gt;

&lt;h2&gt;Why is configure-first still the right default?&lt;/h2&gt;
&lt;p&gt;
  Salesforce&apos;s own guidance has been consistent for a decade: evaluate the native and
  declarative features before you write code. Declarative work carries no test code, no
  repository and no upgrade tax, and it moves forward automatically with each release.
  The limits also behave differently. Declarative work runs into &lt;em&gt;design&lt;/em&gt; limits,
  such as how many rules you can put on an object, while code runs into
  &lt;em&gt;execution&lt;/em&gt; governor limits like SOQL query counts, which are much harder to
  design around (&lt;a
    href=&quot;https://developer.salesforce.com/blogs/engineering/2014/12/forcedotcom-declarative-development&quot;
    &gt;Salesforce Developers&lt;/a
  &gt;).
&lt;/p&gt;
&lt;p&gt;
  The floor also keeps rising. Workflow Rules and Process Builder are no longer
  supported after 31 December 2025, new ones cannot be created, and Salesforce points
  teams at the Migrate to Flow tool (&lt;a
    href=&quot;https://www.salesforceben.com/salesforce-announces-end-of-support-for-workflow-rules-process-builder/&quot;
    &gt;Salesforce Ben&lt;/a
  &gt;). Anything you build today competes with what the platform will absorb tomorrow,
  which is an argument for building less, not for building nothing.
&lt;/p&gt;

&lt;h2&gt;Where does configuration stop paying off?&lt;/h2&gt;
&lt;p&gt;
  These are the five trip-wires we use. One of them is a conversation. Two or more is a
  decision.
&lt;/p&gt;
&lt;ol&gt;
  &lt;li&gt;
    &lt;strong&gt;The flow has become a program.&lt;/strong&gt; If nobody can predict the outcome by
    reading it, and a change needs a careful afternoon, you already have software. You
    just have it in a format with no tests, no code review and no diff worth reading.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;The requirement is a data model, not a screen.&lt;/strong&gt; Reporting that needs
    three unrelated objects joined, or a hierarchy the standard model cannot express, is
    a design problem. Configuration will produce a shape you have to work around
    forever.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;The behaviour lives outside one record&apos;s lifecycle.&lt;/strong&gt; Scheduled work,
    high-volume event ingestion, cross-system reconciliation, retry and idempotency.
    Declarative automation is triggered by records; these things are not.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;The logic is your competitive difference and it changes often.&lt;/strong&gt;
    Pricing rules, routing intelligence, entitlement logic. Anything where being 10%
    better than a competitor matters deserves tests, versioning and an owner.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;You are paying for it three times.&lt;/strong&gt; The same workaround rebuilt in a
    second country, a second business unit, a third client org. That is not
    configuration any more, it is an unpackaged product.
  &lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;How do you compare the real cost honestly?&lt;/h2&gt;
&lt;p&gt;
  Not build cost against configuration cost. Compare three years of ownership on both
  sides.
&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;
    &lt;strong&gt;Configuration carries:&lt;/strong&gt; admin time per change, regression risk
    nobody measures, onboarding cost for each new admin who has to learn the workaround,
    and a cap on what you can ever automate.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Custom carries:&lt;/strong&gt; initial engineering, test coverage, code review, an
    upgrade path across three releases a year, and the risk that the platform ships your
    feature for free next year.
  &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
  The comparison usually turns on one number that nobody writes down: how many times per
  year the process changes. Frequent change favours code with tests, because tests are
  how you change something safely. Rare change favours configuration, because nobody has
  to maintain the muscle.
&lt;/p&gt;

&lt;h2&gt;What does &quot;build&quot; actually mean now?&lt;/h2&gt;
&lt;p&gt;
  Rarely a from-scratch application. In practice it is one of four shapes: Apex and
  Lightning Web Components inside the org; a packaged component you install into several
  orgs; a managed package on the AppExchange; or a service outside Salesforce that the
  org calls through an API or an MCP server, with an agent action in front of it.
&lt;/p&gt;
&lt;p&gt;
  The packaged options matter more than teams expect. Building as a package forces the
  versioning, the upgrade path and the isolation you would otherwise skip, and it makes
  the second and third deployment nearly free. This is the discipline we brought from
  product work into implementation: because Tekunda builds and ships AppExchange
  products as a PDO, our implementation work inherits reusable, tested components rather
  than rebuilding each one.
&lt;/p&gt;

&lt;h2&gt;How do you keep a custom build from becoming the next mess?&lt;/h2&gt;
&lt;ol&gt;
  &lt;li&gt;
    Give it an owner and a deprecation plan on day one. Code without an owner becomes
    configuration nobody can read.
  &lt;/li&gt;
  &lt;li&gt;
    Keep configuration values in custom metadata, not in the code. The whole point is
    that the business can change them without you.
  &lt;/li&gt;
  &lt;li&gt;Write the tests as the specification, not as a coverage tax.&lt;/li&gt;
  &lt;li&gt;
    Re-check each release whether the platform has caught up. Deleting your own code is
    a legitimate result.
  &lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
  Done well, the payoff is not an elegant architecture, it is operational. For ASSA
  ABLOY we took weekly cases from 3,000 to 350, a 93% reduction across 11,000 connected
  devices and up to 2.5 million events a week, in three markets and with no added
  support staff. That volume was never going to be a Flow. If you are weighing the same
  decision, &lt;a href=&quot;/&quot;&gt;talk to us&lt;/a&gt; before the build, not during the rescue.
&lt;/p&gt;

&lt;h2&gt;FAQ&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Is custom code always more expensive than configuration?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  No. It is more expensive to start and often cheaper to change. Compare three years of
  ownership, including the admin hours and regression risk configuration quietly
  consumes.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;How complex is too complex for Flow?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  Use a human test rather than an element count: if a competent admin cannot predict
  what it does by reading it, or cannot change it safely in an hour, it has become
  software.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Should we build it or buy it from the AppExchange?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  Buy when the capability is a commodity and a listed app covers most of the
  requirement. Build when the logic is the reason customers choose you.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Does going custom lock us out of platform upgrades?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  Not if it is built as a package with a version and a test suite. What blocks upgrades
  is undocumented code with no owner, and that happens to configuration too.
&lt;/p&gt;
</content:encoded>
        </item>
        <item>
            <title><![CDATA[AppExchange Security Review for Agentic Apps: What Is Different]]></title>
            <description><![CDATA[Agentic and LLM-backed AppExchange apps face review questions managed packages never did: prompt handling, data egress and third-party model calls.]]></description>
            <link>https://tekunda.com/blog/AppExchange-Security-Review-for-Agentic-Apps%3A-What-Is-Different</link>
            <guid isPermaLink="false">https://tekunda.com/blog/AppExchange-Security-Review-for-Agentic-Apps%3A-What-Is-Different</guid>
            <dc:creator><![CDATA[Tekunda Team]]></dc:creator>
            <pubDate>Sat, 11 Jul 2026 12:00:00 GMT</pubDate>
            <content:encoded>&lt;p&gt;
  &lt;strong&gt;Short answer:&lt;/strong&gt; agentic apps go through the same AppExchange security
  review as any other managed package. What changes is the surface it covers. Salesforce
  scopes its testing by following the data, and in an LLM-backed app customer data now
  travels into a prompt, often out to a model, and back as text that can trigger an
  action. Prepare three answers before you submit: what goes into the prompt, what
  leaves the org, and what the agent is allowed to do on a user&apos;s behalf.
&lt;/p&gt;

&lt;h2&gt;What actually changes when your package is agentic?&lt;/h2&gt;
&lt;p&gt;
  An agentic app, for review purposes, is any package that ships agent actions, topics
  or prompt templates, or that calls a language model from Apex or Flow. The review
  guidelines have not been rewritten around it (&lt;a
    href=&quot;https://developer.salesforce.com/docs/atlas.en-us.packagingGuide.meta/packagingGuide/security_review_guidelines.htm&quot;
    &gt;Salesforce Developers&lt;/a
  &gt;). The scope has simply grown, because Salesforce determines what to test with a
  follow-the-data approach, and there is far more data movement to follow than in a
  classic CRM package.
&lt;/p&gt;
&lt;p&gt;
  In a classic managed package the risky paths were finite: SOQL, sharing, a couple of
  callouts, some Visualforce output. In an agentic app the same package also constructs
  prompts from customer records, sends them somewhere, and then acts on the answer.
  Every one of those hops is a place a reviewer will look.
&lt;/p&gt;

&lt;h2&gt;What do reviewers ask about prompt handling?&lt;/h2&gt;
&lt;p&gt;
  Be ready to show, in the Developer Edition org you submit, exactly where prompt text
  comes from and what constrains it. In practice that means five things:
&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;
    &lt;strong&gt;Instruction integrity.&lt;/strong&gt; User-supplied text must not be able to
    rewrite your system instructions. Treat every free-text field that reaches a prompt
    as hostile input.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Grounding respects permissions.&lt;/strong&gt; Records used to ground a prompt
    must be read in the running user&apos;s context, with sharing and field-level security
    enforced. An agent that can summarise a record the user cannot open is a sharing
    violation with better manners.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Model output is untrusted.&lt;/strong&gt; Never render it raw into markup and
    never concatenate it into a query. The old injection rules apply to generated text
    too.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Least data in the prompt.&lt;/strong&gt; Send the fields the task needs, not the
    record.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Log discipline.&lt;/strong&gt; If you store prompts or completions for debugging,
    you are storing customer data. Say so, scope it, and let admins turn it off.
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;What has to be true about data egress?&lt;/h2&gt;
&lt;p&gt;
  This is the question classic packages rarely had to answer well, and it is where
  agentic submissions lose weeks. If any component sits outside Salesforce, the
  submission requires the URLs and login credentials for those external components, a
  Checkmarx scan report and a dynamic application security test report (&lt;a
    href=&quot;https://developer.salesforce.com/docs/atlas.en-us.packagingGuide.meta/packagingGuide/security_review_required_materials.htm&quot;
    &gt;Salesforce Developers&lt;/a
  &gt;). Add to that, from experience, what your reviewer will want spelled out:
&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;An explicit list of which objects and fields can leave the org, per feature.&lt;/li&gt;
  &lt;li&gt;
    A named credential for every model endpoint, so the endpoint and its authentication
    never sit inside Apex (&lt;a
      href=&quot;https://help.salesforce.com/s/articleView?id=xcloud.named_credentials_about.htm&amp;amp;type=5&quot;
      &gt;Salesforce Help&lt;/a
    &gt;).
  &lt;/li&gt;
  &lt;li&gt;
    Who holds the credential: the subscriber&apos;s own key, or yours on their behalf. Say
    which, and why.
  &lt;/li&gt;
  &lt;li&gt;What the model provider retains, for how long, and in which region.&lt;/li&gt;
  &lt;li&gt;Whether an admin can switch the external call off and keep a working app.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;What about calls to third-party models?&lt;/h2&gt;
&lt;p&gt;
  Where you place the trust boundary decides how much of the review lands on you. Use
  the platform&apos;s own AI services and the boundary is largely Salesforce&apos;s. Call an
  external model directly from your package and it is entirely yours to evidence: the
  endpoint, the authentication, the failure behaviour when the provider is down or
  returns garbage, and the tenant isolation between subscribers. Give reviewers working
  test access to that external component, not a description of it.
&lt;/p&gt;

&lt;h2&gt;What is the agent allowed to do on a user&apos;s behalf?&lt;/h2&gt;
&lt;p&gt;
  The moment an action writes, deletes, sends or pays, the review stops being about code
  and starts being about authority. Grant the narrowest permission set the action needs,
  run in user context, require a human confirmation for anything irreversible, and write
  an audit record of what the agent did and on whose behalf. Salesforce framed the
  standard plainly when it opened its agent marketplace to partners:
&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;
    You need to be able to trust the AI. That means we need to understand permissions
    and respect guardrails, and our enterprise customers need to stay compliant with
    their solutions. (Alice Steinglass, EVP and GM, Salesforce Platform,
    &lt;a
      href=&quot;https://diginomica.com/tdx25-salesforce-launches-agentexchange-partners-agentforce&quot;
      &gt;diginomica&lt;/a
    &gt;)
  &lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;What should you prepare before you submit?&lt;/h2&gt;
&lt;ol&gt;
  &lt;li&gt;A managed and released package. Unmanaged and beta packages are rejected.&lt;/li&gt;
  &lt;li&gt;
    A Developer Edition org with the solution installed, clean sample data, credentials
    and usage instructions.
  &lt;/li&gt;
  &lt;li&gt;Documentation of any false positives in your scan results.&lt;/li&gt;
  &lt;li&gt;
    Scan reports and credentials for every external component, including your model
    gateway.
  &lt;/li&gt;
  &lt;li&gt;
    A one-page data-flow description per AI feature: trigger, fields sent, destination,
    retention, and the admin switch.
  &lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
  The first four are the documented submission materials. The fifth is not, and it is
  the one that turns a multi-round review into a single pass.
&lt;/p&gt;

&lt;h2&gt;Is AgentExchange a different review?&lt;/h2&gt;
&lt;p&gt;
  AgentExchange opened at TDX 2025 with more than 200 partners publishing four component
  types: actions, prompt templates, topics and agent templates, all of which Salesforce
  says passed security review (&lt;a
    href=&quot;https://diginomica.com/tdx25-salesforce-launches-agentexchange-partners-agentforce&quot;
    &gt;diginomica&lt;/a
  &gt;). Treat it as the same trust bar applied to smaller units. A single action carries
  the same three questions as a full app, with less code to hide behind.
&lt;/p&gt;
&lt;p&gt;
  Tekunda is a Salesforce PDO, and we have taken packages through security review in
  healthcare, logistics and manufacturing, including the Syntilio managed package, which
  cleared review and shipped to the AppExchange. If you are packaging an agentic app,
  &lt;a href=&quot;/&quot;&gt;talk to us&lt;/a&gt; before your first submission rather than after your first
  rejection.
&lt;/p&gt;

&lt;h2&gt;FAQ&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Does an AI feature require a separate security review?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  No. It is reviewed with your package, but it widens the scope, because the data path
  now leaves the objects and travels through a prompt.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Can I ship my own model API key inside the package?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  You can architect it either way, but be explicit about which you chose. A shared key
  makes tenant isolation and per-subscriber consent your responsibility to prove.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Do I need to enforce sharing on data used for grounding?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  Yes. Grounding is a read. The usual sharing and field-level security rules apply, and
  a summary that leaks a hidden field fails the same way a raw query would.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What is the most common reason an agentic submission comes back?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  Undocumented egress. The code is often fine; what is missing is a clear statement of
  which customer data leaves the org, where it goes and how long it stays there.
&lt;/p&gt;
</content:encoded>
        </item>
        <item>
            <title><![CDATA[How ISVs Pass the Salesforce AppExchange Security Review]]></title>
            <description><![CDATA[Most AppExchange security review rejections trace back to a handful of fixable issues, and here's what ISVs actually need to get right.]]></description>
            <link>https://tekunda.com/blog/How-ISVs-Pass-the-Salesforce-AppExchange-Security-Review</link>
            <guid isPermaLink="false">https://tekunda.com/blog/How-ISVs-Pass-the-Salesforce-AppExchange-Security-Review</guid>
            <dc:creator><![CDATA[Tekunda Team]]></dc:creator>
            <pubDate>Wed, 08 Jul 2026 12:00:00 GMT</pubDate>
            <content:encoded>&lt;p&gt;
  Most AppExchange security review rejections are not exotic bugs. They trace back to a
  short, predictable list: unenforced CRUD/FLS, sharing violations, weak session
  settings, and secrets in metadata. ISVs that treat the review as a code audit two
  weeks before submission usually lose a full cycle to it.
&lt;/p&gt;

&lt;h2&gt;Why do apps fail the Salesforce security review?&lt;/h2&gt;
&lt;p&gt;
  Salesforce&apos;s review team runs static analysis (Checkmarx, PMD via Salesforce Code
  Analyzer). Since the hosted Chimera scanner retired on 2025-06-16, the dynamic scan
  against any third-party endpoints your package calls is yours to run and submit, as
  covered in
  &lt;a
    href=&quot;/blog/Salesforce-Security-Review%3A-Running-Your-Own-Dynamic-Scans-After-Chimera&quot;
    &gt;Running Your Own Dynamic Scans After Chimera&lt;/a
  &gt;. The failures we see most on ISV engagements fall into four buckets:
&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;
    &lt;strong&gt;CRUD/FLS gaps.&lt;/strong&gt; Apex that reads or writes objects without checking
    the running user&apos;s object and field-level access, especially in Visualforce
    controllers and REST endpoints.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Missing sharing declarations.&lt;/strong&gt; Classes without
    &lt;code&gt;with sharing&lt;/code&gt; that perform DML, or a &quot;with sharing&quot; class that calls a
    &quot;without sharing&quot; helper and inherits its looser context.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Session and identity misconfiguration.&lt;/strong&gt; Test orgs with identity
    challenge or MFA blocking the reviewer&apos;s tooling, instead of the recommended IP
    allowlist approach.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Secrets in the wrong place.&lt;/strong&gt; API keys stored in custom metadata
    types any subscriber admin can query, and PII logged through
    &lt;code&gt;System.debug&lt;/code&gt;.
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;How do you prepare an app for the AppExchange security review?&lt;/h2&gt;
&lt;p&gt;Preparation is mostly discipline, not new tooling. Before you request a review:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;
    Run
    &lt;a
      href=&quot;https://developer.salesforce.com/docs/platform/salesforce-code-analyzer/guide/code-analyzer.html&quot;
      target=&quot;_blank&quot;
      rel=&quot;noopener&quot;
      &gt;Salesforce Code Analyzer&lt;/a
    &gt;
    against the full package, not just recently touched classes, and triage every
    finding.
  &lt;/li&gt;
  &lt;li&gt;
    Confirm every DML statement sits inside a class declared &lt;code&gt;with sharing&lt;/code&gt;,
    or document the specific case for bypassing CRUD/FLS (roll-up aggregates and
    internal logging objects are the two Salesforce generally accepts).
  &lt;/li&gt;
  &lt;li&gt;
    Scan every non-Salesforce domain your package calls with an approved web application
    scanner and resolve high-severity findings before submission.
  &lt;/li&gt;
  &lt;li&gt;
    Move secrets out of metadata and into Named Credentials or an external secret store
    referenced at runtime.
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;What does a false positive from Checkmarx or PMD actually mean?&lt;/h2&gt;
&lt;p&gt;
  Scanners flag patterns, not intent, so a chunk of every report is noise: a SOQL query
  that merely looks like string concatenation, or a debug line that never touches user
  data. Treating every flagged line as a required code change wastes a cycle. The faster
  path is triaging each finding against real risk, fixing what&apos;s genuinely exploitable,
  and writing a short justification for anything left as-is. Reviewers read
  justifications; they don&apos;t reward blanket &quot;fixed&quot; claims that don&apos;t hold up on
  re-scan.
&lt;/p&gt;

&lt;h2&gt;How does an implementation partner reduce security review risk?&lt;/h2&gt;
&lt;p&gt;
  A partner who has taken packages through the review before knows which findings are
  worth arguing and which are worth just fixing, and that judgment is where the time
  savings come from. Tekunda has led AppExchange security reviews end to end for ISV
  clients, from the initial Apex and integration audit through resubmission after
  reviewer feedback, so the two or three round trips that catch first-time submitters
  off guard rarely happen on our engagements.
&lt;/p&gt;
&lt;p&gt;
  Integration surface compounds review scope fast: every callout, remote site setting,
  and domain that stores Salesforce data is in scope for the reviewer&apos;s web application
  scan. Getting that right the first time, through our
  &lt;a href=&quot;/products/integration&quot;&gt;integration engineering work&lt;/a&gt;, is usually the
  difference between a clean submission and a second round of findings.
&lt;/p&gt;

&lt;h2&gt;What happens if the review comes back with findings?&lt;/h2&gt;
&lt;p&gt;
  A rejection is not a restart. If findings only touch code running on the Salesforce
  platform, upload a new managed package version and start review again from the
  Packages tab. If the fix was entirely in your external application, you can usually
  edit the existing submission instead. Either way, log a case against &quot;Partner
  Community &amp; AppExchange&quot; with your package name, ID, and version so the review team
  matches your resubmission to the right queue.
&lt;/p&gt;

&lt;h2&gt;FAQ&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;How long does the Salesforce security review take?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  Timelines vary by submission complexity and current review volume, and Salesforce does
  not publish a fixed SLA, so plan release calendars with buffer.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Can an ISV skip the review for a narrow-audience package?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  No. Any managed package, Platform API solution, or Marketing Cloud API solution
  distributed on AppExchange must pass review before listing, regardless of intended
  audience size.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Does the review apply to unmanaged packages?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  The formal security review process applies specifically to managed 2GP and 1GP
  packages and API-based solutions submitted for AppExchange listing.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What&apos;s the single most common CRUD/FLS mistake?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  Building a controller or REST endpoint that reads or writes an object directly via
  SOQL/DML without checking the running user&apos;s permissions first, silently bypassing
  profile and permission set restrictions.
&lt;/p&gt;

&lt;p&gt;
  Getting a package through review cleanly is one part of shipping on AppExchange;
  building the product and integrations right the first time is the harder part. If
  you&apos;re preparing a submission or planning your next release,
  &lt;a href=&quot;/product-development&quot;&gt;talk to our product engineering team&lt;/a&gt;, or
  &lt;a href=&quot;/contact&quot;&gt;get in touch&lt;/a&gt; to scope the work.
&lt;/p&gt;
</content:encoded>
        </item>
        <item>
            <title><![CDATA[How Salesforce CLI Turns Admin Work Into Repeatable Code]]></title>
            <description><![CDATA[The Salesforce CLI turns repetitive org admin into version-controlled, repeatable code that any engineer can review, test, and rerun.]]></description>
            <link>https://tekunda.com/blog/How-Salesforce-CLI-Turns-Admin-Work-Into-Repeatable-Code</link>
            <guid isPermaLink="false">https://tekunda.com/blog/How-Salesforce-CLI-Turns-Admin-Work-Into-Repeatable-Code</guid>
            <dc:creator><![CDATA[Tekunda Team]]></dc:creator>
            <pubDate>Wed, 08 Jul 2026 12:00:00 GMT</pubDate>
            <content:encoded>&lt;p&gt;
  The Salesforce CLI (&lt;code&gt;sf&lt;/code&gt;) matters because it moves the source of truth for
  your org out of clicks in Setup and into files a team can read, review, and script.
  That single shift is what separates a solution that happens to work from one that
  stays maintainable as the team and the org grow.
&lt;/p&gt;
&lt;p&gt;
  Most orgs drift because changes live only in the click-trail of whoever made them. A
  permission set gets edited by hand, a validation rule gets tweaked, and six months
  later nobody remembers why. The CLI does not fix people; it fixes the record. Every
  command it runs operates on metadata files in your project directory, so every change
  is diffable, reviewable, and reversible, the same way application code already is.
&lt;/p&gt;
&lt;h2&gt;What does source-driven development actually change?&lt;/h2&gt;
&lt;p&gt;
  Source-driven development means your local files, not the org, are authoritative. You
  retrieve metadata with &lt;code&gt;sf project retrieve start&lt;/code&gt;, edit it in an IDE with
  real syntax checking, and push it back with &lt;code&gt;sf project deploy start&lt;/code&gt;. The
  org becomes a target you deploy to, not a place where configuration quietly
  accumulates. For a product-engineering team, this is the difference between debugging
  &quot;what changed&quot; by asking around and debugging it by reading a commit.
&lt;/p&gt;
&lt;h2&gt;How do scratch orgs reduce risk in a build?&lt;/h2&gt;
&lt;p&gt;
  A
  &lt;a
    href=&quot;https://developer.salesforce.com/docs/atlas.en-us.sfdx_dev.meta/sfdx_dev/sfdx_dev_scratch_orgs.htm&quot;
    &gt;scratch org&lt;/a
  &gt;
  is a full, disposable Salesforce environment defined by a JSON file and spun up with
  one command. Because it is disposable, engineers stop being precious about testing in
  it. Create a scratch org, push a feature branch into it, run the destructive test case
  you were nervous about, then delete it, with zero risk to any shared sandbox. Teams
  that adopt this habit catch more edge cases before code reaches a shared environment,
  because thorough testing costs almost nothing.
&lt;/p&gt;
&lt;h3&gt;A typical loop looks like this&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;
    Create a scratch org from a definition file scoped to the feature you are building
  &lt;/li&gt;
  &lt;li&gt;Push source and load a small, representative data set&lt;/li&gt;
  &lt;li&gt;Run Apex tests and manual checks against that isolated org&lt;/li&gt;
  &lt;li&gt;Delete the scratch org once the branch merges&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Can the CLI replace manual admin work?&lt;/h2&gt;
&lt;p&gt;
  A surprising amount of it, yes. Anything you do repeatedly by hand in Setup is a
  candidate for a script built on &lt;code&gt;sf&lt;/code&gt; commands: reassigning permission sets
  after a release, loading a consistent test data set with
  &lt;code&gt;sf data import tree&lt;/code&gt;, or auditing which profiles have a given field-level
  security setting. Scripting these tasks does two things a manual process cannot: it
  makes the step identical every time, and it makes the step something a junior engineer
  can run safely without tribal knowledge.
&lt;/p&gt;
&lt;p&gt;
  This is especially valuable on solutions with real complexity underneath, like custom
  &lt;a href=&quot;/products/integration&quot;&gt;integration&lt;/a&gt; logic or a managed package with a
  namespace to protect. Namespaced scratch orgs let you validate packaging behavior in
  an environment that actually resembles production, rather than finding out about
  namespace collisions after a release.
&lt;/p&gt;
&lt;h2&gt;What do sf plugins add to the toolchain?&lt;/h2&gt;
&lt;p&gt;
  The CLI is
  &lt;a
    href=&quot;https://developer.salesforce.com/docs/atlas.en-us.sfdx_cli_plugins.meta/sfdx_cli_plugins/cli_plugins_architecture_sf_cli.htm&quot;
    &gt;plugin-extensible&lt;/a
  &gt;, so teams are not limited to the built-in command set. Plugins exist for static code
  analysis, dependency graphing between packages, and bulk data operations that would
  otherwise mean writing one-off scripts by hand. A well-maintained plugin is usually
  faster and more reliable than building the equivalent tooling in-house, and it keeps
  the workflow inside the same command-line habit your engineers already have.
&lt;/p&gt;
&lt;p&gt;
  None of this is about running a pipeline for its own sake. It is about giving a team
  the same engineering discipline on Salesforce that they would expect on any other
  platform: reviewable changes, repeatable environments, and less time re-discovering
  how the org actually works. If your team is building something on Salesforce that
  needs to hold up under real usage, that discipline is worth investing in early. Our
  &lt;a href=&quot;/product-development&quot;&gt;product development&lt;/a&gt; team builds this way by
  default; &lt;a href=&quot;/contact&quot;&gt;reach out&lt;/a&gt; if your process has more friction than it
  should.
&lt;/p&gt;
&lt;h2&gt;FAQ&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Do I need DevOps experience to use the Salesforce CLI?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  No. The core commands, like creating a scratch org or deploying source, are
  approachable for any developer or technical admin willing to work from the command
  line.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Is a scratch org the same as a sandbox?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  No. Scratch orgs are temporary and defined by a config file, typically lasting days,
  while sandboxes are longer-lived copies of production used for staging and QA.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Can the Salesforce CLI manage both code and configuration?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  Yes. It retrieves and deploys any metadata type, including Apex, Lightning components,
  flows, permission sets, and object definitions, not just code.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What is the fastest way to start using it well?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  Pick one repetitive manual task, like permission set assignment after a release, and
  script it first. Small, real wins build the habit faster than a full workflow
  overhaul.
&lt;/p&gt;
</content:encoded>
        </item>
        <item>
            <title><![CDATA[Salesforce Integration Architecture: Patterns That Actually Scale]]></title>
            <description><![CDATA[The integration pattern you choose, not the tool, decides whether Salesforce data stays clean or turns into a synchronization mess.]]></description>
            <link>https://tekunda.com/blog/Salesforce-Integration-Architecture%3A-Patterns-That-Actually-Scale</link>
            <guid isPermaLink="false">https://tekunda.com/blog/Salesforce-Integration-Architecture%3A-Patterns-That-Actually-Scale</guid>
            <dc:creator><![CDATA[Tekunda Team]]></dc:creator>
            <pubDate>Wed, 08 Jul 2026 12:00:00 GMT</pubDate>
            <content:encoded>&lt;p&gt;
  The integration pattern you choose, not the tool, decides whether Salesforce data
  stays clean or turns into a synchronization mess. Point-to-point connections are fast
  to build and fast to break; middleware and event-driven patterns cost more upfront but
  survive the third, fourth, and tenth system you connect. Most integration pain traces
  back to that early architecture decision, not to Salesforce itself.
&lt;/p&gt;

&lt;h2&gt;Why do most Salesforce integrations break down?&lt;/h2&gt;
&lt;p&gt;
  Two systems rarely share the same data model. Salesforce thinks in Accounts, Contacts,
  and Opportunities; an ERP thinks in customer master records and sales orders. Every
  integration has to reconcile those shapes, and teams that skip this step end up
  bolting fields onto Salesforce objects to mirror whatever the other system sends. Six
  months later nobody remembers why &lt;code&gt;Custom_ERP_ID__c&lt;/code&gt; exists or what happens
  if it&apos;s blank.
&lt;/p&gt;
&lt;p&gt;
  The fix isn&apos;t a tool, it&apos;s a canonical data model: decide what an &quot;Account&quot; means
  across your systems before you write a single integration flow, and build
  transformation logic around that definition instead of letting the last-connected
  system dictate the schema.
&lt;/p&gt;

&lt;h2&gt;Point-to-point or middleware: which pattern fits?&lt;/h2&gt;
&lt;p&gt;
  Point-to-point integrations, a direct API call from Salesforce to System B, make sense
  for one or two connections with simple, stable data. Once you&apos;re integrating three or
  more systems, point-to-point becomes an unmaintainable web: every new connection
  multiplies the number of places a field mapping can drift out of sync.
&lt;/p&gt;
&lt;p&gt;
  A middleware or ESB layer, such as MuleSoft, Boomi, or a lighter custom message
  broker, centralizes transformation and routing so Salesforce talks to one integration
  layer instead of five downstream systems directly. That&apos;s a real infrastructure
  investment, so it&apos;s worth reserving for integration landscapes that are actually
  growing, not a single one-off sync.
&lt;/p&gt;

&lt;h2&gt;How do you handle real-time vs batch data?&lt;/h2&gt;
&lt;p&gt;
  Not everything needs to sync instantly, and treating every integration as real-time is
  how teams burn through
  &lt;a
    href=&quot;https://developer.salesforce.com/docs/atlas.en-us.salesforce_app_limits_cheatsheet.meta/salesforce_app_limits_cheatsheet/salesforce_app_limits_platform_api.htm&quot;
    &gt;Salesforce API limits&lt;/a
  &gt;
  for no benefit. A useful rule of thumb:
&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;
    Use Platform Events or Change Data Capture for anything a user needs to see
    reflected immediately, like order status or support case updates.
  &lt;/li&gt;
  &lt;li&gt;
    Use scheduled batch jobs and the Bulk API for large, non-urgent volumes, like
    nightly financial reconciliation.
  &lt;/li&gt;
  &lt;li&gt;
    Avoid polling loops that hit the REST API on a timer just because it&apos;s easier to
    build. They waste API calls and add latency compared to event-driven alternatives.
  &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
  &lt;a
    href=&quot;https://developer.salesforce.com/docs/atlas.en-us.change_data_capture.meta/change_data_capture/cdc_intro.htm&quot;
    &gt;Change Data Capture&lt;/a
  &gt;
  is underused: it publishes field-level change events for standard and custom objects
  without you having to build custom triggers to detect what changed.
&lt;/p&gt;

&lt;h2&gt;How do you prevent duplicate records and failed syncs?&lt;/h2&gt;
&lt;p&gt;
  Every integration eventually retries a request, whether from a timeout or a queued job
  that runs twice. If your integration isn&apos;t idempotent, that retry creates a duplicate
  Opportunity or double-counts a metric. The fix is a stable external ID field on the
  Salesforce object, paired with upsert calls keyed to that ID instead of blind create
  calls.
&lt;/p&gt;
&lt;p&gt;
  Error handling deserves the same rigor as the happy path. Failed records should land
  in a dead-letter queue or error log with enough context to reprocess them, not
  silently vanish because a single record in a 200-record batch failed validation.
&lt;/p&gt;

&lt;h2&gt;MuleSoft or a custom-built integration layer?&lt;/h2&gt;
&lt;p&gt;
  MuleSoft earns its cost with many systems, a dedicated integration team, and
  connectors that map closely to what you&apos;re building. A custom-built layer using Apex,
  a message queue, and a lightweight orchestration service is often cheaper to ship for
  a handful of well-defined integrations through
  &lt;a href=&quot;/product-development&quot;&gt;dedicated development work&lt;/a&gt;, but it puts long-term
  maintenance on your own engineering team.
&lt;/p&gt;
&lt;p&gt;
  It&apos;s a build-versus-buy tradeoff that depends on integration count and how fast your
  system landscape is growing. That decision is worth getting outside eyes on before you
  commit, which is where
  &lt;a href=&quot;/products/integration&quot;&gt;Tekunda&apos;s integration services&lt;/a&gt; come in: we help
  teams pick and implement the pattern that fits their actual roadmap, not the one a
  vendor demo made look easy.
&lt;/p&gt;

&lt;h2&gt;FAQ&lt;/h2&gt;
&lt;p&gt;
  &lt;strong
    &gt;What&apos;s the difference between Platform Events and Change Data Capture?&lt;/strong
  &gt;
&lt;/p&gt;
&lt;p&gt;
  Platform Events are custom-defined messages you publish explicitly from Apex or a
  flow, while Change Data Capture automatically emits events when standard or custom
  object records change, with no custom publishing logic required.
&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Do I need MuleSoft to integrate Salesforce with other systems?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  No. MuleSoft is one option among several, including Boomi, Informatica, or a
  custom-built middleware layer; the right choice depends on how many systems you&apos;re
  connecting and who will maintain the integration long-term.
&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How do I avoid hitting Salesforce API limits?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  Batch large data volumes through the Bulk API instead of single-record REST calls, use
  Platform Events or Change Data Capture instead of polling, and combine related calls
  where the API supports composite requests.
&lt;/p&gt;

&lt;p&gt;
  &lt;strong
    &gt;What&apos;s the safest way to authenticate a third-party integration with
    Salesforce?&lt;/strong
  &gt;
&lt;/p&gt;
&lt;p&gt;
  Use a Connected App with OAuth 2.0, scope the permissions to only what the integration
  needs, and rotate credentials on a schedule rather than relying on a single long-lived
  token.
&lt;/p&gt;
</content:encoded>
        </item>
        <item>
            <title><![CDATA[Salesforce Metadata Governance for Growing Orgs and Teams]]></title>
            <description><![CDATA[Disciplined metadata governance, not more tooling, keeps a scaling Salesforce org maintainable and audit-ready.]]></description>
            <link>https://tekunda.com/blog/Salesforce-Metadata-Governance-for-Growing-Orgs-and-Teams</link>
            <guid isPermaLink="false">https://tekunda.com/blog/Salesforce-Metadata-Governance-for-Growing-Orgs-and-Teams</guid>
            <dc:creator><![CDATA[Tekunda Team]]></dc:creator>
            <pubDate>Wed, 08 Jul 2026 12:00:00 GMT</pubDate>
            <content:encoded>&lt;p&gt;
  Salesforce metadata governance means treating every custom object, field, flow, and
  permission set your team creates as a long-lived asset rather than a one-off fix. That
  requires consistent naming conventions, metadata tracked in source control, and clear
  ownership before anything reaches production. Orgs that skip this discipline
  accumulate config sprawl that turns a two-hour ticket into a two-week investigation.
&lt;/p&gt;

&lt;h2&gt;What does &quot;metadata&quot; actually cover in a growing org?&lt;/h2&gt;
&lt;p&gt;
  Metadata is everything that defines how your org behaves outside the raw records:
  custom objects and fields, page layouts, validation rules, permission sets, Flows, and
  Apex classes. Two of those categories matter more than people think as a team grows.
&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;
    &lt;strong&gt;Declarative metadata&lt;/strong&gt; - Flows, validation rules, layouts, and
    approval processes built through Setup. Anyone with admin access can create it,
    which is exactly why it needs a review process.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Programmatic metadata&lt;/strong&gt; - Apex, Lightning Web Components, and
    triggers. Changes go through a developer and, ideally, a code review, but they can
    still collide with declarative automation on the same object.
  &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
  The line blurs fast once a Flow calls an invocable Apex method or a trigger fires
  alongside a Flow on the same record. Governance means deciding, in advance, who owns
  changes on each object.
&lt;/p&gt;

&lt;h2&gt;How do naming conventions prevent config sprawl?&lt;/h2&gt;
&lt;p&gt;
  Config sprawl usually starts with a field called &lt;code&gt;Status_2__c&lt;/code&gt; because
  nobody could tell if &lt;code&gt;Status__c&lt;/code&gt; was still in use. A simple convention
  fixes this before it happens: prefix custom fields and Flows with the team or domain
  that owns them (&lt;code&gt;SVC_&lt;/code&gt; for service, &lt;code&gt;SLS_&lt;/code&gt; for sales), and
  require a description on every field explaining what created it and why.
&lt;/p&gt;
&lt;p&gt;
  The payoff is not cosmetic. When a new hire or an outside consultant opens Setup six
  months later, naming conventions are the difference between understanding the org in
  an afternoon and reverse-engineering it for a week.
&lt;/p&gt;

&lt;h2&gt;Why does metadata belong in source control, not just Setup?&lt;/h2&gt;
&lt;p&gt;
  Changes made directly in Setup leave no diff, no reviewer, and no rollback path.
  Pulling metadata into a Git repository with
  &lt;a
    href=&quot;https://developer.salesforce.com/docs/atlas.en-us.sfdx_dev.meta/sfdx_dev/sfdx_dev_intro.htm&quot;
    &gt;Salesforce DX&lt;/a
  &gt;
  changes that: every field, Flow, or permission set edit becomes a pull request someone
  reviews before it ships, and every production incident has a commit history to trace
  back to.
&lt;/p&gt;
&lt;p&gt;
  This matters most for teams running multiple sandboxes. Without source control, two
  people editing the same Flow in different sandboxes is how conflicting logic ends up
  live at once.
&lt;/p&gt;

&lt;h2&gt;How do you document dependencies before they break something?&lt;/h2&gt;
&lt;p&gt;
  The most common outage in a mature org is not a bad deploy, it is a field or Flow
  someone deleted without realizing an integration or a report depended on it. Before
  deprecating any metadata component, check its dependency tree in Setup (&quot;Where is this
  used?&quot;) and confirm nothing downstream, including middleware and scheduled jobs, still
  reads it.
&lt;/p&gt;
&lt;p&gt;
  Write that dependency down somewhere durable, not in a Slack thread. A short note in
  the field description or a shared runbook, such as &quot;used by the invoicing integration,
  do not delete,&quot; saves the next person from rediscovering it the hard way.
&lt;/p&gt;

&lt;h2&gt;What keeps metadata debt from creeping back in?&lt;/h2&gt;
&lt;p&gt;
  Governance is not a one-time cleanup, it is a recurring habit: a quarterly audit of
  unused fields and inactive Flows, a rule that new automation gets a named owner, and a
  lightweight review gate before anything merges to production. Teams that treat this as
  ongoing maintenance are the ones whose orgs stay fast to change years later, instead
  of becoming something everyone is afraid to touch.
&lt;/p&gt;

&lt;p&gt;
  If nobody on your team is fully sure what half the Flows do anymore, that is usually a
  sign the underlying architecture needs a second look, not just a cleanup pass.
  Tekunda&apos;s &lt;a href=&quot;/product-development&quot;&gt;product development&lt;/a&gt; team helps growing
  companies rebuild that structure without a rip-and-replace, and our
  &lt;a href=&quot;/ai-agents&quot;&gt;AI agent&lt;/a&gt; tooling can surface unused fields and orphaned
  automation faster than a manual audit. See our &lt;a href=&quot;/blog&quot;&gt;blog&lt;/a&gt; for more on
  our approach, or &lt;a href=&quot;/contact&quot;&gt;get in touch&lt;/a&gt; to talk through your org.
&lt;/p&gt;

&lt;h2&gt;FAQ&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;What is Salesforce metadata governance?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  It is the set of conventions, ownership rules, and version-control practices that keep
  custom objects, fields, and automation organized and auditable as an org grows.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Should Flows or Apex own a given piece of automation?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  Simple record-level logic is usually fine as a Flow owned by admins; anything
  requiring bulk-safe processing, complex branching, or external callouts is better as
  reviewed Apex owned by developers.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Do small teams need metadata source control?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  Yes. Even a two-person admin team benefits from a commit history and rollback path the
  moment a bad Flow change reaches production during business hours.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;How often should we audit unused metadata?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  Quarterly is a reasonable baseline for most active orgs; teams shipping weekly
  releases often fold a lighter dependency check into every deploy instead.
&lt;/p&gt;
</content:encoded>
        </item>
        <item>
            <title><![CDATA[Salesforce Packaging Models for ISVs: 1GP vs 2GP vs Unmanaged]]></title>
            <description><![CDATA[Picking 1GP, 2GP, or unmanaged the wrong way locks in your namespace, IP protection, and licensing forever - here's how to choose right.]]></description>
            <link>https://tekunda.com/blog/Salesforce-Packaging-Models-for-ISVs%3A-1GP-vs-2GP-vs-Unmanaged</link>
            <guid isPermaLink="false">https://tekunda.com/blog/Salesforce-Packaging-Models-for-ISVs%3A-1GP-vs-2GP-vs-Unmanaged</guid>
            <dc:creator><![CDATA[Tekunda Team]]></dc:creator>
            <pubDate>Wed, 08 Jul 2026 12:00:00 GMT</pubDate>
            <content:encoded>&lt;p&gt;
  For an ISV building a commercial AppExchange product, the packaging model is a one-way
  door: your namespace, your upgrade path, and your IP protection are all set by this
  one early decision. Second-Generation managed packages (2GP) are the right default for
  almost every new commercial product today, with First-Generation (1GP) reserved for
  legacy edge cases and unmanaged packages ruled out entirely for anything you plan to
  sell.
&lt;/p&gt;
&lt;h2&gt;What&apos;s the difference between 1GP, 2GP, and unmanaged packages?&lt;/h2&gt;
&lt;p&gt;
  An unmanaged package has no namespace and ships fully editable metadata. It&apos;s fine for
  open-source templates or a one-time deployment, but every component becomes
  indistinguishable from the customer&apos;s own customizations the moment it lands - you
  lose the ability to identify, support, or safely upgrade what you built.
&lt;/p&gt;
&lt;p&gt;
  A managed package, whether 1GP or 2GP, is namespaced and locked. Customers install it,
  use it, and cannot edit its internals directly. That&apos;s what makes it a product rather
  than a one-off deployment: you control the release cadence, and Salesforce enforces
  the boundary for you.
&lt;/p&gt;
&lt;p&gt;
  The 1GP vs 2GP split is about tooling and org dependency. 1GP packages are built and
  versioned inside a dedicated packaging org that becomes a permanent, irreplaceable
  part of your release pipeline. 2GP packages are source-driven, built from version
  control with the Salesforce CLI, and don&apos;t require a standing packaging org at all -
  which is why Salesforce has been steering new ISVs toward 2GP for years.
&lt;/p&gt;
&lt;h2&gt;Why is your namespace a permanent decision?&lt;/h2&gt;
&lt;p&gt;
  Once a namespace is registered against a Developer Edition org and used in a released
  package, it cannot be renamed, transferred to a different org, or reused. Every Apex
  class, custom field, and object your product ever ships will carry that prefix in
  every customer org, forever. Typos, awkward abbreviations, and rushed naming choices
  don&apos;t get a do-over - plan the namespace like a product name, not a technical
  afterthought.
&lt;/p&gt;
&lt;h2&gt;How do IP protection and licensing actually work?&lt;/h2&gt;
&lt;p&gt;
  Managed packages compile Apex into byte code that customers can&apos;t view or edit, which
  is the baseline IP protection any commercial product needs before it goes near the
  AppExchange Security Review. Unmanaged packages offer none of that - your business
  logic ships as plain, readable, forkable metadata.
&lt;/p&gt;
&lt;p&gt;
  Licensing is a separate layer entirely. To actually meter seats, trials, and
  expirations, you connect your package to a
  &lt;a href=&quot;https://help.salesforce.com/s/articleView?id=sf.lma_about.htm&quot;
    &gt;License Management App (LMA)&lt;/a
  &gt;, which tracks installs against your leads and opportunities. This only works cleanly
  with managed packages - there&apos;s no reliable way to license and enforce entitlements on
  something a customer can freely edit.
&lt;/p&gt;
&lt;h3&gt;What about unlocked packages?&lt;/h3&gt;
&lt;p&gt;
  Unlocked packages sit between these worlds: namespaced and version-controlled like
  2GP, but with editable metadata and no licensing enforcement. They&apos;re built for
  internal, multi-org deployment inside a single company, not for selling to strangers
  on the AppExchange. Don&apos;t reach for them as a shortcut around commercial packaging.
&lt;/p&gt;
&lt;h2&gt;Which packaging model fits your ISV stage?&lt;/h2&gt;
&lt;ul&gt;
  &lt;li&gt;
    &lt;strong&gt;Building a new AppExchange product today:&lt;/strong&gt; use 2GP. CLI-driven
    versioning, ancestry tracking for upgrades, and no dependency on a fragile packaging
    org.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Inheriting or maintaining an older 1GP product:&lt;/strong&gt; stay on 1GP until
    there&apos;s a deliberate migration plan - namespace and subscriber base carry across,
    but the conversion has real technical constraints.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Distributing free, editable tooling or templates:&lt;/strong&gt; unmanaged is
    legitimate here, precisely because you&apos;re not protecting IP or charging for
    upgrades.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Standardizing deployments across your own orgs:&lt;/strong&gt; unlocked packages,
    not managed packages built for resale.
  &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
  Getting this wrong is expensive to unwind - Tekunda&apos;s
  &lt;a href=&quot;/product-development&quot;&gt;product development&lt;/a&gt; work with AppExchange partners
  starts with exactly this decision, before a single component gets built, because every
  governance, testing, and release choice downstream depends on it.
&lt;/p&gt;
&lt;h2&gt;FAQ&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Can I switch from unmanaged to managed later?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  Not directly. You&apos;d rebuild the components inside a namespaced managed package and
  manage a real customer migration, since the underlying metadata and IDs don&apos;t carry
  over cleanly.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Can I convert a 1GP package to 2GP?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  Yes, Salesforce supports converting 1GP managed packages to 2GP while keeping the same
  namespace and subscriber orgs, though it requires careful planning around package
  ancestry and existing installs.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Do I need a namespace if I&apos;m not selling on the AppExchange?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  Only if you&apos;re distributing a managed or unlocked package across multiple orgs. A
  single internal deployment via unmanaged metadata or change sets doesn&apos;t need one.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Is 2GP required for AppExchange listing?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  No, 1GP packages are still supported and listed today, but Salesforce&apos;s tooling
  investment is squarely in 2GP, and most new ISV builds should start there. Talk to
  &lt;a href=&quot;/contact&quot;&gt;Tekunda&lt;/a&gt; or browse the &lt;a href=&quot;/blog&quot;&gt;blog&lt;/a&gt; if you&apos;re
  weighing this decision for an upcoming build.
&lt;/p&gt;
</content:encoded>
        </item>
        <item>
            <title><![CDATA[Salesforce Connected App Security Changes: A Readiness Guide]]></title>
            <description><![CDATA[Salesforce now blocks uninstalled Connected Apps by default; here is how to audit your org before an integration quietly breaks.]]></description>
            <link>https://tekunda.com/blog/Salesforce-Connected-App-Security-Changes%3A-A-Readiness-Guide</link>
            <guid isPermaLink="false">https://tekunda.com/blog/Salesforce-Connected-App-Security-Changes%3A-A-Readiness-Guide</guid>
            <dc:creator><![CDATA[Tekunda Team]]></dc:creator>
            <pubDate>Wed, 08 Jul 2026 12:00:00 GMT</pubDate>
            <content:encoded>&lt;p&gt;
  &lt;strong
    &gt;Salesforce is moving Connected App access from &quot;open by default&quot; to &quot;approved by
    default.&quot;&lt;/strong
  &gt;
  Uninstalled Connected Apps are now blocked for most users, OAuth 2.0 Device Flow is
  being retired, and Salesforce is steering everyone toward External Client Apps as the
  long-term replacement. If your org hasn&apos;t audited what&apos;s actually authorized to talk
  to it, some integration will break before you find out why.
&lt;/p&gt;

&lt;h2&gt;What is actually changing with Connected Apps?&lt;/h2&gt;
&lt;p&gt;
  Salesforce now blocks uninstalled Connected Apps by default, meaning any app a user
  authorized on their own, without an admin formally installing it in the org, loses
  access unless someone grants a specific bypass permission. Apps that still rely on
  OAuth 2.0 Device Flow lose access outright, even if they were previously authorized.
  Longer term, Salesforce is retiring the classic Connected App as the primary
  integration object in favor of
  &lt;a
    href=&quot;https://help.salesforce.com/s/articleView?id=001349858&amp;type=1&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
    &gt;External Client Apps&lt;/a
  &gt;, which separate the app definition from its policies and give admins finer control
  over scopes, IP ranges, and session behavior.
&lt;/p&gt;

&lt;h2&gt;Why is Salesforce tightening this now?&lt;/h2&gt;
&lt;p&gt;
  The short version: OAuth authorization became a favorite target. Attackers
  impersonating IT support have talked employees into approving connected apps that
  looked legitimate, then used that access to pull data quietly over weeks. That&apos;s a
  social engineering problem, not a platform vulnerability, but Salesforce&apos;s response is
  architectural, making the default posture &quot;nothing connects until an admin says so.&quot;
&lt;/p&gt;
&lt;p&gt;
  That shift is reasonable. It also means org hygiene that used to be optional, knowing
  exactly which apps have API access and why, is now the difference between a quiet
  Tuesday and an unplanned incident call.
&lt;/p&gt;

&lt;h2&gt;Where do integrations actually break?&lt;/h2&gt;
&lt;p&gt;
  In our experience supporting Salesforce orgs through platform changes, the failures
  rarely show up where teams expect. Watch for:
&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;
    Middleware and iPaaS connectors set up years ago by someone who&apos;s since left the
    team, with no documented owner.
  &lt;/li&gt;
  &lt;li&gt;
    Data Loader jobs and scheduled ETL scripts still using OAuth Device Flow for
    unattended runs.
  &lt;/li&gt;
  &lt;li&gt;
    Reporting or BI tools authorized by an individual user rather than installed
    org-wide.
  &lt;/li&gt;
  &lt;li&gt;
    Partner or ISV apps that were never formally installed, just authorized once during
    a pilot.
  &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
  Any of these can pass unnoticed for months until the restriction kicks in and the sync
  job simply stops, often with no obvious error pointing back to the cause.
&lt;/p&gt;

&lt;h2&gt;How do you audit your org before the restrictions bite?&lt;/h2&gt;
&lt;p&gt;This doesn&apos;t require new tooling, just a deliberate pass through Setup:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;
    Open &lt;strong&gt;Setup &gt; Connected Apps OAuth Usage&lt;/strong&gt; and list every app
    currently authorized, not just the ones you installed.
  &lt;/li&gt;
  &lt;li&gt;
    Flag anything showing an &quot;Install&quot; action, that&apos;s your uninstalled, at-risk list.
  &lt;/li&gt;
  &lt;li&gt;
    Check last-used dates. Apps with no recent activity are candidates to revoke, not
    preserve &quot;just in case.&quot;
  &lt;/li&gt;
  &lt;li&gt;
    Confirm your org&apos;s
    &lt;a
      href=&quot;https://help.salesforce.com/s/articleView?id=sf.connected_app_api_integration.htm&amp;type=5&quot;
      target=&quot;_blank&quot;
      rel=&quot;noopener&quot;
      &gt;API Access Control&lt;/a
    &gt;
    policy and who holds the &quot;Approve Uninstalled Connected Apps&quot; permission.
  &lt;/li&gt;
  &lt;li&gt;
    For anything you keep, write down who owns it and why. That record is what saves you
    time during the next platform change, not just this one.
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;What should change in how you govern integrations going forward?&lt;/h2&gt;
&lt;p&gt;
  Treat this as a prompt to formalize integration governance, not a one-time cleanup.
  New integrations should be installed and scoped deliberately from day one rather than
  authorized ad hoc by whoever set them up. If you&apos;re planning new external connections,
  building them as External Client Apps from the start avoids a second migration later.
&lt;/p&gt;
&lt;p&gt;
  This is exactly the kind of work we do alongside internal Salesforce teams: mapping
  existing &lt;a href=&quot;/products/integration&quot;&gt;integrations&lt;/a&gt;, deciding what to keep,
  retire, or rebuild, and folding the result into a
  &lt;a href=&quot;/product-development&quot;&gt;development process&lt;/a&gt; that treats access control as
  part of the release, not an afterthought.
&lt;/p&gt;
&lt;p&gt;
  If you&apos;d rather have someone walk through your org&apos;s Connected App inventory with you
  before the next platform update lands, &lt;a href=&quot;/contact&quot;&gt;get in touch&lt;/a&gt; and we&apos;ll
  help you build the checklist into something repeatable.
&lt;/p&gt;

&lt;h2&gt;FAQ&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Will this break my existing Salesforce integrations?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  Only if they&apos;re uninstalled or still use OAuth 2.0 Device Flow. Installed apps and
  modern auth flows keep working without changes.
&lt;/p&gt;
&lt;p&gt;
  &lt;strong
    &gt;What is the difference between a Connected App and an External Client App?&lt;/strong
  &gt;
&lt;/p&gt;
&lt;p&gt;
  External Client Apps separate the app&apos;s identity from its access policies, giving
  admins more granular control over scopes and sessions; Salesforce is positioning them
  as the long-term replacement for classic Connected Apps.
&lt;/p&gt;
&lt;p&gt;
  &lt;strong&gt;Who should get the &quot;Approve Uninstalled Connected Apps&quot; permission?&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
  Keep it narrow, admins testing new apps and developers maintaining integrations, since
  it&apos;s an all-or-nothing bypass rather than a per-app grant.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;How often should we review Connected App access?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  Quarterly at minimum, and immediately after any Salesforce security release, since
  authorization scope creep happens gradually and is easy to miss.
&lt;/p&gt;
</content:encoded>
        </item>
        <item>
            <title><![CDATA[Planning a Salesforce Managed Package? Decide the Permanent 2GP Choices First]]></title>
            <description><![CDATA[A planning guide for teams building a Salesforce managed package on 2GP: which early decisions are irreversible, and how to make them deliberately.]]></description>
            <link>https://tekunda.com/blog/planning-a-salesforce-managed-package-decide-the-permanent-2gp-choices-first</link>
            <guid isPermaLink="false">https://tekunda.com/blog/planning-a-salesforce-managed-package-decide-the-permanent-2gp-choices-first</guid>
            <dc:creator><![CDATA[Tekunda Team]]></dc:creator>
            <pubDate>Tue, 07 Jul 2026 12:00:00 GMT</pubDate>
            <content:encoded>&lt;p&gt;
  &lt;strong&gt;Short answer:&lt;/strong&gt; If your team is about to build a Salesforce managed
  package on second-generation packaging (2GP), three of your earliest choices can never
  be undone: your namespace, the parts of your code you expose as global, and your
  version ancestry. Decide those on purpose before you write real code, and the rest of
  the lifecycle gets much calmer.
&lt;/p&gt;
&lt;p&gt;
  We work with product teams and ISVs who reach us after the hard part is already locked
  in. The pattern is always the same: the platform documents these rules, but it does
  not shout about which ones are permanent. This guide separates the decisions you must
  get right up front from the operational traps you can recover from later.
&lt;/p&gt;
&lt;h2&gt;Which 2GP decisions can you never take back?&lt;/h2&gt;
&lt;p&gt;Three, and they are the ones teams tend to rush.&lt;/p&gt;
&lt;h3&gt;Your namespace is forever&lt;/h3&gt;
&lt;p&gt;
  The namespace you attach to a package cannot be changed or split later. It becomes the
  prefix on every component for the life of the product. If there is any chance you will
  one day separate or sell part of your portfolio, do not put everything under a single
  shared namespace, because you cannot untangle it afterward. Give this decision a
  proper review, not a quick guess in a scratch org.
&lt;/p&gt;
&lt;h3&gt;Anything global stays global&lt;/h3&gt;
&lt;p&gt;
  Once you ship a member as &lt;strong&gt;global&lt;/strong&gt; in a managed package, it is part of
  your public API permanently and you cannot remove it. Before you reach for global,
  check whether &lt;code&gt;namespaceAccessible&lt;/code&gt; solves the problem instead: packages
  that share a namespace can share public Apex through it without exposing a global
  surface you will have to support for years.
&lt;/p&gt;
&lt;h3&gt;Ancestry decides who can upgrade&lt;/h3&gt;
&lt;p&gt;
  Every released version declares an ancestor, and installed orgs only move upward along
  that chain. Choose the ancestor carelessly and you can leave customers on a branch
  that cannot reach your newest release. Understood early, the same mechanism is a gift:
  if a version goes wrong, you can branch your next release from an earlier, healthy
  one.
&lt;/p&gt;
&lt;h2&gt;The operational traps that stall a release day&lt;/h2&gt;
&lt;p&gt;These will cost you time, but unlike the three above, you can recover from them.&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;
    &lt;strong&gt;Beta versus released.&lt;/strong&gt; Every version you create starts as a beta
    that cannot install in production or reach subscribers until someone promotes it. A
    skipped promote step is the most common reason a &quot;finished&quot; package will not
    install.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;The coverage gate lands at promote time.&lt;/strong&gt; The 75 percent
    test-coverage requirement is checked when you promote for release, not when you
    create a beta. Teams that defer testing meet the wall on the exact day they planned
    to ship.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Dev Hub limits reset daily.&lt;/strong&gt; Version creates and scratch orgs are
    capped per day by edition. Plan release days around the caps so you are not stranded
    until tomorrow mid-crunch.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Your Dev Hub is a single point of failure.&lt;/strong&gt; Packages are owned by
    the Dev Hub org. Put it on an org a responsible person controls, not an expired
    trial, because ownership transfers are slow and painful.
  &lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;How to make these decisions deliberately&lt;/h2&gt;
&lt;p&gt;
  The teams that ship packages smoothly are not luckier, they are earlier. They settle
  the permanent choices, namespace, global surface and ancestry strategy, in a short
  design session before any code exists, and they treat promote as a real gate with
  tests already in place. If you want a second pair of eyes on those decisions before
  they harden, that is exactly the kind of review
  &lt;a href=&quot;/&quot;&gt;Tekunda&apos;s Salesforce team&lt;/a&gt; does with product teams.
&lt;/p&gt;
&lt;h2&gt;FAQ&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;What should we lock down before creating our first 2GP package?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  The namespace, which Apex you expose as global, and your ancestry strategy. All three
  are effectively permanent, so agree on them before writing production code.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;How do we avoid stranding customers on an old package version?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  Plan your ancestry deliberately. Each version declares its ancestor and subscribers
  upgrade along that chain, so a wrong ancestor can block customers from reaching your
  latest release.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Why does our finished package refuse to install in production?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  It is almost always still a beta. Betas only install in scratch and sandbox orgs.
  Promote the version to released before it can install in production or push to
  subscribers.
&lt;/p&gt;
&lt;p&gt;
  &lt;strong&gt;When does Salesforce enforce 75 percent test coverage for a package?&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
  At promotion. You can build betas with low coverage, but the gate blocks promoting a
  version for release until coverage is met, so build tests in from the start.
&lt;/p&gt;
</content:encoded>
        </item>
        <item>
            <title><![CDATA[Going the Extra Mile: Creating Exceptional Customer Experiences]]></title>
            <description><![CDATA[As customers have endless options at their fingertips, companies that go the extra mile providing exceptional customer experience, stand out from the crowd.]]></description>
            <link>https://tekunda.com/blog/Going-the-Extra-Mile%3A-Creating-Exceptional-Customer-Experiences</link>
            <guid isPermaLink="false">https://tekunda.com/blog/Going-the-Extra-Mile%3A-Creating-Exceptional-Customer-Experiences</guid>
            <dc:creator><![CDATA[Tekunda Team]]></dc:creator>
            <pubDate>Tue, 07 Apr 2026 04:07:16 GMT</pubDate>
            <content:encoded>&lt;h2&gt;First Impressions Last&lt;/h2&gt;
&lt;p&gt;
  In the digital realm, a customer&apos;s first interaction with your brand often sets the
  tone for the entire relationship. This could be anything from a well-designed website
  to the ease of navigation in your mobile application. In many instances, customers
  make up their minds about a business in the first few seconds. Therefore, immediate
  engagement is vital, offering something of value upfront - be it information, an
  exclusive offer, or even an engaging user interface - can turn a potential customer
  into a loyal one.
&lt;/p&gt;
&lt;h2&gt;Personalisation is Key&lt;/h2&gt;
&lt;p&gt;
  Technology has enabled a level of personalisation that was previously unimaginable.
  With data analytics, it&apos;s possible to understand a customer&apos;s behaviour, preferences,
  and even anticipate needs. These insights shouldn&apos;t be ignored; they should be
  utilised to create a tailored experience. Personalised email campaigns, product
  recommendations, and
  &lt;a
    href=&quot;https://tekunda.com/blog/How-Salesforce-Service-Cloud-is-Revolutionising-Customer-Support&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
    &gt;customer service &lt;/a
  &gt;interactions all contribute to a sense of being valued and understood, which is
  essential for long-term customer retention.
&lt;/p&gt;
&lt;h2&gt;Seamless Integration&lt;/h2&gt;
&lt;p&gt;
  Customer experience isn&apos;t limited to a single channel. It&apos;s a cumulative effect of
  interactions across various platforms and touchpoints. Whether a customer engages with
  your brand through social media, your website, or in a physical store, the experience
  should be seamless. Consistency in tone, messaging, and service quality is crucial for
  building trust and satisfaction.
&lt;/p&gt;
&lt;h2&gt;
  The Role of
  &lt;a
    href=&quot;https://tekunda.com/blog/How-Salesforce-Service-Cloud-is-Revolutionising-Customer-Support&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
    &gt;Customer Service&lt;/a
  &gt;
&lt;/h2&gt;
&lt;p&gt;
  Going the extra mile is often most apparent in
  &lt;a
    href=&quot;https://tekunda.com/blog/How-Salesforce-Service-Cloud-is-Revolutionising-Customer-Support&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
    &gt;customer service &lt;/a
  &gt;interactions. At Tekunda, we ensure our support teams are empowered to solve problems
  efficiently and make real-time decisions that favour the customer. This approach can
  turn a potentially negative experience into a positive one, creating customer
  evangelists who not only stay loyal but also promote your brand through word of mouth.
&lt;/p&gt;
&lt;h2&gt;
  &lt;a href=&quot;https://tekunda.com/blog/How-to-Build-a-Successful-Software-Team&quot;
    &gt;Feedback Loops&lt;/a
  &gt;
&lt;/h2&gt;
&lt;p&gt;
  Open channels for customer feedback are invaluable. They not only identify areas for
  improvement but also present an opportunity to connect on a personal level.
  Acknowledging feedback and implementing changes shows a level of dedication and
  responsiveness that customers appreciate.
&lt;/p&gt;
&lt;h2&gt;Make it Right&lt;/h2&gt;
&lt;p&gt;
  Mistakes are inevitable. It&apos;s how you handle them that defines your brand. Apologising
  sincerely and taking immediate corrective action can often win back a disgruntled
  customer. The &apos;front-page test&apos; applies here; act in a way that would make you proud
  if it were reported in the media.
&lt;/p&gt;
&lt;h2&gt;Exceeding Expectations&lt;/h2&gt;
&lt;p&gt;
  Small gestures can make a big difference. Whether it&apos;s a personalised thank-you note,
  an unexpected upgrade, or priority support, these &apos;extra miles&apos; can transform customer
  satisfaction into customer delight. At Tekunda, we strive to inject this philosophy
  into every aspect of our operation.
&lt;/p&gt;
&lt;h2&gt;Go the Extra Mile with Passion&lt;/h2&gt;
&lt;p&gt;
  Passion is not just a buzzword; it&apos;s an ethos. It&apos;s what drives us to continually
  improve and innovate. When this level of enthusiasm is evident in interactions with
  customers, it&apos;s contagious. It transforms the mundane into the extraordinary and
  creates memorable experiences that customers are eager to share.
&lt;/p&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;
  In a saturated market, it&apos;s not enough to simply meet customer expectations; you must
  exceed them. Tekunda prides itself on not just offering solutions but also creating
  experiences that make each customer feel valued and understood. From the first
  interaction to ongoing support, every touchpoint is an opportunity to go the extra
  mile. And when you do, not only do you win a customer, you win an advocate.
&lt;/p&gt;
&lt;p&gt;Remember, the extra mile is never crowded. Make it your business to be there.&lt;/p&gt;
</content:encoded>
        </item>
        <item>
            <title><![CDATA[Freaky Friday! Team Building, Tech Talks: Why I Love Working here]]></title>
            <description><![CDATA[Why Tekunda is the ultimate workplace for tech enthusiasts. From in-house tech talks, escape room challenges, and a culture of learning, sharing, and fun.]]></description>
            <link>https://tekunda.com/blog/Freaky-Friday!-Team-Building%2C-Tech-Talks%3A-Why-I-Love-Working-here</link>
            <guid isPermaLink="false">https://tekunda.com/blog/Freaky-Friday!-Team-Building%2C-Tech-Talks%3A-Why-I-Love-Working-here</guid>
            <dc:creator><![CDATA[Tekunda Team]]></dc:creator>
            <pubDate>Tue, 07 Apr 2026 04:07:04 GMT</pubDate>
            <content:encoded>&lt;p&gt;
  I want to share a day that encapsulates why Tekunda is such an incredible place to
  work. Last week, our team took a break from regular work to dive into a day filled
  with learning, laughter, and genuine bonding. Check out the video to see how it all
  went down!
&lt;/p&gt;
&lt;p&gt;
  &lt;iframe
    style=&quot;width: 100%; aspect-ratio: 16 / 9&quot;
    title=&quot;YouTube video player&quot;
    src=&quot;https://www.youtube-nocookie.com/embed/nbiPJ-18kEY?si=bcuhu7DW10TRFZpo&quot;
    frameborder=&quot;0&quot;
    
    allow=&quot;
      accelerometer;
      autoplay;
      clipboard-write;
      encrypted-media;
      gyroscope;
      picture-in-picture;
      web-share;
    &quot;
    allowfullscreen=&quot;allowfullscreen&quot;
    loading=&quot;lazy&quot;
  &gt;&lt;/iframe&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;Kickstarting the Day with Games&lt;/h2&gt;
&lt;p&gt;
  We started our morning away from our desks, gathered in a conference room for some
  light-hearted games. &quot;Two Truths and a Lie&quot; kicked off the day. It&apos;s surprising how
  much you can learn about your teammates when trying to decipher the truths from the
  lie. Next, &quot;Blind Drawing&quot; had us in stitches, but also showed how communication is
  key in even the most chaotic situations.
&lt;/p&gt;
&lt;h2&gt;Tech Talks by Our Very Own&lt;/h2&gt;
&lt;p&gt;
  What I love about Tekunda is that we&apos;re not just colleagues; we&apos;re a community of
  passionate tech enthusiasts. So, the afternoon saw five of our team stars presenting
  on hot tech topics like
  &lt;span
    class=&quot;ui-provider a b c d e f g h i j k l m n o p q r s t u v w x y z ab ac ae af ag ah ai aj ak&quot;
    dir=&quot;ltr&quot;
    &gt;WebRTC, NextJS, Celery, and GraphQL&lt;/span
  &gt;. We believe in &apos;&lt;a
    href=&quot;https://tekunda.com/blog/How-to-Build-a-Successful-Software-Team&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
    &gt;Knowledge Sharing&lt;/a
  &gt;,&apos; and these sessions displayed just how much expertise we have within our walls. It
  was an awe-inspiring experience, seeing our own team members share knowledge that
  rivals any external tech conference out there.
&lt;/p&gt;
&lt;h2&gt;Escape Room: The Clock Is Ticking!&lt;/h2&gt;
&lt;p&gt;
  After enriching our brains, it was time to challenge them. We ended the day with an
  escape room activity. There&apos;s nothing like a ticking clock to ignite team spirit and
  get everyone working together toward a common goal. Strategy, quick thinking, and
  teamwork led us to &quot;escape,&quot; but it was clear that the real win was the collective
  problem-solving that got us there.
&lt;/p&gt;
&lt;h2&gt;The Tekunda Spirit&lt;/h2&gt;
&lt;p&gt;
  Last week&amp;rsquo;s activities were a beautiful representation of our values and work
  culture. Tekunda isn&amp;rsquo;t just about delivering extraordinary digital experiences
  for our clients; it&apos;s also about making sure the team behind those solutions is
  engaged, informed, and excited about their work. We&apos;re not just employees here; we&apos;re
  a family committed to personal and professional growth, and these regular
  team-building days contribute to just that.
&lt;/p&gt;
&lt;h2&gt;Come Join Us!&lt;/h2&gt;
&lt;p&gt;
  At Tekunda, you&apos;re not walking into a mere job; you&apos;re becoming part of an active,
  learning community. If this sounds like the kind of place where you&apos;d like to grow
  your career, don&apos;t hesitate to apply. We&amp;rsquo;re always looking for passionate
  individuals to join our community of learners and doers. Check out our careers page to
  see the exciting opportunities we have available:
  &lt;a href=&quot;/careers&quot; target=&quot;_new&quot;&gt;Tekunda Careers&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
  So, that was our phenomenal day, and it&apos;s just the tip of the iceberg when it comes to
  why Tekunda is such an exceptional place to work. Big ups to everyone who contributed
  to making it a memorable experience.
&lt;/p&gt;
&lt;p&gt;#TeamWork #TechTalks #EscapeRoom #JoinTekunda&lt;/p&gt;
</content:encoded>
        </item>
        <item>
            <title><![CDATA[AI Agents in 2026: What Actually Works and Why Most Efforts Stalled]]></title>
            <description><![CDATA[From hype to hard lessons: what building AI agents in 2025 taught teams about adoption, trust, and delivering real operational value preparing us for 2026.]]></description>
            <link>https://tekunda.com/blog/AI-Agents-in-2026%3A-What-Actually-Works-and-Why-Most-Efforts-Stalled</link>
            <guid isPermaLink="false">https://tekunda.com/blog/AI-Agents-in-2026%3A-What-Actually-Works-and-Why-Most-Efforts-Stalled</guid>
            <dc:creator><![CDATA[Tekunda Team]]></dc:creator>
            <pubDate>Thu, 26 Feb 2026 10:12:09 GMT</pubDate>
            <content:encoded>&lt;p&gt;TL;DR&lt;/p&gt;
&lt;p data-pm-slice=&quot;1 1 []&quot;&gt;
  2025 was the year AI agents moved from heavy enterprise investment and bold promises
  to real-world scrutiny.
&lt;/p&gt;
&lt;p&gt;
  Enterprises poured budgets into agentic AI, platforms raced to embed agents
  everywhere, and analysts openly questioned whether many of these initiatives would
  survive.
&lt;/p&gt;
&lt;p&gt;
  Across startups, scale-ups, and enterprises, including teams like ours at Tekunda, the
  same lesson emerged:
&lt;/p&gt;
&lt;p&gt;
  AI agents only deliver ROI when they are embedded into real workflows, grounded in
  business context, and designed as operational systems, not autonomous experiments.
&lt;/p&gt;
&lt;h2 data-pm-slice=&quot;1 1 []&quot;&gt;
  2025 Began With Massive Investment and Ended With Hard Questions
&lt;/h2&gt;
&lt;p&gt;
  Early in 2025, AI agents became the central focus of global discussions. Agentic AI
  emerged as the prevailing theme in vendor keynotes, conferences, and boardroom
  discussions; it was the year when executive roadmaps shifted, and enterprises
  allocated serious budgets to AI adoption. Many expected widespread, rapid rollout into
  real-world practice, and industry research even reflected that momentum.
&lt;/p&gt;
&lt;p&gt;
  According to
  &lt;strong
    &gt;&lt;a
      href=&quot;https://www.mckinsey.com/capabilities/quantumblack/our-insights/the-state-of-ai?&quot;
      target=&quot;_blank&quot;
      rel=&quot;noopener&quot;
      &gt;McKinsey&lt;/a
    &gt;&lt;/strong
  &gt;, AI adoption across organizations reached historic highs, with most companies
  already using generative AI in some form and many planning to expand its role beyond
  copilots into autonomous systems.
&lt;/p&gt;
&lt;p&gt;
  At the same time,
  &lt;a
    href=&quot;https://www.deloitte.com/global/en/about/press-room/deloitte-globals-2025-predictions-report.html&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
    &gt;Deloitte&lt;/a
  &gt;
  projected that approximately 25% of enterprises would deploy AI agents by 2025, with
  adoption anticipated to double in the following two years as these agents became more
  integrated into core workflows.
&lt;/p&gt;
&lt;p&gt;
  However, alongside this acceleration, a second, less conspicuous narrative began to
  emerge.
&lt;/p&gt;
&lt;p&gt;
  By mid-2025, analysts began expressing concerns that the swift pace of adoption was
  exceeding organizational readiness.
&lt;/p&gt;
&lt;p&gt;
  &lt;strong
    &gt;&lt;a
      href=&quot;https://www.gartner.com/en/newsroom/press-releases/2025-06-25-gartner-predicts-over-40-percent-of-agentic-ai-projects-will-be-canceled-by-end-of-2027?&quot;
      target=&quot;_blank&quot;
      rel=&quot;noopener&quot;
      &gt;Gartner&lt;/a
    &gt;&lt;/strong
  &gt;
  issued a widely discussed warning:
&lt;/p&gt;
&lt;p&gt;
  &lt;strong
    &gt;Over 40% of agentic AI initiatives are expected to be abandoned by 2027&lt;/strong
  &gt;, citing unclear business value, rising operational expenses, governance gaps, and
  what Gartner explicitly called &lt;em&gt;&amp;ldquo;agent washing.&amp;rdquo;&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
  That tension, between heavy investment and growing skepticism, clearly defined the
  year.
&lt;/p&gt;
&lt;p&gt;
  In short,
  &lt;strong
    &gt;2025 marked the transition from enthusiasm-driven adoption to outcome-driven
    scrutiny, leading &lt;/strong
  &gt;AI agents to move from&amp;nbsp;&lt;em&gt;&amp;ldquo;Can we build this?&amp;rdquo;&lt;/em&gt; to
  &lt;em&gt;&amp;ldquo;Should we keep running it?&amp;rdquo; &lt;/em&gt;Large enterprises were not the only
  ones experiencing this tension.
&lt;/p&gt;
&lt;p&gt;
  Beyond individual teams, AI agents were increasingly viewed as a foundational layer of
  the next phase of the digital economy. Decisions made in 2025 about how agents were
  designed, governed, and integrated began shaping long-term productivity, cost
  structures, and operational resilience at scale.
&lt;/p&gt;
&lt;h2 data-pm-slice=&quot;0 0 []&quot;&gt;The Gap You Only Notice Once You Start Building&lt;/h2&gt;
&lt;p&gt;
  &lt;em
    &gt;What follows isn&amp;rsquo;t theory; it reflects what we learned firsthand building,
    deploying, and maintaining AI agents in real operational environments throughout
    2025.&lt;/em
  &gt;
&lt;/p&gt;
&lt;p&gt;
  Teams actively developing AI agents, including startups, scaleups, and enterprises,
  encountered similar challenges.
&lt;/p&gt;
&lt;p&gt;On paper, everything was improving:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;The models were more capable&lt;/li&gt;
  &lt;li&gt;Frameworks matured&lt;/li&gt;
  &lt;li&gt;Infrastructure was easier than ever to provision&lt;/li&gt;
  &lt;li&gt;You could build something impressive quickly&lt;/li&gt;
  &lt;li&gt;You could deploy it into a workflow&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
  What proved much harder was making the value stick. This wasn&amp;rsquo;t a tooling
  problem or about model intelligence, it was simply an operational gap.
&lt;/p&gt;
&lt;p&gt;
  Agents were being built faster than teams, regardless of size, could integrate them
  into how work actually happens.
&lt;/p&gt;
&lt;p&gt;
  At Tekunda, we felt this early. As a modern, relatively small team building and
  deploying agents ourselves, the distance between a demo that works and an agent that
  earns trust became obvious rapidly.
&lt;/p&gt;
&lt;p&gt;
  That realization mirrored what we saw across the ecosystem, including inside much
  larger organizations.
&lt;/p&gt;
&lt;h2&gt;Why Context Became the Real Differentiator&lt;/h2&gt;
&lt;p data-pm-slice=&quot;1 1 []&quot;&gt;
  As agents moved deeper into real workflows, another limitation became impossible to
  ignore.
&lt;/p&gt;
&lt;p&gt;Generic intelligence didn&amp;rsquo;t scale trust.&lt;/p&gt;
&lt;p&gt;
  Agents that relied on static prompts or surface-level understanding created friction:
&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Inconsistent answers&lt;/li&gt;
  &lt;li&gt;Misaligned decisions&lt;/li&gt;
  &lt;li&gt;Hesitation from users&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The agents that survived were grounded in &lt;strong&gt;real business context&lt;/strong&gt;:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;How the organization actually answers questions&lt;/li&gt;
  &lt;li&gt;What data is authoritative&lt;/li&gt;
  &lt;li&gt;Which actions are allowed and which are not&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
  This is where retrieval-augmented generation (RAG) emerged as a foundational element.
  Rather than being just a buzzword, it serves as a method to ensure that agents remain
  accurate, up-to-date, and aligned in real-world practices.
&lt;/p&gt;
&lt;p&gt;
  Conversation without context didn&amp;rsquo;t scale whether you were a startup or an
  enterprise. At scale, context was not just about accuracy; it defined authority,
  trust, and which systems were allowed to act without constant human intervention.
&lt;/p&gt;
&lt;h2 data-pm-slice=&quot;0 0 []&quot;&gt;The Quiet Success of &amp;ldquo;Unexciting&amp;rdquo; Agents&lt;/h2&gt;
&lt;p&gt;By the second half of 2025, a counterintuitive truth became hard to ignore.&lt;/p&gt;
&lt;p&gt;The agents creating the most value were barely exciting to watch.&lt;/p&gt;
&lt;p&gt;They didn&amp;rsquo;t:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Reason deeply for long stretches&lt;/li&gt;
  &lt;li&gt;Plan autonomously across systems&lt;/li&gt;
  &lt;li&gt;Act without guardrails&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;They simply ensured that:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Nothing important was missed&lt;/li&gt;
  &lt;li&gt;Decisions were handled consistently&lt;/li&gt;
  &lt;li&gt;Humans started with clarity instead of chaos&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
  These agents didn&amp;rsquo;t replace people.&amp;nbsp;They
  &lt;strong&gt;reduced cognitive load.&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
  And across teams of every size, that reduction proved more valuable than autonomy.
&lt;/p&gt;
&lt;p&gt;
  Across use cases, industries, and team sizes, the pattern was consistent: the closer
  an agent sat to real operational work, the more disciplined it needed to be.
&lt;/p&gt;
&lt;p&gt;
  &lt;strong
    &gt;Building agents taught us that reliability compounds faster than intelligence and
    that simplicity is often the hardest design constraint.&lt;/strong
  &gt;
&lt;/p&gt;
&lt;h2&gt;Adoption Became the Breaking Point&lt;/h2&gt;
&lt;p data-pm-slice=&quot;1 1 []&quot;&gt;
  As analyst skepticism grew louder, it became clearer why so many initiatives stalled,
  not because agents were incapable but because they weren&amp;rsquo;t trusted.
&lt;/p&gt;
&lt;p&gt;Across organizations, agents struggled when:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Ownership was unclear.&lt;/li&gt;
  &lt;li&gt;Behavior felt opaque&lt;/li&gt;
  &lt;li&gt;Failure modes weren&amp;rsquo;t obvious.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-pm-slice=&quot;1 1 []&quot;&gt;
  Meanwhile, simpler agents with clear boundaries were adopted quickly and stayed in
  daily use, and that was the shared lesson that emerged across the ecosystem:
&lt;/p&gt;
&lt;p data-start=&quot;1571&quot; data-end=&quot;1699&quot;&gt;
  An agent people trust outperforms an agent that can do more. Adoption wasn&amp;rsquo;t a
  change-management issue, it was a design issue.
&lt;/p&gt;
&lt;p data-start=&quot;1706&quot; data-end=&quot;1955&quot;&gt;
  When adoption failed, the cost was not only frustration or inefficiency. It was the
  inability to convert investment, infrastructure, and intelligence into durable
  operational value, leaving many initiatives paused despite their technical capability.
&lt;/p&gt;
&lt;h2 data-pm-slice=&quot;1 1 []&quot;&gt;
  Why Some Teams Slowed Down and Others Didn&amp;rsquo;t Recover
&lt;/h2&gt;
&lt;p&gt;Looking back, many of the initiatives Gartner warned about shared similar traits:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Starting with AI possibility instead of real operational pain&lt;/li&gt;
  &lt;li&gt;Expanding scope too early&lt;/li&gt;
  &lt;li&gt;Optimizing for autonomy over reliability&lt;/li&gt;
  &lt;li&gt;Treating agents as experiments instead of infrastructure&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
  The teams that succeeded small and large alike, did something counterintuitive during
  a hype cycle.
&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;They slowed down early.&lt;/li&gt;
  &lt;li&gt;They scoped narrowly.&lt;/li&gt;
  &lt;li&gt;Validated feasibility.&lt;/li&gt;
  &lt;li&gt;Measured impact before scaling.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
  That restraint didn&amp;rsquo;t kill momentum.&amp;nbsp;It made momentum
  &lt;strong&gt;sustainable&lt;/strong&gt;.
&lt;/p&gt;
&lt;h2 data-pm-slice=&quot;1 1 []&quot;&gt;What 2025 Actually Taught the Ecosystem&lt;/h2&gt;
&lt;p&gt;
  For teams building or evaluating AI agents in 2026, these became the non-negotiables
  we saw across the ecosystem:
&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Start with real operational pain&lt;/li&gt;
  &lt;li&gt;Automate volume before complexity&lt;/li&gt;
  &lt;li&gt;Ground agents in a business context&lt;/li&gt;
  &lt;li&gt;Design for trust, ownership, and recovery&lt;/li&gt;
  &lt;li&gt;Measure outcomes, not intelligence&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The conclusion wasn&amp;rsquo;t dramatic, but it was clarifying:&lt;/p&gt;
&lt;p&gt;
  AI agents create value by helping teams achieve greater outcomes without increasing
  the number of people involved.
&lt;/p&gt;
&lt;p&gt;That realization belonged to everyone building seriously in 2025.&lt;/p&gt;
&lt;h2 data-pm-slice=&quot;0 0 []&quot;&gt;&lt;strong&gt;Looking Ahead to 2026&lt;/strong&gt;&lt;/h2&gt;
&lt;p data-start=&quot;363&quot; data-end=&quot;553&quot;&gt;
  In 2026, AI agents will increasingly move from experimental deployments into core
  operational and economic systems, raising the stakes for how responsibly and
  deliberately they are designed.
&lt;/p&gt;
&lt;p data-start=&quot;555&quot; data-end=&quot;740&quot;&gt;
  If 2025 was about proving what works, 2026 will be about operationalizing those
  lessons at scale, quietly and deliberately, with far less tolerance for
  experimentation without outcomes.
&lt;/p&gt;
&lt;p data-start=&quot;742&quot; data-end=&quot;828&quot;&gt;
  The next phase of AI agents will not be defined by louder promises or deeper autonomy.
&lt;/p&gt;
&lt;p data-start=&quot;830&quot; data-end=&quot;921&quot;&gt;
  It will be defined by teams who turn agents into reliable, contextual, operational
  systems.
&lt;/p&gt;
&lt;p data-start=&quot;923&quot; data-end=&quot;949&quot;&gt;2025 made one thing clear.&lt;/p&gt;
&lt;p data-start=&quot;951&quot; data-end=&quot;1081&quot;&gt;
  AI agents do not create value by being smarter, louder, or more autonomous. They
  create value by removing friction from real work.
&lt;/p&gt;
&lt;p data-start=&quot;1083&quot; data-end=&quot;1186&quot;&gt;
  The teams that succeeded, whether startups moving fast or enterprises moving
  carefully, used agents to:
&lt;/p&gt;
&lt;ul&gt;
  &lt;li data-start=&quot;1190&quot; data-end=&quot;1225&quot;&gt;Free people from repetitive loads&lt;/li&gt;
  &lt;li data-start=&quot;1228&quot; data-end=&quot;1253&quot;&gt;Reduce operational drag&lt;/li&gt;
  &lt;li data-start=&quot;1256&quot; data-end=&quot;1298&quot;&gt;Scale outcomes without scaling headcount&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-start=&quot;1300&quot; data-end=&quot;1359&quot;&gt;
  That philosophy mirrors how we approach systems at Tekunda.
&lt;/p&gt;
&lt;p data-start=&quot;1361&quot; data-end=&quot;1490&quot;&gt;
  Human-centered AI is not about replacing people. It is about giving teams back time,
  focus, and confidence in how work gets done.
&lt;/p&gt;
&lt;p data-start=&quot;1492&quot; data-end=&quot;1701&quot;&gt;
  The future of AI agents will not be defined by hype cycles. It will be defined by
  teams that quietly build systems that help people operate better under pressure, at
  scale, and in the moments that matter most.
&lt;/p&gt;
&lt;h2&gt;FAQs - AI Agents in 2025-2026&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;What are AI agents?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  AI agents are systems designed to interpret context, make decisions, and take actions
  within workflows. They utilize tools, data, and defined rules, going beyond merely
  generating text or responding to prompts.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Why did many AI agent projects struggle in 2025?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  Most projects faced challenges not due to weak models, but because of unclear
  ownership, insufficient governance, poor integration into existing workflows, and
  difficulties in earning user trust.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Are AI agents only relevant for large enterprises?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  No. Teams of all sizes, including startups, scale-ups, and enterprises, encountered
  similar challenges when agents were applied to real operations. Builders often
  recognized these limitations before organizations formalized them.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What actually drove ROI from AI agents in 2025?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  ROI was primarily derived from automating high-volume, repetitive operational tasks;
  grounding agents in real business contexts; and focusing on design elements that
  fostered adoption, trust, and recovery, rather than on autonomy or novelty.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Is Agentic AI still worth investing in 2026?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  Yes, provided that agents are integrated into the operations stack rather than treated
  as mere experiments. Teams that concentrated on leveraging workflows and achieving
  measurable outcomes experienced sustained value.
&lt;/p&gt;
&lt;p&gt;&lt;!-- notionvc: 9137f5ad-916e-489b-8a4f-72584c4c294f --&gt;&lt;/p&gt;
</content:encoded>
        </item>
        <item>
            <title><![CDATA[How React2Shell Led to Cryptomining in React and Nextjs Apps]]></title>
            <description><![CDATA[React2Shell cryptomining CVE-2025-55182 exploited React Server Components and Next.js App Router to install cryptominers. Affected versions and patch steps.]]></description>
            <link>https://tekunda.com/blog/How-React2Shell-Led-to-Cryptomining-in-React-and-Nextjs-Apps</link>
            <guid isPermaLink="false">https://tekunda.com/blog/How-React2Shell-Led-to-Cryptomining-in-React-and-Nextjs-Apps</guid>
            <dc:creator><![CDATA[Tekunda Team]]></dc:creator>
            <pubDate>Thu, 26 Feb 2026 10:10:39 GMT</pubDate>
            <content:encoded>&lt;p data-pm-slice=&quot;1 1 []&quot;&gt;
  TL;DR: In early December 2025, a critical vulnerability known as
  &lt;em data-start=&quot;555&quot; data-end=&quot;568&quot;&gt;React2Shell&lt;/em&gt; (CVE-2025-55182) was disclosed in
  React Server Components. The issue allowed unauthenticated remote code execution in
  common React and Next.js setups, including default configurations. Exploits appeared
  quickly in the wild, with compromised servers used for cryptomining. If your
  application uses React Server Components or the Next.js App Router, patching and
  redeployment are required.
&lt;/p&gt;
&lt;p data-start=&quot;1012&quot; data-end=&quot;1111&quot;&gt;
  For years, frontend engineers were taught a reassuring mental model: The browser is
  the boundary.
&lt;/p&gt;
&lt;p data-start=&quot;1260&quot; data-end=&quot;1293&quot;&gt;
  Frontend code ran on the client, backend systems handled trust and security, and
  frameworks helped keep those responsibilities clearly separated. That model shaped how
  teams reasoned about risk, reviews, and deployment.
&lt;/p&gt;
&lt;p data-start=&quot;718&quot; data-end=&quot;776&quot;&gt;
  React2Shell broke that assumption in a very practical way.
&lt;/p&gt;
&lt;p data-start=&quot;1295&quot; data-end=&quot;1434&quot;&gt;
  In the days following the disclosure of CVE-2025-55182, teams across different roles
  reached the same conclusion from different direction, not because of theory, but
  because of what attackers did next.
&lt;/p&gt;
&lt;p data-start=&quot;1436&quot; data-end=&quot;1546&quot;&gt;
  Modern React applications are no longer just UI code. They execute as part of
  production infrastructure, and that shift made it possible for opportunistic campaigns
  to turn exposed servers into cryptomining workloads.
&lt;/p&gt;
&lt;p data-start=&quot;1436&quot; data-end=&quot;1546&quot;&gt;
  This wasn&amp;rsquo;t caused by misuse or exotic configurations. It widely affected
  adopted versions of React and Next.js running exactly as documented, which is why the
  impact spread quickly.
&lt;/p&gt;
&lt;h2 data-pm-slice=&quot;1 1 []&quot;&gt;What Happened in React2Shell?&lt;/h2&gt;
&lt;p data-start=&quot;1568&quot; data-end=&quot;1753&quot;&gt;
  React2Shell is a critical vulnerability in React Server Components (RSC), a React
  feature that allows parts of frontend code to run on the server as part of handling
  real user requests.
&lt;/p&gt;
&lt;p data-start=&quot;1755&quot; data-end=&quot;1877&quot;&gt;
  What made this vulnerability different was not just where it lived, but how naturally
  it fit into normal request handling.
&lt;/p&gt;
&lt;p data-start=&quot;1879&quot; data-end=&quot;2085&quot;&gt;
  The vulnerability allowed attackers to trigger remote code execution (RCE), a class of
  attack where someone can run their own commands on a server by sending a specially
  crafted request, without logging in.
&lt;/p&gt;
&lt;p data-start=&quot;2160&quot; data-end=&quot;2176&quot;&gt;
  At a high level, the attack unfolded as follows:
&lt;/p&gt;
&lt;ul&gt;
  &lt;li data-start=&quot;2139&quot; data-end=&quot;2190&quot;&gt;
    A crafted request reached server-side React logic
  &lt;/li&gt;
  &lt;li data-start=&quot;2193&quot; data-end=&quot;2236&quot;&gt;Serialized input crossed a trust boundary&lt;/li&gt;
  &lt;li data-start=&quot;2239&quot; data-end=&quot;2285&quot;&gt;
    The server executed attacker-controlled code
  &lt;/li&gt;
&lt;/ul&gt;
&lt;p data-start=&quot;2287&quot; data-end=&quot;2347&quot;&gt;
  Once that chain was understood, the severity became obvious.
&lt;/p&gt;
&lt;p data-start=&quot;2325&quot; data-end=&quot;2360&quot;&gt;The severity was immediately clear:&lt;/p&gt;
&lt;ul&gt;
  &lt;li data-start=&quot;2363&quot; data-end=&quot;2428&quot;&gt;
    CVSS score: 10.0 (Critical)&lt;span data-start=&quot;2363&quot; data-end=&quot;2394&quot;&gt;- &lt;/span&gt;the
    highest severity rating
  &lt;/li&gt;
  &lt;li data-start=&quot;2431&quot; data-end=&quot;2450&quot;&gt;Unauthenticated&lt;/li&gt;
  &lt;li data-start=&quot;2453&quot; data-end=&quot;2463&quot;&gt;Remote&lt;/li&gt;
  &lt;li data-start=&quot;2466&quot; data-end=&quot;2487&quot;&gt;Production impact&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-start=&quot;2489&quot; data-end=&quot;2592&quot;&gt;
  Proof-of-concept exploits appeared shortly after disclosure. Active exploitation
  followed soon after, leaving little time between understanding and exposure.
&lt;/p&gt;
&lt;h2 data-pm-slice=&quot;0 0 []&quot;&gt;Why Default Applications Were Exposed?&lt;/h2&gt;
&lt;p&gt;
  One of the most important lessons from React2Shell is how ordinary the affected setups
  were. That ordinariness is exactly why the impact spread so quickly.
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0px&quot;&gt;These were not:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Custom forks&lt;/li&gt;
  &lt;li&gt;Unsafe experimental builds&lt;/li&gt;
  &lt;li&gt;Edge-case deployments&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;margin-bottom: 0px&quot;&gt;They were:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;
    &lt;span data-teams=&quot;true&quot;
      &gt;React applications using these vulnerable packages (versions 19.0.0, 19.1.0,
      19.1.1, 19.2.0):&lt;/span
    &gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;span data-teams=&quot;true&quot;
      &gt;Next.js versions &amp;ge;14.3.0-canary.77, 15.x, and 16.x using the App Router&lt;/span
    &gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;span data-teams=&quot;true&quot;
      &gt;Other affected frameworks: React Router (unstable RSC APIs), Expo, Redwood SDK,
      Waku, and Vite/Parcel RSC plugins&lt;/span
    &gt;
  &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
  React Server Components fundamentally change where frontend logic runs. As a result,
  frontend code now:
&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Executes on the server&lt;/li&gt;
  &lt;li&gt;Handles serialized input&lt;/li&gt;
  &lt;li&gt;Participates in request processing&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
  React2Shell didn&amp;rsquo;t introduce that shift. It simply forced teams to confront it.
&lt;/p&gt;
&lt;h2 data-start=&quot;3288&quot; data-end=&quot;3332&quot;&gt;Exploitation in the Wild and Cryptomining&lt;/h2&gt;
&lt;p data-start=&quot;3649&quot; data-end=&quot;3728&quot;&gt;
  Once the vulnerability became public, exploitation followed almost immediately.
&lt;/p&gt;
&lt;p data-start=&quot;3730&quot; data-end=&quot;3863&quot;&gt;
  Cloud providers and security researchers quickly began reporting real-world attacks,
  many of them opportunistic rather than targeted.
&lt;/p&gt;
&lt;p data-start=&quot;3865&quot; data-end=&quot;3892&quot;&gt;Compromised systems showed:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;
    Cryptocurrency miners consuming CPU and memory-
    &lt;strong data-start=&quot;3506&quot; data-end=&quot;3589&quot;
      &gt;malicious software that forces servers to generate cryptocurrency for
      attackers&lt;/strong
    &gt;
  &lt;/li&gt;
  &lt;li&gt;
    Backdoors dropped for persistence -
    &lt;strong data-start=&quot;3628&quot; data-end=&quot;3671&quot;
      &gt;hidden access paths attackers can reuse&lt;/strong
    &gt;
  &lt;/li&gt;
  &lt;li&gt;Proxy tooling used to relay traffic&lt;/li&gt;
  &lt;li&gt;Follow-on activity typical of opportunistic attackers&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-start=&quot;4164&quot; data-end=&quot;4288&quot;&gt;
  In several reported cases, teams redeployed servers repeatedly, only to be reinfected.
  That pattern revealed the core issue.
&lt;/p&gt;
&lt;p data-start=&quot;4290&quot; data-end=&quot;4360&quot;&gt;
  The problem wasn&amp;rsquo;t cleanup. The vulnerable runtime was still in place.
&lt;/p&gt;
&lt;p data-start=&quot;4362&quot; data-end=&quot;4450&quot;&gt;
  Layered defenses helped, but they could not compensate for an unpatched core
  dependency.
&lt;/p&gt;
&lt;h3 data-start=&quot;205&quot; data-end=&quot;258&quot;&gt;
  🔍
  &lt;strong data-start=&quot;208&quot; data-end=&quot;258&quot;
    &gt;The Technical Deep Dive for Security Engineers&lt;/strong
  &gt;
&lt;/h3&gt;
&lt;p data-start=&quot;4552&quot; data-end=&quot;4874&quot;&gt;
  At a high level, React2Shell was enabled by how React Server Components serialize and
  deserialize data using the React Flight protocol. Attackers were able to abuse that
  processing path to reach server-side execution, and in Next.js the same path could be
  triggered through request routing behavior tied to server actions.
&lt;/p&gt;
&lt;p data-start=&quot;4876&quot; data-end=&quot;5114&quot;&gt;
  For the full protocol-level breakdown, exploitation path, and mitigation details,
  read&amp;nbsp;&lt;a
    href=&quot;https://www.darktrace.com/blog/react2shell-how-opportunist-attackers-exploited-cve-2025-55182-within-hours&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
    &gt;Darktrace&amp;rsquo;s&lt;/a
  &gt;
  technical analysis end to end.
&lt;/p&gt;
&lt;h2 data-pm-slice=&quot;1 1 []&quot;&gt;The Frontend/Backend Boundary Is Gone&lt;/h2&gt;
&lt;p data-start=&quot;5257&quot; data-end=&quot;5330&quot;&gt;
  React2Shell clarified something that had been evolving quietly for years.
&lt;/p&gt;
&lt;p data-start=&quot;3595&quot; data-end=&quot;3622&quot;&gt;If your frontend framework:&lt;/p&gt;
&lt;ul&gt;
  &lt;ul&gt;
    &lt;li data-start=&quot;3625&quot; data-end=&quot;3643&quot;&gt;Runs on the server&lt;/li&gt;
    &lt;li data-start=&quot;3646&quot; data-end=&quot;3670&quot;&gt;
      Accepts serialized input-&lt;strong data-start=&quot;4228&quot; data-end=&quot;4292&quot;
        &gt;structured data sent between client and server, such as JSON&lt;/strong
      &gt;
    &lt;/li&gt;
    &lt;li data-start=&quot;3673&quot; data-end=&quot;3705&quot;&gt;Executes during request handling&lt;/li&gt;
  &lt;/ul&gt;
&lt;/ul&gt;
&lt;p data-start=&quot;3707&quot; data-end=&quot;3777&quot;&gt;
  Then it deserves the same operational scrutiny as any backend service.
&lt;/p&gt;
&lt;p data-start=&quot;5569&quot; data-end=&quot;5706&quot;&gt;
  This is not a failure of frontend engineering. It is the natural consequence of
  powerful abstractions becoming production infrastructure.
&lt;/p&gt;
&lt;p data-start=&quot;5708&quot; data-end=&quot;5850&quot;&gt;
  Modern frameworks trade explicit boundaries for speed and developer experience. That
  tradeoff doesn&amp;rsquo;t remove responsibility, it relocates it.
&lt;/p&gt;
&lt;h2 data-pm-slice=&quot;1 1 []&quot;&gt;What Teams Needed to Do Immediately&lt;/h2&gt;
&lt;p&gt;
  As guidance emerged, response patterns converged across organizations. Teams that
  moved quickly followed the same playbook.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1. Identify exposure&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
  &lt;ul&gt;
    &lt;li&gt;Confirm the use of React Server components.&lt;/li&gt;
    &lt;li&gt;Verify whether Next.js App Router is enabled&lt;/li&gt;
    &lt;li&gt;Check indirect usage via dependencies.&lt;/li&gt;
  &lt;/ul&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;2. Patch and redeploy&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
  &lt;li style=&quot;list-style-type: none&quot;&gt;
    &lt;ul&gt;
      &lt;li&gt;
        &lt;span data-teams=&quot;true&quot;
          &gt;Upgrade React Server DOM packages to 19.0.3, 19.1.4, or 19.2.3&lt;/span
        &gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;span data-teams=&quot;true&quot;&gt;Upgrade Next.js based on your release line:&lt;/span&gt;
        &lt;ul&gt;
          &lt;li&gt;13.x / 14.x: upgrade to 14.2.35&lt;/li&gt;
          &lt;li&gt;15.0.x: upgrade to 15.0.5+&lt;/li&gt;
          &lt;li&gt;15.1.x: upgrade to 15.1.9+&lt;/li&gt;
          &lt;li&gt;15.2.x: upgrade to 15.2.6+&lt;/li&gt;
          &lt;li&gt;15.3.x: upgrade to 15.3.6+&lt;/li&gt;
          &lt;li&gt;15.4.x: upgrade to 15.4.8+&lt;/li&gt;
          &lt;li&gt;15.5.x: upgrade to 15.5.7+&lt;/li&gt;
          &lt;li&gt;16.x: upgrade to 16.0.7+&lt;/li&gt;
        &lt;/ul&gt;
      &lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
  &lt;li style=&quot;list-style-type: none&quot;&gt;
    &lt;ul&gt;
      &lt;li&gt;
        &lt;strong&gt;Redeploy applications after upgrading,&amp;nbsp;&lt;/strong&gt;Restarting the
        application so the fixed version is actually running
      &lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt; &lt;/strong&gt;&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0px&quot;&gt;&lt;strong&gt; 3. Assume post-exploitation&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Rotate secrets where appropriate&lt;/li&gt;
  &lt;li&gt;Review logs and runtime behavior&lt;/li&gt;
  &lt;li&gt;Monitor for abnormal resource usage&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
  &lt;strong&gt;4. Treat framework upgrades as production changes.&lt;/strong&gt;&lt;br /&gt;Framework
  updates affect runtime behavior.&amp;nbsp;They are not cosmetic.
&lt;/p&gt;
&lt;h2 data-start=&quot;5400&quot; data-end=&quot;5422&quot;&gt;The Bigger Takeaway&lt;/h2&gt;
&lt;p data-start=&quot;1482&quot; data-end=&quot;1590&quot;&gt;
  React2Shell did not break trust in React. It revealed how much trust modern stacks
  already carry by default.
&lt;/p&gt;
&lt;p data-start=&quot;1595&quot; data-end=&quot;1793&quot;&gt;
  The real shift isn&amp;rsquo;t &amp;ldquo;patch faster.&amp;rdquo; It&amp;rsquo;s recognizing that
  framework behavior is production infrastructure, and treating it with the same
  discipline applied to APIs, authentication, and deployments.
&lt;/p&gt;
&lt;p data-start=&quot;1798&quot; data-end=&quot;1823&quot;&gt;Every ecosystem balances:&lt;/p&gt;
&lt;ul&gt;
  &lt;li data-start=&quot;1830&quot; data-end=&quot;1854&quot;&gt;Velocity vs visibility&lt;/li&gt;
  &lt;li data-start=&quot;1859&quot; data-end=&quot;1883&quot;&gt;Abstraction vs control&lt;/li&gt;
  &lt;li data-start=&quot;1888&quot; data-end=&quot;1924&quot;&gt;Convenience vs explicit boundaries&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-start=&quot;1929&quot; data-end=&quot;1990&quot;&gt;
  There is no perfectly safe stack, only well-understood ones.
&lt;/p&gt;
&lt;p data-start=&quot;1995&quot; data-end=&quot;2159&quot;&gt;
  Teams that handled this incident best were not the ones with the most tools. They were
  the ones that understood what executed where, and could respond deliberately.
&lt;/p&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p data-start=&quot;2285&quot; data-end=&quot;2419&quot;&gt;
  React2Shell spread quickly not because it was sophisticated, but because it aligned
  with how modern frameworks are built and deployed.
&lt;/p&gt;
&lt;p data-start=&quot;2424&quot; data-end=&quot;2601&quot;&gt;
  If you run React Server Components or the Next.js App Router in production, treat this
  like any other runtime incident: patch, redeploy, and verify you weren&amp;rsquo;t already
  affected.
&lt;/p&gt;
&lt;p data-start=&quot;2606&quot; data-end=&quot;2719&quot;&gt;
  And going forward, apply the same rule everywhere: if it runs on the server, it
  deserves server-grade discipline.
&lt;/p&gt;
&lt;h2&gt;FAQ&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;What is CVE-2025-55182?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  React2Shell, a critical vulnerability in React Server Components that allowed
  unauthenticated remote code execution. It carried a CVSS score of 10.0.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Which React and Next.js versions were affected?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  React 19.0.0, 19.1.0, 19.1.1 and 19.2.0, plus Next.js from 14.3.0-canary.77 through
  15.x and 16.x when the App Router is used. React Router, Expo, Redwood SDK, Waku and
  the Vite and Parcel RSC plugins were affected too.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Is upgrading the package enough?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  No. The running process keeps the vulnerable code until you redeploy, which is why
  several teams were reinfected after cleaning up without restarting on the fixed
  version.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;How do you tell if a server was compromised?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  Look for abnormal CPU and memory use from miners, unexpected outbound proxy traffic
  and unfamiliar persistence entries. Rotate secrets and review runtime logs even when
  nothing obvious shows up.
&lt;/p&gt;
&lt;h4 data-start=&quot;5512&quot; data-end=&quot;5525&quot;&gt;Resources&lt;/h4&gt;
&lt;ul&gt;
  &lt;ul&gt;
    &lt;li&gt;
      &lt;a
        href=&quot;https://react.dev/blog/2025/12/03/critical-security-vulnerability-in-react-server-components&quot;
        target=&quot;_blank&quot;
        rel=&quot;noopener&quot;
        &gt;React Security Advisory - Critical Vulnerability in React Server Components&lt;/a
      &gt;
    &lt;/li&gt;
    &lt;li&gt;
      &lt;a
        href=&quot;https://cloud.google.com/blog/topics/threat-intelligence/threat-actors-exploit-react2shell-cve-2025-55182&quot;
        target=&quot;_blank&quot;
        rel=&quot;noopener&quot;
        &gt;Google Cloud Threat Intelligence - React2Shell Exploitation&lt;/a
      &gt;
    &lt;/li&gt;
    &lt;li&gt;
      &lt;a
        href=&quot;https://unit42.paloaltonetworks.com/cve-2025-55182-react-and-cve-2025-66478-next/&quot;
        target=&quot;_blank&quot;
        rel=&quot;noopener&quot;
        &gt;Palo Alto Networks Unit42 - React2Shell &amp;amp; Next.js Vulnerabilities&lt;/a
      &gt;
    &lt;/li&gt;
    &lt;li&gt;
      &lt;a
        href=&quot;https://blog.cloudflare.com/react2shell-rsc-vulnerabilities-exploitation-threat-brief/&quot;
        target=&quot;_blank&quot;
        rel=&quot;noopener&quot;
        &gt;Cloudflare Threat Brief - React2Shell Exploitation &amp;amp; Mitigations&lt;/a
      &gt;
    &lt;/li&gt;
  &lt;/ul&gt;
&lt;/ul&gt;
</content:encoded>
        </item>
        <item>
            <title><![CDATA[Tekunda Becomes an Odoo Partner]]></title>
            <description><![CDATA[Tekunda becomes an official Odoo Partner, uniting Salesforce CRM and Odoo ERP to deliver end-to-end automation, integration, and smarter business workflows.]]></description>
            <link>https://tekunda.com/blog/Tekunda-Becomes-an-Odoo-Partner</link>
            <guid isPermaLink="false">https://tekunda.com/blog/Tekunda-Becomes-an-Odoo-Partner</guid>
            <dc:creator><![CDATA[Tekunda Team]]></dc:creator>
            <pubDate>Wed, 10 Dec 2025 14:30:07 GMT</pubDate>
            <content:encoded>&lt;h2 data-start=&quot;223&quot; data-end=&quot;459&quot;&gt;Expanding Unified Business Capabilities&lt;/h2&gt;
&lt;p&gt;
  Tekunda is now an official&amp;nbsp;&lt;a
    class=&quot;decorated-link cursor-pointer&quot;
    target=&quot;_new&quot;
    rel=&quot;noopener&quot;
    data-start=&quot;585&quot;
    data-end=&quot;622&quot;
    &gt;Odoo&lt;/a
  &gt;&lt;strong data-start=&quot;250&quot; data-end=&quot;266&quot;&gt;&amp;nbsp;&lt;/strong
  &gt;&lt;strong data-start=&quot;250&quot; data-end=&quot;266&quot;&gt;Partner&lt;/strong&gt;, deepening our capabilities
  in delivering
  &lt;strong data-start=&quot;309&quot; data-end=&quot;348&quot;&gt;unified end-to-end business systems&lt;/strong&gt;
  across operations, finance, sales, manufacturing, real estate, healthcare, retail,
  customer service, and more.
&lt;/p&gt;
&lt;p data-start=&quot;461&quot; data-end=&quot;758&quot;&gt;
  As a firm already strong in
  &lt;a
    class=&quot;decorated-link&quot;
    href=&quot;https://www.salesforce.com/products/what-is-salesforce/&quot;
    target=&quot;_new&quot;
    rel=&quot;noopener&quot;
    data-start=&quot;489&quot;
    data-end=&quot;549&quot;
    &gt;Salesforce&lt;/a
  &gt;
  consulting and integration, adding
  &lt;a href=&quot;https://www.odoo.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Odoo&lt;/a&gt; strengthens
  our ability to deliver the true
  &lt;strong data-start=&quot;667&quot; data-end=&quot;695&quot;&gt;&amp;ldquo;single source of truth&amp;rdquo;&lt;/strong&gt;
  systems combining CRM and ERP, tailored to client workflows.
&lt;/p&gt;
&lt;p data-pm-slice=&quot;1 1 []&quot;&gt;
  The two platforms are not competing; they&amp;rsquo;re&amp;nbsp;complementary:
&lt;/p&gt;
&lt;ul&gt;
  &lt;li data-pm-slice=&quot;1 1 []&quot;&gt;
    &lt;strong data-start=&quot;827&quot; data-end=&quot;841&quot;&gt;Salesforce&lt;/strong&gt; remains the
    best-in-class platform for managing customers, growth, and revenue.
  &lt;/li&gt;
  &lt;li data-pm-slice=&quot;1 1 []&quot;&gt;
    &lt;strong data-start=&quot;926&quot; data-end=&quot;934&quot;&gt;Odoo &lt;/strong&gt;excels in ERP, operations, and
    back-office functions.
  &lt;/li&gt;
&lt;/ul&gt;
&lt;p data-start=&quot;992&quot; data-end=&quot;1090&quot;&gt;
  For SMBs, this balance means
  &lt;strong data-start=&quot;1021&quot; data-end=&quot;1090&quot;
    &gt;faster implementations, smarter automation, and reduced overhead.&lt;/strong
  &gt;
&lt;/p&gt;
&lt;h2 data-start=&quot;1485&quot; data-end=&quot;1520&quot;&gt;Facing Integration Headaches?&lt;/h2&gt;
&lt;p data-start=&quot;1523&quot; data-end=&quot;1664&quot;&gt;
  Are your CRM and ERP still speaking different languages, leaving teams to hand-
  translate data between orders, inventory, billing, and service?
&lt;/p&gt;
&lt;h2&gt;
  &lt;strong data-start=&quot;1286&quot; data-end=&quot;1318&quot;
    &gt;Q: Why Tekunda &amp;amp; Odoo Partnership Matters?&lt;/strong
  &gt;
&lt;/h2&gt;
&lt;p data-start=&quot;1320&quot; data-end=&quot;1601&quot;&gt;
  Every business system comes with its own schema, API limitations, and authentication
  model. None of them agree on what a customer, order, or status means. That&amp;rsquo;s why
  businesses end up hand-translating data between CRM, ERP, accounting, and warehouse
  systems until something breaks.
&lt;/p&gt;
&lt;p data-start=&quot;1603&quot; data-end=&quot;1896&quot;&gt;
  Our approach is simple: design
  &lt;strong data-start=&quot;1634&quot; data-end=&quot;1657&quot;&gt;automated workflows&lt;/strong&gt; that reflect
  the way you actually run your business. Integrations are
  &lt;strong data-start=&quot;1728&quot; data-end=&quot;1751&quot;&gt;configuration-based&lt;/strong&gt;, not heavy
  custom development. We deliver this as a
  &lt;strong data-start=&quot;1804&quot; data-end=&quot;1823&quot;&gt;managed service&lt;/strong&gt;, so when Salesforce
  or Odoo update their schemas, nothing silently dies.
&lt;/p&gt;
&lt;p data-start=&quot;1898&quot; data-end=&quot;2049&quot;&gt;
  This pain is universal, but it becomes manageable when integrations are built
  creatively: configuration-driven, flexible, and aligned to your processes.
&lt;/p&gt;
&lt;section
  style=&quot;
    border: 2px solid #0ea5e9;
    border-radius: 12px;
    padding: 20px;
    margin: 28px 0;
    background: #e0f2fe;
  &quot;
  aria-label=&quot;CTA Salesforce + Odoo&quot;
&gt;
  &lt;h3 style=&quot;margin-top: 0&quot;&gt;&lt;strong&gt;CRM &amp;amp; ERP built for SMBs&lt;/strong&gt;&lt;/h3&gt;
  &lt;p data-pm-slice=&quot;1 1 []&quot;&gt;
    &lt;strong data-start=&quot;2089&quot; data-end=&quot;2136&quot;
      &gt;Salesforce for growth. Odoo for operations.&lt;/strong
    &gt;
    Unified workflows that scale with your business.
  &lt;/p&gt;
  &lt;a
    style=&quot;
      background: #0ea5e9;
      color: #fff;
      padding: 10px 18px;
      border-radius: 8px;
      text-decoration: none;
    &quot;
    href=&quot;#contact&quot;
    &gt;See how it works&lt;/a
  &gt;
&lt;/section&gt;
&lt;hr /&gt;
&lt;h2&gt;&lt;strong&gt;Q: What do clients actually gain?&lt;/strong&gt;&lt;/h2&gt;
&lt;ol data-start=&quot;2352&quot; data-end=&quot;3469&quot;&gt;
  &lt;li data-start=&quot;2352&quot; data-end=&quot;2556&quot;&gt;
    &lt;p data-start=&quot;2355&quot; data-end=&quot;2556&quot;&gt;
      &lt;strong data-start=&quot;2355&quot; data-end=&quot;2388&quot;&gt;Unified CRM + ERP Integration&lt;/strong
      &gt;&lt;br data-start=&quot;2388&quot; data-end=&quot;2391&quot; /&gt;Your systems don&amp;rsquo;t just coexist;
      they work together. Sales orders, invoicing, inventory movements, financials, and
      customer touchpoints sync bi-directionally.
    &lt;/p&gt;
  &lt;/li&gt;
  &lt;li data-start=&quot;2558&quot; data-end=&quot;2762&quot;&gt;
    &lt;p data-start=&quot;2561&quot; data-end=&quot;2762&quot;&gt;
      &lt;strong data-start=&quot;2561&quot; data-end=&quot;2594&quot;&gt;Custom Workflows That Fit You&lt;/strong
      &gt;&lt;br data-start=&quot;2594&quot; data-end=&quot;2597&quot; /&gt;We don&amp;rsquo;t do &amp;ldquo;install and
      go.&amp;rdquo; We map workflows across sales, fulfillment, service, supply chain,
      healthcare, and retail, then configure Salesforce and Odoo to fit.
    &lt;/p&gt;
  &lt;/li&gt;
  &lt;li data-start=&quot;2764&quot; data-end=&quot;2959&quot;&gt;
    &lt;p data-start=&quot;2767&quot; data-end=&quot;2959&quot;&gt;
      &lt;strong data-start=&quot;2767&quot; data-end=&quot;2792&quot;&gt;Scalable Architecture&lt;/strong
      &gt;&lt;br data-start=&quot;2792&quot; data-end=&quot;2795&quot; /&gt;Start with essentials and expand into
      manufacturing, procurement, HR, MRP, or healthcare modules. Integration patterns
      are built for
      &lt;strong data-start=&quot;2931&quot; data-end=&quot;2959&quot;&gt;long-term extensibility.&lt;/strong&gt;
    &lt;/p&gt;
  &lt;/li&gt;
  &lt;li data-start=&quot;2961&quot; data-end=&quot;3186&quot;&gt;
    &lt;p data-start=&quot;2964&quot; data-end=&quot;3186&quot;&gt;
      &lt;strong data-start=&quot;2964&quot; data-end=&quot;3004&quot;
        &gt;Better Visibility &amp;amp; Decision Support&lt;/strong
      &gt;&lt;br data-start=&quot;3004&quot; data-end=&quot;3007&quot; /&gt;Leadership gains dashboards that combine
      ERP operational metrics with CRM data, revealing which sales convert to profit,
      where bottlenecks occur, and how resources should shift.
    &lt;/p&gt;
  &lt;/li&gt;
  &lt;li data-start=&quot;3188&quot; data-end=&quot;3337&quot;&gt;
    &lt;p data-start=&quot;3191&quot; data-end=&quot;3337&quot;&gt;
      &lt;strong data-start=&quot;3191&quot; data-end=&quot;3225&quot;
        &gt;Reduced Overhead &amp;amp; Manual Work&lt;/strong
      &gt;&lt;br data-start=&quot;3225&quot; data-end=&quot;3228&quot; /&gt;Automations across order-to-cash,
      procurement, and service reduce duplication, reconciliation, and errors.
    &lt;/p&gt;
  &lt;/li&gt;
  &lt;li data-start=&quot;3339&quot; data-end=&quot;3469&quot;&gt;
    &lt;p data-start=&quot;3342&quot; data-end=&quot;3469&quot;&gt;
      &lt;strong data-start=&quot;3342&quot; data-end=&quot;3376&quot;
        &gt;Ongoing Support &amp;amp; Optimization&lt;/strong
      &gt;&lt;br data-start=&quot;3376&quot; data-end=&quot;3379&quot; /&gt;CRMs and ERPs aren&amp;rsquo;t &amp;ldquo;set and
      forget.&amp;rdquo; We evolve your systems as your business changes.
    &lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;
&lt;section
  style=&quot;
    border: 2px solid #1da9c7;
    border-radius: 12px;
    padding: 20px;
    margin: 28px 0;
    background: #ecfeff;
  &quot;
  aria-label=&quot;CTA Workshop&quot;
&gt;
  &lt;h3 style=&quot;margin-top: 0&quot;&gt;&lt;strong&gt;Start with a workflow mapping.&lt;/strong&gt;&lt;/h3&gt;
  &lt;p style=&quot;margin: 8px 0 16px&quot;&gt;
    Not sure where to begin? We&amp;rsquo;ll map your CRM or ERP processes into one seamless
    flow.
  &lt;/p&gt;
  &lt;a
    style=&quot;
      background: #1da9c7;
      color: #fff;
      padding: 10px 18px;
      border-radius: 8px;
      text-decoration: none;
    &quot;
    href=&quot;#contact&quot;
    &gt;Book a workshop&lt;/a
  &gt;
&lt;/section&gt;
&lt;h2&gt;Why &lt;a href=&quot;https://tekunda.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Tekunda?&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
  &lt;li&gt;
    &lt;strong&gt;Dual expertise&lt;/strong&gt;: Salesforce and Odoo, complementary not competing.
  &lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Integration-first mindset&lt;/strong&gt;: Data flows before features.&lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Stakeholder alignment workshops&lt;/strong&gt;: Sales, Ops, Finance and Care teams
    aligned early.&amp;nbsp;&amp;nbsp;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Phased rollouts&lt;/strong&gt;: Essential first, adoption first, then expand.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Agnostic extension/API capability&lt;/strong&gt;: Where standard modules stop, we
    build bridges.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Domain expertise&lt;/strong&gt;: Experience in manufacturing, healthcare, retail,
    real estate, SaaS.
  &lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-start=&quot;4102&quot; data-end=&quot;4129&quot;&gt;
  &lt;strong data-start=&quot;4105&quot; data-end=&quot;4129&quot;&gt;Real-World Scenarios&lt;/strong&gt;
&lt;/h2&gt;
&lt;ul data-start=&quot;4131&quot; data-end=&quot;4741&quot;&gt;
  &lt;li data-start=&quot;4131&quot; data-end=&quot;4315&quot;&gt;
    &lt;p data-start=&quot;4133&quot; data-end=&quot;4315&quot;&gt;
      &lt;strong data-start=&quot;4133&quot; data-end=&quot;4151&quot;&gt;Manufacturing:&lt;/strong&gt; Salesforce
      handles lead-to-order. Odoo drives inventory planning, procurement, production,
      and invoicing. Sales forecasts automatically inform material planning.
    &lt;/p&gt;
  &lt;/li&gt;
  &lt;li data-start=&quot;4131&quot; data-end=&quot;4315&quot;&gt;
    &lt;p data-start=&quot;4133&quot; data-end=&quot;4315&quot;&gt;
      &lt;strong data-start=&quot;4318&quot; data-end=&quot;4341&quot;&gt;Services + Product:&lt;/strong&gt; Salesforce
      closes deals; Odoo fulfills service orders. Agents see contracts and stock status
      on one screen.
    &lt;/p&gt;
  &lt;/li&gt;
  &lt;li data-start=&quot;4452&quot; data-end=&quot;4601&quot;&gt;
    &lt;p data-start=&quot;4454&quot; data-end=&quot;4601&quot;&gt;
      &lt;strong data-start=&quot;4454&quot; data-end=&quot;4478&quot;&gt;Healthcare Provider:&lt;/strong&gt; Patient
      interactions in Salesforce feed into Odoo&amp;rsquo;s scheduling and billing -
      ensuring compliance and smooth care delivery.
    &lt;/p&gt;
  &lt;/li&gt;
  &lt;li data-start=&quot;4602&quot; data-end=&quot;4741&quot;&gt;
    &lt;p data-start=&quot;4604&quot; data-end=&quot;4741&quot;&gt;
      &lt;strong data-start=&quot;4604&quot; data-end=&quot;4625&quot;&gt;E-Commerce Brand:&lt;/strong&gt; Orders from
      Salesforce or storefronts flow into Odoo&amp;rsquo;s warehouse. Financials and returns
      post back automatically.
    &lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;What Happens Next?&lt;/h2&gt;
&lt;p&gt;
  Already on Odoo or another ERP and need
  &lt;a href=&quot;/products/integration&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;CRM&lt;/a&gt;? We&amp;rsquo;ll
  build the workflows to unify them.
&lt;/p&gt;
&lt;p&gt;
  Want a sanity check on your integration approach? We&amp;rsquo;ll map your workflows and
  show you how to avoid brittle hand-offs.
&lt;/p&gt;
&lt;p&gt;
  Reach out for a workshop or send us a DM to see how unified systems behave in
  practice.
&lt;/p&gt;
&lt;section
  style=&quot;
    border: 2px solid #0ea5e9;
    border-radius: 12px;
    padding: 20px;
    margin: 28px 0;
    background: #f0f9ff;
  &quot;
  aria-label=&quot;CTA Demo&quot;
&gt;
  &lt;h3 style=&quot;margin-top: 0&quot;&gt;&lt;strong&gt;See Odoo in action.&lt;/strong&gt;&lt;/h3&gt;
  &lt;p style=&quot;margin: 8px 0 16px&quot;&gt;
    Experience how SMBs unify customer, finance, and operations on one platform.
  &lt;/p&gt;
  &lt;a
    style=&quot;
      background: #0ea5e9;
      color: #fff;
      padding: 10px 18px;
      border-radius: 8px;
      text-decoration: none;
    &quot;
    href=&quot;#contact&quot;
    &gt;Book a Demo&lt;/a
  &gt;
&lt;/section&gt;
&lt;h2 data-start=&quot;5097&quot; data-end=&quot;5149&quot;&gt;
  &lt;strong data-start=&quot;5100&quot; data-end=&quot;5149&quot;
    &gt;Beyond Partnership: Expanding What&amp;rsquo;s Possible&lt;/strong
  &gt;
&lt;/h2&gt;
&lt;p data-start=&quot;5151&quot; data-end=&quot;5239&quot;&gt;
  This partnership isn&amp;rsquo;t about adding another tool, it&amp;rsquo;s about expanding
  what&amp;rsquo;s possible.
&lt;/p&gt;
&lt;p data-start=&quot;5241&quot; data-end=&quot;5508&quot;&gt;
  Odoo brings a complete suite of ERP capabilities, from finance and manufacturing to
  retail, healthcare, and beyond. Paired with Salesforce&amp;rsquo;s CRM strength and our
  integration expertise, SMBs can finally access
  &lt;strong data-start=&quot;5450&quot; data-end=&quot;5474&quot;&gt;end-to-end workflows&lt;/strong&gt; on a single,
  flexible platform.
&lt;/p&gt;
&lt;p data-start=&quot;5510&quot; data-end=&quot;5771&quot;&gt;
  The businesses that thrive tomorrow will be those whose systems are fluid, adaptive,
  and future-ready.&lt;br data-start=&quot;5616&quot; data-end=&quot;5619&quot; /&gt;With
  &lt;strong data-start=&quot;5624&quot; data-end=&quot;5660&quot;&gt;Odoo as the operational backbone&lt;/strong&gt;
  and
  &lt;strong data-start=&quot;5665&quot; data-end=&quot;5700&quot;&gt;Salesforce as the growth engine&lt;/strong&gt;,
  the path to an integrated, intelligent business is clearer than ever.
&lt;/p&gt;
&lt;h2 data-start=&quot;5778&quot; data-end=&quot;5790&quot;&gt;
  &lt;strong data-start=&quot;5781&quot; data-end=&quot;5790&quot;&gt;TL;DR&lt;/strong&gt;
&lt;/h2&gt;
&lt;p data-start=&quot;5792&quot; data-end=&quot;6096&quot;&gt;
  Tekunda&amp;rsquo;s Odoo Partnership pairs
  &lt;a
    class=&quot;decorated-link&quot;
    href=&quot;https://www.salesforce.com/products/what-is-salesforce/&quot;
    target=&quot;_new&quot;
    rel=&quot;noopener&quot;
    data-start=&quot;5825&quot;
    data-end=&quot;5885&quot;
    &gt;Salesforce&lt;/a
  &gt;
  for growth with
  &lt;a href=&quot;https://www.odoo.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Odoo&lt;/a&gt; for
  operations, unifying CRM and ERP into one extensible workflow.&lt;br
    data-start=&quot;6003&quot;
    data-end=&quot;6006&quot;
  /&gt;&lt;strong data-start=&quot;6006&quot; data-end=&quot;6017&quot;&gt;Result:&lt;/strong&gt; Faster implementations,
  less manual work, and better decision-making for SMBs.
&lt;/p&gt;
&lt;h2&gt;FAQ&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Do Salesforce and Odoo compete with each other?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  They overlap at the edges but solve different problems. Salesforce runs customer,
  growth and revenue processes, while Odoo covers ERP, operations and the back office.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Can Salesforce and Odoo share one customer record?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  Yes, with a bi-directional sync. Orders, invoices, inventory movements and customer
  touchpoints flow both ways once you agree what a customer, an order and a status mean
  in each system.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Does a CRM and ERP integration need custom code?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  Most of it should be configuration-driven. Custom code belongs where standard modules
  stop, and keeping that surface small is what makes upgrades survivable.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What breaks CRM to ERP integrations over time?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  Schema and API changes on either side. Running the integration as a managed service
  means those updates get caught and adjusted before something silently stops syncing.
&lt;/p&gt;
</content:encoded>
        </item>
        <item>
            <title><![CDATA[What It Takes to Drive ROI from AI Agents? (From a Team That Does It)]]></title>
            <description><![CDATA[Chances are you're is exploring AI agents, maybe you've built a prototype, or evaluating whether agents can actually deliver ROI to your business.]]></description>
            <link>https://tekunda.com/blog/what-it-takes-to-drive-roi-from-ai-agents-from-a-team-that-does-it</link>
            <guid isPermaLink="false">https://tekunda.com/blog/what-it-takes-to-drive-roi-from-ai-agents-from-a-team-that-does-it</guid>
            <dc:creator><![CDATA[Tekunda Team]]></dc:creator>
            <pubDate>Mon, 20 Oct 2025 19:52:07 GMT</pubDate>
            <content:encoded>&lt;p&gt;
  If you&apos;re reading this, chances are your team is exploring AI agents, maybe you&apos;ve
  built a prototype, or you&apos;re evaluating whether agents can actually deliver ROI in
  your business.
&lt;/p&gt;
&lt;p&gt;
  At &lt;strong&gt;Tekunda&lt;/strong&gt;, we&apos;ve spent the last year building and deploying
  real-world AI agents for product teams, internal ops, and client delivery. And
  here&amp;rsquo;s what we&amp;rsquo;ve learned:
&lt;/p&gt;
&lt;p&gt;
  &lt;strong
    &gt;Yes, AI agents can deliver major returns, but only if approached with the right
    expectations, structure, and execution strategy.&lt;/strong
  &gt;
&lt;/p&gt;
&lt;!-- CTA Block --&gt;
&lt;section
  style=&quot;
    border: 2px solid #0ea5e9;
    border-radius: 12px;
    padding: 20px;
    margin: 28px 0;
    background: #e0f2fe;
  &quot;
  aria-label=&quot;Start with ROI&quot;
&gt;
  &lt;h2 style=&quot;margin-top: 0&quot;&gt;&lt;strong&gt;Ready to explore AI agent ROI?&lt;/strong&gt;&lt;/h2&gt;
  &lt;p style=&quot;margin: 8px 0 16px&quot;&gt;
    Speak to a Tekunda partner and see how AI agents can cut hours of repetitive work
    without the hype.
  &lt;/p&gt;
  &lt;div style=&quot;display: flex; gap: 12px; flex-wrap: wrap&quot;&gt;
    &lt;a
      style=&quot;
        display: inline-block;
        padding: 12px 20px;
        border-radius: 10px;
        font-weight: bold;
        text-decoration: none;
        background: var(--background-accent);
        color: #fff;
      &quot;
      href=&quot;#contact&quot;
      &gt;Book a consult&lt;/a
    &gt;
    &lt;a
      style=&quot;
        display: inline-block;
        padding: 12px 20px;
        border-radius: 10px;
        font-weight: bold;
        text-decoration: none;
        background: #0f172a;
        color: #fff;
      &quot;
      href=&quot;#contact&quot;
      &gt;Share your use case&lt;/a
    &gt;
  &lt;/div&gt;
&lt;/section&gt;
&lt;h2&gt;It&amp;rsquo;s Not About AI Hype, It&amp;rsquo;s About Workflow Automation&lt;/h2&gt;
&lt;p&gt;
  Most of the ROI we&amp;rsquo;ve seen doesn&amp;rsquo;t come from generative text or chatbots.
  It comes from &lt;strong&gt;automating repetitive decision-making tasks&lt;/strong&gt; that used
  to require hours of human input.
&lt;/p&gt;
&lt;p&gt;
  Think: lead qualification, data enrichment, triage, internal routing, follow-ups, and
  more.
&lt;/p&gt;
&lt;p&gt;
  The trick is building agents that integrate tightly with your existing systems,
  Salesforce, Notion, Google Workspace, Slack, CRMs, and perform useful actions without
  needing constant oversight.
&lt;/p&gt;
&lt;h2&gt;Understand What Agents Can and Can&amp;rsquo;t Do&lt;/h2&gt;
&lt;p&gt;
  Teams waste months trying to build what&amp;rsquo;s technically unfeasible (or too brittle
  to maintain). Example:
&lt;/p&gt;
&lt;p&gt;
  &lt;strong&gt;LinkedIn messaging agents?&lt;/strong&gt; Not possible through LinkedIn&apos;s official
  APIs. Third-party hacks exist, but they&amp;rsquo;re unstable, risky, and not worth
  building real operations on.
&lt;/p&gt;
&lt;p&gt;
  Start by mapping pain points, then validating feasibility. We help teams run that
  assessment before writing a line of code, it saves time and budget down the line.
&lt;/p&gt;
&lt;h2&gt;Real ROI Comes from Solving Boring Problems&lt;/h2&gt;
&lt;p&gt;The highest-leverage agents we&amp;rsquo;ve built didn&amp;rsquo;t look fancy, they just:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Saved someone 10+ hours a week&lt;/li&gt;
  &lt;li&gt;Closed the loop on neglected ops tasks&lt;/li&gt;
  &lt;li&gt;Increased conversion speed&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Examples include:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Auto-sending personalized emails to leads using LinkedIn data + CRM signals&lt;/li&gt;
  &lt;li&gt;Following up on stale tickets in support workflows&lt;/li&gt;
  &lt;li&gt;Summarizing sales calls and updating opportunity fields&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
  &lt;strong
    &gt;Agents don&amp;rsquo;t need to &amp;ldquo;wow&amp;rdquo;, they need to help your team move
    faster.&lt;/strong
  &gt;
&lt;/p&gt;
&lt;h2&gt;ROI Is a Function of Internal Buy-In&lt;/h2&gt;
&lt;p&gt;
  You can build the smartest agent in the world, but if no one uses it, it delivers zero
  value.
&lt;/p&gt;
&lt;p&gt;That&amp;rsquo;s why agent adoption depends on:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Clear ownership: who maintains and improves the agent?&lt;/li&gt;
  &lt;li&gt;Simple UX: do internal users trust and understand it?&lt;/li&gt;
  &lt;li&gt;Ongoing feedback: is it evolving with team needs?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
  We often say:
  &lt;em&gt;a mediocre agent with strong adoption beats a genius agent no one uses.&lt;/em&gt;
&lt;/p&gt;
&lt;h2&gt;No-Code = Great for Testing. Not for Scale.&lt;/h2&gt;
&lt;p&gt;
  We love tools like N8n, Zapier, and Make, but for production-grade deployments, they
  often hit limits:
&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Performance bottlenecks&lt;/li&gt;
  &lt;li&gt;Cost scaling (node-based pricing can spike)&lt;/li&gt;
  &lt;li&gt;Debugging black boxes&lt;/li&gt;
&lt;/ul&gt;
&lt;!-- CTA Block --&gt;
&lt;section
  style=&quot;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    padding: 20px;
    margin: 28px 0;
    background: #fafafa;
  &quot;
  aria-label=&quot;Scale AI Agents&quot;
&gt;
  &lt;h2 style=&quot;margin-top: 0&quot;&gt;
    &lt;strong&gt;From prototype to production, without the pain&lt;/strong&gt;
  &lt;/h2&gt;
  &lt;p style=&quot;margin: 8px 0 16px&quot;&gt;
    We help teams move from no-code demos to production-grade agents using Langflow,
    Python, LangChain, and LangGraph.
  &lt;/p&gt;
  &lt;div style=&quot;display: flex; gap: 12px; flex-wrap: wrap&quot;&gt;
    &lt;a
      style=&quot;
        display: inline-block;
        padding: 12px 20px;
        border-radius: 10px;
        font-weight: bold;
        text-decoration: none;
        background: var(--background-accent);
        color: #fff;
      &quot;
      href=&quot;#contact&quot;
      &gt;Schedule a discovery sprint&lt;/a
    &gt;
  &lt;/div&gt;
&lt;/section&gt;
&lt;p&gt;For clients targeting ROI, we recommend:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Low-code + code&lt;/strong&gt; (Langflow, Python, LangChain, LangGraph)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Version control&lt;/strong&gt; to track changes&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Hosted agent orchestration&lt;/strong&gt; (Cloud Run, Vercel, or similar)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;When (and How) to Use LangChain, Lessons from Thousands of Deployments&lt;/h2&gt;
&lt;p&gt;
  We spent months analyzing LangChain usage patterns across 500+ companies, from Fortune
  500s to early-stage startups. What we discovered completely contradicts the official
  documentation.
&lt;/p&gt;
&lt;p&gt;
  &lt;strong
    &gt;89% of successful production LangChain apps ignore the official patterns
    entirely.&lt;/strong
  &gt;
&lt;/p&gt;
&lt;h3&gt;What Successful Teams Actually Do:&lt;/h3&gt;
&lt;p&gt;
  &lt;strong&gt;1. Memory Management&lt;/strong&gt;&lt;br /&gt;Docs recommend:
  &lt;code&gt;ConversationBufferMemory()&lt;/code&gt;&lt;br /&gt;Reality: 76% of teams build
  &lt;strong&gt;custom memory handlers&lt;/strong&gt; to avoid leaks and token bloat.
&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-python&quot;&gt;# Custom production-safe memory
class CustomMemory:
    def __init__(self):
        self.redis = Redis()
        self.max_tokens = 4000  # Hard limit

    def get_memory(self, session_id):
        # Pruning, compression, etc.
        pass
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;
  &lt;strong&gt;2. Chain Composition&lt;/strong&gt;&lt;br /&gt;Docs recommend: &lt;code&gt;LCEL&lt;/code
  &gt;&lt;br /&gt;Reality: 84% of production teams avoid LCEL altogether - citing poor
  observability and error handling.
&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-python&quot;&gt;# What works in production:
def run_chain(input):
    try:
        prompt = format_prompt(input)
        response = call_model(prompt)
        return parse_output(response)
    except Exception as e:
        logger.error(f&quot;Chain failed: {e}&quot;)
        return fallback_response()
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;
  &lt;strong&gt;3. Agent Frameworks&lt;/strong&gt;&lt;br /&gt;Docs recommend: &lt;code&gt;LangGraph&lt;/code
  &gt;&lt;br /&gt;Reality: 91% stick to basic ReAct-style agents or write custom logic.
&lt;/p&gt;
&lt;p&gt;Why? LangGraph is hard to debug, and often extends time-to-production by months.&lt;/p&gt;
&lt;h3&gt;The Real LangChain ROI Pattern&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;
    Use LangChain&amp;rsquo;s utilities, like &lt;strong&gt;document loaders&lt;/strong&gt; or
    &lt;strong&gt;text splitters&lt;/strong&gt;
  &lt;/li&gt;
  &lt;li&gt;Write your own orchestration logic&lt;/li&gt;
  &lt;li&gt;Handle memory and error handling yourself&lt;/li&gt;
  &lt;li&gt;Use direct API calls for performance-critical paths&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
  Some of the highest-performing agents we&amp;rsquo;ve seen were built with 10% LangChain,
  90% raw Python.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;LangChain works best when you use it least.&lt;/strong&gt;&lt;/p&gt;
&lt;h2&gt;Success Requires Cross-Functional Thinking&lt;/h2&gt;
&lt;p&gt;
  Agent ROI is not just about the code, it&amp;rsquo;s about integrating across business,
  tech, and ops teams.
&lt;/p&gt;
&lt;p&gt;Your org needs someone who can:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Translate business pain points into agent actions&lt;/li&gt;
  &lt;li&gt;Prompt engineer and QA agent logic&lt;/li&gt;
  &lt;li&gt;Secure stakeholder buy-in with clear reporting on outcomes&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Without this glue, agents become side projects that never cross the finish line.&lt;/p&gt;
&lt;h2&gt;Qualify the Use Case First, Then Build&lt;/h2&gt;
&lt;p&gt;Before committing dev time, we ask:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;What&amp;rsquo;s the time saved or revenue impact?&lt;/li&gt;
  &lt;li&gt;Can the task be clearly scoped and validated?&lt;/li&gt;
  &lt;li&gt;Will someone own the agent after deployment?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
  If the answers are unclear, we recommend holding off, or building a throwaway
  prototype to test assumptions.
&lt;/p&gt;
&lt;h2&gt;TL;DR: Agent ROI Comes from Focused, Measurable Impact&lt;/h2&gt;
&lt;p&gt;
  If your business is chasing shiny AI features, you&amp;rsquo;ll burn through time and
  money fast.
&lt;/p&gt;
&lt;p&gt;
  But if you&amp;rsquo;re focused on automation, integration, and solving real problems?
  That&amp;rsquo;s where agents pay off.
&lt;/p&gt;
&lt;p&gt;To get meaningful ROI, your team needs to:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Start with real internal pains, not AI FOMO&lt;/li&gt;
  &lt;li&gt;Understand agent limitations and trade-offs&lt;/li&gt;
  &lt;li&gt;Build for adoption, not just capability&lt;/li&gt;
  &lt;li&gt;Treat agents as part of your ops stack, not toys&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
  If you&apos;re exploring agent adoption at your company and want to see what ROI looks like
  in practice, &lt;a href=&quot;#contact&quot;&gt;reach out to us at Tekunda&lt;/a&gt;. We&amp;rsquo;ve built
  agents for sales, support, RevOps, DevOps, and more, and we&amp;rsquo;re happy to share
  patterns that actually work.
&lt;/p&gt;
&lt;p&gt;
  Now is the best time to get this &lt;strong&gt;right&lt;/strong&gt;, while others are still
  playing with prototypes, you could already be automating the edge.
&lt;/p&gt;
&lt;!-- Final CTA Block --&gt;
&lt;h2&gt;FAQ&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Where does AI agent ROI actually come from?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  From automating repetitive decision work: lead qualification, enrichment, triage,
  routing and follow-ups. Generative text on its own rarely pays for itself.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Are no-code tools enough for production agents?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  They are excellent for testing an idea. At production volume teams hit performance
  ceilings, node-based pricing and black-box debugging, so the core logic moves into
  code.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;How do you choose the first agent use case?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  Start from a real operational pain, confirm the task can be scoped and validated, and
  check that someone will own the agent after launch. If any of those is unclear,
  prototype first.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Why do internal AI agents go unused?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
  Adoption fails when ownership is unclear, the interface is confusing, or feedback
  never reaches the people maintaining it. A simple agent people trust beats a clever
  one nobody opens.
&lt;/p&gt;
&lt;section
  style=&quot;
    border: 2px solid #0ea5e9;
    border-radius: 12px;
    padding: 20px;
    margin: 28px 0;
    background: #e0f2fe;
  &quot;
  aria-label=&quot;Work with Tekunda&quot;
&gt;
  &lt;h2 style=&quot;margin-top: 0&quot;&gt;&lt;strong&gt;Start automating today&lt;/strong&gt;&lt;/h2&gt;
  &lt;p style=&quot;margin: 8px 0 16px&quot;&gt;
    While others are still testing prototypes, you could already be running
    production-grade AI agents that save time and drive revenue.
  &lt;/p&gt;
  &lt;div style=&quot;display: flex; gap: 12px; flex-wrap: wrap&quot;&gt;
    &lt;a
      style=&quot;
        display: inline-block;
        padding: 12px 20px;
        border-radius: 10px;
        font-weight: bold;
        text-decoration: none;
        background: var(--background-accent);
        color: #fff;
      &quot;
      href=&quot;#contact&quot;
      &gt;Contact Tekunda&lt;/a
    &gt;
    &lt;a
      style=&quot;
        display: inline-block;
        padding: 12px 20px;
        border-radius: 10px;
        font-weight: bold;
        text-decoration: none;
        background: #0f172a;
        color: #fff;
      &quot;
      href=&quot;#contact&quot;
      &gt;Schedule a Demo&lt;/a
    &gt;
  &lt;/div&gt;
&lt;/section&gt;
</content:encoded>
        </item>
    </channel>
</rss>