npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@activeprospect/testlead

v1.0.0

Published

A simple command-line utility to generate test lead posts with fake data

Downloads

16

Readme

testlead / testfeedback

This LeadConduit test utility includes two scripts: testlead and testfeedback.

The first, testlead, takes a posting URL, and an optional list of standard field names. It generates fake but legitimate-looking data and posts it to the given URL.

The second, testfeedback, takes an ActiveProspect account API key and the BSON ID of a recipient step in a flow belonging to that account. It queries the API for a recent successful delivery to that recipient, and then posts a conversion or return to it.

Installation

Suitable for global installation:

npm install -g @activeprospect/testlead

Testlead Usage

Usage is: testlead [ -d "key1=val1,key2=val2" ] [ -v ] [ -o [ -b browsername ]] [ -p n ] url [ fields...]

$ testlead https://next.staging.leadconduit.com/flows/549093d1600f56d6475fa79f/sources/541887ea14251b0336f9dba1/submit email first_name city postal_code

Lead posted for [email protected] to https://next.staging.leadconduit.com/flows/549093d1600f56d6475fa79f/sources/541887ea14251b0336f9dba1/submit ({"outcome":"success","lead":{"id":"5ab0239c1438145681fbc025"}})

-d - define data to not fake

The data sent for the fields listed at the end of the command string (or the default field set, if none listed) is random, fake data. Use the -d option to include set, non-fake data in your test lead. For example, if your flow has a filter to reject juveniles and anyone outside of Texas, you could force those values with -d "age=19&state=TX&foo=bar bip bap" (note that if you provide more than one value, or a value with spaces, you'll need to quote the value or escape those characters).

-o & -b - open leads in your browser

Specify this flag to open the posted lead's detail in LeadConduit in your default browser (or in the browser you specify with -b).

-v - verbose

Output verbose details about the request (URL and body) and response (status, body, headers, and err).

-p - set probability to randomize repeated runs

This option adds some randomness, and is most useful in crontab-scripted scenarios. Using this, you can schedule the script to run on a simple every-minute schedule, but control the overall rate of posts to something less than one per minute.

If -p (or --probability) is given, with a number between 0 and 100, the script will generate a number in that range, and only post a lead if the value is less than this optional value.

For example, with -p 10, a lead will only be posted about 10% of the time, whereas with -p 95, a post will usually happen.

The output will state when the probability isn't met:

Skipping post to https://next.staging.leadconduit.com/flows/549093d1600f56d6475fa79f/sources/541887ea14251b0336f9dba1/submit

fields - specify what fields to fake

The final parameter supported is a list of LeadConduit-standard fields. If not specified, the test lead will be made up of email, first_name, and last_name.

The first parameter listed (or email if none are given) is used in the log output.

Testfeedback Usage

Usage is testfeedback -a api_key -i recipient_id [ -v ] [ -s ] [ -t type ] [ -r reason ]

$ lib/testfeedback.js -a 123458c380987654321b9f696de00000 -i 5d5aaadf6c445f078efaf138 -t conversion -r "Closed won"

conversion of lead 5e441d293e8c493d5e30b946, with reason: 'Closed won': success

-a - set API key

This is the ActiveProspect API key for the account in which you're providing feedback, needed to query events from the API.

-i - ID of recipient

This is the BSON ID of the recipient step which you're providing feedback for. To find this, you have to dig it out of the flow JSON, as queried from the API (i.e., in the browser dev-tools, an API query of the flow, or the database).

-t - specify feedback type

Must be one of conversion or return; default is return.

-r - specify feedback reason

Any string to be used as the conversion or return reason text; defaults to "bad lead, boo" for returns, or "good lead, yay" for conversions.

-p - set probability to randomize repeated runs

See testlead, above.

-v - verbose

See testlead, above.

Lambda execution

In addition to being an interactive tool to send test leads and feedback, this tool is also used internally to automate sending test data into a developer test flow and some sales demo flows in the "ActiveProspect, Inc. Demo" account. This code is run from AWS (in the LeadConduit staging account), where CloudWatch/EventBridge triggers a Lambda execution every minute (the lambda() function is defined in index.js).

Configuration for these submissions is controlled by two JSON files, read from the S3 bucket sales-and-dev-leads-config (also in the LeadConduit staging account): leadSubmissions.json and feedbackSubmissions.json. Examples of the format expected can be found in the manual/test invocation script lib/manualdemo.js.

Note that use of automated feedback by that Lambda function also requires the presence of demoConfig/keys.json in the deployed package, with your LeadConduit API key defined, like this:

{
  "apikey": "your_lc_api_key_here"
}

Updates can be deployed based on the script deploy.sh.