1. Create a service key in HubSpot
1
Open Service Keys
Sign in to HubSpot as a super admin, or a user with Developer Tools access. Open Settings, then Integrations, then Service Keys, and create a key. Name it “Neo”.
2
Choose the scopes
Click Add new scope and add what your agents need. Always add
crm.objects.companies.read: Neo maps your HubSpot companies to your PSA companies with it, and the mapping reports a permission error on each sync without it. To keep contacts and deals in step with your PSA, add:crm.objects.contacts.readandcrm.objects.contacts.writecrm.objects.companies.readandcrm.objects.companies.writecrm.objects.deals.readandcrm.objects.deals.writecrm.objects.owners.readcrm.schemas.contacts.read,crm.schemas.companies.readandcrm.schemas.deals.read
crm.objects.deals.read and crm.objects.deals.write, crm.objects.quotes.read, crm.objects.line_items.read, crm.objects.companies.read, crm.objects.contacts.read, crm.objects.owners.read and crm.schemas.deals.read, plus crm.schemas.deals.write if Neo should create the deal property it uses (step 3).Add a read scope only when agents only read that area. Neo also checks the permission groups you set per agent, so a scope alone never lets an agent change something.3
Copy the key
Click Update, then copy the key.
2. Add the key in Neo
1
Open Integrations
Open Integrations → HubSpot in the Neo Dashboard. The card is under Sales & Quoting.
2
Save the key
Paste it in Service Key and click Save. Neo checks the key with HubSpot before it saves, so a wrong key is rejected straight away.
3
Check the company mapping
After the next sync, open the Organization Mapping tab and confirm the matches between your HubSpot companies and your PSA companies. Agents use only confirmed matches, so a contact or deal under an unconfirmed company is listed in the report instead of synced.
3. Turn HubSpot on per agent
Open the agent from Agents, go to the Integrations section, and configure the HubSpot block. Pick a profile, then change any group. To keep contacts and deals in step with your PSA, set Contacts, Companies and Deals, Quotes & Products to Read / Write, and Properties, Pipelines & Schemas to Read Only. Give the agent your PSA’s contacts, companies and opportunities groups too, and its resources group at Read Only, which maps HubSpot owners to PSA resources (Autotask Contacts, Companies, Opportunities and Resources). On Autotask, give it Admin at Read Only too: Neo reads your opportunity stages and statuses there. Under Neo API, give it End Companies at Read Only too: the sync reads your confirmed company matches in one batch. Say in its instructions how often it runs, and name a system of record for each field your PSA should push to HubSpot (for example “Autotask owns contact phone numbers”). Neo dates each HubSpot change from HubSpot’s property history, so a HubSpot edit reaches the PSA on its own when nothing changed on the PSA record after it. The PSA keeps no such history, so a PSA edit reaches HubSpot only for a field the PSA owns. Every other difference is listed in the report; name a system of record for a field that must always follow one side. Neo updates the contacts, deals and opportunities that match on both sides on its own. It creates a missing contact, deal or opportunity on the other side only when a person asks for it on that record, because an email or a title can change and no search proves a record is new. Add a create request, such as a HubSpot checkbox property “Create in PSA” or an Autotask UDF, and name it in the agent’s instructions. Tick it on a record once you have checked the other side; Neo creates the counterpart and clears the box. Records with no request that match nothing are listed in the agent’s report. Deals and opportunities match best when HubSpot stores each deal’s PSA opportunity id: add a single-line text deal property, such as “PSA opportunity id”, and name it in the instructions. Without one, Neo matches them by company and exact title.Turn won deals into tickets and projects
A scheduled agent can open one PSA ticket or project for each HubSpot deal you win, or whose quote your client accepts: one per deal, however many quotes it has. Set Deals, Quotes & Products to Read / Write, and Companies, Contacts and Properties, Pipelines & Schemas to Read Only, and give it your PSA’s tickets or projects group at Read / Write, its companies, contacts and resources groups at Read Only (Autotask Tickets, Projects, Companies, Contacts and Resources, and Admin at Read Only, where Neo reads your project types and statuses), and Neo API End Companies at Read Only. Neo marks each deal it has turned into work in a single-line text deal property, “PSA work id”, which holds the ticket or project it made, so a deal never becomes work twice. Create the property in HubSpot, or set Properties, Pipelines & Schemas to Read / Write and Neo creates it on its first run. Every ticket and project title ends with the deal’s id, such as[HubSpot deal 51234567890]; keep it there, because Neo finds the record by it when a run stopped before it could mark the deal.
Say in the agent’s instructions:
- the start date: only won deals whose close date is on or after it, and quotes accepted on or after it, become work. HubSpot sets a deal’s close date when it is won, unless your account turned that off. Without a start date, Neo turns nothing into work;
- which deals become a project and which a ticket (by pipeline, deal type, or a product on the deal). Without a rule, each deal becomes a ticket, or a project when the agent has only your PSA’s projects group;
- the ticket queue, status and priority, and the project template, if any. Without a queue, Neo skips the deal and lists it in its report.
