argorant 0.12.0 → 0.14.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.
Files changed (3) hide show
  1. package/README.md +106 -1
  2. package/bin/argorant.js +1317 -71
  3. package/package.json +3 -2
package/README.md CHANGED
@@ -46,7 +46,14 @@ CI, and agents.
46
46
  | `verify <email>` / `verify --file emails.csv -o out.csv` | Verify your own addresses (verification pool; recent re-checks free) | pool |
47
47
  | `find "<first last>" --domain <d>` / `find --file people.csv -o found.csv` | Find a person's work email from a name and company domain, one or a whole list ([details](#find-emails)) | 1 credit found, 0.25 nothing found |
48
48
  | `find status \| download \| resume \| cancel <job_id>`, `find pricing` | Manage a find job; show prices, balance and limits | free |
49
- | `campaigns …` | Live outbound campaigns - **operator keys only**, see below | - |
49
+ | `campaigns …` | Email campaigns, see below | - |
50
+ | `account` | Plan, credits, requests per minute, campaign emails, scopes | free |
51
+ | `lists ls \| create \| show \| people \| rename \| rm \| export` | Saved lists, a page at a time ([details](#lists-exports-credits-and-webhooks)) | free, export 1 credit per valid contact |
52
+ | `exports ls \| status \| download` | Your exports, newest first | free |
53
+ | `companies count \| search \| people` | Companies that match your filters | free |
54
+ | `lookup industries \| countries \| keywords \| technologies \| titles [text]` | The exact labels to use in filters | free |
55
+ | `credits packs \| quote \| buy \| purchases` | Buy a credit pack; asks first, then the saved card or a payment link | the pack price |
56
+ | `webhooks ls \| add \| set \| test \| deliveries \| rm` | Get events sent to your own server | free, Pro plan and up |
50
57
 
51
58
  ## Phone numbers
52
59
 
@@ -205,6 +212,66 @@ needs a paid plan" apart from "something broke".
205
212
  command always wins over the stored one, `ARGORANT_API_BASE` overrides both,
206
213
  and `argorant logout` removes the file.
207
214
 
215
+ ## Lists, exports, credits and webhooks
216
+
217
+ These commands call the API under `/api/v1` and work with any API key that has the right
218
+ permissions. Lists come back a page at a time: `-n` sets the page size, `--cursor` continues
219
+ where the last page ended (the command prints the next cursor), and `--all` reads every page.
220
+
221
+ ```sh
222
+ npx argorant account # plan, credits, requests per minute
223
+ npx argorant lookup industries soft # exact labels for --industry
224
+ npx argorant lookup titles "head of"
225
+ npx argorant companies count --country Germany --employees 11-50,51-200
226
+ npx argorant companies search saas --country Germany -n 10
227
+
228
+ npx argorant lists # your saved lists, newest first
229
+ npx argorant lists create --name "DACH CFOs" --title CFO --country Germany,Austria,Switzerland
230
+ npx argorant lists show 1240
231
+ npx argorant lists people 1240 --all --json # the people in it, contact details hidden
232
+ npx argorant lists rename 1240 --name "DACH finance leaders"
233
+ npx argorant lists export 1240 -n 500 -o cfos.csv # 1 credit per valid contact
234
+ npx argorant lists export 1240 --include-phones # plus 10 credits per phone number returned
235
+ npx argorant lists rm 1240 --yes
236
+
237
+ npx argorant exports # your exports, newest first
238
+ npx argorant exports status 5521
239
+ npx argorant exports download 5521 -o leads.csv
240
+
241
+ npx argorant credits packs # 500, 5,000, 25,000 and 100,000 credits
242
+ npx argorant credits quote 5000 # the price, nothing is bought
243
+ npx argorant credits buy 5000 # asks first, then pays (see below)
244
+ npx argorant credits purchases
245
+
246
+ npx argorant webhooks add https://example.com/hooks/argorant --events reply.received,reply.positive
247
+ npx argorant webhooks # your webhooks and every event you can pick
248
+ npx argorant webhooks test 3
249
+ npx argorant webhooks deliveries 3
250
+ npx argorant webhooks set 3 --inactive
251
+ npx argorant webhooks rm 3 --yes
252
+ ```
253
+
254
+ `credits buy` shows the quote first and only buys after a yes: at a terminal it asks, anywhere
255
+ else it needs `--yes`. When your workspace saved its card for API and agent purchases and the
256
+ purchase fits the limits you set in Settings, that card is charged right away. Otherwise you get a
257
+ payment link to pay yourself, and the credits are added once the payment goes through.
258
+ `--pay-with link` always gives the link. Bought credits stay valid for 365 days.
259
+
260
+ `lists rm` and `webhooks rm` work the same way: they ask at a terminal and need `--yes` anywhere
261
+ else. A webhook's signing secret is shown once, when you add it.
262
+
263
+ ### Safe retries and support
264
+
265
+ Every change the CLI makes through `/api/v1` carries an `Idempotency-Key`. If a command fails
266
+ halfway (a dropped connection, a closed laptop), run it again with your own key to get the
267
+ first answer back instead of doing the work twice:
268
+
269
+ ```sh
270
+ npx argorant credits buy 5000 --yes --idempotency-key buy-5000-oct
271
+ ```
272
+
273
+ Errors show the server's message and a request id. Quote the request id if you contact support.
274
+
208
275
  ## Campaigns and inboxes
209
276
 
210
277
  Email outreach from the terminal, with any Argorant API key. Nothing sends until you launch.
@@ -215,6 +282,10 @@ argorant campaigns create --name "Q4 CFO outreach" [--daily-limit 40] [--timezon
215
282
  argorant campaigns emails set <campaign> --step 1 --subject "Quick question, {{first_name}}" --body-file ./step1.txt
216
283
  argorant campaigns emails set <campaign> --step 2 --body "Bumping this." --delay-days 3
217
284
  argorant campaigns emails set <campaign> --file emails.json # whole sequence at once
285
+ argorant campaigns subsequences list <campaign> # reply-keyword follow-ups
286
+ argorant campaigns subsequences set <campaign> --file subsequences.json # up to 5, replaces the set
287
+ # keywords also match in capitals, as a plural, with a small typo or inside a short sentence;
288
+ # "not interested" and replies that ask to stop never start a subsequence
218
289
  argorant campaigns leads add <campaign> --list <list-id> # a saved list
219
290
  argorant campaigns leads add <campaign> --csv leads.csv # email, first_name, last_name, company, title
220
291
  argorant campaigns senders set <campaign> --emails a@x.com,b@y.com # or --all
@@ -235,6 +306,40 @@ argorant inboxes connect-google --admin admin@yourdomain.com # lists mailb
235
306
  argorant inboxes connect-google --admin admin@yourdomain.com --emails a@x.com,b@x.com # or --all
236
307
  ```
237
308
 
309
+ ### Mailboxes from any email provider (SMTP and IMAP)
310
+
311
+ Zoho, Fastmail, Yahoo, iCloud, IONOS, your web host or any other provider connect with their server settings.
312
+ Argorant signs in twice before it saves anything: once to send (SMTP) and once to read replies (IMAP). A mailbox
313
+ connects only when both work. The password is stored safely and never shown again; many providers need an app
314
+ password instead of the normal one. Google and Microsoft mailboxes connect with their own sign-in instead.
315
+
316
+ ```
317
+ argorant inboxes presets # provider keys for --preset
318
+ argorant inboxes test-smtp --email anna@acme.com --preset zoho # checks sending and reading replies, saves nothing
319
+ argorant inboxes connect-smtp --email anna@acme.com --preset zoho --name "Anna Weber"
320
+ argorant inboxes connect-smtp --email anna@acme.com --smtp-host mail.acme.com --smtp-port 587 --imap-host mail.acme.com
321
+ argorant inboxes connect-smtp --csv mailboxes.csv # many at once, a result per row
322
+ ```
323
+
324
+ The password is never taken on the command line. Put it in an environment variable and name it with
325
+ `--password-env NAME`, set `ARGORANT_MAILBOX_PASSWORD`, or type it when asked. `--imap-password-env NAME` sets a
326
+ different password for reading replies. Connecting the same address again replaces its settings, which is how a
327
+ mailbox is reconnected after a password change.
328
+
329
+ CSV columns: `email, sender_name, preset, smtp_host, smtp_port, smtp_security, smtp_username, smtp_password,
330
+ imap_host, imap_port, imap_security, imap_username, imap_password, daily_limit`. Each row needs `email`,
331
+ `smtp_password` (or `password`) and either `preset` or `smtp_host` + `smtp_port` + `imap_host`. Empty columns take
332
+ the defaults: the username is the email address, reading replies uses the sending sign-in, port 993, 25 emails a
333
+ day. Security is `ssl`, `starttls` or `none`. Use port 587 for sending; if you give 465, Argorant tries 587 and
334
+ saves 587 when it works. Rows go up 25 at a time; the command exits 1 when any row did not
335
+ connect.
336
+
337
+ ```
338
+ email,sender_name,preset,smtp_password
339
+ anna@acme.com,Anna Weber,zoho,app-password-1
340
+ ben@acme.com,Ben Hill,zoho,app-password-2
341
+ ```
342
+
238
343
  New mailboxes on their own new domains, ordered from the terminal. The quote shows every domain with its
239
344
  first-year and renewal price, the mailboxes, the total and how it is paid. When your workspace saved its card
240
345
  for API and agent purchases (you ticked that box when you paid an earlier order, and the setting in