Package Information
Available Nodes
Documentation generating…
Documentation
n8n-nodes-anyspot
Community node for n8n that connects your workflows to Any Spot Chat Marketing: WhatsApp messaging, the shared inbox, groups, contacts, fields and tags, scheduled messages, statuses, campaigns, drip sequences, conversation bots, appointment booking, the team and the Hebrew AI voice agent. Includes a real-time trigger and a generic Custom API Call for everything else.
The node talks to the API at https://wa.asg.co.il/api/v1 (reference: https://wa.asg.co.il/api-docs).
Install
Self-hosted n8n: Settings → Community Nodes → Install → n8n-nodes-anyspot. Or from the shell:
cd ~/.n8n/nodes
npm install n8n-nodes-anyspot
then restart n8n.
n8n Cloud only allows verified community nodes. Until this package is verified, Cloud users can call the same REST API with the HTTP Request node (docs: https://wa.asg.co.il/api-docs).
Credentials
- In the Any Spot dashboard open API Keys (https://wa.asg.co.il/api-keys) and create a key. Keys start with
ghlk_and are bound to one WhatsApp number. - In n8n add credentials Any Spot API, paste the key, leave WhatsApp Number ID empty (it is resolved automatically).
Nodes
Any Spot Trigger
Starts a workflow in real time. Pick one or more events:
| Event | Fires when |
|---|---|
| Message Inbound | a WhatsApp message arrives (contact or group) |
| Lead From Ad | first message from a Facebook / Instagram click-to-WhatsApp ad |
| Message Sent / Delivered / Read / Failed | outbound delivery status changes |
| Status Reply | someone replies to your status |
| Contact Created / Updated | a contact is created, or its name / tags change |
| Campaign Completed / Failed | a bulk campaign finishes |
| Drip Step Executed | a drip sequence sent one of its steps |
| Funnel Step Executed | a funnel / automation step ran |
| WhatsApp Number Status Changed | the connected number went online, offline or logged out |
| Voice Call Completed | the AI voice agent finished a call and its analysis is ready |
| Any Event | everything above |
The node registers the webhook on activation and removes it on deactivation. Every delivery is verified with the HMAC signature the server sends (x-webhook-signature). Message events are flattened: event, timestamp, then the message fields (phone, name, text, messageId, isAdLead, adTitle...). Every other event arrives as event, timestamp and the payload fields of that event as documented in the API reference.
Any Spot
| Resource | Operations |
|---|---|
| Message | Send Text · Send Media · Send Poll · Tag All Group Members · Get Many · React · Edit · Delete for Everyone · Forward |
| Conversation | Get Many (inbox with filters) · Get (state + contact card + latest messages) · Update (status, tags, notes, pin, hide, pause AI) · Mark as Read · Assign (team member dropdown, or release) |
| Contact | Create or Update · Get · Get Many · Delete · Check on WhatsApp · Update (details, lead status, tags add/remove, custom fields) · Get Activity · Opt Out / Opt In · Bulk Import (up to 500) · Bulk Tag (up to 500) |
| Field | Get Many (user fields, general fields, tags, folders with ready tokens) · Create User Field (8 types) · Set General Field Value ({{bot.key}}) · Get Many Tags · Create Tag |
| Scheduled Message | Create (text or media, ISO time) · Get Many · Update · Cancel |
| Group | Create · Get · Get Many · Get Participants · Update Name · Update Description · Add / Remove Participants · Promote / Demote Admin · Get / Revoke Invite Link · Join via Invite · Preview Invite · Leave · Set Announcement Mode · Set Locked Info · Set Join Approval · Set Member Add Mode · List / Approve / Reject Join Requests · Import Members to Contacts · Get / Update Automation Settings (tracking, digest, welcome, moderation) · Refresh From WhatsApp · Send Daily Digest Now |
| Status | Publish (text / image / video, audience, schedule) · Get Many |
| Campaign | Create · Get Many · Pause · Resume · Get (status + progress) · Get Recipients · Delete |
| Drip Sequence | Enroll Contact · Get Many · Get · Get Enrollments · Unenroll Contact |
| Conversation Bot | Start · Get Many · Get · Enable · Disable |
| Appointment | Book (Google Calendar event + WhatsApp reminders) · Get Available Slots · Get Many · Get · Cancel |
| AI | Suggest Replies · Add Knowledge Source (text / URL / file) |
| Voice Agent | Make Outbound Call · Get Call · Get Many Calls · Get Many Agents · Get Agent · Get Many Campaigns · Get Campaign · Create Campaign · Pause Campaign |
| Team | Get Many · Get Performance |
| Account | Get Key Info · Get Many Numbers · Get Usage & Quotas · Get Dashboard Stats |
| Webhook | Create · Get Many · Delete |
| Custom | Custom API Call: any method + path relative to the base URL, query, JSON body, extra headers; returns statusCode, headers, body. Use it for AI settings, knowledge list / delete, learned answers, notifications, team invites, group commands, digest settings, status rules, calendar settings, the audit log and anything else the reference documents. |
Groups, drip sequences, bots, campaigns, voice agents, voice campaigns, team members and tags load as dropdowns. Phones are accepted in international format (972501234567) and converted to JIDs where needed; the new inbox, scheduling and forwarding operations also accept local numbers (0501234567), which the API completes with the country code of the connected number.
Upgrading from 1.0.0
1.1.0 is additive: every resource, operation and parameter of 1.0.0 keeps its name and meaning, so existing workflows run untouched. Only the base URL moved to https://wa.asg.co.il/api/v1 (the old Cloud Functions URL keeps working server side).
Limits
- Immediate statuses support an allowlist audience only; scheduled statuses support every audience mode.
- Rate limit: 120 requests per minute per API key.
- Button / list messages are not exposed (WhatsApp Web no longer renders them reliably).
למפעיל: בנייה, בדיקה ופרסום
החבילה בנויה כ-community node סטנדרטי של n8n (TypeScript, n8n-workflow), עם שני nodes: Any Spot (פעולות) ו-Any Spot Trigger (טריגר webhook), וקרדנציאל אחד Any Spot API.
cd n8n-nodes-anyspot
npm install
npm run build # tsc → dist/ + העתקת האייקון
npm run lint # חוקי n8n-nodes-base (נדרש לאימות community node)
npm test # smoke test אופליין: מבנה הצמתים + בקשות HTTP מדומות + חתימת webhook
בדיקה מקומית ב-n8n
npm run build && npm link
mkdir -p ~/.n8n/nodes && cd ~/.n8n/nodes && npm link n8n-nodes-anyspot
npx n8n start
הצמתים יופיעו בחיפוש כ-"Any Spot". צור קרדנציאל עם מפתח מ-/api-keys, הפעל workflow עם Any Spot Trigger ושלח הודעת וואטסאפ למספר.
פרסום ל-npm (כדי שלקוחות יתקינו בשם)
npm login
npm publish --access public
אחרי הפרסום כל לקוח עם n8n עצמאי מתקין דרך Settings → Community Nodes → n8n-nodes-anyspot.
אימות רשמי (n8n Cloud)
לקוחות על n8n Cloud רואים רק צמתים מאומתים. הגשה: https://github.com/n8n-io/n8n/blob/master/packages/%40n8n/community-node-verification — דורש חבילה ב-npm, README באנגלית, npm run lint נקי, בלי תלויות runtime חיצוניות (החבילה עומדת בכל אלה). עד אז לקוחות Cloud משתמשים ב-HTTP Request מול ה-API.
מבנה
credentials/AnySpotApi.credentials.ts מפתח + numberId אופציונלי, בדיקה מול /me
nodes/AnySpot/GenericFunctions.ts קריאות HTTP, מיפוי שגיאות, פתרון numberId, דפדוף, loaders ל-dropdowns
nodes/AnySpot/resources/*.ts פרמטרים + ביצוע לפי משאב (Account, Contact, Conversation, Custom, Field,
Group, Marketing, Message, ScheduledMessage, Team, Voice)
nodes/AnySpot/AnySpot.node.ts הצומת הראשי (resource / operation)
nodes/AnySpot/AnySpotTrigger.node.ts רישום webhook, אימות HMAC, שיטוח האירוע
test/smoke-test.mjs בדיקות אופליין, כולל baseline של 1.0.0 שמגן מפני שינוי שובר
שדרוג גרסה (1.0.0 ← 1.1.0)
השינוי אדיטיבי בלבד: כל resource / operation / פרמטר מ-1.0.0 נשאר באותו שם, ה-version של הצומת נשאר 1, ורק כתובת הבסיס עברה ל-https://wa.asg.co.il/api/v1. לפרסום: npm run build && npm run lint && npm test, ואז npm publish --access public (דורש passkey). לקוחות קיימים מעדכנים דרך Settings → Community Nodes → Update.