Commit graph

124 commits

Author SHA1 Message Date
Eric
30abc992fb
Website: fix typo in error handler in create-historical-event helper (#33886)
Changes:
- Fixed a typo in an error returned by the create-historical-event
helper. (`inpsect` » `inspect`)
2025-10-06 14:50:59 -05:00
Eric
292c23497f
Website: Update Android Proxy endpoints to return 404 responses if an Android Enterprise are not managed by Fleet (#33816)
Related to: https://github.com/fleetdm/fleet/issues/33266

Changes:
- Added a new helper
`sails.helpers.androidProxy.getIsEnterpriseManagedByFleet`. This helper
returns `true` if a provided Android Enterprise ID is present in the
list of all Android Enterprises managed by Fleet, or `false` if it is
not in the list.
- Updated `create-android-enrollment-token`,
`create-android-signup-url`, and `modify-android-policies` to return a
404 response to the requesting Fleet instance if their Android
Enterprise is not managed by Fleet.
2025-10-06 12:50:42 -05:00
Sam Pfluger
9604e64f28
Create "Marketing-led" and "Sales-led" intent signals (#33845) 2025-10-04 19:57:05 -05:00
Sam Pfluger
e0d27a808d
Added intent signals (#33721)
Added intent signals for:
- Let's get you set up
- Talk to us
- Submitted contact form

---------

Co-authored-by: Eric <eashaw@sailsjs.com>
2025-10-01 14:28:23 -05:00
Sam Pfluger
84715f4b19
Update intentSignal (#33183) 2025-09-18 15:28:01 -05:00
Sam Pfluger
9fec274d5e
Add contact source (#33178)
Add "Event - Engaged with Fleetie at event" contact source
2025-09-18 14:05:22 -05:00
Eric
3c6baf142a
Website: Update CRM helper use global domain for new accounts (#32559)
Related to: https://github.com/fleetdm/confidential/issues/11892

Changes:
- Updated the update-or-create-contact-and-account helper to use the
prompt helper to get a global domain for a company, and to use that
global domain when searching for and creating new account records.
2025-09-08 12:47:49 -05:00
Eric
68005bd44f
Website: update get-enriched helper. (#32480)
Related to https://github.com/fleetdm/confidential/issues/12052

Changes:
- updated the get-enriched helper to use the coresignal's new search API
endpoints
- Updated the `intercept()`s in the get-enriched helper to log warnings
if an error is returned by the coresignal API
2025-08-29 18:29:08 -05:00
Victor Lyuboslavsky
a07f8f5344
Track SDLC metrics. (#31409)
Fixes #30483 

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **New Features**
* Added a new webhook endpoint to track GitHub Projects v2 item status
changes and record engineering metrics.
* Integrated with Google BigQuery for storing and analyzing issue status
transition data.

* **Chores**
* Introduced a new POST API route for receiving GitHub Projects v2 item
events.
* Added configuration options for GitHub webhook secrets and Google
Cloud service account keys (commented out for future use).
  * Added a new dependency for Google BigQuery integration.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: Eric <eashaw@sailsjs.com>
2025-08-19 13:24:54 -05:00
Eric
de8bac0c4f
Website: Update returned value from create-historical-event helper. (#30003)
Changes:
- Updated the return value of the create-historical-event helper.
2025-06-13 15:15:25 -05:00
Eric
13eeebe548
Website: Add Microsoft compliance proxy endpoints. (#27403)
Changes:
- Created a new database model: `MicrosoftComplianceTenant`. A model
that stores information about complaince tenants
- Added `/policies/is-cloud-customer`: a policy that blocks requests to
microsoft proxy endpoints if a `MS API KEY` header is missing or does
not match a new config variable
(`sails.custom.config.cloudCustomerCompliancePartnerSharedSecret`)
- Added `microsoft-proxy/create-compliance-partner-tenant`: an action
that creates a database record for a new compliance tenant and generates
an API key that is used to authenticate future requests to microsoft
proxy endpoints for an entra tenant.
- Added `microsoft-proxy/get-compliance-partner-settings`: an action
that returns information about Fleet's complaince partner entra
application and the entra tenant's admin consent status (whether or not
a tenant's entra admin has granted permissions to Fleet's compliance
partner application)
- Added `microsoft-proxy/get-tenants-admin-consent-status`: an action
that updates the admin consent status of a compliance tenant record.
- Added `microsoft-proxy/setup-compliance-partner-tenant`: an action
that provisions a compliance tenant, creates a complaince policy for
macOS devices assigns the created policy to the built-in "All users"
user group on the tenants entra instance.
- Added `microsoft-proxy/update-one-devices-compliance-status`: an
action that receives information about a device on a compliance tenant's
Fleet instance, sends that information to their Entra instance, and
returns the messsage ID returned by the asynchronus Entra API.
- Added `microsoft-proxy/get-one-compliance-status-result`: an action
that returns the result of a compliance status update from the Entra
API.
- Added `sails.helpers.microsoft-proxy.get-access-token-and-api-urls` A
helper that gets an access token for a tenant's entra instance and the
URLs of the API endpoints the microsoft proxy actions use for a tenant.
- Added `scripts/send-entra-heartbeat-requests` A script that will run
daily to keep all microsoft compliance integrations provisioned.
-

---------

Co-authored-by: Lucas Rodriguez <lucas@fleetdm.com>
2025-06-11 13:01:36 -05:00
Eric
1929c77574
Website: update CRM helper. (#29811)
Changes:
- Fixed a bug in the create-or-update-contact-and-account help that was
causing the email value of contacts to be overwritten
2025-06-06 18:52:56 -05:00
Eric
6a70c31024
Website: Update CRM helper to handle duplicate record errors. (#29808)
Closes: https://github.com/fleetdm/confidential/issues/10697

Changes:
- Updated the update-or-create-contact-and-account helper to handle
duplicate record errors returned from the CRM. It will now use the first
duplicate record returned by the CRM and update it so it will be
correctly matched on subsequent runs of the helper.
2025-06-06 16:21:43 -05:00
Mike McNeil
d02fde22cf
Add ai.improvePrompt() (#29660) 2025-05-31 00:30:42 -04:00
Eric
ae7dac7e2b
Website: add create-historical-event helper (#29435)
Closes: https://github.com/fleetdm/confidential/issues/10718
Related to: https://github.com/fleetdm/confidential/issues/10719

Changes:
- Created a new helper
(`sails.helpers.salesforce.createHistoricalEvent`) to create Historical
event records in our CRM.
- Updated the custom hook, receive-from-clay webhook, and
create-or-update-one-newsletter-subscription action to create historical
event records using the new helper.
2025-05-23 17:59:58 -05:00
Eric
9ef9dafbea
Website: Update supported contactSource values in update-or-create-contact-and-account helper. (#29371)
Changes:
- Added a new supported contactSource value to the
`update-or-create-contact-and-account` helper: `LinkedIn - Liked the
LinkedIn company page`
2025-05-21 17:38:39 -05:00
Eric
ae6f3788fd
Website: add receive-from-clay webhook (#29301)
ChangeS:
- Added a new webhook (`receive-from-clay`) that creates historical
event CRM records.
- Updated the update-or-create-contact-and-account helper to accept
three new contactSource values and a jobTitle input.
2025-05-20 15:29:30 -05:00
Mike McNeil
ee880d953b
Website: Trivial code shortening (#29231)
Just a nit

---------

Co-authored-by: Eric <eashaw@sailsjs.com>
2025-05-16 18:25:06 -05:00
Mike McNeil
94aa200424
More ai helpers (#29027)
I will upstream these ahead of next week into sails-hook-organics.
2025-05-12 17:01:43 -05:00
Eric
7ad72ad47c
Website: update enrichment helper to use new API routes (#28867)
Changes:
- Updated the HTTP requests in the get-enriched helper to use
Coresignals' new API routes and authorization method.
2025-05-06 12:19:25 -05:00
Mike McNeil
242658183a
Introducing sails.helpers.ai.satisfy() (#28590)
Constraint satisfaction for dummies like me
2025-04-26 15:16:07 -05:00
Eric
044e59c7e7
Website: improve speed of query generator (#26701)
Changes:
- Updated the prompt helper to accept a new input: `systemPrompt`, if
provided and a supported baseModel is selected, the system prompt will
be included in the Open AI API request along with the prompt.
- Updated the models used by the query generator to improve the speed of
query generation.
2025-02-28 12:28:15 -06:00
Eric
6cfecdeea3
Website: Add Powershell commands to queries.yml and standard query library. (#25972)
Changes:
- Added powershell commands to windows queries in queries.yml and
windows policies in the standard query library.
- Updated code blocks on the vital details, policy details, and query
details pages to have a tab switcher to switch to view PowerShell
commands.

---------

Co-authored-by: Mike McNeil <mikermcneil@users.noreply.github.com>
2025-02-02 21:31:00 -06:00
Eric
2ca4f2f376
Website: Allow double curly brace templates in Markdown code blocks. (#25179)
Closes: https://github.com/fleetdm/fleet/issues/25176

Changes:
- Updated the to-html helper to add the `v-pre` directive to Markdown
code blocks, This directive will prevent any of the content inside of it
from being interpreted as a Vue template.
- Updated the regex in build-static-content that looks for vue templates
to not match any templates inside code blocks.
2025-01-06 14:07:31 -06:00
Eric
5f5b7bb273
Website: Update CRM helper to handle contacts with no stage. (#24143)
Closes: https://github.com/fleetdm/confidential/issues/8975

Changes:
- Updated the update-or-create-contact-and-account helper to only check
the current stage value of a contact record if the value is set.
2024-11-25 14:58:25 -06:00
Eric
2d8ebb4388
Website: Update CRM helper and usage (#23670)
Changes:
- Updated the update-or-create-contact-and-account helper to update
created contact records with a psychological stage
- Updated places where we were using the
update-or-create-contact-and-account helper to set a contact source on
new records.
2024-11-11 12:35:49 -06:00
Eric
6065fa5d77
Website: Set psychologicalStageChangeReason and intentSingals on contacts created from newsletter submissions (#23544)
Closes: https://github.com/fleetdm/confidential/issues/8690
Closes: https://github.com/fleetdm/confidential/issues/8691

Changes:
- Updated the update-or-create-contact-and-account to set intentSignals
on contacts
- Updated create-or-update-one-newsletter-subscription to set
psychologicalStageChangeReason and intentSignal on contacts.
2024-11-05 16:02:34 -06:00
Eric
ca73acfc3a
Website: add newsletter subscription form to homepage (#23362)
Related to: #23212

Changes:
- Added a form to the homepage for users to subscribe to the Fleet
newsletter.
- Updated the unsubscribe-from-all-newsletters action to redirect users
to the fleet homepage once they are unsubscribed from the newsletter.
- Updated the update-or-create-one-newsletter-subscription action to
create/update CRM records when users sign up for the Fleet newsletter.
2024-10-30 15:14:08 +09:00
Mike McNeil
49f22b2836
Ask questions in natural language (#23034) 2024-10-19 18:24:50 -05:00
Eric
adc7713e04
Website: Update license key generator (#22138)
Related to: https://github.com/fleetdm/fleet/issues/18869

Changes:
- Updated the `create-license-key` helper to round timestamps down to
the nearest whole number.
2024-09-16 16:58:09 -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
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
24377ee08d
Website: Update SF helper to ensure numberOfEmployees is always a number. (#21642)
Closes: https://github.com/fleetdm/confidential/issues/7844

Changes:
- Updated the get-enriched helper to fix the return value for
numberOfEmployees.
- Updated the update-or-create-contact-and-account to make sure the
number of employees set on new account records is always a number.
2024-08-28 14:16:27 -05: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
Mike McNeil
1a48c6b32a
Website: Make Drew have to do less work dealing with data (#21516)
Co-authored-by: Eric <eashaw@sailsjs.com>
2024-08-23 12:48:13 -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
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
Eric
c0cc609127
Website: Use GitHub API to get lastmodifiedAt timestamps (#20859)
Closes: #20823

Changes:
- Updated the build-static-content script to use the GitHub API to get
timestamps of when files were last changed.
- Updated the get-extended-osquery schema helper to use a GitHub token
to authenticate GitHub requests (if it is provided)
2024-08-02 17:10:56 -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
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
223e1f2362
Website: Update contact record creation (#19922)
Closes: https://github.com/fleetdm/confidential/issues/6929

Changes:
- Updated the update-or-create-contact-and-account helper to search for
an existing contact by email address before searching for an account
with the information provided by the get-enriched helper. This change
will allow us to change the account that a contact is associated with in
the CRM without duplicate records getting (re)created.
2024-06-21 17:12:01 -05:00
Eric
477e46a96d
Website: Update SF helper to search for existing account records by name (#19918)
Closes: #19895

Changes:
- Updated the `update-or-create-account-and-contact` helper to search
for an existing account record by name before searching by website. This
additional search adds ~1.5 seconds to the time the helper runs in the
background but greatly reduces the chances of creating duplicate
accounts.
2024-06-20 17:02:00 -05:00
Eric
b2e9e0a055
Website: Update Github helper (#19892)
Closes: #19891

Changes:
- Updated the `get-is-pr-handbook-only-changes` helper to return false
if a PR contains no changed files.
2024-06-20 11:23:50 -05:00
Eric
1fac823fa9
Website: Update Salesforce helepr to set an an Owner ID on all new records. (#19609)
Changes:
- Updated the update-or-create-contact-and-account helper to always set
the integrations admin user as the owner of new accounts and contact
records created.
2024-06-09 15:00:55 -05:00
Eric
da0268eec8
Website: Update Markdown headings (#19608)
Closes: #19606

Changes:
- Updated the `to-html` helper to add optional linebreaks to all
Markdown headings that contain an underscore.
2024-06-07 17:48:44 -05:00
Eric
d25c257db3
Website: update salesforce leads created by website (#19498)
Changes:
- Removed unused/unneeded values that are set on new lead records
created by the website
2024-06-05 17:00:27 -05:00
Eric
02437a098e
Schema: change default block scalar used in schema override files (#19296)
Closes: #19271
Closes: #19286

Changes:
- Updated the example in the schema folder readme
- Updated the block scalar used in Fleet's osquery override
documentation (`>-` » `|-`) and removed extra newlines
- Updated the block scalar used in URLs used to create new yaml override
files
- Regenerated osqeury_fleet_schema.json
2024-05-27 18:18:56 -05: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
Eric
5261faaa11
Website: Update round robin in Salesforce helper (#19131)
Changes:
- Updated the update-or-create-contact-and-account helper to round-robin
existing accounts owned by an inactive Salesforce user
2024-05-17 18:14:22 -05:00