HubSpot runs the sales side well in Israel, but the tax invoice comes from Morning, iCount or Invoice4U and WhatsApp needs a specific HubSpot tier. This guide maps what HubSpot does natively, what needs a custom connection, and the limits that decide how that connection is built.
Key takeaways
- The Israeli tax document is issued by the invoicing system; HubSpot holds the deal, and the document number is written back to it.
- HubSpot's WhatsApp inbox channel needs Marketing Hub or Service Hub Professional or Enterprise, and includes 1,000 template messages a month.
- The workflow "Send a webhook" action is Data Hub Professional and Enterprise only; on other tiers the trigger comes from an app webhook subscription.
- Private apps get 100 requests per 10 seconds on Free and Starter and 190 on Professional and Enterprise.
HubSpot can run sales in an Israeli business, but the tax invoice or invoice-receipt is issued by an Israeli invoicing system such as Morning, iCount or Invoice4U. Between them sits a connection you build: a won deal triggers the document, and its number is written back to the deal. HubSpot's own WhatsApp channel requires Marketing Hub or Service Hub Professional or Enterprise.
This guide is about integration, not about choosing a CRM - that question is covered in HubSpot vs Salesforce. The HubSpot facts below are taken from HubSpot's developer documentation and knowledge base as of September 2026.
What does HubSpot handle natively, and what needs a custom connection?
HubSpot's built-in features cover the CRM records and the customer conversation. The Israeli accounting step sits outside it. Here is the split, task by task:
| Task | Native in HubSpot | Needs a connection |
|---|---|---|
| Contacts, companies, deals, pipelines | Yes | No |
| Deal amounts in more than one currency | Yes, on Starter, Professional or Enterprise; you set the exchange rate | No |
| WhatsApp conversations in the inbox | Marketing Hub or Service Hub, Professional or Enterprise | With Sales Hub alone, or on Starter |
| WhatsApp template messages | 1,000 a month, shared by all connected numbers | Above that cap, or when the trigger is outside HubSpot |
| Calling an outside system from a workflow | "Send a webhook" action, Data Hub Professional or Enterprise | On every other tier |
| Starting a workflow from an outside system | "When a webhook is received" trigger, Professional or Enterprise tiers | On Free and Starter |
| Issuing an Israeli tax invoice or invoice-receipt | No | Yes - Morning, iCount or Invoice4U issues it |
| Document number and link on the deal | No | Yes - a write-back to a deal property |
Can HubSpot issue the Israeli invoice itself?
This section is a technical description, not tax or accounting advice. HubSpot's API reference does include quote and invoice objects, and a deal can be associated with both (association types 63 and 176). The Israeli tax documents themselves - tax invoice, receipt, invoice-receipt, credit invoice - come from the Israeli invoicing system, with its own numbering and, where the Tax Authority requires one, an allocation number. Invoice4U, for example, exposes a FetchAllocationNumber operation for that. None of the HubSpot documentation reviewed for this guide mentions allocation numbers.
So the design that holds up keeps HubSpot as the record of the sale and the invoicing system as the record of the document. Which document type is issued for which event is a decision for your accountant, written down before any code.
How a won deal becomes an invoice, step by step
- Create API access. In HubSpot, private apps now sit under Development, then Legacy apps. A super admin creates the app, grants scopes, and receives an access token that goes in the header as
Authorization: Bearer. - Pick the trigger. Either a webhook subscription inside the app for changes to the deal stage, or a workflow with the "Send a webhook" action if you have Data Hub Professional or Enterprise.
- Acknowledge fast and queue. The endpoint stores a job keyed on the deal id and returns immediately; a separate worker does the rest.
- Read the deal.
GET /crm/objects/2026-09/deals/{dealId}, then its associated contact (type 3), company (type 341) and line items (type 19). - Map to the invoicing document. Customer name, ת"ז or ח"פ, line items, whether amounts include VAT, and the payment for an invoice-receipt.
- Issue once. With Invoice4U, pass the deal id as
ApiIdentifiertoCreateDocumentWithIdentifierValidation, so a retry is rejected. With Morning and iCount, check your own record for an existing document before any retry. - Write back.
PATCH /crm/objects/2026-09/deals/{dealId}with the document number and link in custom deal properties.
Code written earlier usually calls /crm/v3/objects/deals. HubSpot's current reference uses date-versioned paths such as /crm/objects/2026-09/deals, and lists the v3 specs under legacy.
What changes between Morning, iCount and Invoice4U
From HubSpot's side the connection is the same for all three systems. Only the mapping step and the error handling change:
| System | Authentication | The trap |
|---|---|---|
| Morning (formerly Green Invoice) | Short-lived tokens obtained from long-lived credentials | A token fetched per request, or cached forever. Cache it with its expiry and refresh once on 401. |
| iCount | v3: an API token in the Authorization header | Old examples send company id, user and password in the body - that is the previous generation. |
| Invoice4U | A token in the JSON body, POST to api.invoice4u.co.il/Services/ApiService.svc/{Operation} | Business errors arrive with HTTP 200 inside {"d": {"Errors": [...]}}. DocumentType 1 is a tax invoice, 3 an invoice-receipt, 4 a credit invoice. |
The Morning side is covered in detail in the Morning API guide, and the general question of which system owns which data in connecting invoicing software to a CRM.
How does WhatsApp work inside HubSpot?
HubSpot connects a WhatsApp Business Account as a channel in the conversations inbox, and every message to that number opens a thread there. Before connecting, you need:
- Marketing Hub or Service Hub on Professional or Enterprise.
- Admin permission on your Meta Business Manager, which must be verified to send more than 50 business-initiated conversations a day.
- The company's legal name, a WhatsApp display name, the website URL and a business email.
- A number that can receive voice calls, is not behind an IVR, and is not connected to another WhatsApp account, app or integration - unless you use HubSpot's coexistence setup to keep the WhatsApp Business App on the same number.
HubSpot includes 1,000 template messages a month, shared by every connected WhatsApp account, and resets the count on the date your subscription began. Meta bills separately: since 1 July 2025 it charges per delivered template message, and it has announced pricing updates for service and utility messages on 1 August and 1 October 2026. What that means for a monthly budget is in WhatsApp Business API pricing.
When is HubSpot's WhatsApp channel not enough?
A custom WhatsApp connection makes sense when the account has Sales Hub only or a Starter tier, when you send more than 1,000 templates a month, or when the event happens outside HubSpot - for example, sending the invoice link on WhatsApp the moment Morning issues it. In those cases the message goes out through the WhatsApp Cloud API and is logged back into HubSpot, where a deal can be associated with a communication record (association type 86, which covers SMS, WhatsApp and LinkedIn messages). The three ways to put WhatsApp inside a CRM, and what each does to the conversation history, are compared in WhatsApp inside a CRM.
Limits and failure modes to plan for
- Rate limits. A private app gets 100 requests per 10 seconds on Free and Starter and 190 on Professional and Enterprise, with 250,000, 625,000 or 1,000,000 requests a day per account.
GET /account-info/v3/api-usage/daily/private-appsshows the day's usage. - Batched webhooks. HubSpot keeps up to 10 requests in flight per private app, and each request can carry up to 100 events, so the handler must accept a list.
- Signature check. Verify the
X-HubSpot-Signatureheader, a SHA-256 hash built from the app's client secret and the request. - Subscriptions are manual. A private app's webhook subscriptions cannot be edited through the API, only in the app settings.
- A timeout is not a failure. Retrying a document call that timed out without an idempotency check produces a second numbered tax document, which then has to be cancelled with a credit invoice.
For the cost of building a connection like this, see pricing.
Sources
Frequently asked questions
Does HubSpot connect to Morning (Green Invoice)?
Through the two APIs, yes. HubSpot's CRM API reads the won deal, its contact and its line items, Morning's REST API issues the document, and the document number is written back to a deal property. Check the HubSpot App Marketplace for a ready connector first; if none matches your document rules, it is a custom build.
Which HubSpot plan do I need for WhatsApp?
HubSpot's WhatsApp inbox channel is available with Marketing Hub or Service Hub on Professional or Enterprise. It includes 1,000 template messages a month shared by all connected numbers. With Sales Hub alone, or on Starter, WhatsApp needs a separate connection through the WhatsApp Cloud API, logged back into HubSpot.
Can a HubSpot workflow call iCount or Invoice4U directly?
Only with Data Hub Professional or Enterprise, which include the Send a webhook and custom code actions. Even then, most connections use a small service in between, because Invoice4U reports errors inside an HTTP 200 response and every invoicing system needs a duplicate check before a retry, which a plain webhook action does not do.
What are HubSpot's API rate limits for a private app?
A private app can make 100 requests per 10 seconds on Free and Starter and 190 on Professional and Enterprise. The daily cap per account is 250,000, 625,000 or 1,000,000 requests by tier, and an API Limit Increase add-on raises it. For one invoice per won deal, these limits are rarely the constraint.
How do I stop HubSpot from creating duplicate invoices?
Key every invoicing job on the HubSpot deal id and check it before issuing. With Invoice4U, send the deal id as ApiIdentifier so a second call is rejected. A request can time out after the document was already issued, so a retry without that check produces a second numbered tax document that needs a credit invoice.
Keep reading
Related service
WhatsApp Cloud API
Templates, a two-way inbox and reminders on the official Meta API.
About the author
Yehonatan Saadia
Freelance automation, web & MVP developer
I'm Yehonatan Saadia, a senior developer who builds business automation, custom websites, and MVPs for small and mid-sized companies across the US, Europe, and Israel. These guides come from real client work, not theory.
Work with meHave a project like this?
Tell me what you're trying to automate or build. I reply within 24 business hours with a few targeted questions, then we walk through it on a free 30-minute call, with no commitment. You come away with a scope, a timeline and a fixed price - or a straight answer that it isn't worth building.
