@inboxapp/n8n-nodes-inboxapp 0.1.2 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,43 +1,41 @@
1
1
  # n8n-nodes-inboxapp
2
2
 
3
- [n8n](https://n8n.io/) community node for [InboxApp](https://inboxapp.com) — the Social Selling CRM for X (Twitter).
3
+ [n8n](https://n8n.io/) community node for [InboxApp](https://inboxapp.com), the Social Selling CRM.
4
4
 
5
5
  Automate your DM outreach, manage conversations, and build sales pipelines directly from n8n workflows.
6
6
 
7
7
  ![InboxApp + n8n](https://img.shields.io/badge/InboxApp-n8n-blue?style=flat-square) ![License](https://img.shields.io/badge/license-MIT-green?style=flat-square)
8
8
 
9
+ This node uses the [InboxApp API v2](https://docs.inboxapp.com/v2/developer-api).
10
+
9
11
  ## Platform Support
10
12
 
11
- | Platform | Status |
12
- |----------|--------|
13
- | **X (Twitter)** | ✅ Fully supported |
14
- | **Instagram** | 🔜 Coming soon |
15
- | **LinkedIn** | 🔜 Coming soon |
13
+ Every platform uses the same resources. X (Twitter) is available to every team, and a team may have others enabled. **Platforms → Platforms List** returns the platforms your team can use and what each one supports.
16
14
 
17
15
  ## What You Can Do
18
16
 
19
17
  ### 💬 Send & Manage DMs
20
- - **Send direct messages** to any X user through your connected accounts
21
- - **Reply to conversations** — continue existing DM threads
22
- - **List conversations** — pull all your DM threads with filtering and pagination
23
- - **Look up threads** by user ID or username
24
- - **Delete messages** you've sent
25
- - **Add reactions** to messages
26
-
27
- ### 👥 Manage Prospects (Leads)
28
- - **Look up prospects** by platform ID
29
- - **Update prospect context** — add notes and custom data to profiles
30
- - **Access full profile data** — bio, location, follower counts, verification status
18
+ - **Send direct messages** to a thread, a contact, or a platform user through your connected accounts
19
+ - **Send safely** with an idempotency key, so a retried run never sends twice
20
+ - **List conversations** with filters for folder, account, contact, tag, status and assignee
21
+ - **Edit, unsend and react to messages**, and read a message's edit history
22
+ - **Archive, assign and mark threads** as unread
23
+
24
+ ### 👥 Manage Contacts
25
+ - **Find contacts** by platform ID or username
26
+ - **Update contacts**: status, notes, valuation and default assignee
27
+ - **Add and remove tags** on a contact
28
+ - **Expand related resources**, such as a thread's contact and profile, in the same call
31
29
 
32
30
  ### 🏷️ Organize with Tags & Statuses
33
- - **Create, update, and delete tags** to label your prospects
34
- - **Manage deal statuses** — build your own sales pipeline stages
31
+ - **Create, update, and delete tags** to label your contacts
32
+ - **Manage statuses** to build your own sales pipeline stages
35
33
  - **Assign colors** to tags and statuses for visual organization
36
34
 
37
35
  ### 👤 Team & Accounts
38
36
  - **View team info** and members
39
- - **List connected X accounts** linked to your workspace
40
- - **Track events** across your workspace
37
+ - **List connected accounts** linked to your workspace
38
+ - **Replay events** across your workspace
41
39
 
42
40
  ## Getting Started
43
41
 
@@ -76,69 +74,83 @@ Here are some common workflows to get you started:
76
74
  #### Send a DM to a New Lead
77
75
 
78
76
  ```
79
- Trigger → InboxApp (Lookup Thread by Username) → InboxApp (Send Message)
77
+ Trigger → InboxApp (Messages Send)
80
78
  ```
81
79
 
82
- 1. Add an **InboxApp** node → select **Threads → Lookup by Username**
83
- 2. Enter the X username of the person you want to DM
84
- 3. Add another **InboxApp** node → select **Messages → Send Message**
85
- 4. Use the thread ID from the previous step
86
- 5. Write your message and run
80
+ 1. Add an **InboxApp** node → select **Messages → Messages Send**
81
+ 2. Set **Target** to the person's platform ID: `{ "type": "profile", "accountLinkId": "…", "platform": "twitter", "platformId": "…" }`
82
+ 3. Write your message
83
+ 4. Under **Additional Fields**, set **Idempotency Key** to a value unique to this lead, so a retried run never sends twice
84
+
85
+ **Target** also takes an existing thread, `{ "type": "thread", "threadId": "…" }`, or a contact, `{ "type": "contact", "accountLinkId": "…", "contactId": "…" }`.
87
86
 
88
87
  #### Auto-Reply to New Conversations
89
88
 
90
89
  ```
91
- Schedule Trigger → InboxApp (List Threads) → Filter (unread) → InboxApp (Send Message)
90
+ Schedule Trigger → InboxApp (Threads List, Folder: No Reply) → InboxApp (Messages Send)
92
91
  ```
93
92
 
94
- #### Sync Prospects to Your CRM
93
+ #### Sync Contacts to Your CRM
95
94
 
96
95
  ```
97
- Schedule Trigger → InboxApp (List Threads) → InboxApp (Get Prospect) → HTTP Request (CRM API)
96
+ Schedule Trigger → InboxApp (Threads List, Expand: contact,profile) → HTTP Request (CRM API)
98
97
  ```
99
98
 
100
- #### Tag Prospects Based on Keywords
99
+ #### Tag Contacts Based on Keywords
101
100
 
102
101
  ```
103
- Schedule Trigger → InboxApp (List Threads) → IF (keyword match) → InboxApp (Update Prospect Context)
102
+ Schedule Trigger → InboxApp (Threads List) → IF (keyword match) → InboxApp (Contacts Add Tag)
104
103
  ```
105
104
 
106
105
  ## Available Operations
107
106
 
108
107
  | Resource | Operations |
109
108
  |----------|-----------|
110
- | **Threads** | List, Create, Get, Update, Delete, Lookup by ID, Lookup by Username |
111
- | **Messages** | List, Send, Update, Delete, View Edit History, Add/Remove Reactions |
112
- | **Prospects** | Get, Lookup, Update Context |
109
+ | **Platforms** | List |
110
+ | **Threads** | List, Get, Update, Delete, Typing |
111
+ | **Messages** | List, Get, Send, Edit, Unsend, History, React, Unreact, Attachment |
112
+ | **Contacts** | List, Get, Update, Add Tag, Remove Tag |
113
113
  | **Tags** | List, Create, Get, Update, Delete |
114
114
  | **Statuses** | List, Create, Get, Update, Delete |
115
- | **Account Links** | List |
116
- | **Members** | List, Get |
117
- | **Team** | Get Info |
115
+ | **Account Links** | List, Get |
116
+ | **Team** | Get, List Members, Get Member |
118
117
  | **Events** | List |
119
118
  | **Colors** | List (for tags & statuses) |
120
119
 
120
+ List operations return `{ data, nextCursor }`. To read the next page, pass `nextCursor` as **Cursor** under **Additional Fields**, with the same filters.
121
+
121
122
  ## Example: DM Outreach Workflow
122
123
 
123
124
  A complete outreach workflow might look like:
124
125
 
125
126
  1. **Trigger** — New row in Google Sheets (your lead list)
126
- 2. **InboxApp: Lookup by Username** — Find or create the DM thread
127
- 3. **InboxApp: Send Message** — Send your personalized outreach DM
128
- 4. **InboxApp: Create Tag** — Tag the prospect as "Outreach - Week 1"
129
- 5. **Wait** — Pause for follow-up timing
130
- 6. **InboxApp: Send Message** — Send follow-up if no reply
127
+ 2. **InboxApp: Messages Send** — Send your personalized outreach DM to the lead's platform ID
128
+ 3. **InboxApp: Contacts Add Tag** — Tag the contact as "Outreach - Week 1"
129
+ 4. **Wait** — Pause for follow-up timing
130
+ 5. **InboxApp: Messages Send** — Send a follow-up to the thread if there is no reply
131
131
 
132
132
  This replaces hours of manual DMing with a fully automated pipeline.
133
133
 
134
+ ## Upgrading from API v1
135
+
136
+ Earlier versions of this node called API v1. The same API key works on v2, but operations and fields changed, so existing workflows need their InboxApp nodes set up again:
137
+
138
+ - **Prospects** are now **Contacts**. Look one up with **Contacts List**, filtered by platform and platform ID or username.
139
+ - **Threads Lookup** and **Lookup by Username** are gone. Use **Contacts List**, then **Threads List** filtered by contact.
140
+ - **Threads Create** and **Quick Send** are gone. **Messages Send** takes a thread, contact or profile target.
141
+ - **Members** moved under **Team**.
142
+ - Thread `done` is now `archived`, and list operations return `{ data, nextCursor }`.
143
+
144
+ See the [migration guide](https://docs.inboxapp.com/v2/migrating-from-v1) for every change.
145
+
134
146
  ## API Docs
135
147
 
136
- Full API documentation: [docs.inboxapp.com](https://docs.inboxapp.com)
148
+ Full API documentation: [docs.inboxapp.com/v2/developer-api](https://docs.inboxapp.com/v2/developer-api)
137
149
 
138
150
  ## Links
139
151
 
140
152
  - 🌐 [InboxApp](https://inboxapp.com)
141
- - 📖 [API Documentation](https://docs.inboxapp.com)
153
+ - 📖 [API Documentation](https://docs.inboxapp.com/v2/developer-api)
142
154
  - 🐛 [Report Issues](https://github.com/inboxhq/n8n-nodes-inboxapp/issues)
143
155
  - 💬 [n8n Community](https://community.n8n.io/)
144
156
 
@@ -6,7 +6,7 @@ class InboxAppApi {
6
6
  this.name = 'inboxAppApi';
7
7
  this.displayName = 'InboxApp API';
8
8
  this.icon = 'file:icons/inboxapp.svg';
9
- this.documentationUrl = 'https://docs.inboxapp.com/api-reference/introduction';
9
+ this.documentationUrl = 'https://docs.inboxapp.com/v2/developer-api';
10
10
  this.properties = [
11
11
  {
12
12
  displayName: 'API Key',
@@ -27,7 +27,7 @@ class InboxAppApi {
27
27
  };
28
28
  this.test = {
29
29
  request: {
30
- baseURL: 'https://inboxapp.com/api/v1',
30
+ baseURL: 'https://inboxapp.com/api/v2',
31
31
  url: '/team',
32
32
  method: 'GET',
33
33
  },
@@ -1 +1 @@
1
- {"version":3,"file":"InboxAppApi.credentials.js","sourceRoot":"","sources":["../../credentials/InboxAppApi.credentials.ts"],"names":[],"mappings":";;;AAQA,MAAa,WAAW;IAAxB;QACC,SAAI,GAAG,aAAa,CAAC;QAErB,gBAAW,GAAG,cAAc,CAAC;QAE7B,SAAI,GAAS,yBAAyB,CAAC;QAEvC,qBAAgB,GAAG,sDAAsD,CAAC;QAE1E,eAAU,GAAsB;YAC/B;gBACC,WAAW,EAAE,SAAS;gBACtB,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;gBAC/B,OAAO,EAAE,EAAE;gBACX,QAAQ,EAAE,IAAI;aACd;SACD,CAAC;QAEF,iBAAY,GAAyB;YACpC,IAAI,EAAE,SAAS;YACf,UAAU,EAAE;gBACX,OAAO,EAAE;oBACR,aAAa,EAAE,iCAAiC;iBAChD;aACD;SACD,CAAC;QAEF,SAAI,GAA2B;YAC9B,OAAO,EAAE;gBACR,OAAO,EAAE,6BAA6B;gBACtC,GAAG,EAAE,OAAO;gBACZ,MAAM,EAAE,KAAK;aACb;SACD,CAAC;IACH,CAAC;CAAA;AApCD,kCAoCC"}
1
+ {"version":3,"file":"InboxAppApi.credentials.js","sourceRoot":"","sources":["../../credentials/InboxAppApi.credentials.ts"],"names":[],"mappings":";;;AAQA,MAAa,WAAW;IAAxB;QACC,SAAI,GAAG,aAAa,CAAC;QAErB,gBAAW,GAAG,cAAc,CAAC;QAE7B,SAAI,GAAS,yBAAyB,CAAC;QAEvC,qBAAgB,GAAG,4CAA4C,CAAC;QAEhE,eAAU,GAAsB;YAC/B;gBACC,WAAW,EAAE,SAAS;gBACtB,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;gBAC/B,OAAO,EAAE,EAAE;gBACX,QAAQ,EAAE,IAAI;aACd;SACD,CAAC;QAEF,iBAAY,GAAyB;YACpC,IAAI,EAAE,SAAS;YACf,UAAU,EAAE;gBACX,OAAO,EAAE;oBACR,aAAa,EAAE,iCAAiC;iBAChD;aACD;SACD,CAAC;QAEF,SAAI,GAA2B;YAC9B,OAAO,EAAE;gBACR,OAAO,EAAE,6BAA6B;gBACtC,GAAG,EAAE,OAAO;gBACZ,MAAM,EAAE,KAAK;aACb;SACD,CAAC;IACH,CAAC;CAAA;AApCD,kCAoCC"}
@@ -14,7 +14,7 @@ class InboxApp {
14
14
  group: ['output'],
15
15
  version: 1,
16
16
  subtitle: '={{$parameter["operation"] + ": " + $parameter["resource"]}}',
17
- description: 'Manage X/Twitter DM conversations, prospects, threads, and messages with InboxApp',
17
+ description: 'Manage conversations, contacts, threads, and messages with InboxApp',
18
18
  defaults: {
19
19
  name: 'InboxApp',
20
20
  },
@@ -32,7 +32,8 @@ class InboxApp {
32
32
  Accept: 'application/json',
33
33
  'Content-Type': 'application/json',
34
34
  },
35
- baseURL: 'https://inboxapp.com/api/v1',
35
+ baseURL: 'https://inboxapp.com/api/v2',
36
+ arrayFormat: 'repeat',
36
37
  },
37
38
  properties: properties_json_1.default,
38
39
  };
@@ -1 +1 @@
1
- {"version":3,"file":"InboxApp.node.js","sourceRoot":"","sources":["../../../nodes/InboxApp/InboxApp.node.ts"],"names":[],"mappings":";;;;;;AACA,wEAA2C;AAE3C,MAAa,QAAQ;IAArB;QACC,gBAAW,GAAyB;YACnC,WAAW,EAAE,UAAU;YACvB,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,mBAAmB;YACzB,KAAK,EAAE,CAAC,QAAQ,CAAC;YACjB,OAAO,EAAE,CAAC;YACV,QAAQ,EAAE,8DAA8D;YACxE,WAAW,EAAE,mFAAmF;YAChG,QAAQ,EAAE;gBACT,IAAI,EAAE,UAAU;aAChB;YACD,YAAY,EAAE,IAAI;YAClB,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;YAC1B,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;YAC3B,WAAW,EAAE;gBACZ;oBACC,IAAI,EAAE,aAAa;oBACnB,QAAQ,EAAE,IAAI;iBACd;aACD;YACD,eAAe,EAAE;gBAChB,OAAO,EAAE;oBACR,MAAM,EAAE,kBAAkB;oBAC1B,cAAc,EAAE,kBAAkB;iBAClC;gBACD,OAAO,EAAE,6BAA6B;aACtC;YACD,UAAU,EAAE,yBAA0C;SACtD,CAAC;IACH,CAAC;CAAA;AA9BD,4BA8BC"}
1
+ {"version":3,"file":"InboxApp.node.js","sourceRoot":"","sources":["../../../nodes/InboxApp/InboxApp.node.ts"],"names":[],"mappings":";;;;;;AACA,wEAA2C;AAE3C,MAAa,QAAQ;IAArB;QACC,gBAAW,GAAyB;YACnC,WAAW,EAAE,UAAU;YACvB,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,mBAAmB;YACzB,KAAK,EAAE,CAAC,QAAQ,CAAC;YACjB,OAAO,EAAE,CAAC;YACV,QAAQ,EAAE,8DAA8D;YACxE,WAAW,EAAE,qEAAqE;YAClF,QAAQ,EAAE;gBACT,IAAI,EAAE,UAAU;aAChB;YACD,YAAY,EAAE,IAAI;YAClB,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;YAC1B,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;YAC3B,WAAW,EAAE;gBACZ;oBACC,IAAI,EAAE,aAAa;oBACnB,QAAQ,EAAE,IAAI;iBACd;aACD;YACD,eAAe,EAAE;gBAChB,OAAO,EAAE;oBACR,MAAM,EAAE,kBAAkB;oBAC1B,cAAc,EAAE,kBAAkB;iBAClC;gBACD,OAAO,EAAE,6BAA6B;gBACtC,WAAW,EAAE,QAAQ;aACrB;YACD,UAAU,EAAE,yBAA0C;SACtD,CAAC;IACH,CAAC;CAAA;AA/BD,4BA+BC"}
@@ -3,20 +3,16 @@
3
3
  "nodeVersion": "1.0",
4
4
  "codexVersion": "1.0",
5
5
  "categories": ["Sales", "Communication"],
6
- "subcategories": {
7
- "Sales": ["CRM"],
8
- "Communication": ["Social Media"]
9
- },
10
- "alias": ["inbox", "twitter", "x", "dm", "prospect", "thread", "message"],
6
+ "alias": ["inbox", "twitter", "x", "dm", "contact", "thread", "message"],
11
7
  "resources": {
12
8
  "credentialDocumentation": [
13
9
  {
14
- "url": "https://docs.inboxapp.com/api-reference/introduction"
10
+ "url": "https://docs.inboxapp.com/v2/developer-api"
15
11
  }
16
12
  ],
17
13
  "primaryDocumentation": [
18
14
  {
19
- "url": "https://docs.inboxapp.com/api-reference/introduction"
15
+ "url": "https://docs.inboxapp.com/v2/developer-api"
20
16
  }
21
17
  ]
22
18
  }