Commit graph

383 commits

Author SHA1 Message Date
Eric
ebb62af6d9
Website: Deliver contact form messages to Slack (#22231)
Related to: https://github.com/fleetdm/confidential/issues/8098

Changes:
- Updated `deliver-contact-form-message` to send contact form
submissions to a Slack webhook.
2024-09-19 09:09:21 -05:00
Eric
721ed30903
Website: Add search and breadcrumbs to article template page (#22171)
Closes: #15857
Closes: #21850

Changes:
- Updated the article page template to include a search input and
breadcrumb links.
2024-09-19 07:37:22 +09:00
Eric
1f1bc9c949
Website: add default organization to Premium trial license keys. (#22192)
Closes: #22190

Changes:
- updated `save-questionnaire-progress` to set a default value for the
`organization` value of generated license keys (if a user does not have
an organization set)
2024-09-17 18:00:58 -05:00
Eric
867029e9c0
Website: Add Fleet Premium trial to get started questionnaire. (#21922)
Related to: #18869

Changes:
- Updated the /start questionnaire to generate a 30 day, 10 host trial
for Fleet Premium when users submit the step before the "Is it any
good?" step (Where the user is directed to try `fleetctl preview`) and
to save the details (license key and expiration timestamp) of the trial
to their user record.
- Added two new attributes to the User model:
- `fleetPremiumTrialLicenseKey`: A Fleet Premium license key that was
generated for the user when they progressed through the get started
questionnaire.
- `fleetPremiumTrialLicenseKeyExpiresAt`: A JS timestamp of when the
user's Fleet Premium trial license key expires.
- Updated the try-fleet page to have copyable terminal commands, and to
add the `--license_key` flag with the users license key to the command
to run `fleetctl preview`
2024-09-12 17:37:48 -05:00
Eric
c8149fa5e2
Website: update contacts when users subscribe to Fleet Premium (#22004)
Closes: #21921

Changes:
- Updated `save-biling-info-and-subscribe` to update CRM records in the
background when users purchase a self-service license.
2024-09-12 17:17:52 -05:00
Eric
9566b7d320
Website: requested changes from website backend code review (#21934)
Related to: #21918

Changes:
- Changed the name of the query string the endpoint ops page uses for
personalization to be `purpose` (previously `pageMode`)
- Updated `update-or-create-contact-and-account` to only allow automated
psychological stage regressions caused by the get started questionnaire.
- Updated deliver-talk-to-us-form-submission to always set a
psychological stage. (That now may not be set depending on the contact
records psychological stage)
- Updated the `update-or-create-contact-and-account` helper to assert
that the number of employees returned from the `get-enriched` helper is
always a number.
- Updated the version of `sails-hooks-organics` the website uses and
updated the inputs to the sendgrid sendTemplateEmail helper.
2024-09-10 14:36:01 -05:00
Eric
cb2c266774
Website: update guides category page (#21859)
Closes: #21798

Changes:
- Updated the layout and styles for the /guides page.
- Upgraded the version of DocSearch the website uses

---------

Co-authored-by: Mike Thomas <78363703+mike-j-thomas@users.noreply.github.com>
2024-09-06 10:45:01 +09:00
Harrison Ravazzolo
271368c72d
Add Harrison to humans list (#21794) 2024-09-03 14:01:33 -07:00
Allen Houchins
be2d0a6556
added allenhouchins to name list (#21781) 2024-09-03 13:38:27 -05:00
Eric
4ffde1dc09
Website: add new metrics to HistoricalUsageSnapshot model. (#21625)
Related to: #21259

Changes:
- Updated the `receive-usage-analytics` webhook to add new inputs for
metrics added in [#21131](https://github.com/fleetdm/fleet/pull/21131)
- Updated the `HIstoricalUsageSnapshot` model to add attributes for the
new metrics.


When this PR is merged:
- [ ] Put the website into maintenance mode
- [ ] Update the HistoricalUsageSnapshot table to add new columns
- [ ] Update all existing records to set the default value for the new
columns
2024-08-30 17:13:07 -05:00
Eric
ee7b05cb26
Website: Replace eo-it quote (#21734)
Closes: #21695

Changes:
- Removed the quote from Harrison in testimonials.yml
- Updated the order of quotes on the endpoint ops page
- Replaced the quote from Harrison on the /contact and /signup pages
2024-08-30 16:54:08 -05:00
Eric
5b2f8d75ef
Website: Update contacts created by talk to us form submissions (>700 hosts) (#21671)
Closes: https://github.com/fleetdm/confidential/issues/7815

Changes:
- Updated deliver-talk-to-us-form-submission to set contacts who fill
out the "talk to us form" to book a meeting as Psychological stage 4.
2024-08-30 16:34:06 -05:00
Eric
390c6888d7
Website: link to personalized view of endpoint ops page without changing primaryBuyingSituation (#21680)
Closes: #21237

Changes:
- Updated view-endpoint-ops to set a `pagePersonalization` value using
the users primaryBuyingSituation (if it is set) or a `pageMode` query
parameter.
- Updated the endpoint ops page to be personalized based off the
pagePersonalization value set in the view action
- Updated the links to the endpoint ops page on the unpersonalized
homepage to use a pageMode query parameter (e.g., pageMode=it) instead
of a utm_content query parameter.
- Updated the links to the endpoint ops page on the personalized
homepage to not include a utm_content query parameter.
2024-08-30 13:18:47 -05:00
Rebecca Cowart
94a3068646
Added rebeccaui to receive-from-github.js (#21651) 2024-08-28 16:47:15 -04:00
Eric
01225dbba7
Website: deliver contact form submission via email (#20972)
Closes: #20904

Changes:
- Updated the `deliver-contact-form-message` action to send contact form
submissions to Fleet's support email address.
- Added an email template for contact form messages.
2024-08-27 15:43:20 -05:00
Eric
b18f60cf03
Website: Track reason behind psychological stage changes in start flow. (#21483)
Changes:
- Updated the `update-or-create-contact-and-account` helper to support a
new input: `psychologicalStageChangedBy`, and to set the provided value
on contact records.
- Updated `save-questionnaire-progress` to set a
psychologicalStageChangedBy value when updating contact records.
2024-08-24 13:40:12 -06:00
Eric
0007351602
Website: send start flow responses to CRM (#21485)
Changes:
- Updated save-questionnaire-progress to send a formatted string of a
user's start questionnaire responses to the
update-or-create-contact-and-account helper
- Updated the update-or-create-contact-and-account helper to set
getStartedResponses on contact records.
2024-08-22 12:34:13 -06:00
Eric
2fc5602eb4
Website: Track psystage and buying situation changed changes caused by start flow in Segment. (#21482)
Related to: https://github.com/fleetdm/confidential/issues/7339

Changes:
- Updated `save-questionnaire-progress` to return the user's selected
`primaryBuyingSituation`
- Updated the /start flow to update data in Segment
- Removed the border on the /start flow images that I mistakenly added.
2024-08-21 21:58:15 -06:00
Eric
637e5e1216
Website: Update /start questionnaire steps and add images (#21452)
Closes: #21417 
Closes: #21413
Closes: #21378 


Changes:
- Updated save-questionnaire-progress to return the user's current
psychological stage when a user submits a step of the /start
questionnaire
- Updated the /start questionnaire to display an image that changes as
the user's psychological stage progresses.
- Updated the first step of the /start questionnaire and gave users the
ability to go back to the first step.
- Added an option for Linux to the "what do you manage" question that is
asked to MDM-focused users
- Added a step for MDM-focused users filling out the /start
questionnaire
- Updated the /start CTA to show different images based on psychological
stage and to be visible to users who have not purchased a self-service
license
2024-08-21 11:54:06 -06:00
Eric
05f9f5dd77
Website: update values set by SF helpers. (leadSource » contactSource) (#21408)
Changes:
- Updated the `update-or-create-contact-and-account` helper to set a
"Contact source" on new contact records created.
- Updated everywhere where a lead source was being set to instead set a
contact source
2024-08-19 15:42:49 -05:00
Mike Thomas
ebfd5c27ee
Re-order pricing categories (#21297)
Follow up to https://github.com/fleetdm/fleet/pull/20993 to re-order
categories on the pricing page.
2024-08-16 11:24:23 -05:00
Mike Thomas
9041f49d7f
Website: update features on pricing page (#20993)
- Removed duplicate and redundant features
- Reordered features by order of operation from the POV of an IT admin
- Consolidated use cases
- Renamed some features for clarity

See [this
doc](https://docs.google.com/document/d/1z7X__TmJIpRXQF-Mx9NK4EChwkX73fj0ymLnIJM2GnQ/edit?usp=sharing)
for more details, including methodology for the organization and
styling.

---------

Co-authored-by: Eric <eashaw@sailsjs.com>
Co-authored-by: Noah Talerman <47070608+noahtalerman@users.noreply.github.com>
2024-08-14 09:32:41 +09:00
Joanne Stableford
dfafc118f6
Update receive-from-github.js (#21182) 2024-08-08 11:07:08 -05:00
Eric
b49841acc1
Website: Add unsubscribe link to marketing emails (#21055)
Closes: https://github.com/fleetdm/confidential/issues/7528

Changes:
- Added a new action: unsubscribe-from-marketing-emails, which updates a
user record that uses a specified email address to exclude it from the
deliver-nurture-emails script.
- Updated the email template to include a link that users can click to
unsubscribe.
- Added a modal to the homepage that is shown to users who unsubscribe
from marketing emails
- Updated the email template data in deliver-nurture-emails and
view-email-template-preview
2024-08-05 16:23:08 -05:00
Eric
ba2f79e1c4
Website: personalize /better page for Secure Frame users (#20890)
Related to: https://github.com/fleetdm/confidential/issues/7227

Changes:
- Added a banner to the /better page that is visible to users who visit
it with a `?utm_content=secureframe` query param.
- Updated the `<animated-arrow-button>` component to support customizing
text and arrow color.
2024-07-31 17:40:41 -05:00
Eric
6fd628463d
Website: fix pricing table filtering (#20912)
Changes:
- Fixed the IT and Security filtering on the pricing features table.
2024-07-31 17:25:18 -05:00
Eric
fbf1f55399
Website: Remove duplicate "Fleet" from page titles (#20893)
Changes:
- Removed the duplicate "Fleet" from page titles.
2024-07-31 14:50:42 -05:00
Eric
ddc0cdbcab
Website: add automated MDM nurture emails (#20760)
Changes:
- Added three new emails for MDM-focused users who are psystage 3, 4
,and 5.
- Added a new email layout
- Added a script to send nurture emails to users with an MDM primary
buying situation who signed up after 2024-07-22 that
   - have been in psychological stage 3 for 24 hours
   - have been in psychological stage 4 for 24 hours
   - have been in psychological stage 5 for six weeks
- Updated the USer model to have. four new attributes:
   - `psychologicalStageLastChangedAt`
   - `stageThreeNurtureEmailSentAt`
   - `stageFourNurtureEmailSentAt`
   - `stageFiveNurtureEmailSentAt`
- Added a new custom config variable
`sails.config.custom.contactEmailForNutureEmails`
2024-07-26 20:25:26 -05:00
Eric
52f6ff142c
Website: Reorder pricing features YAML (#20713)
Changes:
- Reordered the pricing page YAML to match the order in [the latest
wireframes](https://www.figma.com/design/3he8e72251IEnF6dBafKq1/%F0%9F%9A%A7-fleetdm.com-(scratchpad)?node-id=15042-3959&m=dev&t=8KCdpYqJh8Pk5Aze-1)
- Added ASCII art headings to the pricing features YAML to separate
features
- Added an example feature to the top of the pricing features YAML
- Updated how features are sorted on the pricing page
2024-07-25 17:33:26 -05:00
Eric
da3ad28f4c
Website: add deal registration page (#20667)
Closes: #19531

Changes:
- Added a deal registration page at /deals
- Added a new email template: `email-deal-registration`
- Added a new action to send the deal registration form submission to
the email address set in the `sails.config.custom.
dealRegistrationContactEmailAddress` config variable
- Updated the HTML email preview page to support the new email template.
2024-07-25 13:12:08 -05:00
Eric
adf140501a
Website: update contact form CRM records (#20645)
Closes: https://github.com/fleetdm/confidential/issues/7394

Changes:
- Updated update-or-create-contact-and-account to set descriptions on
contacts
- Updated deliver-talk-to-us-form-submissions to not create leads for
users sent to the "Lets get you set up!" event
- Updated deliver-contact-form-message to only create contact records.
2024-07-22 17:25:31 -05:00
Joanne Stableford
13aafaf46a
Update receive-from-github.js (#20625) 2024-07-22 11:45:59 -04:00
Sam Pfluger
40b69afeff
Add Charles Zaffery qoute to testimonials.yml (#20453)
Co-authored-by: Eric <eashaw@sailsjs.com>
2024-07-18 14:41:54 -05:00
Eric
673368332b
Website: Update lead source on contact records (#20383)
Changes:
- Updated signup.js to add the "Website - Sign up" lead source to new
contact records.
2024-07-11 11:31:05 -05:00
Eric
e5188eaac6
Website: disable Mergefreeze related code in GH webhook (#20292)
Changes:
- Commented out code related to Mergefreeze in the receive-from-github
webhook.
2024-07-09 17:57:15 -05:00
Eric
670a8ef2a0
Website: Set leadSource on new contact records (#20285)
Closes: #20284

Changes:
- Updated the `update-or-create-contact-and-account` helper to set a
lead source on new contact records
- Updated `update-or-create-contact-and-account-and-create-lead` to to
pass in a lead source to the `update-or-create-contact-and-account`
helper
- Updated save-questionnaire-progress to set a lead source on newly
created contact records
2024-07-09 17:04:12 -05:00
Eric
caa27322fe
Website: Disable lead creation from get started questionnaire submissions (#20250)
Changes:
 - Removed SF lead creation in the `save-questionnaire-progress` action.
2024-07-08 11:29:32 -05:00
Eric
0abe6ab6f5
Website: follow-up changes from backend code review (#20174)
Closes: #20102

Changes:
- Replaced timers.setImmediate with `.exec()` when CRM records are
updated in the background
- Removed the `\s` replacement during relative link modification in
build-static-content and added a comment explaining why we replace URL
encoded spaces in links.
2024-07-02 17:00:10 -05:00
Eric
2e19e37a0a
Website: Update leads created from "Talk to us" form submissions. (#20140)
Related to: #20107


Changes:
- Updated the description of leads created from "Talk to us" form
submissions to include the name of the Calendly event.
2024-07-02 16:25:54 -05:00
Eric
74fdf7a29d
Website: update username in authorGitHubUsername meta tags & list of maintainers (#19999)
Changes:
- Updated the `authorGitHubUsername` meta tag for three articles
- Updated a GitHub username in the list of maintainers in the
receive-from-github webhook.
2024-06-25 16:42:41 -05:00
Eric
e2ab9a2fe8
Website: Update Vanta authorization URL when a redirect URL is specified (#19798)
Closes: https://github.com/fleetdm/confidential/issues/6069

Changes:
- Added a new route going to the create-vanta-authorization-request
action: `/api/v1/create-external-vanta-authorization-request`
- Added a new input to the create-vanta-authorization-request action:
`sharedSecret` - A secret that must match
`sails.config.custom.sharedSecretForExternalVantaRequests` when an
external request is made to the
`/api/v1/create-external-vanta-authorization-request` endpoint
- Updated the authorization URL returned by the
create-vanta-authorization-request endpoint
- Updated the redirect in the view-vanta-authorization endpoint (if a
redirect URL is provided) to not use res.redirect() (it causes 500
errors) when redirecting users.
2024-06-17 13:28:39 -05:00
Eric
30f90c8216
Website: Remove "explore data" pages (#19777)
Related to: https://github.com/fleetdm/confidential/issues/5573

Changes:
- Deleted /explore-data pages and related files
- Added redirects for removed pages.
- Removed all explore data related website configuration in the
build-static-content script.
- Removed the explore data section of the custom configuration.
2024-06-14 17:50:07 -05:00
Eric
9cd452e8d5
Website: Update Vanta integration (#19349)
Closes: https://github.com/fleetdm/confidential/issues/6069

Changes:
- Added a new action to add support for the Vanta integration to be set
up from a partners website. This action sets the required cookies
provided via queryString and redirects users to the Vanta authorization
page.
- Updated the `create-vanta-authorization-request` action to redirect
users who provide a `redirectToExternalPageAfterAuthorization` value the
new endpoint instead of returning a vanta authorization URL.
- Updated `view-vanta-authorization` to redirect users to the URL
provided to the `create-vanta-authorization-request` endpoint (if one
was provided)
2024-06-14 07:40:49 -04:00
Eric
80a9ffeb69
Website: add step to the /start questionnaire for users who don't want to use Fleet (#19514)
Closes: https://github.com/fleetdm/confidential/issues/6287

Changes:
- Added a new page to the /start questionnaire where users can let us
know they're not interested in using Fleet.
2024-06-05 10:52:25 +09:00
Eric
9ea69df576
Website: add new usage statistics (#19315)
Closes: https://github.com/fleetdm/fleet/issues/19308

Changes:
- Added six new attributes to the `HistoricalUsageSnapshot` model (
`numSoftwareVersions`, `numHostSoftwares`, `numSoftwareTitles`,
`numHostSoftwareInstalledPaths`, `numSoftwareCPEs` and
`numSoftwareCVEs`)
- Added inputs to the receive-usage-analytics webhook for the new usage
statistics.


When this PR is merged, we will need to migrate the Fleet website's
database to add the new columns, to do this:
- [x] Make an announcement in Slack to let people know the website will
be offline for ~8 minutes
- [ ] Merge this PR
- [ ] As the deploy action runs, put the website into maintenance mode
- [ ] Add the new columns for the added attributes
- [ ] Set the default value for the new attributes on existing database
records
- [ ] After the deploy workflow is complete, take the website out of
maintenance mode.
2024-06-04 18:36:25 -05:00
Eric
f546ebe102
Website: uncomment MergeFreeze requests in GitHub webhook (#19449)
Closes: #19369

Changes:
- Re-enabled the requests to MergeFreeze in the receive-from-github
webhook
2024-06-03 10:44:02 -05:00
Eric
bf239ecc78
Website: Add site-wide CTA to bring users back to the /start questionnaire (#19393)
Closes: #18530

Changes: 
- Added a collapsable sitewide CTA to bring users who have not completed
the get started questionnaire back to the /start page.
- Added a new action (`account/updateStartCtaVisibility`) to set a
timestamp of when the CTA will be visible (not collapsed) in a user's
session when they close the CTA

---------

Co-authored-by: Mike Thomas <78363703+mike-j-thomas@users.noreply.github.com>
2024-05-31 18:44:13 -05:00
Eric
a28f0a9422
Website: disable MergeFreeze requests in receive-from-github webhook. (#19371)
Related to: https://github.com/fleetdm/fleet/issues/19369

Changes:
- Disabled the requests to MergeFreeze that unfreeze auto-approved PRs
when the main branch of the Fleet repo is frozen.
2024-05-30 11:19:55 -05:00
Roberto Dip
d98e1ecf27
allow to customize the signed CSR return type (#19213)
for #19027, this modifies the website to accept an `deliveryMethod` parameter to
respond with the signed CSR instead of delivering an email.

The current approach also maintains backwards compatibility:

**Response without `deliveryMethod` (unchanged except for custom headers)**

```
$ curl --insecure -v -H 'content-type: application/json' http://localhost:2024/api/v1/deliver-apple-csr -d '{"unsignedCsrData": "foo"}'
*   Trying [::1]:2024...
* Connected to localhost (::1) port 2024
> POST /api/v1/deliver-apple-csr HTTP/1.1
> Host: localhost:2024
> User-Agent: curl/8.4.0
> Accept: */*
> content-type: application/json
> Content-Length: 26
>
< HTTP/1.1 200 OK
< X-Powered-By: Sails <sailsjs.com>
< Cache-Control: no-cache, no-store
< X-Exit: success
< X-Exit-Description: Delivered email to specified email address with certificate signing request attached.
< Content-Type: text/plain; charset=utf-8
< Content-Length: 2
< ETag: W/"2-nOO9QiTIwXgNtWtBJezz8kv3SLc"
< Set-Cookie: sails.sid=s%3AqOZoNKY2CCZ6PFb9fIKaAjtiTKjB7Gum.9jodWIUG6DCNnXu%2Bn%2BF8cJmI%2Fn19Tk%2FdIkDPBl%2BILbI; Path=/; HttpOnly
< Date: Wed, 22 May 2024 18:23:16 GMT
< Connection: keep-alive
< Keep-Alive: timeout=5
<
* Connection #0 to host localhost left intact
OK
```

**Response with `deliveryMethod=json`**

```
$ curl --insecure -v -H 'content-type: application/json' http://localhost:2024/api/v1/deliver-apple-csr?deliveryMethod=json -d '{"unsignedCsrData": "foo"}'
*   Trying [::1]:2024...
* Connected to localhost (::1) port 2024
> POST /api/v1/deliver-apple-csr?alt=json HTTP/1.1
> Host: localhost:2024
> User-Agent: curl/8.4.0
> Accept: */*
> content-type: application/json
> Content-Length: 26
>
< HTTP/1.1 200 OK
< X-Powered-By: Sails <sailsjs.com>
< Cache-Control: no-cache, no-store
< Content-Type: application/json; charset=utf-8
< X-Exit: success
< X-Exit-Description: Delivered email to specified email address with certificate signing request attached.
< X-Exit-Output-Friendly-Name: RSS feed XML
< Content-Length: 26
< ETag: W/"1a-NnuclRv86ZEKA9WB967iUGlz84s"
< Set-Cookie: sails.sid=s%3AbpaKOTbNe4E911qH4z1-12ABGd_z2d2I.mAimDARoZgnq8zpJHcF95y8qFJXX0iky4Suj0HUKjpI; Path=/; HttpOnly
< Date: Wed, 22 May 2024 18:22:07 GMT
< Connection: keep-alive
< Keep-Alive: timeout=5
<
* Connection #0 to host localhost left intact
{"csr":"UEQ5NGJXdy4uLg=="}
```

# Checklist for submitter

- [x] Manual QA for all new/changed functionality

---------

Co-authored-by: Eric <eashaw@sailsjs.com>
2024-05-28 10:08:03 -03:00
Eric
2af2c41572
Website: Update round robin in salesforce helpers & move lead creation to save-questionnaire-progress. (#19209)
Closes: #18932

Changes:
- Updated `update-or-create-contact-and-account.js` to not round robin
new account records created.
- Updated create-lead to reassign accounts owned by the integrations
admin user when a new lead is created.
- Updated logged warnings in signup, deliver-contact-form-message and
deliver-talk-to-us-form-submission.
- Updated signup.js to not create salesforce leads (only account and
contact records)
- Updated save-questionnaire-progress to create Salesforce leads when we
know the user has a use case for Fleet.
2024-05-27 16:43:40 -05:00