@feastalytics/cli 0.1.16 → 0.1.18
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/README.md +12 -3
- package/dist/cli.js +170 -232
- package/package.json +6 -3
- package/skills/feast/SKILL.md +131 -0
- package/{feast → skills/feast}/references/domains.md +9 -7
- package/{feast → skills/feast}/references/links.md +11 -11
- package/skills/feast/references/setup.md +80 -0
- package/skills/feast/references/workflows/ad-copy-creator.md +92 -0
- package/skills/feast/references/workflows/ad-copy-guest.md +128 -0
- package/skills/feast/references/workflows/ads.md +62 -0
- package/skills/feast/references/workflows/automations.md +100 -0
- package/skills/feast/references/workflows/campaigns.md +75 -0
- package/skills/feast/references/workflows/creators.md +96 -0
- package/skills/feast/references/workflows/funnels.md +30 -0
- package/skills/feast/references/workflows/guests.md +38 -0
- package/skills/feast/references/workflows/members-program.md +30 -0
- package/skills/feast/references/workflows/onboarding.md +33 -0
- package/feast/SKILL.md +0 -105
- package/feast/references/setup.md +0 -70
- package/feast/references/workflows/ad-copy-creator.md +0 -94
- package/feast/references/workflows/ad-copy-guest.md +0 -130
- package/feast/references/workflows/ads.md +0 -50
- package/feast/references/workflows/automations.md +0 -98
- package/feast/references/workflows/campaigns.md +0 -43
- package/feast/references/workflows/creators.md +0 -90
- package/feast/references/workflows/funnels.md +0 -34
- package/feast/references/workflows/guests.md +0 -22
- package/feast/references/workflows/members-program.md +0 -26
- package/feast/references/workflows/onboarding.md +0 -34
package/dist/cli.js
CHANGED
|
@@ -8669,7 +8669,7 @@ var CLI_MANIFEST = {
|
|
|
8669
8669
|
{
|
|
8670
8670
|
"id": "ads_activate_entity",
|
|
8671
8671
|
"domain": "ads",
|
|
8672
|
-
"description": "Take
|
|
8672
|
+
"description": "Take one Meta campaign, ad set or ad from PAUSED to ACTIVE. Spends real money: only after the human explicitly confirms. Does not cascade, so activate top-down; willDeliver false (a paused parent, listed in pausedAncestors) means live in name only, so say so. For a campaign Feastalytics published, use setAdCampaignStatus, which cascades.",
|
|
8673
8673
|
"type": "mutation",
|
|
8674
8674
|
"path": [
|
|
8675
8675
|
"api",
|
|
@@ -8709,7 +8709,7 @@ var CLI_MANIFEST = {
|
|
|
8709
8709
|
{
|
|
8710
8710
|
"id": "ads_create_dataset",
|
|
8711
8711
|
"domain": "ads",
|
|
8712
|
-
"description": "Create a dataset (Meta pixel) on an ad account
|
|
8712
|
+
"description": "Create a dataset (Meta pixel) on an ad account. Datasets cannot be deleted and a second one splits a funnel's events, so check ads_get_datasets first. Creating connects nothing: write the returned id to the layout config with updateBrandIdentity.",
|
|
8713
8713
|
"type": "mutation",
|
|
8714
8714
|
"path": [
|
|
8715
8715
|
"api",
|
|
@@ -8740,7 +8740,7 @@ var CLI_MANIFEST = {
|
|
|
8740
8740
|
{
|
|
8741
8741
|
"id": "ads_get_ad_accounts",
|
|
8742
8742
|
"domain": "ads",
|
|
8743
|
-
"description": "List the ad accounts
|
|
8743
|
+
"description": "List the ad accounts you can publish to. The Meta token reaches every ad account of every business it was connected for, so the list is narrowed to accounts publishAds will accept; includeUnassigned returns the rest for diagnosing a missing account, and those are not publishable.",
|
|
8744
8744
|
"type": "query",
|
|
8745
8745
|
"path": [
|
|
8746
8746
|
"api",
|
|
@@ -8763,7 +8763,7 @@ var CLI_MANIFEST = {
|
|
|
8763
8763
|
{
|
|
8764
8764
|
"id": "ads_get_ad_entities",
|
|
8765
8765
|
"domain": "ads",
|
|
8766
|
-
"description": "Read the campaigns, ad sets or ads
|
|
8766
|
+
"description": "Read the campaigns, ad sets or ads on an ad account; ads include their creative. level is what comes back; a campaignId, adSetId or adId narrows to that object or its children (an id below level is an error). Before an addAds publish, copy a live ad's settings as the ads workflow describes.",
|
|
8767
8767
|
"type": "query",
|
|
8768
8768
|
"path": [
|
|
8769
8769
|
"api",
|
|
@@ -8823,7 +8823,7 @@ var CLI_MANIFEST = {
|
|
|
8823
8823
|
{
|
|
8824
8824
|
"id": "ads_get_custom_audiences",
|
|
8825
8825
|
"domain": "ads",
|
|
8826
|
-
"description": "List the custom audiences on an ad account, for the customAudienceIds and excludedCustomAudienceIds template variables. isReadyForUse false
|
|
8826
|
+
"description": "List the custom audiences on an ad account, for the customAudienceIds and excludedCustomAudienceIds template variables. Skip any with isReadyForUse false: Meta delivers nothing to it. Audience ids belong to one ad account and are rejected by another.",
|
|
8827
8827
|
"type": "query",
|
|
8828
8828
|
"path": [
|
|
8829
8829
|
"api",
|
|
@@ -8849,7 +8849,7 @@ var CLI_MANIFEST = {
|
|
|
8849
8849
|
{
|
|
8850
8850
|
"id": "ads_get_datasets",
|
|
8851
8851
|
"domain": "ads",
|
|
8852
|
-
"description": "List the datasets (Meta pixels) on an ad account, with lastFiredTime
|
|
8852
|
+
"description": "List the datasets (Meta pixels) on an ad account, with lastFiredTime. For checking a pixel, not choosing one: a campaign should optimise against the pixel its funnel fires (from the organization's layout config), or it may get no traffic.",
|
|
8853
8853
|
"type": "query",
|
|
8854
8854
|
"path": [
|
|
8855
8855
|
"api",
|
|
@@ -8875,7 +8875,7 @@ var CLI_MANIFEST = {
|
|
|
8875
8875
|
{
|
|
8876
8876
|
"id": "ads_get_ig_accounts",
|
|
8877
8877
|
"domain": "ads",
|
|
8878
|
-
"description": "List the Instagram identities a Page can run ads as. kind is business for a real Instagram business account, or pageBacked for the shadow identity Meta creates for a Page without one
|
|
8878
|
+
"description": "List the Instagram identities a Page can run ads as. kind is business for a real Instagram business account, or pageBacked for the shadow identity Meta creates for a Page without one; both are valid for the instagramAccountId template variable. pageId comes from ads_get_user_pages.",
|
|
8879
8879
|
"type": "query",
|
|
8880
8880
|
"path": [
|
|
8881
8881
|
"api",
|
|
@@ -8901,7 +8901,7 @@ var CLI_MANIFEST = {
|
|
|
8901
8901
|
{
|
|
8902
8902
|
"id": "ads_get_user_pages",
|
|
8903
8903
|
"domain": "ads",
|
|
8904
|
-
"description": "List the Facebook Pages available for advertising. The
|
|
8904
|
+
"description": "List the Facebook Pages available for advertising, with any linked Instagram business account. The token also reaches other businesses' Pages and publishAds accepts them, so prefer a Page with usedByOrganization true (one this organization has run ads from).",
|
|
8905
8905
|
"type": "query",
|
|
8906
8906
|
"path": [
|
|
8907
8907
|
"api",
|
|
@@ -8919,7 +8919,7 @@ var CLI_MANIFEST = {
|
|
|
8919
8919
|
{
|
|
8920
8920
|
"id": "ads_update_entity",
|
|
8921
8921
|
"domain": "ads",
|
|
8922
|
-
"description": "
|
|
8922
|
+
"description": "Rename, re-budget or pause a Meta campaign, ad set or ad. Budgets are integer cents and replace the current value, and spend changes the moment it lands: read the entity with ads_get_ad_entities and confirm the new number with the human first. adAccountId must own the entity. status only accepts PAUSED; going live is setAdCampaignStatus or ads_activate_entity. Creatives cannot be edited.",
|
|
8923
8923
|
"type": "mutation",
|
|
8924
8924
|
"path": [
|
|
8925
8925
|
"api",
|
|
@@ -9010,7 +9010,7 @@ var CLI_MANIFEST = {
|
|
|
9010
9010
|
{
|
|
9011
9011
|
"id": "applyFunnelTemplate",
|
|
9012
9012
|
"domain": "campaigns",
|
|
9013
|
-
"description": "
|
|
9013
|
+
"description": "Builds a campaign's funnel screens from a template. Only works on a campaign with no funnel yet (deleteFunnel resets one). templateId comes from listFunnelTemplates. Prepay templates always add a Stripe payment screen, so use offer-basic for an offer redeemed in person, priced or not.",
|
|
9014
9014
|
"type": "mutation",
|
|
9015
9015
|
"path": [
|
|
9016
9016
|
"api",
|
|
@@ -9048,7 +9048,7 @@ var CLI_MANIFEST = {
|
|
|
9048
9048
|
{
|
|
9049
9049
|
"id": "awardReward",
|
|
9050
9050
|
"domain": "membersProgram",
|
|
9051
|
-
"description": "Give one member a reward
|
|
9051
|
+
"description": "Give one member a reward in their wallet pass now, like the dashboard's Give Reward button (createMembersProgramReward only defines a reward the program offers). serialNumber from searchUsers, itemId from listMembersProgramRewards. Re-evaluates the member's automations, so a flow triggered by earning a reward fires. No undo and no idempotency key: a retried call grants a second reward, so confirm with the user and call once per member.",
|
|
9052
9052
|
"type": "mutation",
|
|
9053
9053
|
"path": [
|
|
9054
9054
|
"api",
|
|
@@ -9090,7 +9090,7 @@ var CLI_MANIFEST = {
|
|
|
9090
9090
|
{
|
|
9091
9091
|
"id": "batchEditAutomations",
|
|
9092
9092
|
"domain": "automations",
|
|
9093
|
-
"description": "Write automation changes straight to production in one atomic batch
|
|
9093
|
+
"description": "Write automation changes straight to production in one atomic batch; real guests receive the result. Use only when the user explicitly wants an immediate live write; otherwise use the draft loop (createAutomationDraft, stageAutomationEdits, saveAutomationEdits). `create` ops need a flowId from listAutomationFlows or createAutomationFlow. An `update` replaces each field it sends, so send the full current `actions` array.",
|
|
9094
9094
|
"type": "mutation",
|
|
9095
9095
|
"path": [
|
|
9096
9096
|
"api",
|
|
@@ -10948,7 +10948,7 @@ var CLI_MANIFEST = {
|
|
|
10948
10948
|
{
|
|
10949
10949
|
"id": "cloneCampaign",
|
|
10950
10950
|
"domain": "campaigns",
|
|
10951
|
-
"description": "
|
|
10951
|
+
"description": "Copies a campaign's funnel screens, automations and offers into a new campaign. referrer is a subdomain from getOrganization (subdomains2). The copied automations keep the source campaign's reservation links; rewrite them to the new campaign's shorthand.",
|
|
10952
10952
|
"type": "mutation",
|
|
10953
10953
|
"path": [
|
|
10954
10954
|
"api",
|
|
@@ -10981,7 +10981,7 @@ var CLI_MANIFEST = {
|
|
|
10981
10981
|
{
|
|
10982
10982
|
"id": "countParentAutomationRecipients",
|
|
10983
10983
|
"domain": "automations",
|
|
10984
|
-
"description": "
|
|
10984
|
+
"description": "Count distinct members who already received an automation: the audience a receiveAutomation child reaches if backfilled with applyToHistorical: true. Read-only. Before any backfill, tell the user this number, warn above 1000, and backfill only after they confirm.",
|
|
10985
10985
|
"type": "query",
|
|
10986
10986
|
"path": [
|
|
10987
10987
|
"api",
|
|
@@ -11005,7 +11005,7 @@ var CLI_MANIFEST = {
|
|
|
11005
11005
|
{
|
|
11006
11006
|
"id": "createAutomationDraft",
|
|
11007
11007
|
"domain": "automations",
|
|
11008
|
-
"description": "Start a draft of automation changes
|
|
11008
|
+
"description": "Start a draft of automation changes for a human to preview before they go live; the default way to change automations. `title` is what the reviewer sees. Optional `operations` use the batchEditAutomations format. Keep the returned draftId (drafts cannot be listed); share `previewUrls` for sign-off.",
|
|
11009
11009
|
"type": "mutation",
|
|
11010
11010
|
"path": [
|
|
11011
11011
|
"api",
|
|
@@ -12866,7 +12866,7 @@ var CLI_MANIFEST = {
|
|
|
12866
12866
|
{
|
|
12867
12867
|
"id": "createAutomationFlow",
|
|
12868
12868
|
"domain": "automations",
|
|
12869
|
-
"description": "Create an automation flow
|
|
12869
|
+
"description": "Create an automation flow: the container grouping automations by a shared trigger. Automations always live inside a flow, so find one with listAutomationFlows before creating another.",
|
|
12870
12870
|
"type": "mutation",
|
|
12871
12871
|
"path": [
|
|
12872
12872
|
"api",
|
|
@@ -12929,7 +12929,7 @@ var CLI_MANIFEST = {
|
|
|
12929
12929
|
{
|
|
12930
12930
|
"id": "createAvailability",
|
|
12931
12931
|
"domain": "creators",
|
|
12932
|
-
"description": "Open a window creators can book visits in
|
|
12932
|
+
"description": "Open a window creators can book visits in, as a 'once' or 'weekly' block. Times and weekly days are UTC: convert the restaurant's local day and time together (see the creators workflow). Set campaignId as well as locationId, or the Set booking windows task stays open.",
|
|
12933
12933
|
"type": "mutation",
|
|
12934
12934
|
"path": [
|
|
12935
12935
|
"api",
|
|
@@ -13061,7 +13061,7 @@ var CLI_MANIFEST = {
|
|
|
13061
13061
|
{
|
|
13062
13062
|
"id": "createBrandIdentity",
|
|
13063
13063
|
"domain": "core",
|
|
13064
|
-
"description": "Create the restaurant's branded
|
|
13064
|
+
"description": "Create the restaurant's branded site: a subdomain (referrer), its layout config and default screens. Funnels are addressed by referrer, so they need one. The subdomain is claimed across all restaurants: confirm the name and subdomain with the customer first. Get logoUrl from getMediaUploadUrl.",
|
|
13065
13065
|
"type": "mutation",
|
|
13066
13066
|
"path": [
|
|
13067
13067
|
"api",
|
|
@@ -13283,7 +13283,7 @@ var CLI_MANIFEST = {
|
|
|
13283
13283
|
{
|
|
13284
13284
|
"id": "createCreativeStrategy",
|
|
13285
13285
|
"domain": "creators",
|
|
13286
|
-
"description": "Generate a creator strategy. An awareness
|
|
13286
|
+
"description": "Generate a creator brief (creative strategy). An awareness brief is saved before this returns; a CTA brief generates in the background, so poll getCreativeStrategy with the returned strategyId until generationStatus is complete or failed before using it. Edit it with updateCreativeStrategy.",
|
|
13287
13287
|
"type": "mutation",
|
|
13288
13288
|
"path": [
|
|
13289
13289
|
"api",
|
|
@@ -13435,7 +13435,7 @@ var CLI_MANIFEST = {
|
|
|
13435
13435
|
{
|
|
13436
13436
|
"id": "createInfluencerPayout",
|
|
13437
13437
|
"domain": "creators",
|
|
13438
|
-
"description": "
|
|
13438
|
+
"description": "Charge the organization's card to pay a creator's content bonus. Never call it on your own initiative or in an automated flow: every call needs the client's explicit, fresh approval to pay this specific creator, and a standing instruction does not count. Needs a submission approved with approvalType 'ad'; one payout per visit. Pass amountCents only when the client asks to pay this creator a different amount. eventId is the visit's eventId.",
|
|
13439
13439
|
"type": "mutation",
|
|
13440
13440
|
"path": [
|
|
13441
13441
|
"api",
|
|
@@ -13466,7 +13466,7 @@ var CLI_MANIFEST = {
|
|
|
13466
13466
|
{
|
|
13467
13467
|
"id": "createMembersProgramReward",
|
|
13468
13468
|
"domain": "membersProgram",
|
|
13469
|
-
"description": "Create a members program reward over a catalog item. type 'item'
|
|
13469
|
+
"description": "Create a members program reward over a catalog item. Prefer type 'item' with an existing itemId (from a catalog query). type 'name' matches the name exactly across the Feast and POS catalogs and creates a new Feast item when nothing matches, so a near-miss silently duplicates a menu item.",
|
|
13470
13470
|
"type": "mutation",
|
|
13471
13471
|
"path": [
|
|
13472
13472
|
"api",
|
|
@@ -13530,7 +13530,7 @@ var CLI_MANIFEST = {
|
|
|
13530
13530
|
{
|
|
13531
13531
|
"id": "createRecruitmentCreatives",
|
|
13532
13532
|
"domain": "creators",
|
|
13533
|
-
"description": "Generate the five AI recruitment ad creatives a
|
|
13533
|
+
"description": "Generate the five AI recruitment ad creatives for a location. Pass campaignId (or offerId) so they attach to its recruitment offer. Only missing types are generated; force deletes and regenerates the whole set. foodCredit from getInfluencerBoardConfig.",
|
|
13534
13534
|
"type": "mutation",
|
|
13535
13535
|
"path": [
|
|
13536
13536
|
"api",
|
|
@@ -13577,7 +13577,7 @@ var CLI_MANIFEST = {
|
|
|
13577
13577
|
{
|
|
13578
13578
|
"id": "decideCreatorSubmission",
|
|
13579
13579
|
"domain": "creators",
|
|
13580
|
-
"description": "Decide on a creator's content submission.
|
|
13580
|
+
"description": "Decide on a creator's content submission. Approving and revision_requested text the creator (skipApprovalText silences only the approval text); revision_requested sends your feedbackMessage, so write it for the creator. Always pass approvalType when approving: omitted means 'ad' (may run in paid ads, sets the bonus pending, rejected when the bonus is $0); 'organic' earns no bonus. submissionId from listCreatorSubmissions.",
|
|
13581
13581
|
"type": "mutation",
|
|
13582
13582
|
"path": [
|
|
13583
13583
|
"api",
|
|
@@ -13624,7 +13624,7 @@ var CLI_MANIFEST = {
|
|
|
13624
13624
|
{
|
|
13625
13625
|
"id": "deleteAutomationFlow",
|
|
13626
13626
|
"domain": "automations",
|
|
13627
|
-
"description": "Delete an automation flow and the automations inside it. Pass flowId. Blocked if the flow's automations have 20 or more sends
|
|
13627
|
+
"description": "Delete an automation flow and the automations inside it. Pass flowId. Blocked if the flow's automations have 20 or more sends; turn the flow off instead of deleting it in that case. This is destructive; prefer disabling over deleting when unsure.",
|
|
13628
13628
|
"type": "mutation",
|
|
13629
13629
|
"path": [
|
|
13630
13630
|
"api",
|
|
@@ -13734,7 +13734,7 @@ var CLI_MANIFEST = {
|
|
|
13734
13734
|
{
|
|
13735
13735
|
"id": "deleteMembersProgramReward",
|
|
13736
13736
|
"domain": "membersProgram",
|
|
13737
|
-
"description": "Remove a members program reward
|
|
13737
|
+
"description": "Remove a members program reward so it is no longer offered (the cleanup for an orphan no automation grants). rewardId from listMembersProgramRewards. The catalog item is left alone, and guests who already redeemed keep what they were given.",
|
|
13738
13738
|
"type": "mutation",
|
|
13739
13739
|
"path": [
|
|
13740
13740
|
"api",
|
|
@@ -13759,7 +13759,7 @@ var CLI_MANIFEST = {
|
|
|
13759
13759
|
{
|
|
13760
13760
|
"id": "describeData",
|
|
13761
13761
|
"domain": "data",
|
|
13762
|
-
"description": "Describe the queryable data model, then read it with queryData.
|
|
13762
|
+
"description": "Describe the queryable data model, then read it with queryData. With no arguments it returns an index of every object type plus the query grammar; narrowing by schema or object type returns full column detail, including the link names pivot and join take. Prefer the POS-agnostic 'interface' schema.",
|
|
13763
13763
|
"type": "query",
|
|
13764
13764
|
"path": [
|
|
13765
13765
|
"api",
|
|
@@ -13846,7 +13846,7 @@ var CLI_MANIFEST = {
|
|
|
13846
13846
|
{
|
|
13847
13847
|
"id": "getAutomationDraft",
|
|
13848
13848
|
"domain": "automations",
|
|
13849
|
-
"description": "Read an automation draft
|
|
13849
|
+
"description": "Read an automation draft by draftId: its staged `operations`, the flows it touches, `previewUrls`, and `resultingAutomations` (each touched automation as it will look after the save). Check `resultingAutomations` for fields that changed or disappeared, not only the ones the operations mention.",
|
|
13850
13850
|
"type": "query",
|
|
13851
13851
|
"path": [
|
|
13852
13852
|
"api",
|
|
@@ -13870,7 +13870,7 @@ var CLI_MANIFEST = {
|
|
|
13870
13870
|
{
|
|
13871
13871
|
"id": "getBillingStatus",
|
|
13872
13872
|
"domain": "core",
|
|
13873
|
-
"description": '
|
|
13873
|
+
"description": 'Read-only billing state for the organization. hasAccess answers "can they use the product" (paid, no charge in flight); needsPayment flags PENDING, FAILED or a charge in flight. initialDepositCents is in cents. Every billing change stays in the dashboard.',
|
|
13874
13874
|
"type": "query",
|
|
13875
13875
|
"path": [
|
|
13876
13876
|
"api",
|
|
@@ -13882,7 +13882,7 @@ var CLI_MANIFEST = {
|
|
|
13882
13882
|
{
|
|
13883
13883
|
"id": "getCampaign",
|
|
13884
13884
|
"domain": "campaigns",
|
|
13885
|
-
"description": "Full configuration for one acquisition campaign
|
|
13885
|
+
"description": "Full configuration for one acquisition campaign: name, status, funnel and landing page config, ad config, offers, settings. campaignId is the Feast campaign id from listCampaigns (a UUID), not the nested Meta campaignId. Read before updateCampaign. For performance use getCampaignKpis.",
|
|
13886
13886
|
"type": "query",
|
|
13887
13887
|
"path": [
|
|
13888
13888
|
"api",
|
|
@@ -13907,7 +13907,7 @@ var CLI_MANIFEST = {
|
|
|
13907
13907
|
{
|
|
13908
13908
|
"id": "getCampaignBenchmarks",
|
|
13909
13909
|
"domain": "campaigns",
|
|
13910
|
-
"description": "The definition
|
|
13910
|
+
"description": "The definition (label, unit, description, formula) and target band of every metric id that getCampaignKpis and getCampaignBreakdown return. Bands are fleet-wide, not per organization. Call once and reuse; the table is the same for every campaign.",
|
|
13911
13911
|
"type": "query",
|
|
13912
13912
|
"path": [
|
|
13913
13913
|
"api",
|
|
@@ -13920,11 +13920,7 @@ var CLI_MANIFEST = {
|
|
|
13920
13920
|
{
|
|
13921
13921
|
"id": "getCampaignBreakdown",
|
|
13922
13922
|
"domain": "campaigns",
|
|
13923
|
-
"description": `A campaign's metrics
|
|
13924
|
-
|
|
13925
|
-
Start from { type: "campaign", campaign: { campaignId } }, where campaignId is the Feast campaign id from listCampaigns. It returns the campaign totals and its channel refs. The tree is: campaign \u2192 channel (facebook, influencer, tiktok, google, misc, referral, unknown) \u2192 per channel: facebook \u2192 fbCampaign \u2192 fbAdset \u2192 fbAd; google \u2192 googleCampaign; tiktok \u2192 tiktokCampaign; misc \u2192 miscSource; referral \u2192 referrer; influencer \u2192 creator. Variants split the campaign by pass instead of by session: the campaign node lists them in details.campaign.variants (empty when the campaign has no variants), and { type: "variant", variant: { campaignId, variantId } } with variantId null is the default variant; variant nodes carry only signups, pass registration and show rate, time to show, revenue and revenue per signup. A null id inside a ref is the "Unknown" bucket for sessions that could not be matched. Refs from different campaigns can be mixed in one call (max 100).
|
|
13926
|
-
|
|
13927
|
-
Metrics use start/end as the session window. Units: sessions, visitors, signups, impressions, reach are counts; *Rate, thumbStopRatio, holdRate and uniqueClickthrough are percentages (0-100); spend, cpm, revenue, costPerSignup, revenuePerSignup are USD; averageTimeToShow is days from signup to first scan. A missing metric key means the metric does not apply to that node (for example spend on a Google row); null means it applies but could not be computed (no denominator, or Facebook was unreachable, see details.facebook.error). Facebook delivery metrics are read live from Meta.`,
|
|
13923
|
+
"description": `A campaign's metrics as a tree (channel, ad, creator, variant). Pass node refs; get back metrics and child refs to drill into. Start from { type: "campaign", campaign: { campaignId } } (id from listCampaigns). A missing metric key means it does not apply; null means it could not be computed.`,
|
|
13928
13924
|
"type": "query",
|
|
13929
13925
|
"path": [
|
|
13930
13926
|
"api",
|
|
@@ -14331,7 +14327,7 @@ Metrics use start/end as the session window. Units: sessions, visitors, signups,
|
|
|
14331
14327
|
{
|
|
14332
14328
|
"id": "getCampaignKpis",
|
|
14333
14329
|
"domain": "campaigns",
|
|
14334
|
-
"description": "
|
|
14330
|
+
"description": "Headline metrics for one acquisition campaign, one { id, type, value, unit } row per metric. campaignId is the Feast campaign id from listCampaigns, not the Meta campaignId. Metrics whose value is zero are omitted: no spend row means no spend or no Facebook sync yet, never a confirmed $0.",
|
|
14335
14331
|
"type": "query",
|
|
14336
14332
|
"path": [
|
|
14337
14333
|
"api",
|
|
@@ -14391,7 +14387,7 @@ Metrics use start/end as the session window. Units: sessions, visitors, signups,
|
|
|
14391
14387
|
{
|
|
14392
14388
|
"id": "getCreatorConversation",
|
|
14393
14389
|
"domain": "creators",
|
|
14394
|
-
"description": "One creator's full SMS thread, newest first
|
|
14390
|
+
"description": "One creator's full SMS thread, newest first. userId from listCreatorConversations. Read this before summarizing an exchange or drafting a reply, since the queue only has the last message. Empty when the creator has no phone number. Reply with sendText and {type:'creator', userId}.",
|
|
14395
14391
|
"type": "query",
|
|
14396
14392
|
"path": [
|
|
14397
14393
|
"api",
|
|
@@ -14440,7 +14436,7 @@ Metrics use start/end as the session window. Units: sessions, visitors, signups,
|
|
|
14440
14436
|
{
|
|
14441
14437
|
"id": "getInfluencerBoardConfig",
|
|
14442
14438
|
"domain": "creators",
|
|
14443
|
-
"description": "Read a location's creator program settings (dining credit, creator bonus, follower minimum
|
|
14439
|
+
"description": "Read a location's creator program settings (dining credit, creator bonus, follower minimum, booking limits) and its recruitment Meta campaign, ad set and status. config is null when the location has no program. Quote credit and bonus only from here. locationId from queryData interface.location.",
|
|
14444
14440
|
"type": "query",
|
|
14445
14441
|
"path": [
|
|
14446
14442
|
"api",
|
|
@@ -14464,7 +14460,7 @@ Metrics use start/end as the session window. Units: sessions, visitors, signups,
|
|
|
14464
14460
|
{
|
|
14465
14461
|
"id": "getJob",
|
|
14466
14462
|
"domain": "core",
|
|
14467
|
-
"description": "Poll one background job
|
|
14463
|
+
"description": "Poll one background job. Pass both jobId and jobType from the tool that queued it (a job id alone is not addressable). { job: null } means not landed yet: keep polling. status goes PENDING, RUNNING, then COMPLETED or FAILED (with errorMessage). includeFullPayload adds the input and generated text.",
|
|
14468
14464
|
"type": "query",
|
|
14469
14465
|
"path": [
|
|
14470
14466
|
"api",
|
|
@@ -14536,7 +14532,7 @@ Metrics use start/end as the session window. Units: sessions, visitors, signups,
|
|
|
14536
14532
|
{
|
|
14537
14533
|
"id": "getMemberConversation",
|
|
14538
14534
|
"domain": "membersProgram",
|
|
14539
|
-
"description": "One member's SMS thread and activity, newest first
|
|
14535
|
+
"description": "One member's SMS thread and activity, newest first. serialNumber from searchUsers. Pass eventTypes ['sentText','receivedText'] for the conversation; unfiltered it returns the member's whole history, unpaginated. Read-only: reply with sendText.",
|
|
14540
14536
|
"type": "query",
|
|
14541
14537
|
"path": [
|
|
14542
14538
|
"api",
|
|
@@ -14596,7 +14592,7 @@ Metrics use start/end as the session window. Units: sessions, visitors, signups,
|
|
|
14596
14592
|
{
|
|
14597
14593
|
"id": "getOnboardingForm",
|
|
14598
14594
|
"domain": "core",
|
|
14599
|
-
"description": "Read the
|
|
14595
|
+
"description": "Read the onboarding form: the self-reported answers behind onboarding tasks the system can't observe directly. Returns null when there is no form. Read this before updateOnboardingForm, which replaces nested step objects rather than merging them.",
|
|
14600
14596
|
"type": "query",
|
|
14601
14597
|
"path": [
|
|
14602
14598
|
"api",
|
|
@@ -14621,7 +14617,7 @@ Metrics use start/end as the session window. Units: sessions, visitors, signups,
|
|
|
14621
14617
|
{
|
|
14622
14618
|
"id": "getPassConfiguration",
|
|
14623
14619
|
"domain": "passBuilder",
|
|
14624
|
-
"description": "The
|
|
14620
|
+
"description": "The live wallet pass configuration: content sections, features, locations, metadata and the current version. Returns null when none has been saved. Read this before changing the pass: updatePassConfiguration is a full-document save, so the returned document is what you modify.",
|
|
14625
14621
|
"type": "query",
|
|
14626
14622
|
"path": [
|
|
14627
14623
|
"api",
|
|
@@ -14639,7 +14635,7 @@ Metrics use start/end as the session window. Units: sessions, visitors, signups,
|
|
|
14639
14635
|
{
|
|
14640
14636
|
"id": "getTaskboard",
|
|
14641
14637
|
"domain": "validate",
|
|
14642
|
-
"description": "Everything that needs fixing or finishing
|
|
14638
|
+
"description": "Everything that needs fixing or finishing, as one list by `kind`. 'task' entries are onboarding tasks with completionInstructions and a completionUrl to give the user for browser-only steps. 'issue' entries are live misconfigurations with a fixHint. Each call refreshes task statuses (~30s lag).",
|
|
14643
14639
|
"type": "query",
|
|
14644
14640
|
"path": [
|
|
14645
14641
|
"api",
|
|
@@ -14812,7 +14808,7 @@ Metrics use start/end as the session window. Units: sessions, visitors, signups,
|
|
|
14812
14808
|
{
|
|
14813
14809
|
"id": "inviteUser",
|
|
14814
14810
|
"domain": "core",
|
|
14815
|
-
"description": "Invite someone to the organization by email.
|
|
14811
|
+
"description": "Invite someone to the organization by email. Sends a real email immediately; someone who already has a Feast account joins right away with no acceptance step. Always pass role: it defaults to OWNER, with full billing and settings access. VIEWER is read-only; SCANNER is for staff running the scanner app.",
|
|
14816
14812
|
"type": "mutation",
|
|
14817
14813
|
"path": [
|
|
14818
14814
|
"api",
|
|
@@ -14846,7 +14842,7 @@ Metrics use start/end as the session window. Units: sessions, visitors, signups,
|
|
|
14846
14842
|
{
|
|
14847
14843
|
"id": "listAdTemplates",
|
|
14848
14844
|
"domain": "ads",
|
|
14849
|
-
"description": "List the Meta ad
|
|
14845
|
+
"description": "List the Meta ad templates you can publish, with each one's variables, overridable plan paths and budget range. Call it before planAds. A variable that names a producedBy tool tells you where its value comes from.",
|
|
14850
14846
|
"type": "query",
|
|
14851
14847
|
"path": [
|
|
14852
14848
|
"api",
|
|
@@ -14859,7 +14855,7 @@ Metrics use start/end as the session window. Units: sessions, visitors, signups,
|
|
|
14859
14855
|
{
|
|
14860
14856
|
"id": "listAutomationFlows",
|
|
14861
14857
|
"domain": "automations",
|
|
14862
|
-
"description": "Automation flows
|
|
14858
|
+
"description": "Automation flows. A flow is the container grouping automations by trigger. Call this first to find the flow an automation belongs in, and only create one if none fits. Scope 'membersProgram' returns flows with no campaign.",
|
|
14863
14859
|
"type": "query",
|
|
14864
14860
|
"path": [
|
|
14865
14861
|
"api",
|
|
@@ -14891,7 +14887,7 @@ Metrics use start/end as the session window. Units: sessions, visitors, signups,
|
|
|
14891
14887
|
{
|
|
14892
14888
|
"id": "listAutomations",
|
|
14893
14889
|
"domain": "automations",
|
|
14894
|
-
"description": "List automations
|
|
14890
|
+
"description": "List automations, ordered by execution priority. Pass { flowId } to return only the automations in that flow, the way to read a single flow's contents before editing it. Omit the input to return every automation.",
|
|
14895
14891
|
"type": "query",
|
|
14896
14892
|
"path": [
|
|
14897
14893
|
"api",
|
|
@@ -14947,7 +14943,7 @@ Metrics use start/end as the session window. Units: sessions, visitors, signups,
|
|
|
14947
14943
|
{
|
|
14948
14944
|
"id": "listAvailability",
|
|
14949
14945
|
"domain": "creators",
|
|
14950
|
-
"description": "List every creator booking window
|
|
14946
|
+
"description": "List every creator booking window in the organization. Takes no arguments; filter by locationId or campaignId yourself. Times and utcDaysOfWeek are UTC, not the restaurant's local time.",
|
|
14951
14947
|
"type": "query",
|
|
14952
14948
|
"path": [
|
|
14953
14949
|
"api",
|
|
@@ -14959,7 +14955,7 @@ Metrics use start/end as the session window. Units: sessions, visitors, signups,
|
|
|
14959
14955
|
{
|
|
14960
14956
|
"id": "listCampaigns",
|
|
14961
14957
|
"domain": "core",
|
|
14962
|
-
"description": "The organization's acquisition campaigns, newest first, as summaries.
|
|
14958
|
+
"description": "The organization's acquisition campaigns, newest first, as summaries. Use the `id` field (a UUID) as campaignId in every other campaign tool, not the nested Meta campaign id. getCampaign returns one campaign's full configuration.",
|
|
14963
14959
|
"type": "query",
|
|
14964
14960
|
"path": [
|
|
14965
14961
|
"api",
|
|
@@ -14972,7 +14968,7 @@ Metrics use start/end as the session window. Units: sessions, visitors, signups,
|
|
|
14972
14968
|
{
|
|
14973
14969
|
"id": "listCreatives",
|
|
14974
14970
|
"domain": "creators",
|
|
14975
|
-
"description": "
|
|
14971
|
+
"description": "Generated recruitment creatives, optionally for one offer. Pass a creative's imageKey to planAds as a libraryAsset; imageUrl is the base render, not the ad asset. staleCreativeIds (only with offerId) lists creatives made from an older version of their offer.",
|
|
14976
14972
|
"type": "query",
|
|
14977
14973
|
"path": [
|
|
14978
14974
|
"api",
|
|
@@ -15000,7 +14996,7 @@ Metrics use start/end as the session window. Units: sessions, visitors, signups,
|
|
|
15000
14996
|
{
|
|
15001
14997
|
"id": "listCreatorApplications",
|
|
15002
14998
|
"domain": "creators",
|
|
15003
|
-
"description": "Creator applications
|
|
14999
|
+
"description": "Creator applications awaiting approve or deny, newest first, across every location, with follower counts (not in queryData). Each row has the eventId for updateCreatorVisit and the assigned brief's strategyId; when it is null, have a brief assigned on the Creator approvals page before approving.",
|
|
15004
15000
|
"type": "query",
|
|
15005
15001
|
"path": [
|
|
15006
15002
|
"api",
|
|
@@ -15012,7 +15008,7 @@ Metrics use start/end as the session window. Units: sessions, visitors, signups,
|
|
|
15012
15008
|
{
|
|
15013
15009
|
"id": "listCreatorConversations",
|
|
15014
15010
|
"domain": "creators",
|
|
15015
|
-
"description": "Every creator's SMS
|
|
15011
|
+
"description": "Every creator's SMS thread with its unread state: the 'who is waiting on a reply' queue. hasUnread rows need a human. Each row has the last message, visitLocationIds and a derived visitStatus. Read a thread with getCreatorConversation (userId); reply with sendText and {type:'creator', userId}.",
|
|
15016
15012
|
"type": "query",
|
|
15017
15013
|
"path": [
|
|
15018
15014
|
"api",
|
|
@@ -15059,7 +15055,7 @@ Metrics use start/end as the session window. Units: sessions, visitors, signups,
|
|
|
15059
15055
|
{
|
|
15060
15056
|
"id": "listFunnelDrafts",
|
|
15061
15057
|
"domain": "funnel",
|
|
15062
|
-
"description": "List funnel drafts
|
|
15058
|
+
"description": "List funnel drafts as summaries (id, referrer, campaign, status, edit counts), optionally filtered by referrer or status. Use getFunnelDraft for a draft's full edits.",
|
|
15063
15059
|
"type": "query",
|
|
15064
15060
|
"path": [
|
|
15065
15061
|
"api",
|
|
@@ -15130,7 +15126,7 @@ Metrics use start/end as the session window. Units: sessions, visitors, signups,
|
|
|
15130
15126
|
{
|
|
15131
15127
|
"id": "listFunnelTemplates",
|
|
15132
15128
|
"domain": "campaigns",
|
|
15133
|
-
"description": "Lists the funnel templates
|
|
15129
|
+
"description": "Lists the funnel templates for a campaign: each template's guest journey (ordered screens), whether it collects payment, its eligibility for this campaign, and a recommended id. Read before applyFunnelTemplate; never guess a template id.",
|
|
15134
15130
|
"type": "query",
|
|
15135
15131
|
"path": [
|
|
15136
15132
|
"api",
|
|
@@ -15155,7 +15151,7 @@ Metrics use start/end as the session window. Units: sessions, visitors, signups,
|
|
|
15155
15151
|
{
|
|
15156
15152
|
"id": "listIgMedia",
|
|
15157
15153
|
"domain": "ads",
|
|
15158
|
-
"description": "List recent posts from the Instagram business account linked to a Facebook Page, for
|
|
15154
|
+
"description": "List up to 50 recent posts from the Instagram business account linked to a Facebook Page, for igMedia creative references in planAds, with the instagramUserId each reference needs. pageId comes from ads_get_user_pages; a Page with no linked account returns instagramAccount null.",
|
|
15159
15155
|
"type": "query",
|
|
15160
15156
|
"path": [
|
|
15161
15157
|
"api",
|
|
@@ -15181,7 +15177,7 @@ Metrics use start/end as the session window. Units: sessions, visitors, signups,
|
|
|
15181
15177
|
{
|
|
15182
15178
|
"id": "listMedia",
|
|
15183
15179
|
"domain": "core",
|
|
15184
|
-
"description": "Uploaded media files
|
|
15180
|
+
"description": "Uploaded media files, across one or more scopes. Each file is tagged with its scope and a canDelete flag. `cropped` lists the cropped variants under each scope's cropped/ subfolder instead of the base files.",
|
|
15185
15181
|
"type": "query",
|
|
15186
15182
|
"path": [
|
|
15187
15183
|
"api",
|
|
@@ -15224,7 +15220,7 @@ Metrics use start/end as the session window. Units: sessions, visitors, signups,
|
|
|
15224
15220
|
{
|
|
15225
15221
|
"id": "listMembersProgramRewards",
|
|
15226
15222
|
"domain": "membersProgram",
|
|
15227
|
-
"description": "
|
|
15223
|
+
"description": "Members program rewards with their catalog item name, staff instructions, points cost and source catalog (Feast, Toast, Square or Clover). A null name means the item no longer exists in any catalog.",
|
|
15228
15224
|
"type": "query",
|
|
15229
15225
|
"path": [
|
|
15230
15226
|
"api",
|
|
@@ -15239,6 +15235,18 @@ Metrics use start/end as the session window. Units: sessions, visitors, signups,
|
|
|
15239
15235
|
"$schema": "http://json-schema.org/draft-07/schema#"
|
|
15240
15236
|
}
|
|
15241
15237
|
},
|
|
15238
|
+
{
|
|
15239
|
+
"id": "listReferenceScripts",
|
|
15240
|
+
"domain": "ads",
|
|
15241
|
+
"description": "List the reference ad scripts Content Studio offers as Concept presets for Bevyl videos, each distilled from an ad that performed: a preview video, its beats, lines to adapt and the concept text sent to Bevyl. Copy the structure and pacing, not the words.",
|
|
15242
|
+
"type": "query",
|
|
15243
|
+
"path": [
|
|
15244
|
+
"api",
|
|
15245
|
+
"bevyl",
|
|
15246
|
+
"listReferenceScripts"
|
|
15247
|
+
],
|
|
15248
|
+
"inputJsonSchema": null
|
|
15249
|
+
},
|
|
15242
15250
|
{
|
|
15243
15251
|
"id": "listTemplateAutomations",
|
|
15244
15252
|
"domain": "automations",
|
|
@@ -15270,7 +15278,7 @@ Metrics use start/end as the session window. Units: sessions, visitors, signups,
|
|
|
15270
15278
|
{
|
|
15271
15279
|
"id": "markReimbursementPaid",
|
|
15272
15280
|
"domain": "creators",
|
|
15273
|
-
"description": "Record that
|
|
15281
|
+
"description": "Record that the client already paid a creator back for a meal on a reimbursing board. Moves no money: call it only after the client says the payment went out. The submission must be approved with its reimbursement pending. submissionId and receiptTotalCents from listCreatorSubmissions.",
|
|
15274
15282
|
"type": "mutation",
|
|
15275
15283
|
"path": [
|
|
15276
15284
|
"api",
|
|
@@ -15297,7 +15305,7 @@ Metrics use start/end as the session window. Units: sessions, visitors, signups,
|
|
|
15297
15305
|
{
|
|
15298
15306
|
"id": "planAds",
|
|
15299
15307
|
"domain": "ads",
|
|
15300
|
-
"description": "Resolve an ad template and its variables into the exact
|
|
15308
|
+
"description": "Resolve an ad template and its variables into the exact campaigns, ad sets and ads publishAds would create. Creates nothing. Returns the tree, planHash, defaulted variables and issues; fix severity error issues and re-plan, then pass variables, overrides and planHash to publishAds unchanged.",
|
|
15301
15309
|
"type": "mutation",
|
|
15302
15310
|
"path": [
|
|
15303
15311
|
"api",
|
|
@@ -15337,7 +15345,7 @@ Metrics use start/end as the session window. Units: sessions, visitors, signups,
|
|
|
15337
15345
|
{
|
|
15338
15346
|
"id": "populateCampaign",
|
|
15339
15347
|
"domain": "campaigns",
|
|
15340
|
-
"description":
|
|
15348
|
+
"description": 'Finalizes a campaign that was created with isCreating true. Optionally attaches a promotion/offer image to the campaign. Does NOT set up funnel screens; follow with applyFunnelTemplate, or the user picks a template in the funnel editor. contentStrategy: "tracking_only" publishes the campaign immediately.',
|
|
15341
15349
|
"type": "mutation",
|
|
15342
15350
|
"path": [
|
|
15343
15351
|
"api",
|
|
@@ -15433,7 +15441,7 @@ Metrics use start/end as the session window. Units: sessions, visitors, signups,
|
|
|
15433
15441
|
{
|
|
15434
15442
|
"id": "publishAds",
|
|
15435
15443
|
"domain": "ads",
|
|
15436
|
-
"description": "Publish a
|
|
15444
|
+
"description": "Publish a planAds plan to Meta, everything paused; setAdCampaignStatus starts spending. Pass planAds' variables, overrides and planHash back unchanged; a stale plan is refused, so re-plan and show the human the change. recruitment requires the linkRecruitmentOffer effect (texts the program's approver); directOffer requires linkFeastCampaign. Queues a job: poll getJob and read each effect's outcome. Only with the human's explicit approval.",
|
|
15437
15445
|
"type": "mutation",
|
|
15438
15446
|
"path": [
|
|
15439
15447
|
"api",
|
|
@@ -15537,40 +15545,10 @@ Metrics use start/end as the session window. Units: sessions, visitors, signups,
|
|
|
15537
15545
|
"$schema": "http://json-schema.org/draft-07/schema#"
|
|
15538
15546
|
}
|
|
15539
15547
|
},
|
|
15540
|
-
{
|
|
15541
|
-
"id": "purchaseAndConfigurePhoneNumber",
|
|
15542
|
-
"domain": "core",
|
|
15543
|
-
"description": "Buys a real number from Twilio for the organization and bills the account \u2014 nothing here undoes that. Pick a number geographically close to the restaurant: guests answer a local area code and read a distant one as spam, so search by the restaurant's own postal code or coordinates, never a guessed area code. If you don't know where the restaurant is, establish it first from its POS location, its Google Place, or by asking \u2014 don't buy until you do.",
|
|
15544
|
-
"type": "mutation",
|
|
15545
|
-
"path": [
|
|
15546
|
-
"api",
|
|
15547
|
-
"onboarding",
|
|
15548
|
-
"purchaseAndConfigurePhoneNumber"
|
|
15549
|
-
],
|
|
15550
|
-
"inputJsonSchema": {
|
|
15551
|
-
"type": "object",
|
|
15552
|
-
"properties": {
|
|
15553
|
-
"phoneNumber": {
|
|
15554
|
-
"type": "string"
|
|
15555
|
-
}
|
|
15556
|
-
},
|
|
15557
|
-
"required": [
|
|
15558
|
-
"phoneNumber"
|
|
15559
|
-
],
|
|
15560
|
-
"additionalProperties": false,
|
|
15561
|
-
"$schema": "http://json-schema.org/draft-07/schema#"
|
|
15562
|
-
}
|
|
15563
|
-
},
|
|
15564
15548
|
{
|
|
15565
15549
|
"id": "queryData",
|
|
15566
15550
|
"domain": "data",
|
|
15567
|
-
"description":
|
|
15568
|
-
Results are always scoped to the calling organization, so never filter on organizationId yourself.
|
|
15569
|
-
|
|
15570
|
-
Filter leaves are one column each, written as the column name prefixed with $, combined with {"type":"and"|"or","filters":[...]}. Use {"strings":[...]} for any-of rather than a large or. Page by passing the returned nextCursor back as args.cursor.
|
|
15571
|
-
|
|
15572
|
-
Example - opted-in members with more than 5 visits, newest first:
|
|
15573
|
-
{"schemaName":"core","objectTypeName":"guest","commands":[{"type":"filter","filter":{"type":"and","filters":[{"$optIn":{"boolean":true}},{"$progress":{"number":5,"match":"GT"}}]}}],"args":{"limit":500,"order":{"field":"timeAdded","direction":"DESC"},"fields":["serialNumber","phoneNumber","progress"]}}`,
|
|
15551
|
+
"description": "Run a read-only query against the data catalog. Call describeData first for object types and exact column names; do not guess columns. Results are already scoped to the organization, so never filter on organizationId. Page by passing the returned nextCursor back as args.cursor.",
|
|
15574
15552
|
"type": "query",
|
|
15575
15553
|
"path": [
|
|
15576
15554
|
"api",
|
|
@@ -15735,7 +15713,7 @@ Example - opted-in members with more than 5 visits, newest first:
|
|
|
15735
15713
|
{
|
|
15736
15714
|
"id": "saveAutomationEdits",
|
|
15737
15715
|
"domain": "automations",
|
|
15738
|
-
"description": "Promote an automation draft to production
|
|
15716
|
+
"description": "Promote an automation draft to production. This writes to live automations and real guests start receiving the result. Refuses if any touched automation changed since the draft was staged, in which case re-stage against the current state. Marks the draft promoted on success.",
|
|
15739
15717
|
"type": "mutation",
|
|
15740
15718
|
"path": [
|
|
15741
15719
|
"api",
|
|
@@ -15781,66 +15759,10 @@ Example - opted-in members with more than 5 visits, newest first:
|
|
|
15781
15759
|
"$schema": "http://json-schema.org/draft-07/schema#"
|
|
15782
15760
|
}
|
|
15783
15761
|
},
|
|
15784
|
-
{
|
|
15785
|
-
"id": "searchAvailablePhoneNumbers",
|
|
15786
|
-
"domain": "core",
|
|
15787
|
-
"description": "Lists Twilio numbers currently purchasable for texting guests. What matters is proximity to the restaurant, not a memorable area code, so search by the restaurant's own postal code or latitude/longitude \u2014 a guessed area code lands you a number in the wrong town. This is a read-only lookup that costs nothing, so call it as often as you need while narrowing down before purchasing.",
|
|
15788
|
-
"type": "query",
|
|
15789
|
-
"path": [
|
|
15790
|
-
"api",
|
|
15791
|
-
"onboarding",
|
|
15792
|
-
"searchAvailablePhoneNumbers"
|
|
15793
|
-
],
|
|
15794
|
-
"inputJsonSchema": {
|
|
15795
|
-
"anyOf": [
|
|
15796
|
-
{
|
|
15797
|
-
"type": "object",
|
|
15798
|
-
"properties": {
|
|
15799
|
-
"areaCode": {
|
|
15800
|
-
"type": "string"
|
|
15801
|
-
}
|
|
15802
|
-
},
|
|
15803
|
-
"required": [
|
|
15804
|
-
"areaCode"
|
|
15805
|
-
],
|
|
15806
|
-
"additionalProperties": false
|
|
15807
|
-
},
|
|
15808
|
-
{
|
|
15809
|
-
"type": "object",
|
|
15810
|
-
"properties": {
|
|
15811
|
-
"postalCode": {
|
|
15812
|
-
"type": "string"
|
|
15813
|
-
}
|
|
15814
|
-
},
|
|
15815
|
-
"required": [
|
|
15816
|
-
"postalCode"
|
|
15817
|
-
],
|
|
15818
|
-
"additionalProperties": false
|
|
15819
|
-
},
|
|
15820
|
-
{
|
|
15821
|
-
"type": "object",
|
|
15822
|
-
"properties": {
|
|
15823
|
-
"latitude": {
|
|
15824
|
-
"type": "number"
|
|
15825
|
-
},
|
|
15826
|
-
"longitude": {
|
|
15827
|
-
"type": "number"
|
|
15828
|
-
}
|
|
15829
|
-
},
|
|
15830
|
-
"required": [
|
|
15831
|
-
"latitude",
|
|
15832
|
-
"longitude"
|
|
15833
|
-
],
|
|
15834
|
-
"additionalProperties": false
|
|
15835
|
-
}
|
|
15836
|
-
],
|
|
15837
|
-
"$schema": "http://json-schema.org/draft-07/schema#"
|
|
15838
|
-
}
|
|
15839
|
-
},
|
|
15840
15762
|
{
|
|
15841
15763
|
"id": "searchGooglePlaces",
|
|
15842
15764
|
"domain": "core",
|
|
15843
|
-
"description": "Resolve a restaurant to its Google Place ID
|
|
15765
|
+
"description": "Resolve a restaurant to its Google Place ID (needed for review and photo scraping). type 'search' takes a query (include the city); type 'lookup' takes a placeId. When confidentMatch is null, show the candidates and let the customer pick. Read-only: save with updateBrandIdentity.",
|
|
15844
15766
|
"type": "query",
|
|
15845
15767
|
"path": [
|
|
15846
15768
|
"api",
|
|
@@ -15901,7 +15823,7 @@ Example - opted-in members with more than 5 visits, newest first:
|
|
|
15901
15823
|
{
|
|
15902
15824
|
"id": "searchUsers",
|
|
15903
15825
|
"domain": "membersProgram",
|
|
15904
|
-
"description": "Search members (loyalty guests)
|
|
15826
|
+
"description": "Search members (loyalty guests) by name, visit count, campaign or activity. Returns a page of the most recent event per member, each with the member's serialNumber. isUnread: true lists members with unread inbound texts and overrides eventTypes. Page by passing the returned cursor back.",
|
|
15905
15827
|
"type": "query",
|
|
15906
15828
|
"path": [
|
|
15907
15829
|
"api",
|
|
@@ -15976,7 +15898,7 @@ Example - opted-in members with more than 5 visits, newest first:
|
|
|
15976
15898
|
{
|
|
15977
15899
|
"id": "sendText",
|
|
15978
15900
|
"domain": "messaging",
|
|
15979
|
-
"description": "Send one SMS to one person from the organization's
|
|
15901
|
+
"description": "Send one SMS to one person from the organization's number, immediately, with no undo or scheduling. Show the user the exact text and get a go-ahead first. `to` is an id, never a phone number: {type:'guest', serialNumber} from searchUsers, or {type:'creator', userId} from listCreatorConversations. Use the type that matches the thread; a creator with a pass exists as both. {type:'unknownSender', phoneNumber} only answers a number that texted in.",
|
|
15980
15902
|
"type": "mutation",
|
|
15981
15903
|
"path": [
|
|
15982
15904
|
"api",
|
|
@@ -16068,7 +15990,7 @@ Example - opted-in members with more than 5 visits, newest first:
|
|
|
16068
15990
|
{
|
|
16069
15991
|
"id": "setAdCampaignStatus",
|
|
16070
15992
|
"domain": "ads",
|
|
16071
|
-
"description": "Start or pause a Meta campaign
|
|
15993
|
+
"description": "Start or pause a Meta campaign published from Feastalytics, including a location's creator recruitment campaign. ACTIVE cascades to every ad set and ad and spends real money: confirm with the human first, then check the preflight counts in the response. On a recruitment campaign the status is saved on the location's creator program, and a manual change cancels any pending monthly-cap reactivation.",
|
|
16072
15994
|
"type": "mutation",
|
|
16073
15995
|
"path": [
|
|
16074
15996
|
"api",
|
|
@@ -16102,7 +16024,7 @@ Example - opted-in members with more than 5 visits, newest first:
|
|
|
16102
16024
|
{
|
|
16103
16025
|
"id": "simulateAutomations",
|
|
16104
16026
|
"domain": "automations",
|
|
16105
|
-
"description": "Dry-run automations against a synthetic event timeline and see
|
|
16027
|
+
"description": "Dry-run automations against a synthetic event timeline and see which texts would go out. No real sends. Pass `flowId` alone to auto-seed a timeline from its triggers (returned as `eventsUsed`), or pass `events` to replay your own. Pass a draft's operations as `edits` to preview unsaved changes.",
|
|
16106
16028
|
"type": "mutation",
|
|
16107
16029
|
"path": [
|
|
16108
16030
|
"api",
|
|
@@ -18426,7 +18348,7 @@ Example - opted-in members with more than 5 visits, newest first:
|
|
|
18426
18348
|
{
|
|
18427
18349
|
"id": "stageAutomationEdits",
|
|
18428
18350
|
"domain": "automations",
|
|
18429
|
-
"description": "
|
|
18351
|
+
"description": "Append operations (the batchEditAutomations format) to an open automation draft, in order. Live automations are untouched until saveAutomationEdits. Call it repeatedly to build a change up. An `update` replaces each field it sends, so send the full current `actions` array.",
|
|
18430
18352
|
"type": "mutation",
|
|
18431
18353
|
"path": [
|
|
18432
18354
|
"api",
|
|
@@ -20288,7 +20210,7 @@ Example - opted-in members with more than 5 visits, newest first:
|
|
|
20288
20210
|
{
|
|
20289
20211
|
"id": "stageFunnelEdit",
|
|
20290
20212
|
"domain": "funnel",
|
|
20291
|
-
"description": "Stage a single renderable edit onto a funnel draft. The edit is validated against the current screen but not saved to production. Returns a summary of the draft, not its edits
|
|
20213
|
+
"description": "Stage a single renderable edit onto a funnel draft. The edit is validated against the current screen but not saved to production. Returns a summary of the draft, not its edits: use getFunnelDraft to read them back, or listFunnelScreens with the draftId to see the funnel with the edits applied.",
|
|
20292
20214
|
"type": "mutation",
|
|
20293
20215
|
"path": [
|
|
20294
20216
|
"api",
|
|
@@ -20859,9 +20781,6 @@ Example - opted-in members with more than 5 visits, newest first:
|
|
|
20859
20781
|
"items": {
|
|
20860
20782
|
"type": "number"
|
|
20861
20783
|
}
|
|
20862
|
-
},
|
|
20863
|
-
"bookInFunnel": {
|
|
20864
|
-
"type": "boolean"
|
|
20865
20784
|
}
|
|
20866
20785
|
},
|
|
20867
20786
|
"additionalProperties": false
|
|
@@ -20873,7 +20792,7 @@ Example - opted-in members with more than 5 visits, newest first:
|
|
|
20873
20792
|
"openTable"
|
|
20874
20793
|
],
|
|
20875
20794
|
"additionalProperties": false,
|
|
20876
|
-
"description": "OpenTable reservation widget that finds available time slots
|
|
20795
|
+
"description": "OpenTable reservation widget that finds available time slots and redirects to OpenTable to book."
|
|
20877
20796
|
},
|
|
20878
20797
|
{
|
|
20879
20798
|
"type": "object",
|
|
@@ -22096,7 +22015,7 @@ Example - opted-in members with more than 5 visits, newest first:
|
|
|
22096
22015
|
{
|
|
22097
22016
|
"id": "updateAutomationFlow",
|
|
22098
22017
|
"domain": "automations",
|
|
22099
|
-
"description": "Update a flow's metadata (the group that holds automations). Pass flowId plus the new title (required), and optionally description and isCampaignCheckDisabled. Does not touch the automations inside the flow
|
|
22018
|
+
"description": "Update a flow's metadata (the group that holds automations). Pass flowId plus the new title (required), and optionally description and isCampaignCheckDisabled. Does not touch the automations inside the flow. Stage those through the draft loop, or batchEditAutomations for an immediate live write.",
|
|
22100
22019
|
"type": "mutation",
|
|
22101
22020
|
"path": [
|
|
22102
22021
|
"api",
|
|
@@ -22130,7 +22049,7 @@ Example - opted-in members with more than 5 visits, newest first:
|
|
|
22130
22049
|
{
|
|
22131
22050
|
"id": "updateAvailability",
|
|
22132
22051
|
"domain": "creators",
|
|
22133
|
-
"description": "Change
|
|
22052
|
+
"description": "Change a booking window (availabilityId from listAvailability). block is replaced whole, so send the complete block. Times and weekly days are UTC: convert the local day and time together (see the creators workflow). Returns nothing; re-read with listAvailability to confirm.",
|
|
22134
22053
|
"type": "mutation",
|
|
22135
22054
|
"path": [
|
|
22136
22055
|
"api",
|
|
@@ -22262,7 +22181,7 @@ Example - opted-in members with more than 5 visits, newest first:
|
|
|
22262
22181
|
{
|
|
22263
22182
|
"id": "updateBrandIdentity",
|
|
22264
22183
|
"domain": "core",
|
|
22265
|
-
"description": "Update
|
|
22184
|
+
"description": "Update a branded site's config: business data, theme, tracking pixel IDs, OpenTable links, Google Place link. A partial patch; businessData, trackingIds and googleConfig are deep-merged. A new googleConfig.placeId starts a review and photo scrape, and with coordinates can also buy and bill a nearby texting number if the organization has none. Replacing an existing placeId orphans the old place's scraped data, so confirm with the customer first.",
|
|
22266
22185
|
"type": "mutation",
|
|
22267
22186
|
"path": [
|
|
22268
22187
|
"api",
|
|
@@ -22455,6 +22374,12 @@ Example - opted-in members with more than 5 visits, newest first:
|
|
|
22455
22374
|
"cid": {
|
|
22456
22375
|
"type": "string"
|
|
22457
22376
|
},
|
|
22377
|
+
"name": {
|
|
22378
|
+
"type": "string"
|
|
22379
|
+
},
|
|
22380
|
+
"address": {
|
|
22381
|
+
"type": "string"
|
|
22382
|
+
},
|
|
22458
22383
|
"latitude": {
|
|
22459
22384
|
"type": "number"
|
|
22460
22385
|
},
|
|
@@ -22523,7 +22448,7 @@ Example - opted-in members with more than 5 visits, newest first:
|
|
|
22523
22448
|
{
|
|
22524
22449
|
"id": "updateCampaign",
|
|
22525
22450
|
"domain": "campaigns",
|
|
22526
|
-
"description": "
|
|
22451
|
+
"description": "Updates one campaign. Pass campaignId and only the top-level fields you change; each one replaces the stored value whole (promotions is the full list), so read with getCampaign first. It is also how you publish (isPublished, only on the user's go-ahead) and set the offer image. A price on a recurring promotion creates live Stripe products and prices.",
|
|
22527
22452
|
"type": "mutation",
|
|
22528
22453
|
"path": [
|
|
22529
22454
|
"api",
|
|
@@ -22983,44 +22908,6 @@ Example - opted-in members with more than 5 visits, newest first:
|
|
|
22983
22908
|
}
|
|
22984
22909
|
]
|
|
22985
22910
|
},
|
|
22986
|
-
"bannerConfig": {
|
|
22987
|
-
"anyOf": [
|
|
22988
|
-
{
|
|
22989
|
-
"type": "object",
|
|
22990
|
-
"properties": {
|
|
22991
|
-
"type": {
|
|
22992
|
-
"type": "string",
|
|
22993
|
-
"const": "simple"
|
|
22994
|
-
},
|
|
22995
|
-
"simple": {
|
|
22996
|
-
"type": "object",
|
|
22997
|
-
"properties": {
|
|
22998
|
-
"title": {
|
|
22999
|
-
"type": "string"
|
|
23000
|
-
},
|
|
23001
|
-
"description": {
|
|
23002
|
-
"type": "string"
|
|
23003
|
-
},
|
|
23004
|
-
"imageUrl": {
|
|
23005
|
-
"type": "string"
|
|
23006
|
-
}
|
|
23007
|
-
},
|
|
23008
|
-
"required": [
|
|
23009
|
-
"title",
|
|
23010
|
-
"description",
|
|
23011
|
-
"imageUrl"
|
|
23012
|
-
],
|
|
23013
|
-
"additionalProperties": false
|
|
23014
|
-
}
|
|
23015
|
-
},
|
|
23016
|
-
"required": [
|
|
23017
|
-
"type",
|
|
23018
|
-
"simple"
|
|
23019
|
-
],
|
|
23020
|
-
"additionalProperties": false
|
|
23021
|
-
}
|
|
23022
|
-
]
|
|
23023
|
-
},
|
|
23024
22911
|
"promotions": {
|
|
23025
22912
|
"type": "array",
|
|
23026
22913
|
"items": {
|
|
@@ -23337,18 +23224,6 @@ Example - opted-in members with more than 5 visits, newest first:
|
|
|
23337
23224
|
},
|
|
23338
23225
|
"recruitmentAdCopy": {
|
|
23339
23226
|
"$ref": "#/properties/update/properties/adCopy"
|
|
23340
|
-
},
|
|
23341
|
-
"viewers": {
|
|
23342
|
-
"type": "array",
|
|
23343
|
-
"items": {
|
|
23344
|
-
"type": "string"
|
|
23345
|
-
}
|
|
23346
|
-
},
|
|
23347
|
-
"editors": {
|
|
23348
|
-
"type": "array",
|
|
23349
|
-
"items": {
|
|
23350
|
-
"type": "string"
|
|
23351
|
-
}
|
|
23352
23227
|
}
|
|
23353
23228
|
},
|
|
23354
23229
|
"additionalProperties": false
|
|
@@ -23365,7 +23240,7 @@ Example - opted-in members with more than 5 visits, newest first:
|
|
|
23365
23240
|
{
|
|
23366
23241
|
"id": "updateCreativeStrategy",
|
|
23367
23242
|
"domain": "creators",
|
|
23368
|
-
"description": "
|
|
23243
|
+
"description": "Save a creator brief: the revision step after createCreativeStrategy. Omitting strategyId creates a new brief instead of editing one. Sent fields replace stored ones, so read it with getCreativeStrategy and send the full concepts array with your edits.",
|
|
23369
23244
|
"type": "mutation",
|
|
23370
23245
|
"path": [
|
|
23371
23246
|
"api",
|
|
@@ -23619,7 +23494,7 @@ Example - opted-in members with more than 5 visits, newest first:
|
|
|
23619
23494
|
{
|
|
23620
23495
|
"id": "updateCreatorVisit",
|
|
23621
23496
|
"domain": "creators",
|
|
23622
|
-
"description": "Update one creator visit:
|
|
23497
|
+
"description": "Update one creator visit: approve or deny an application, set or clear its time, move it, or record its outcome. Approving or denying texts the creator immediately, and approving spends the location's monthly creator allowance; setting or clearing startTime and status 'cancelled' also text them. Confirm with the user and preview with dryRun: true first. sideEffects: false writes silently. eventId from listCreatorApplications.",
|
|
23623
23498
|
"type": "mutation",
|
|
23624
23499
|
"path": [
|
|
23625
23500
|
"api",
|
|
@@ -23646,6 +23521,9 @@ Example - opted-in members with more than 5 visits, newest first:
|
|
|
23646
23521
|
"durationMs": {
|
|
23647
23522
|
"type": "number"
|
|
23648
23523
|
},
|
|
23524
|
+
"locationId": {
|
|
23525
|
+
"type": "string"
|
|
23526
|
+
},
|
|
23649
23527
|
"status": {
|
|
23650
23528
|
"type": "string",
|
|
23651
23529
|
"enum": [
|
|
@@ -23659,6 +23537,17 @@ Example - opted-in members with more than 5 visits, newest first:
|
|
|
23659
23537
|
"cancelled"
|
|
23660
23538
|
]
|
|
23661
23539
|
},
|
|
23540
|
+
"notes": {
|
|
23541
|
+
"anyOf": [
|
|
23542
|
+
{
|
|
23543
|
+
"type": "string",
|
|
23544
|
+
"maxLength": 1e3
|
|
23545
|
+
},
|
|
23546
|
+
{
|
|
23547
|
+
"type": "null"
|
|
23548
|
+
}
|
|
23549
|
+
]
|
|
23550
|
+
},
|
|
23662
23551
|
"sideEffects": {
|
|
23663
23552
|
"type": "boolean",
|
|
23664
23553
|
"default": true
|
|
@@ -23678,7 +23567,7 @@ Example - opted-in members with more than 5 visits, newest first:
|
|
|
23678
23567
|
{
|
|
23679
23568
|
"id": "updateInfluencerBoardConfig",
|
|
23680
23569
|
"domain": "creators",
|
|
23681
|
-
"description": "Create or update a location's creator program
|
|
23570
|
+
"description": "Create or update a location's creator program (an upsert, one per locationId; omitted fields are left alone). Settings change what creators are promised and texted, so never set reimbursementEnabled unless the client asks. Changing maxCreatorsPerMonth can pause or restart the location's recruitment ads immediately. agentPaused: true stops the creator AI agent's texts. locationId from queryData interface.location.",
|
|
23682
23571
|
"type": "mutation",
|
|
23683
23572
|
"path": [
|
|
23684
23573
|
"api",
|
|
@@ -23698,9 +23587,6 @@ Example - opted-in members with more than 5 visits, newest first:
|
|
|
23698
23587
|
"landingPageConfirmed": {
|
|
23699
23588
|
"type": "boolean"
|
|
23700
23589
|
},
|
|
23701
|
-
"calendarConfigured": {
|
|
23702
|
-
"type": "boolean"
|
|
23703
|
-
},
|
|
23704
23590
|
"approverUserId": {
|
|
23705
23591
|
"type": [
|
|
23706
23592
|
"string",
|
|
@@ -23720,6 +23606,10 @@ Example - opted-in members with more than 5 visits, newest first:
|
|
|
23720
23606
|
"passConfigured": {
|
|
23721
23607
|
"type": "boolean"
|
|
23722
23608
|
},
|
|
23609
|
+
"calendarConfigured": {
|
|
23610
|
+
"type": "boolean",
|
|
23611
|
+
"description": "Ignored. Kept while older clients still send it."
|
|
23612
|
+
},
|
|
23723
23613
|
"maxBookingDaysOut": {
|
|
23724
23614
|
"anyOf": [
|
|
23725
23615
|
{
|
|
@@ -23840,6 +23730,45 @@ Example - opted-in members with more than 5 visits, newest first:
|
|
|
23840
23730
|
},
|
|
23841
23731
|
"agentPaused": {
|
|
23842
23732
|
"type": "boolean"
|
|
23733
|
+
},
|
|
23734
|
+
"recruitmentFacebookCampaignId": {
|
|
23735
|
+
"anyOf": [
|
|
23736
|
+
{
|
|
23737
|
+
"type": "string",
|
|
23738
|
+
"minLength": 1
|
|
23739
|
+
},
|
|
23740
|
+
{
|
|
23741
|
+
"type": "null"
|
|
23742
|
+
}
|
|
23743
|
+
],
|
|
23744
|
+
"description": "The Meta campaign of this location's creator recruitment ad. Set it after publishing the location's ad; it is what the monthly sourcing cap, the spend panel and the ad status read. Only this location's program is written. Omit to preserve; send null to clear."
|
|
23745
|
+
},
|
|
23746
|
+
"recruitmentFacebookAdSetId": {
|
|
23747
|
+
"anyOf": [
|
|
23748
|
+
{
|
|
23749
|
+
"type": "string",
|
|
23750
|
+
"minLength": 1
|
|
23751
|
+
},
|
|
23752
|
+
{
|
|
23753
|
+
"type": "null"
|
|
23754
|
+
}
|
|
23755
|
+
],
|
|
23756
|
+
"description": "The ad set of this location's recruitment campaign. Omit to preserve; send null to clear."
|
|
23757
|
+
},
|
|
23758
|
+
"recruitmentStatus": {
|
|
23759
|
+
"anyOf": [
|
|
23760
|
+
{
|
|
23761
|
+
"type": "string",
|
|
23762
|
+
"enum": [
|
|
23763
|
+
"active",
|
|
23764
|
+
"paused"
|
|
23765
|
+
]
|
|
23766
|
+
},
|
|
23767
|
+
{
|
|
23768
|
+
"type": "null"
|
|
23769
|
+
}
|
|
23770
|
+
],
|
|
23771
|
+
"description": "The saved status of this location's recruitment campaign. This does not start or pause anything on Meta; use setAdCampaignStatus for that. Omit to preserve; send null to clear."
|
|
23843
23772
|
}
|
|
23844
23773
|
},
|
|
23845
23774
|
"required": [
|
|
@@ -23852,7 +23781,7 @@ Example - opted-in members with more than 5 visits, newest first:
|
|
|
23852
23781
|
{
|
|
23853
23782
|
"id": "updateMembersProgramReward",
|
|
23854
23783
|
"domain": "membersProgram",
|
|
23855
|
-
"description": "Correct a members program reward in place
|
|
23784
|
+
"description": "Correct a members program reward in place instead of creating a second one. rewardId from listMembersProgramRewards. Omitted fields are left alone; pointsCost: null clears it, turning a points reward into one only an automation grants.",
|
|
23856
23785
|
"type": "mutation",
|
|
23857
23786
|
"path": [
|
|
23858
23787
|
"api",
|
|
@@ -23891,7 +23820,7 @@ Example - opted-in members with more than 5 visits, newest first:
|
|
|
23891
23820
|
{
|
|
23892
23821
|
"id": "updateOnboardingForm",
|
|
23893
23822
|
"domain": "core",
|
|
23894
|
-
"description":
|
|
23823
|
+
"description": 'Update the onboarding form (self-reported answers behind tasks the system can\'t observe). Nested step objects are replaced, not merged: read getOnboardingForm first and send the whole step (`data` is merged). pos.details.type "other" creates a manual-entry POS location.',
|
|
23895
23824
|
"type": "mutation",
|
|
23896
23825
|
"path": [
|
|
23897
23826
|
"api",
|
|
@@ -23905,9 +23834,6 @@ Example - opted-in members with more than 5 visits, newest first:
|
|
|
23905
23834
|
"completionStatus": {
|
|
23906
23835
|
"type": "object",
|
|
23907
23836
|
"properties": {
|
|
23908
|
-
"preProductOnboardingComplete": {
|
|
23909
|
-
"type": "boolean"
|
|
23910
|
-
},
|
|
23911
23837
|
"postProductOnboardingComplete": {
|
|
23912
23838
|
"type": "boolean"
|
|
23913
23839
|
}
|
|
@@ -24492,11 +24418,7 @@ Example - opted-in members with more than 5 visits, newest first:
|
|
|
24492
24418
|
"properties": {
|
|
24493
24419
|
"type": {
|
|
24494
24420
|
"type": "string",
|
|
24495
|
-
"
|
|
24496
|
-
"retention",
|
|
24497
|
-
"acquisition",
|
|
24498
|
-
"both"
|
|
24499
|
-
]
|
|
24421
|
+
"const": "both"
|
|
24500
24422
|
},
|
|
24501
24423
|
"retention": {
|
|
24502
24424
|
"type": "object",
|
|
@@ -24521,7 +24443,7 @@ Example - opted-in members with more than 5 visits, newest first:
|
|
|
24521
24443
|
{
|
|
24522
24444
|
"id": "updateOrganization",
|
|
24523
24445
|
"domain": "core",
|
|
24524
|
-
"description": "Update the organization record. Omitted fields are left alone, but staffInstructions is replaced
|
|
24446
|
+
"description": "Update the organization record: name, timezone, minimum spend, staff instructions, reporting period calendar. Omitted fields are left alone, but staffInstructions is replaced whole, so send every key you want to keep. minimumSpendValue is in dollars.",
|
|
24525
24447
|
"type": "mutation",
|
|
24526
24448
|
"path": [
|
|
24527
24449
|
"api",
|
|
@@ -24669,7 +24591,7 @@ Example - opted-in members with more than 5 visits, newest first:
|
|
|
24669
24591
|
{
|
|
24670
24592
|
"id": "updatePassConfiguration",
|
|
24671
24593
|
"domain": "passBuilder",
|
|
24672
|
-
"description": "Save the
|
|
24594
|
+
"description": "Save the wallet pass configuration. A full-document save, not a patch: anything omitted is dropped, so read getPassConfiguration, modify it, and send the whole document back. A change to sections, features, locations or passStyle re-pushes every pass already in a guest's wallet. Omit passStyle to keep the current style.",
|
|
24673
24595
|
"type": "mutation",
|
|
24674
24596
|
"path": [
|
|
24675
24597
|
"api",
|
|
@@ -26103,6 +26025,22 @@ Example - opted-in members with more than 5 visits, newest first:
|
|
|
26103
26025
|
],
|
|
26104
26026
|
"additionalProperties": false
|
|
26105
26027
|
},
|
|
26028
|
+
"passStyle": {
|
|
26029
|
+
"anyOf": [
|
|
26030
|
+
{
|
|
26031
|
+
"type": "string",
|
|
26032
|
+
"enum": [
|
|
26033
|
+
"eventTicket",
|
|
26034
|
+
"storeCard",
|
|
26035
|
+
"generic",
|
|
26036
|
+
"coupon"
|
|
26037
|
+
]
|
|
26038
|
+
},
|
|
26039
|
+
{
|
|
26040
|
+
"type": "null"
|
|
26041
|
+
}
|
|
26042
|
+
]
|
|
26043
|
+
},
|
|
26106
26044
|
"metadata": {
|
|
26107
26045
|
"type": "object",
|
|
26108
26046
|
"properties": {
|