<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic 403 Forbidden when updating CRM object property via hubspot.fetch in UI Extension in APIs &amp; Integrations</title>
    <link>https://community.hubspot.com/t5/APIs-Integrations/403-Forbidden-when-updating-CRM-object-property-via-hubspot/m-p/1210281#M84864</link>
    <description>&lt;P&gt;Hi HubSpot Support,&lt;/P&gt;&lt;P&gt;I’m calling hubspot.fetch from a CRM UI Extension to PATCH a custom object record and receiving a 403 Forbidden. I’m not including portal or app details here — please advise on the minimal required scopes/permissions and the correct approach to update a pipeline-stage (or equivalent) property from a UI extension.&lt;/P&gt;&lt;P&gt;Below is the exact client-side code I’m calling from the extension (relative path via hubspot.fetch):&lt;/P&gt;&lt;PRE&gt;// Example used inside a CRM UI Extension
const path = `/crm/v3/objects/2-143370794/${encodeURIComponent(objectId)}`;

const res = await hubspot.fetch(path, {
  method: 'PATCH',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
    properties: {
      hs_pipeline_stage: String(nextInternal) // stage internal id
    }
  })
});

const text = await res.text();
console.log('status', res.status, text);&lt;/PRE&gt;&lt;P&gt;Questions:&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;&lt;P&gt;What OAuth scopes are required so a UI Extension can PATCH custom object records (and specifically update pipeline-stage properties)?&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;Is a special scope needed to update pipeline/stage properties (system-managed or protected fields)?&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;Are there any additional installation steps or portal/user permissions required for the hubspot.fetch proxy to allow PATCH (e.g., reinstallation after changing scopes)?&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;If updating a pipeline requires a different payload (e.g., setting pipeline id + stage id together), please share the exact minimal PATCH payload format.&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;If there are internal restrictions preventing UI extensions from updating certain properties, please explain recommended alternatives.&lt;/P&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;Please respond with the minimal required scopes and the recommended PATCH payload/approach (or configuration steps) so I can fix this from the extension side. Thanks.&lt;/P&gt;</description>
    <pubDate>Thu, 09 Oct 2025 11:25:42 GMT</pubDate>
    <dc:creator>SPrakash37</dc:creator>
    <dc:date>2025-10-09T11:25:42Z</dc:date>
    <item>
      <title>403 Forbidden when updating CRM object property via hubspot.fetch in UI Extension</title>
      <link>https://community.hubspot.com/t5/APIs-Integrations/403-Forbidden-when-updating-CRM-object-property-via-hubspot/m-p/1210281#M84864</link>
      <description>&lt;P&gt;Hi HubSpot Support,&lt;/P&gt;&lt;P&gt;I’m calling hubspot.fetch from a CRM UI Extension to PATCH a custom object record and receiving a 403 Forbidden. I’m not including portal or app details here — please advise on the minimal required scopes/permissions and the correct approach to update a pipeline-stage (or equivalent) property from a UI extension.&lt;/P&gt;&lt;P&gt;Below is the exact client-side code I’m calling from the extension (relative path via hubspot.fetch):&lt;/P&gt;&lt;PRE&gt;// Example used inside a CRM UI Extension
const path = `/crm/v3/objects/2-143370794/${encodeURIComponent(objectId)}`;

const res = await hubspot.fetch(path, {
  method: 'PATCH',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
    properties: {
      hs_pipeline_stage: String(nextInternal) // stage internal id
    }
  })
});

const text = await res.text();
console.log('status', res.status, text);&lt;/PRE&gt;&lt;P&gt;Questions:&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;&lt;P&gt;What OAuth scopes are required so a UI Extension can PATCH custom object records (and specifically update pipeline-stage properties)?&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;Is a special scope needed to update pipeline/stage properties (system-managed or protected fields)?&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;Are there any additional installation steps or portal/user permissions required for the hubspot.fetch proxy to allow PATCH (e.g., reinstallation after changing scopes)?&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;If updating a pipeline requires a different payload (e.g., setting pipeline id + stage id together), please share the exact minimal PATCH payload format.&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;If there are internal restrictions preventing UI extensions from updating certain properties, please explain recommended alternatives.&lt;/P&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;Please respond with the minimal required scopes and the recommended PATCH payload/approach (or configuration steps) so I can fix this from the extension side. Thanks.&lt;/P&gt;</description>
      <pubDate>Thu, 09 Oct 2025 11:25:42 GMT</pubDate>
      <guid>https://community.hubspot.com/t5/APIs-Integrations/403-Forbidden-when-updating-CRM-object-property-via-hubspot/m-p/1210281#M84864</guid>
      <dc:creator>SPrakash37</dc:creator>
      <dc:date>2025-10-09T11:25:42Z</dc:date>
    </item>
    <item>
      <title>Re: 403 Forbidden when updating CRM object property via hubspot.fetch in UI Extension</title>
      <link>https://community.hubspot.com/t5/APIs-Integrations/403-Forbidden-when-updating-CRM-object-property-via-hubspot/m-p/1210381#M84867</link>
      <description>&lt;P&gt;Hi &lt;SPAN style="background: var(--ck-color-mention-background); color: var(--ck-color-mention-text);"&gt;&lt;a href="https://community.hubspot.com/t5/user/viewprofilepage/user-id/994281"&gt;@SPrakash37&lt;/a&gt;&lt;/SPAN&gt;,&lt;BR /&gt;&lt;BR /&gt;Thank you for posting to the Community!&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;I'd like to tag in some of our Top Contributors to see if they can offer any guidance here.&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;Hi &lt;a href="https://community.hubspot.com/t5/user/viewprofilepage/user-id/9259"&gt;@Mike_Eastwood&lt;/a&gt; &lt;a href="https://community.hubspot.com/t5/user/viewprofilepage/user-id/580930"&gt;@HubSpot_Corey&lt;/a&gt; &lt;a href="https://community.hubspot.com/t5/user/viewprofilepage/user-id/241684"&gt;@ChrisoKlepke&lt;/a&gt; Do any of you all have any suggestions for &lt;SPAN style="background: var(--ck-color-mention-background); color: var(--ck-color-mention-text);"&gt;&lt;a href="https://community.hubspot.com/t5/user/viewprofilepage/user-id/994281"&gt;@SPrakash37&lt;/a&gt;&lt;/SPAN&gt;?&lt;BR /&gt;&lt;BR /&gt;Cassie, Community Manager&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 09 Oct 2025 13:57:51 GMT</pubDate>
      <guid>https://community.hubspot.com/t5/APIs-Integrations/403-Forbidden-when-updating-CRM-object-property-via-hubspot/m-p/1210381#M84867</guid>
      <dc:creator>chighsmith</dc:creator>
      <dc:date>2025-10-09T13:57:51Z</dc:date>
    </item>
    <item>
      <title>Re: 403 Forbidden when updating CRM object property via hubspot.fetch in UI Extension</title>
      <link>https://community.hubspot.com/t5/APIs-Integrations/403-Forbidden-when-updating-CRM-object-property-via-hubspot/m-p/1210638#M84880</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.hubspot.com/t5/user/viewprofilepage/user-id/994281"&gt;@SPrakash37&lt;/a&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;A href="https://developers.hubspot.com/docs/apps/developer-platform/add-features/ui-extensibility/fetching-data" target="_blank" rel="noopener"&gt;Hubspot Fetch&lt;/A&gt; is not designed to directly access the CRM. It is designed for external API calls.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Are you building a Private App (used only on your HubSpot Portal) or a Public App (for the Marketplace)?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;A &lt;STRONG&gt;Private&lt;/STRONG&gt; App will let you &lt;A href="https://developers.hubspot.com/docs/apps/legacy-apps/private-apps/build-with-projects/serverless-functions" target="_blank" rel="noopener"&gt;access Portals directly using a Serverless Function&lt;/A&gt; but it's not suitable for wider distribution (on multiple portals - a Public App). And, this is a &lt;EM&gt;legacy&lt;/EM&gt; feature so I wouldn't rely on it if you are building a long term solution.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;This will help decide your best approach:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;A href="https://developers.hubspot.com/docs/apps/developer-platform/build-apps/authentication/overview" target="_blank"&gt;https://developers.hubspot.com/docs/apps/developer-platform/build-apps/authentication/overview&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;There is a way a Public App (that uses OAuth) can grant a token to access the CRM directly (for a short time) via the API but I cannot find the page in the docs.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Have fun&lt;/P&gt;
&lt;P&gt;Mike&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;p.s. thank you for the mention&amp;nbsp;&lt;a href="https://community.hubspot.com/t5/user/viewprofilepage/user-id/407807"&gt;@chighsmith&lt;/a&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="font-size: 0.8rem;"&gt;Here to learn more about HubSpot and share my HubSpot Knowledge. I'm the founder of &lt;A href="https://www.webalite.com?utm_campaign=community-forum&amp;amp;utm_source=community&amp;amp;utm_content=signature" target="_blank"&gt;Webalite&lt;/A&gt; a Gold HubSpot Partner Agency based in Wellington, New Zealand and the founder of &lt;STRONG&gt;Portal-iQ&lt;/STRONG&gt; the world's first automated &lt;A href="https://portal-iq.com?utm_campaign=community-forum&amp;amp;utm_source=community-forum&amp;amp;utm_content=signature" target="_blank"&gt;HubSpot Portal Audit&lt;/A&gt; that helps you work smarter with HubSpot.&lt;/P&gt;</description>
      <pubDate>Thu, 09 Oct 2025 22:40:58 GMT</pubDate>
      <guid>https://community.hubspot.com/t5/APIs-Integrations/403-Forbidden-when-updating-CRM-object-property-via-hubspot/m-p/1210638#M84880</guid>
      <dc:creator>Mike_Eastwood</dc:creator>
      <dc:date>2025-10-09T22:40:58Z</dc:date>
    </item>
  </channel>
</rss>

