<?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>Appsの新しい掲示板トピック</title>
    <link>https://community.hubspot.com/t5/Apps/ct-p/apps</link>
    <description>Appsの新しい掲示板トピック</description>
    <pubDate>Fri, 23 Jan 2026 15:22:30 GMT</pubDate>
    <dc:creator>apps</dc:creator>
    <dc:date>2026-01-23T15:22:30Z</dc:date>
    <item>
      <title>How to integrate WebinarGeek with HubSpot for lead generation?</title>
      <link>https://community.hubspot.com/t5/Third-Party-Apps/How-to-integrate-WebinarGeek-with-HubSpot-for-lead-generation/m-p/1244448#M1613</link>
      <description>&lt;P&gt;Hi,&amp;nbsp;&lt;BR /&gt;How do I best set up my webinar on WebinarGeek with Hubspot?&lt;BR /&gt;We want to use it to generate leads and create a good follow-up workflow afterwards, but i'm not sure how to set it up the best and (easiest) way.&lt;/P&gt;</description>
      <pubDate>Fri, 23 Jan 2026 11:40:11 GMT</pubDate>
      <guid>https://community.hubspot.com/t5/Third-Party-Apps/How-to-integrate-WebinarGeek-with-HubSpot-for-lead-generation/m-p/1244448#M1613</guid>
      <dc:creator>BPedersen8</dc:creator>
      <dc:date>2026-01-23T11:40:11Z</dc:date>
    </item>
    <item>
      <title>Salesforce Integration - Sync Multiple Associated Companies</title>
      <link>https://community.hubspot.com/t5/HubSpot-Native-Apps/Salesforce-Integration-Sync-Multiple-Associated-Companies/m-p/1244271#M876</link>
      <description>&lt;P&gt;Hello Everyone,&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;I'm working to configure the Salesforce integration, and am hoping for some insight into a use case.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;We want to be able to sync Contacts, Companies and Deals. With the way that our data is set up, a contact can be associated with multiple companies. Our "companies" are school districts and individual schools, so we commonly have, for example, a principal who is associated with both their school and the parent district.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;In my testing, only the contact's Primary company is syncing to Salesforce. Is there a way to ensure that all associated companies for a contact are synced?&lt;/P&gt;</description>
      <pubDate>Thu, 22 Jan 2026 17:34:08 GMT</pubDate>
      <guid>https://community.hubspot.com/t5/HubSpot-Native-Apps/Salesforce-Integration-Sync-Multiple-Associated-Companies/m-p/1244271#M876</guid>
      <dc:creator>FourFold_Sltns</dc:creator>
      <dc:date>2026-01-22T17:34:08Z</dc:date>
    </item>
    <item>
      <title>Cin7 Core Integration Issues</title>
      <link>https://community.hubspot.com/t5/Third-Party-Apps/Cin7-Core-Integration-Issues/m-p/1244118#M1608</link>
      <description>&lt;P&gt;Hey,&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Hoping someone else has had a similar issue and could lend some help?&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;We use CIN7 Core as our MRP system, so it tracks all our orders from the website and offline sales, as well as our stock levels etc.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;And despite their being a built-in integration for this with HubSpot, the two just don't seem to want to talk to each other. Products are fine, no issues there, but orders and customer info will not synch.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;All the statuses are linked, and because of the products pages updating, we know they are connected. But anytime we try to synch sales, we get an error.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;C&lt;SPAN&gt;RITICAL ERROR: unhandled exception occurred during process of "Exporting of Customers and Contacts" from HubSpot.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;We have raised it with Cin7 but its taking its time. &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Can anyone suggest anything to get this going? It's holding up our going live now.&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Thank you.&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Suzanne.&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 22 Jan 2026 13:15:22 GMT</pubDate>
      <guid>https://community.hubspot.com/t5/Third-Party-Apps/Cin7-Core-Integration-Issues/m-p/1244118#M1608</guid>
      <dc:creator>SCockroft</dc:creator>
      <dc:date>2026-01-22T13:15:22Z</dc:date>
    </item>
    <item>
      <title>TwainGPT: Humanizing AI-Generated Content</title>
      <link>https://community.hubspot.com/t5/Third-Party-Apps/TwainGPT-Humanizing-AI-Generated-Content/m-p/1242663#M1600</link>
      <description>&lt;P&gt;&lt;SPAN&gt;I've been seeing more marketers and SEO teams use ChatGPT and other LLMs to generate their content, especially as part of content workflows managed in tools like &lt;STRONG&gt;HubSpot&lt;/STRONG&gt;. The speed is great, but the biggest issue I keep running into is that AI-generated content still sounds robotic and almost always gets flagged by AI detectors. I'm curious how people are dealing with this. Are you rewriting everything manually, spending more time refining prompts, or using something to humanize the content after it's written?&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;I've been testing a few different approaches myself, including using &lt;STRONG&gt;TwainGPT&lt;/STRONG&gt; to make the writing sound more human and get around AI detectors. TwainGPT is effective and one of the best humanizers I have used, but I'm still interested in understanding how others are dealing with this.&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Sun, 18 Jan 2026 04:11:09 GMT</pubDate>
      <guid>https://community.hubspot.com/t5/Third-Party-Apps/TwainGPT-Humanizing-AI-Generated-Content/m-p/1242663#M1600</guid>
      <dc:creator>xAuth</dc:creator>
      <dc:date>2026-01-18T04:11:09Z</dc:date>
    </item>
    <item>
      <title>Is using the wildcard p_* supported for objectTypes in App Cards configuration?</title>
      <link>https://community.hubspot.com/t5/Third-Party-Apps/Is-using-the-wildcard-p-supported-for-objectTypes-in-App-Cards/m-p/1242242#M1595</link>
      <description>&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have a question regarding the objectTypes property in the App Cards configuration file (*-hsmeta.json).&lt;/P&gt;&lt;P&gt;According to the documentation, custom objects should be specified using the format p_objectName. However, I tested using p_* as a value, and I found that the App Card was successfully displayed on &lt;STRONG&gt;all&lt;/STRONG&gt; custom objects in the account where the app was installed.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Could you please clarify the following?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;&lt;P&gt;&lt;STRONG&gt;Is this an officially supported method?&lt;/STRONG&gt;&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;&lt;STRONG&gt;Is there any risk that this wildcard behavior will be disabled or deprecated in the future?&lt;/STRONG&gt;&lt;/P&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;I want to ensure my implementation is stable and won't break with future updates.&lt;/P&gt;&lt;P&gt;Thank you in advance for your help.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Reference:&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;A class="" href="https://developers.hubspot.jp/docs/apps/developer-platform/add-features/ui-extensibility/app-cards/reference" target="_blank" rel="noopener"&gt;https://developers.hubspot.jp/docs/apps/developer-platform/add-features/ui-extensibility/app-cards/reference&lt;/A&gt;&lt;/P&gt;</description>
      <pubDate>Fri, 16 Jan 2026 09:43:12 GMT</pubDate>
      <guid>https://community.hubspot.com/t5/Third-Party-Apps/Is-using-the-wildcard-p-supported-for-objectTypes-in-App-Cards/m-p/1242242#M1595</guid>
      <dc:creator>竹上克司</dc:creator>
      <dc:date>2026-01-16T09:43:12Z</dc:date>
    </item>
    <item>
      <title>How can I integrate third-party apps with HubSpot CRM effectively?</title>
      <link>https://community.hubspot.com/t5/Third-Party-Apps/How-can-I-integrate-third-party-apps-with-HubSpot-CRM/m-p/1242188#M1592</link>
      <description>&lt;P&gt;Hi HubSpot Community, I’m Dheeraj Sudan from the UK. I’m a software developer and co-run a business with my wife, Meenu Hinduja. I’m looking for advice on how to effectively integrate HubSpot CRM with third-party apps. I’d really appreciate it if you could share your experiences, tips, or best practices to avoid data loss, duplicates, or sync issues.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Regards&lt;BR /&gt;Meenu Hinduja &amp;amp; Dheeraj Sudan&lt;/P&gt;</description>
      <pubDate>Fri, 16 Jan 2026 08:07:28 GMT</pubDate>
      <guid>https://community.hubspot.com/t5/Third-Party-Apps/How-can-I-integrate-third-party-apps-with-HubSpot-CRM/m-p/1242188#M1592</guid>
      <dc:creator>DheerajSudan</dc:creator>
      <dc:date>2026-01-16T08:07:28Z</dc:date>
    </item>
    <item>
      <title>What’s the best way to connect App with HubSpot for seamless workflow automation?</title>
      <link>https://community.hubspot.com/t5/Third-Party-Apps/What-s-the-best-way-to-connect-App-with-HubSpot-for-seamless/m-p/1241806#M1582</link>
      <description>&lt;P&gt;Hello everyone! I’m Dheeraj Sudan, and along with my wife Meenu Hinduja, we’re working on a project. We’re trying to integrate App with HubSpot for smoother workflow automation. We’d love to hear any tips or suggestions from the community.&lt;/P&gt;</description>
      <pubDate>Thu, 15 Jan 2026 09:25:11 GMT</pubDate>
      <guid>https://community.hubspot.com/t5/Third-Party-Apps/What-s-the-best-way-to-connect-App-with-HubSpot-for-seamless/m-p/1241806#M1582</guid>
      <dc:creator>DheerajSudan</dc:creator>
      <dc:date>2026-01-15T09:25:11Z</dc:date>
    </item>
    <item>
      <title>Meeting note taker</title>
      <link>https://community.hubspot.com/t5/Third-Party-Apps/Meeting-note-taker/m-p/1241529#M1571</link>
      <description>&lt;P&gt;Hi knowledgeable people,&lt;BR /&gt;Can anyone advise on best choice of a meeting notetaker either native to HS or third party app?&lt;/P&gt;</description>
      <pubDate>Wed, 14 Jan 2026 15:45:01 GMT</pubDate>
      <guid>https://community.hubspot.com/t5/Third-Party-Apps/Meeting-note-taker/m-p/1241529#M1571</guid>
      <dc:creator>PLusher</dc:creator>
      <dc:date>2026-01-14T15:45:01Z</dc:date>
    </item>
    <item>
      <title>Logging Whatsapp messages</title>
      <link>https://community.hubspot.com/t5/Third-Party-Apps/Logging-Whatsapp-messages/m-p/1241170#M1567</link>
      <description>&lt;P&gt;Hi, I am on a mission to find the best solution for our sales (and revops) team for centralizing all communication with propects.&lt;/P&gt;&lt;P data-unlink="true"&gt;2 years ago I submitted&amp;nbsp;idea 1106638 about the same topic.&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have to admit it's even shocking there isn't more noise on this in the community, because it is definetly something that we are missing.&lt;/P&gt;&lt;P&gt;Maybe I am missing something, but would love to learn if there is a good integration for logging Whatsapp and Txxx conversations from personal accounts.&lt;/P&gt;&lt;P&gt;Similar to the native way HubSpot logs and tracks emails, meetings, and LinkedIn messages, would be good to have a native way to track other communications.&lt;/P&gt;&lt;P&gt;(Not for customer service as an inbox, but having each sales rep's personal conversations pushed into the correct HubSpot contact/deal)&lt;BR /&gt;&lt;BR /&gt;In the past I found NisWey, which was not approved by our security team. I see that&amp;nbsp;TimelinesAI have the option to push Whatsapp messages, will check this option as well security-wise.&lt;/P&gt;&lt;P&gt;Any tips here?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;This leaves us with no communication information on the APAC and LATAM prospects and clients who prefer to communicate over the mentioned apps rather than emails, and this is getting more common everywhere.&lt;/P&gt;&lt;P&gt;This is crucial to our business and meanwhile we are losing valuable data.&lt;/P&gt;</description>
      <pubDate>Tue, 13 Jan 2026 17:13:50 GMT</pubDate>
      <guid>https://community.hubspot.com/t5/Third-Party-Apps/Logging-Whatsapp-messages/m-p/1241170#M1567</guid>
      <dc:creator>SharonM</dc:creator>
      <dc:date>2026-01-13T17:13:50Z</dc:date>
    </item>
    <item>
      <title>Jira - Limit Projects and Types for Tickets</title>
      <link>https://community.hubspot.com/t5/HubSpot-Native-Apps/Jira-Limit-Projects-and-Types-for-Tickets/m-p/1241154#M853</link>
      <description>&lt;P&gt;We'd like to be able to create certain Jira issues from a support Ticket. The Jira app allows us to do that but we want more control over:&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;What Projects a ticket can be linked to&lt;/LI&gt;&lt;LI&gt;What Issue Types a ticket can be linked to&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;This would be helpful for us to prevent our support staff from accidentally creating the wrong type of issue or in the wrong project since we want all support ticket issues to be in a specific Jira project.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;We'd need to use a paid Jira account to limit what projects the connected Jira user has access to, which we'd prefer not to do since we don't currently need it for our development team. Even if we did that, I don't think we'd be able to limit the Issue Type.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;We're also planning on figuring out how to use a work flow to create a Jira Issue by having our support staff submit a custom form on HubSpot, so if anyone has experience with that it'd be helpful.&lt;/P&gt;</description>
      <pubDate>Tue, 13 Jan 2026 16:41:56 GMT</pubDate>
      <guid>https://community.hubspot.com/t5/HubSpot-Native-Apps/Jira-Limit-Projects-and-Types-for-Tickets/m-p/1241154#M853</guid>
      <dc:creator>ABishop26</dc:creator>
      <dc:date>2026-01-13T16:41:56Z</dc:date>
    </item>
    <item>
      <title>Errores con integracion de WhatsApp</title>
      <link>https://community.hubspot.com/t5/Third-Party-Apps/Errores-con-integracion-de-WhatsApp/m-p/1240765#M1562</link>
      <description>&lt;P&gt;&lt;FONT&gt;¡Buenas tardes! Quiero consultarles si a ustedes les está sucediendo que se les desconecta WhatsApp de HubSpot y ya no los deja conectarlo nuevamente. Les arroja error al momento de querer volver a integrarlo.&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT&gt;Lo quisimos elimar de Meta y nos dice que tenemos un saldo pendiente (es erróneo) por lo que tampoco nos deja eliminar todo para volver a empezar todo de nuevo.&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT&gt;¿Alguno ha tenido ese inconveniente y lo pudo solucionar?&lt;/FONT&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 12 Jan 2026 18:48:31 GMT</pubDate>
      <guid>https://community.hubspot.com/t5/Third-Party-Apps/Errores-con-integracion-de-WhatsApp/m-p/1240765#M1562</guid>
      <dc:creator>sofisinergiades</dc:creator>
      <dc:date>2026-01-12T18:48:31Z</dc:date>
    </item>
    <item>
      <title>What are the future Remote MCP Server Scopes around Tickets</title>
      <link>https://community.hubspot.com/t5/Third-Party-Apps/What-are-the-future-Remote-MCP-Server-Scopes-around-Tickets/m-p/1240367#M1553</link>
      <description>&lt;P&gt;I just set up a marketplace app to use the Remove Hubspot MCP Server (BETA) [1].&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I realised that only a few scopes are accessible for read operations. Does anybody know what the roadmap for this feature is? I a am curious whether we will be able to build ticket automations around this which would at least require read access to the conversations and notes objects IMO. Currently the server is not that useful for automating operations / support teams.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;[1]&amp;nbsp;&lt;A href="https://developers.hubspot.com/docs/apps/developer-platform/build-apps/integrate-with-hubspot-mcp-server#install-the-app" target="_blank"&gt;https://developers.hubspot.com/docs/apps/developer-platform/build-apps/integrate-with-hubspot-mcp-server#install-the-app&lt;/A&gt;&lt;/P&gt;</description>
      <pubDate>Sat, 10 Jan 2026 17:12:14 GMT</pubDate>
      <guid>https://community.hubspot.com/t5/Third-Party-Apps/What-are-the-future-Remote-MCP-Server-Scopes-around-Tickets/m-p/1240367#M1553</guid>
      <dc:creator>mloeper-dev</dc:creator>
      <dc:date>2026-01-10T17:12:14Z</dc:date>
    </item>
    <item>
      <title>Eventbrite adding segments</title>
      <link>https://community.hubspot.com/t5/HubSpot-Native-Apps/Eventbrite-adding-segments/m-p/1239226#M842</link>
      <description>&lt;P&gt;Hi all,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;We have Eventbrite as an integration and can see the registrations, cancellations, and attendees. I've created two segments so far to separate out our clients from leads using the Eventbrite registration filter and get the numbers I want to see but thesection called Segments on the integration app page still says no segments added and I can find no way to add them?&lt;/P&gt;</description>
      <pubDate>Wed, 07 Jan 2026 14:04:47 GMT</pubDate>
      <guid>https://community.hubspot.com/t5/HubSpot-Native-Apps/Eventbrite-adding-segments/m-p/1239226#M842</guid>
      <dc:creator>DJames79</dc:creator>
      <dc:date>2026-01-07T14:04:47Z</dc:date>
    </item>
    <item>
      <title>Salesforce Integration - How to Avoid Duplicate Companies</title>
      <link>https://community.hubspot.com/t5/HubSpot-Native-Apps/Salesforce-Integration-How-to-Avoid-Duplicate-Companies/m-p/1239096#M838</link>
      <description>&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I'm working on configuring the Salesforce integration, and am running into an issue that I'm hoping someone can help me solve. Here's my use case:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I want to "seed" a new Salesforce org with all of the Companies that exist in my HubSpot org. Ideally, I would upload these as Accounts in Salesforce, with all of the relevant data (including their HubSpot Company ID).&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;I do not want to have all of the associated Contacts existing in Salesforce yet, so I would use the inclusion list on the HubSpot side to limit which Contacts are synced.&lt;BR /&gt;&lt;BR /&gt;The issue I'm seeing: once I add a Contact to the inclusion list, it syncs to Salesforce - but a new Account is created rather than the Contact being associated to the existing Account that I had previously seeded the org with. My assumption here is that there is not yet a Salesforce Account ID value set in HubSpot for the Contact's associated Company, so the integration is not able to make the connection between the Company and the existing Account.&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;I was hoping to pre-populate the HubSpot Companies with the Salesforce Account ID values, but that field is read-only and is only controlled by the integration.&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Any ideas for how I can potentially get around this?&lt;/P&gt;</description>
      <pubDate>Wed, 07 Jan 2026 02:22:52 GMT</pubDate>
      <guid>https://community.hubspot.com/t5/HubSpot-Native-Apps/Salesforce-Integration-How-to-Avoid-Duplicate-Companies/m-p/1239096#M838</guid>
      <dc:creator>FourFold_Sltns</dc:creator>
      <dc:date>2026-01-07T02:22:52Z</dc:date>
    </item>
    <item>
      <title>EMail App with OWA</title>
      <link>https://community.hubspot.com/t5/HubSpot-Native-Apps/EMail-App-with-OWA/m-p/1237720#M835</link>
      <description>&lt;P&gt;I have just signed up for Hubspot via the free trail - I am looking to buy if the service works for me.&lt;BR /&gt;&lt;BR /&gt;I thought Hubspot would allow me to manage one-on-one emails;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;&lt;STRONG&gt;Send&lt;/STRONG&gt; emails from Outlook Web App and have them logge din HubSpot austomatically&lt;/LI&gt;&lt;LI&gt;&lt;STRONG&gt;Receive&lt;/STRONG&gt; emails to Outlook Web App and have them logge din HubSpot austomatically&lt;/LI&gt;&lt;LI&gt;&lt;STRONG&gt;Receive reply&lt;/STRONG&gt; emails to Outlook Web App and have them logge din HubSpot austomatically&lt;/LI&gt;&lt;LI&gt;Notifiy me when emails are opened&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I just cannot gety this to work considtently when sending emails from OWA or from HubSpot itself.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Any advice?&lt;/P&gt;</description>
      <pubDate>Wed, 31 Dec 2025 06:27:12 GMT</pubDate>
      <guid>https://community.hubspot.com/t5/HubSpot-Native-Apps/EMail-App-with-OWA/m-p/1237720#M835</guid>
      <dc:creator>jagstirling</dc:creator>
      <dc:date>2025-12-31T06:27:12Z</dc:date>
    </item>
    <item>
      <title>What is the best way to track your tiktok shop performance?</title>
      <link>https://community.hubspot.com/t5/Third-Party-Apps/What-is-the-best-way-to-track-your-tiktok-shop-performance/m-p/1237340#M1529</link>
      <description>&lt;P&gt;I run a tiktok shop with 40k+$ GMV/ month, Currently I am using spread sheets by downloading order csv, affiliate order csv, reports from finance section and few other , mannually punch my ads spend, and consolidating every thing, which is really a pain and I'm tired of it, What is the best and most accurate software /tool which&amp;nbsp; automates every thing, giving me product wise/orderwise/Sku wise as well as overall net profit.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 29 Dec 2025 14:56:51 GMT</pubDate>
      <guid>https://community.hubspot.com/t5/Third-Party-Apps/What-is-the-best-way-to-track-your-tiktok-shop-performance/m-p/1237340#M1529</guid>
      <dc:creator>alexjohnson7</dc:creator>
      <dc:date>2025-12-29T14:56:51Z</dc:date>
    </item>
    <item>
      <title>static-auth v3 project card calling an external HTTPS endpoint</title>
      <link>https://community.hubspot.com/t5/HubSpot-Native-Apps/static-auth-v3-project-card-calling-an-external-HTTPS-endpoint/m-p/1236863#M824</link>
      <description>&lt;P&gt;Questions:&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;For a static-auth v3 project card calling an external HTTPS endpoint via hubspot.fetch, what is the exact allowed header set?&lt;/LI&gt;&lt;LI&gt;Is there any known limitation or additional requirement for outbound proxy calls from static-auth cards that would explain the persistent 431 in the setup?&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;I’m just trying to POST a small JSON payload from the card to my backend and would appreciate guidance on the supported pattern for headers in this scenario (especially whether Authorization is actually allowed here, and under what conditions).&lt;/P&gt;</description>
      <pubDate>Fri, 26 Dec 2025 04:18:47 GMT</pubDate>
      <guid>https://community.hubspot.com/t5/HubSpot-Native-Apps/static-auth-v3-project-card-calling-an-external-HTTPS-endpoint/m-p/1236863#M824</guid>
      <dc:creator>Sna919</dc:creator>
      <dc:date>2025-12-26T04:18:47Z</dc:date>
    </item>
    <item>
      <title>Exposing REST endpoints</title>
      <link>https://community.hubspot.com/t5/Third-Party-Apps/Exposing-REST-endpoints/m-p/1236467#M1523</link>
      <description>&lt;P&gt;Hi,&amp;nbsp;&lt;/P&gt;&lt;P&gt;I am trying to access and manipulate some of my HubSpot data from my existing spring boot app. How do I expose&amp;nbsp;this data via REST-like interface.&lt;/P&gt;&lt;P&gt;As far as I understand I need to create an app. I have done that but cannot figure out how to authenticate my requests to that app from outside hubspot.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I am really sorry for the simple question, but I cannot seem to figure this out on my own and most of the documentation still points to the legacy apps that I cannot create anymore.&lt;/P&gt;</description>
      <pubDate>Tue, 23 Dec 2025 10:09:31 GMT</pubDate>
      <guid>https://community.hubspot.com/t5/Third-Party-Apps/Exposing-REST-endpoints/m-p/1236467#M1523</guid>
      <dc:creator>LP11</dc:creator>
      <dc:date>2025-12-23T10:09:31Z</dc:date>
    </item>
    <item>
      <title>Two-Way Sync for Google Contact Labels &amp; HubSpot</title>
      <link>https://community.hubspot.com/t5/HubSpot-Native-Apps/Two-Way-Sync-for-Google-Contact-Labels-amp-HubSpot/m-p/1235034#M817</link>
      <description>&lt;P class=""&gt;&lt;SPAN class=""&gt;Hi everyone,&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;Like many of you, I’ve struggled with a specific limitation in the HubSpot Google Contacts integration:&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;STRONG&gt;&lt;SPAN class=""&gt;It doesn’t sync Labels (Contact Groups).&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;If I tag a contact as "VIP" or "Partner" on my Android phone or Gmail, that information stays stuck in Google. HubSpot syncs the name and email but loses the segmentation. Conversely, if I segment people in HubSpot, I can't easily push that back to a Google Contact Group on my phone.&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;STRONG&gt;&lt;SPAN class=""&gt;The Solution:&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN class=""&gt;I created a Google Apps Script that works alongside the native HubSpot Data Sync. It creates a&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;STRONG&gt;&lt;SPAN class=""&gt;Two-Way Sync&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN class=""&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;between Google Labels and a HubSpot Custom Field.&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;Full transparency: I built this script with the help of AI. I am sharing it because it works well for me and solves a major headache, but please test it carefully!&lt;/SPAN&gt;&lt;/P&gt;&lt;HR /&gt;&lt;H3&gt;&lt;SPAN class=""&gt;&lt;img class="lia-deferred-image lia-image-emoji" src="https://community.hubspot.com/html/@BD19A012EE6E7B88165362025F9C8A9B/emoticons/26a0.png" alt=":警告:" title=":警告:" /&gt;Important Warnings&lt;/SPAN&gt;&lt;/H3&gt;&lt;OL class=""&gt;&lt;LI&gt;&lt;P class=""&gt;&lt;STRONG&gt;&lt;SPAN class=""&gt;Make a Backup:&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN class=""&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;Before running this, export your Google Contacts to a CSV file just in case.&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P class=""&gt;&lt;STRONG&gt;&lt;SPAN class=""&gt;Beta Testing:&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN class=""&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;This logic is sound, but every environment is different. Please test this on a small batch of contacts or a secondary account first if possible. Feedback is welcome!&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;HR /&gt;&lt;H3&gt;&lt;SPAN class=""&gt;Step 1: Install the Google Script (Do this first!)&lt;/SPAN&gt;&lt;/H3&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;We install the script first so it can create the necessary fields in Google Contacts. This makes the HubSpot setup easier later.&lt;/SPAN&gt;&lt;/P&gt;&lt;OL class=""&gt;&lt;LI&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;Go to&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;A class="" href="https://www.google.com/url?sa=E&amp;amp;q=https%3A%2F%2Fscript.google.com" target="_blank" rel="noopener"&gt;&lt;SPAN class=""&gt;script.google.com&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN class=""&gt;.&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;Click&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;STRONG&gt;&lt;SPAN class=""&gt;+ New Project&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN class=""&gt;.&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;Name it&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;HubSpot Label Sync&lt;/SPAN&gt;&lt;SPAN class=""&gt;.&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P class=""&gt;&lt;STRONG&gt;&lt;SPAN class=""&gt;Crucial:&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN class=""&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;On the left sidebar, click the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;+&lt;/SPAN&gt;&lt;SPAN class=""&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;next to&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;STRONG&gt;&lt;SPAN class=""&gt;Services&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN class=""&gt;, select&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;STRONG&gt;&lt;SPAN class=""&gt;People API&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN class=""&gt;, and click&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;STRONG&gt;&lt;SPAN class=""&gt;Add&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN class=""&gt;.&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;Paste the code below into the editor (delete any existing code).&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/DIV&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;PRE&gt;&lt;SPAN class=""&gt;/**
 * CONFIGURATION
 */&lt;/SPAN&gt;
&lt;SPAN class=""&gt;const&lt;/SPAN&gt; CONFIG = {
  &lt;SPAN class=""&gt;SYNC_FIELD_NAME&lt;/SPAN&gt;: &lt;SPAN class=""&gt;"HubSpot Labels"&lt;/SPAN&gt;, &lt;SPAN class=""&gt;// Must match your HubSpot Property Name later&lt;/SPAN&gt;
  &lt;SPAN class=""&gt;CHECKSUM_FIELD_NAME&lt;/SPAN&gt;: &lt;SPAN class=""&gt;"HS_Sync_Hash"&lt;/SPAN&gt;, &lt;SPAN class=""&gt;// Technical field, do not touch&lt;/SPAN&gt;
  &lt;SPAN class=""&gt;IGNORED_LABELS&lt;/SPAN&gt;: [&lt;SPAN class=""&gt;'contactGroups/myContacts'&lt;/SPAN&gt;, &lt;SPAN class=""&gt;'contactGroups/starred'&lt;/SPAN&gt;],
  &lt;SPAN class=""&gt;SEPARATOR&lt;/SPAN&gt;: &lt;SPAN class=""&gt;";"&lt;/SPAN&gt; 
};

&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;function&lt;/SPAN&gt; &lt;SPAN class=""&gt;installTrigger&lt;/SPAN&gt;() &lt;/SPAN&gt;{
  &lt;SPAN class=""&gt;const&lt;/SPAN&gt; triggers = ScriptApp.getProjectTriggers();
  &lt;SPAN class=""&gt;for&lt;/SPAN&gt; (&lt;SPAN class=""&gt;let&lt;/SPAN&gt; t &lt;SPAN class=""&gt;of&lt;/SPAN&gt; triggers) {
    &lt;SPAN class=""&gt;if&lt;/SPAN&gt; (t.getHandlerFunction() === &lt;SPAN class=""&gt;'startSync'&lt;/SPAN&gt;) {
      &lt;SPAN class=""&gt;console&lt;/SPAN&gt;.log(&lt;SPAN class=""&gt;"Sync is already running!"&lt;/SPAN&gt;);
      &lt;SPAN class=""&gt;return&lt;/SPAN&gt;;
    }
  }
  &lt;SPAN class=""&gt;// Runs every 15 minutes to handle large lists safely&lt;/SPAN&gt;
  ScriptApp.newTrigger(&lt;SPAN class=""&gt;'startSync'&lt;/SPAN&gt;).timeBased().everyMinutes(&lt;SPAN class=""&gt;15&lt;/SPAN&gt;).create();
  &lt;SPAN class=""&gt;console&lt;/SPAN&gt;.log(&lt;SPAN class=""&gt;"&lt;img class="lia-deferred-image lia-image-emoji" src="https://community.hubspot.com/html/@363CCDE92FB780F0406E63BAF87F5164/emoticons/2705.png" alt=":白い太字のチェックマーク:" title=":白い太字のチェックマーク:" /&gt; Installed! Sync runs every 15 mins."&lt;/SPAN&gt;);
}

&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;function&lt;/SPAN&gt; &lt;SPAN class=""&gt;startSync&lt;/SPAN&gt;() &lt;/SPAN&gt;{
  &lt;SPAN class=""&gt;const&lt;/SPAN&gt; groupMap = fetchGroupMap();
  &lt;SPAN class=""&gt;let&lt;/SPAN&gt; pageToken = &lt;SPAN class=""&gt;null&lt;/SPAN&gt;;
  &lt;SPAN class=""&gt;do&lt;/SPAN&gt; {
    &lt;SPAN class=""&gt;const&lt;/SPAN&gt; response = People.People.Connections.list(&lt;SPAN class=""&gt;'people/me'&lt;/SPAN&gt;, {
      &lt;SPAN class=""&gt;personFields&lt;/SPAN&gt;: &lt;SPAN class=""&gt;'names,memberships,userDefined'&lt;/SPAN&gt;,
      &lt;SPAN class=""&gt;pageSize&lt;/SPAN&gt;: &lt;SPAN class=""&gt;1000&lt;/SPAN&gt;,
      &lt;SPAN class=""&gt;pageToken&lt;/SPAN&gt;: pageToken
    });
    &lt;SPAN class=""&gt;const&lt;/SPAN&gt; connections = response.connections || [];
    &lt;SPAN class=""&gt;if&lt;/SPAN&gt; (connections.length &amp;gt; &lt;SPAN class=""&gt;0&lt;/SPAN&gt;) {
      &lt;SPAN class=""&gt;for&lt;/SPAN&gt; (&lt;SPAN class=""&gt;const&lt;/SPAN&gt; person &lt;SPAN class=""&gt;of&lt;/SPAN&gt; connections) {
        &lt;SPAN class=""&gt;try&lt;/SPAN&gt; { processContact(person, groupMap); } 
        &lt;SPAN class=""&gt;catch&lt;/SPAN&gt; (e) { &lt;SPAN class=""&gt;console&lt;/SPAN&gt;.error(&lt;SPAN class=""&gt;`Error: &lt;SPAN class=""&gt;${e.message}&lt;/SPAN&gt;`&lt;/SPAN&gt;); }
      }
    }
    pageToken = response.nextPageToken;
  } &lt;SPAN class=""&gt;while&lt;/SPAN&gt; (pageToken);
}

&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;function&lt;/SPAN&gt; &lt;SPAN class=""&gt;processContact&lt;/SPAN&gt;(&lt;SPAN class=""&gt;person, groupMap&lt;/SPAN&gt;) &lt;/SPAN&gt;{
  &lt;SPAN class=""&gt;const&lt;/SPAN&gt; resourceName = person.resourceName;
  &lt;SPAN class=""&gt;const&lt;/SPAN&gt; currentMemberships = person.memberships || [];
  &lt;SPAN class=""&gt;const&lt;/SPAN&gt; realLabelNames = [];
  
  currentMemberships.forEach(&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;mem&lt;/SPAN&gt; =&amp;gt;&lt;/SPAN&gt; {
    &lt;SPAN class=""&gt;if&lt;/SPAN&gt; (mem.contactGroupMembership) {
      &lt;SPAN class=""&gt;const&lt;/SPAN&gt; res = mem.contactGroupMembership.contactGroupResourceName;
      &lt;SPAN class=""&gt;const&lt;/SPAN&gt; name = groupMap.idToName[res];
      &lt;SPAN class=""&gt;if&lt;/SPAN&gt; (name &amp;amp;&amp;amp; !CONFIG.IGNORED_LABELS.includes(res)) realLabelNames.push(name);
    }
  });
  
  realLabelNames.sort();
  &lt;SPAN class=""&gt;const&lt;/SPAN&gt; realLabelString = realLabelNames.join(CONFIG.SEPARATOR);

  &lt;SPAN class=""&gt;const&lt;/SPAN&gt; userDefined = person.userDefined || [];
  &lt;SPAN class=""&gt;let&lt;/SPAN&gt; syncFieldVal = &lt;SPAN class=""&gt;""&lt;/SPAN&gt;, checksumVal = &lt;SPAN class=""&gt;""&lt;/SPAN&gt;;
  userDefined.forEach(&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;f&lt;/SPAN&gt; =&amp;gt;&lt;/SPAN&gt; {
    &lt;SPAN class=""&gt;if&lt;/SPAN&gt; (f.key === CONFIG.SYNC_FIELD_NAME) syncFieldVal = f.value;
    &lt;SPAN class=""&gt;if&lt;/SPAN&gt; (f.key === CONFIG.CHECKSUM_FIELD_NAME) checksumVal = f.value;
  });

  &lt;SPAN class=""&gt;const&lt;/SPAN&gt; syncFieldArr = syncFieldVal ? syncFieldVal.split(CONFIG.SEPARATOR).map(&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;s&lt;/SPAN&gt; =&amp;gt;&lt;/SPAN&gt; s.trim()).filter(&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;s&lt;/SPAN&gt;=&amp;gt;&lt;/SPAN&gt;s).sort() : [];
  &lt;SPAN class=""&gt;const&lt;/SPAN&gt; normalizedSyncString = syncFieldArr.join(CONFIG.SEPARATOR);

  &lt;SPAN class=""&gt;const&lt;/SPAN&gt; googleChanged = (realLabelString !== checksumVal);
  &lt;SPAN class=""&gt;const&lt;/SPAN&gt; hubspotChanged = (normalizedSyncString !== checksumVal);

  &lt;SPAN class=""&gt;if&lt;/SPAN&gt; (!googleChanged &amp;amp;&amp;amp; !hubspotChanged) &lt;SPAN class=""&gt;return&lt;/SPAN&gt;;

  &lt;SPAN class=""&gt;const&lt;/SPAN&gt; contactToUpdate = { &lt;SPAN class=""&gt;etag&lt;/SPAN&gt;: person.etag };
  &lt;SPAN class=""&gt;const&lt;/SPAN&gt; fieldsToUpdate = [];

  &lt;SPAN class=""&gt;if&lt;/SPAN&gt; (googleChanged) {
    &lt;SPAN class=""&gt;const&lt;/SPAN&gt; newUserDefined = rebuildUserDefined(userDefined, {
      [CONFIG.SYNC_FIELD_NAME]: realLabelString,
      [CONFIG.CHECKSUM_FIELD_NAME]: realLabelString
    });
    contactToUpdate.userDefined = newUserDefined;
    fieldsToUpdate.push(&lt;SPAN class=""&gt;'userDefined'&lt;/SPAN&gt;);
  } &lt;SPAN class=""&gt;else&lt;/SPAN&gt; &lt;SPAN class=""&gt;if&lt;/SPAN&gt; (hubspotChanged) {
    &lt;SPAN class=""&gt;const&lt;/SPAN&gt; newUserDefined = rebuildUserDefined(userDefined, {
      [CONFIG.CHECKSUM_FIELD_NAME]: normalizedSyncString
    });
    contactToUpdate.userDefined = newUserDefined;
    fieldsToUpdate.push(&lt;SPAN class=""&gt;'userDefined'&lt;/SPAN&gt;);

    &lt;SPAN class=""&gt;const&lt;/SPAN&gt; newMemberships = [];
    currentMemberships.forEach(&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;mem&lt;/SPAN&gt; =&amp;gt;&lt;/SPAN&gt; {
      &lt;SPAN class=""&gt;if&lt;/SPAN&gt; (mem.contactGroupMembership) {
        &lt;SPAN class=""&gt;const&lt;/SPAN&gt; res = mem.contactGroupMembership.contactGroupResourceName;
        &lt;SPAN class=""&gt;if&lt;/SPAN&gt; (CONFIG.IGNORED_LABELS.includes(res)) newMemberships.push({ &lt;SPAN class=""&gt;contactGroupMembership&lt;/SPAN&gt;: { &lt;SPAN class=""&gt;contactGroupResourceName&lt;/SPAN&gt;: res } });
      }
    });
    syncFieldArr.forEach(&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;labelName&lt;/SPAN&gt; =&amp;gt;&lt;/SPAN&gt; {
      &lt;SPAN class=""&gt;let&lt;/SPAN&gt; groupId = groupMap.nameToId[labelName];
      &lt;SPAN class=""&gt;if&lt;/SPAN&gt; (!groupId) {
        groupId = People.ContactGroups.create({ &lt;SPAN class=""&gt;contactGroup&lt;/SPAN&gt;: { &lt;SPAN class=""&gt;name&lt;/SPAN&gt;: labelName } }).resourceName;
        groupMap.nameToId[labelName] = groupId; 
      }
      newMemberships.push({ &lt;SPAN class=""&gt;contactGroupMembership&lt;/SPAN&gt;: { &lt;SPAN class=""&gt;contactGroupResourceName&lt;/SPAN&gt;: groupId } });
    });
    contactToUpdate.memberships = newMemberships;
    fieldsToUpdate.push(&lt;SPAN class=""&gt;'memberships'&lt;/SPAN&gt;);
  }

  &lt;SPAN class=""&gt;if&lt;/SPAN&gt; (fieldsToUpdate.length &amp;gt; &lt;SPAN class=""&gt;0&lt;/SPAN&gt;) {
    People.People.updateContact(contactToUpdate, resourceName, { &lt;SPAN class=""&gt;updatePersonFields&lt;/SPAN&gt;: fieldsToUpdate.join(&lt;SPAN class=""&gt;','&lt;/SPAN&gt;) });
  }
}

&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;function&lt;/SPAN&gt; &lt;SPAN class=""&gt;fetchGroupMap&lt;/SPAN&gt;() &lt;/SPAN&gt;{
  &lt;SPAN class=""&gt;let&lt;/SPAN&gt; pageToken = &lt;SPAN class=""&gt;null&lt;/SPAN&gt;;
  &lt;SPAN class=""&gt;const&lt;/SPAN&gt; map = { &lt;SPAN class=""&gt;nameToId&lt;/SPAN&gt;: {}, &lt;SPAN class=""&gt;idToName&lt;/SPAN&gt;: {} };
  &lt;SPAN class=""&gt;do&lt;/SPAN&gt; {
    &lt;SPAN class=""&gt;const&lt;/SPAN&gt; response = People.ContactGroups.list({ &lt;SPAN class=""&gt;groupFields&lt;/SPAN&gt;: &lt;SPAN class=""&gt;'name'&lt;/SPAN&gt;, &lt;SPAN class=""&gt;pageSize&lt;/SPAN&gt;: &lt;SPAN class=""&gt;1000&lt;/SPAN&gt;, &lt;SPAN class=""&gt;pageToken&lt;/SPAN&gt;: pageToken });
    (response.contactGroups || []).forEach(&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;g&lt;/SPAN&gt; =&amp;gt;&lt;/SPAN&gt; {
      &lt;SPAN class=""&gt;const&lt;/SPAN&gt; name = g.formattedName || g.name; 
      &lt;SPAN class=""&gt;const&lt;/SPAN&gt; id = g.resourceName;
      &lt;SPAN class=""&gt;if&lt;/SPAN&gt; (name &amp;amp;&amp;amp; id) { map.nameToId[name] = id; map.idToName[id] = name; }
    });
    pageToken = response.nextPageToken;
  } &lt;SPAN class=""&gt;while&lt;/SPAN&gt; (pageToken);
  &lt;SPAN class=""&gt;return&lt;/SPAN&gt; map;
}

&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;function&lt;/SPAN&gt; &lt;SPAN class=""&gt;rebuildUserDefined&lt;/SPAN&gt;(&lt;SPAN class=""&gt;cur, updates&lt;/SPAN&gt;) &lt;/SPAN&gt;{
  &lt;SPAN class=""&gt;let&lt;/SPAN&gt; arr = cur ? [...cur] : [];
  &lt;SPAN class=""&gt;for&lt;/SPAN&gt; (&lt;SPAN class=""&gt;const&lt;/SPAN&gt; [key, val] &lt;SPAN class=""&gt;of&lt;/SPAN&gt; &lt;SPAN class=""&gt;Object&lt;/SPAN&gt;.entries(updates)) {
    &lt;SPAN class=""&gt;const&lt;/SPAN&gt; idx = arr.findIndex(&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;f&lt;/SPAN&gt; =&amp;gt;&lt;/SPAN&gt; f.key === key);
    &lt;SPAN class=""&gt;if&lt;/SPAN&gt; (idx &amp;gt; -&lt;SPAN class=""&gt;1&lt;/SPAN&gt;) arr[idx].value = val; &lt;SPAN class=""&gt;else&lt;/SPAN&gt; arr.push({ &lt;SPAN class=""&gt;key&lt;/SPAN&gt;: key, &lt;SPAN class=""&gt;value&lt;/SPAN&gt;: val });
  }
  &lt;SPAN class=""&gt;return&lt;/SPAN&gt; arr;
}&lt;/PRE&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;H3&gt;&lt;SPAN class=""&gt;Step 2: Initialize the Data&lt;/SPAN&gt;&lt;/H3&gt;&lt;OL class=""&gt;&lt;LI&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;In the Script Editor, select the function&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;STRONG&gt;&lt;SPAN class=""&gt;installTrigger&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN class=""&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;from the toolbar and click&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;STRONG&gt;&lt;SPAN class=""&gt;Run&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN class=""&gt;.&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;Accept the permissions. (You may need to click "Advanced" &amp;gt; "Go to Script (Unsafe)").&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;Once that is done, select&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;STRONG&gt;&lt;SPAN class=""&gt;startSync&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN class=""&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;and click&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;STRONG&gt;&lt;SPAN class=""&gt;Run&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN class=""&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;manually once.&lt;/SPAN&gt;&lt;/P&gt;&lt;UL class=""&gt;&lt;LI&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;This will look at your current Google Contacts and write your existing labels into a new custom field called "HubSpot Labels".&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;H3&gt;&lt;SPAN class=""&gt;Step 3: Configure HubSpot&lt;/SPAN&gt;&lt;/H3&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;Now that your Google Contacts have the field, let's set up the HubSpot sync.&lt;/SPAN&gt;&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;&lt;SPAN class=""&gt;Go to&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;STRONG&gt;&lt;SPAN class=""&gt;App Marketplace &amp;gt; Google Contacts&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN class=""&gt;.&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;Set up the sync (or edit existing).&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;Go to the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;STRONG&gt;&lt;SPAN class=""&gt;Field Mappings&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN class=""&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;tab and add a new mapping:&lt;/SPAN&gt;&lt;/P&gt;&lt;UL class=""&gt;&lt;LI&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;Google Contacts&lt;/STRONG&gt; side: add a custom field and name it exactly "HubSpot Labels". It will look like you're creating a new field, but it'll actually pick up the existing field.&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P class=""&gt;&lt;STRONG&gt;&lt;SPAN class=""&gt;HubSpot Side:&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN class=""&gt;&lt;SPAN&gt;&amp;nbsp;Create a new single-line text field&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;.&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;Turn on the sync.&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;H3&gt;&lt;SPAN class=""&gt;How it works&lt;/SPAN&gt;&lt;/H3&gt;&lt;UL class=""&gt;&lt;LI&gt;&lt;P class=""&gt;&lt;STRONG&gt;&lt;SPAN class=""&gt;Google -&amp;gt; HubSpot:&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN class=""&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;The script detects you added a Label (e.g., "VIP"), writes "VIP" to the text field, and HubSpot syncs that text.&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P class=""&gt;&lt;STRONG&gt;&lt;SPAN class=""&gt;HubSpot -&amp;gt; Google:&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN class=""&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;You write "VIP" in the HubSpot text field, the sync pushes it to Google, and the script detects the change and automatically creates/adds the "VIP" Contact Group.&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P class=""&gt;&lt;SPAN class=""&gt;Hope this helps! Let me know if you run into any issues.&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 17 Dec 2025 16:20:49 GMT</pubDate>
      <guid>https://community.hubspot.com/t5/HubSpot-Native-Apps/Two-Way-Sync-for-Google-Contact-Labels-amp-HubSpot/m-p/1235034#M817</guid>
      <dc:creator>leaner-dev</dc:creator>
      <dc:date>2025-12-17T16:20:49Z</dc:date>
    </item>
    <item>
      <title>Rendering rich text properties in App Cards</title>
      <link>https://community.hubspot.com/t5/Third-Party-Apps/Rendering-rich-text-properties-in-App-Cards/m-p/1234655#M1485</link>
      <description>&lt;P&gt;Is there any way to render the content of a Rich Text property in an App Card?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I appreciate that HubSpot heavily restricts the markup that can be used in cards but it doesn't seem to even permit the output of its own rich text editor.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;If I use `&lt;SPAN&gt;useCrmProperties()` then the content is rendered with visible HTML tags, not formatted.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Am I missing something?&lt;/P&gt;</description>
      <pubDate>Tue, 16 Dec 2025 20:00:19 GMT</pubDate>
      <guid>https://community.hubspot.com/t5/Third-Party-Apps/Rendering-rich-text-properties-in-App-Cards/m-p/1234655#M1485</guid>
      <dc:creator>Ian-Hill</dc:creator>
      <dc:date>2025-12-16T20:00:19Z</dc:date>
    </item>
  </channel>
</rss>

