@wrangled/cli 0.3.158 → 0.3.160
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/dist/guide.js +1 -1
- package/dist/main.js +8 -5
- package/package.json +1 -1
package/dist/guide.js
CHANGED
|
@@ -120,7 +120,7 @@ To find content, such as "the 10 emails with the best click rate", "our 5 best v
|
|
|
120
120
|
|
|
121
121
|
- \`--text "<words>"\` finds words in the current version's subject, headline and body, or in a video's or call recording's transcript. Words are stemmed ("guarantee" finds "guaranteed"); use "quotes" for a phrase and -word to leave a word out.
|
|
122
122
|
- \`--mode meaning\` finds content that means something close to \`--text\`, even in other words: \`--text "saves time"\` also finds "done in five minutes". Results come nearest first, each with its distance (0 is the same meaning) and the closest passage as its words. It takes no \`--sort\` or \`--order\`, and finds only content embedded so far (each hour, new versions and transcripts are embedded).
|
|
123
|
-
- \`--kind\` (ad, email, sms, landing_page, video, social_post, article, conversation, document, collection_item), \`--platform\` (meta, ghl, klaviyo, roezan, bayengage, activecampaign, mailchimp, hubspot, kit, instantly, kajabi, omnisend, google_ads, tiktok, microsoft_ads, pinterest, linkedin, web, wordpress, webflow, strapi, youtube, instagram, facebook_page, callrail, zoom, fathom, fireflies, gong, granola, tldv, google_drive, ad_library, workspace, upload) and \`--origin\` (discovered or made) narrow it, and \`--collection <slug>\` keeps one collection's items, each with its details. \`--from\` and \`--to\` keep content live on those days: from its first day with numbers (or the day the library first saw it) to its last.
|
|
123
|
+
- \`--kind\` (ad, email, sms, landing_page, video, social_post, article, conversation, document, collection_item), \`--platform\` (meta, ghl, klaviyo, roezan, bayengage, activecampaign, mailchimp, hubspot, kit, instantly, kajabi, omnisend, mailgun, google_ads, tiktok, microsoft_ads, pinterest, linkedin, web, wordpress, webflow, strapi, youtube, instagram, facebook_page, callrail, zoom, fathom, fireflies, gong, granola, tldv, google_drive, ad_library, workspace, upload) and \`--origin\` (discovered or made) narrow it, and \`--collection <slug>\` keeps one collection's items, each with its details. \`--from\` and \`--to\` keep content live on those days: from its first day with numbers (or the day the library first saw it) to its last.
|
|
124
124
|
- \`--sort\` is \`recent\` (the default, newest first) or any number in the \`content_scorecard\` view, such as \`click_rate\`, \`open_rate\`, \`roas\`, \`spend\` or their \`_30d\` twins for the last 30 days. Content with money in several currencies has a number per currency and sorts by its best. Content without that number comes last. \`--order asc\` turns it around; \`--limit\` is 1 to 50 (default 10).
|
|
125
125
|
- Each result has the item's id or SKU, its words, how many files it has, whether it has a transcript, and its scorecard numbers. \`${cli} content show <sku | item-id>\` prints one item in full: its words, how many versions it has, its transcript and every number; \`--format json\` adds every version, and links to its files.
|
|
126
126
|
- To add marketing that lives somewhere no source connects to, such as a sales video, a webinar recording, a script or an email from another tool, run \`${cli} content capture --kind <kind> --name <name>\` with \`--body\`, \`--file\`, \`--source\` (where it came from) and \`--url\`. It is kept as found, with no SKU, so it is never approved or published; \`--platform upload\` finds these. Videos and audio are transcribed on their own; give \`--transcript @file\` when you already have one, so none is paid for.
|
package/dist/main.js
CHANGED
|
@@ -1681,10 +1681,10 @@ const commands = {
|
|
|
1681
1681
|
},
|
|
1682
1682
|
},
|
|
1683
1683
|
winners: {
|
|
1684
|
-
usage: "winners [--week <YYYY-MM-DD> | --days <n> | --from <YYYY-MM-DD> --to <YYYY-MM-DD>] [--top <n>] [--ad-format image|video|carousel] [--offer <offer key>] (which Facebook ads and landing pages won and flopped, judged on each client's goal; see winners goals)",
|
|
1684
|
+
usage: "winners [--week <YYYY-MM-DD> | --days <n> | --from <YYYY-MM-DD> --to <YYYY-MM-DD>] [--top <n>] [--ad-format image|video|carousel] [--offer <offer key or name>] (which Facebook ads and landing pages won and flopped, judged on each client's goal; see winners goals)",
|
|
1685
1685
|
async run(args, options) {
|
|
1686
1686
|
if (args.length > 0)
|
|
1687
|
-
throw new CliError("Usage: winners [--week <date> | --days <n> | --from <date> --to <date>] [--top <n>] [--ad-format image|video|carousel] [--offer <offer key>]", exitCodes.usage);
|
|
1687
|
+
throw new CliError("Usage: winners [--week <date> | --days <n> | --from <date> --to <date>] [--top <n>] [--ad-format image|video|carousel] [--offer <offer key or name>]", exitCodes.usage);
|
|
1688
1688
|
const query = new URLSearchParams();
|
|
1689
1689
|
for (const [name, value] of Object.entries({ ...winnersPeriod(options), top: options.top, format: options.entryTags.format, offer: options.offer }))
|
|
1690
1690
|
if (value !== undefined)
|
|
@@ -4568,6 +4568,7 @@ function salesRows(label, sales, calls) {
|
|
|
4568
4568
|
const messageLabel = (m) => excerpt(m.name ?? m.subject ?? (m.realSales === "available" ? m.messageKey : (m.itemId ?? "")), 40);
|
|
4569
4569
|
const messageSubject = (m) => (m.subject === null ? "" : excerpt(m.subject, 40));
|
|
4570
4570
|
const MESSAGE_WORDS_CHARS = 400;
|
|
4571
|
+
const MAILGUN_NO_WORDS = "No words on file: Mailgun's events carry the subject line but not the email's words, and Mailgun's stored copy is not read. Read them in the tool that sent it (GoHighLevel, for an et_ tag).";
|
|
4571
4572
|
/** Each message's subject and words, cut short, under its label and item id, in the tables' order. */
|
|
4572
4573
|
function printMessageWords(messages) {
|
|
4573
4574
|
if (messages.length === 0)
|
|
@@ -4575,8 +4576,9 @@ function printMessageWords(messages) {
|
|
|
4575
4576
|
console.log("\nWords of each message, in the order above:");
|
|
4576
4577
|
for (const m of messages) {
|
|
4577
4578
|
const lines = [...(m.subject === null ? [] : [`Subject: ${m.subject}`]), ...(m.bodyText === null ? [] : excerpt(m.bodyText, MESSAGE_WORDS_CHARS, { flat: false }).split("\n"))];
|
|
4579
|
+
const missing = m.bodyText !== null ? [] : m.platform === "mailgun" ? [MAILGUN_NO_WORDS] : lines.length === 0 ? ["No words on file."] : [];
|
|
4578
4580
|
console.log(`\n${messageLabel(m)}${m.itemId === null ? "" : `, item ${m.itemId}`}`);
|
|
4579
|
-
console.log(
|
|
4581
|
+
console.log([...lines, ...missing].map((line) => ` ${line}`.trimEnd()).join("\n"));
|
|
4580
4582
|
}
|
|
4581
4583
|
console.log("\n--format json gives every message's full words.");
|
|
4582
4584
|
}
|
|
@@ -5232,8 +5234,9 @@ Options:
|
|
|
5232
5234
|
your own ads tagged the same way with their results; with knowledge tag, the tags to put on an entry;
|
|
5233
5235
|
with winners, --ad-format ranks only ads whose format tag is that one (run ads tag-formats first);
|
|
5234
5236
|
with meta ad create, the new ad's angle, hook kind and format, which its name is written from
|
|
5235
|
-
--offer <key> with winners, rank ads on first-touch sales of this offer in the funnel map only
|
|
5236
|
-
still count every sale); with profile messaging, that offer's outcome map,
|
|
5237
|
+
--offer <key> with winners, rank ads on first-touch sales of this offer in the funnel map only, by its key or
|
|
5238
|
+
name (landing pages still count every sale); with profile messaging, that offer's outcome map,
|
|
5239
|
+
segments and personas
|
|
5237
5240
|
--concept <key> meta ad create: the new ad's concept, a key on the client's concept list
|
|
5238
5241
|
--style <style> meta ad create: the new ad's style, if it has one
|
|
5239
5242
|
--confidence high|medium|low with knowledge tag, how sure you are of the tags
|