@feastalytics/cli 0.1.12 → 0.1.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/cli.js
CHANGED
|
@@ -8819,6 +8819,32 @@ var CLI_MANIFEST = {
|
|
|
8819
8819
|
"$schema": "http://json-schema.org/draft-07/schema#"
|
|
8820
8820
|
}
|
|
8821
8821
|
},
|
|
8822
|
+
{
|
|
8823
|
+
"id": "ads_get_custom_audiences",
|
|
8824
|
+
"domain": "ads",
|
|
8825
|
+
"description": "List the custom audiences on an ad account, for the customAudienceIds and excludedCustomAudienceIds template variables. isReadyForUse false means Meta will not deliver to it, usually for too few matched people, so an ad set targeting it reaches nobody, and the size bounds are approximate and go stale while an audience is being updated. An audience belongs to the ad account, so the ids from one account are rejected by another. Nothing here says how fresh the underlying list is: a customer-list audience is a snapshot of whatever was last uploaded, and timeUpdated is when that happened.",
|
|
8826
|
+
"type": "query",
|
|
8827
|
+
"path": [
|
|
8828
|
+
"api",
|
|
8829
|
+
"ads",
|
|
8830
|
+
"facebook",
|
|
8831
|
+
"getCustomAudiences"
|
|
8832
|
+
],
|
|
8833
|
+
"inputJsonSchema": {
|
|
8834
|
+
"type": "object",
|
|
8835
|
+
"properties": {
|
|
8836
|
+
"adAccountId": {
|
|
8837
|
+
"type": "string",
|
|
8838
|
+
"minLength": 1
|
|
8839
|
+
}
|
|
8840
|
+
},
|
|
8841
|
+
"required": [
|
|
8842
|
+
"adAccountId"
|
|
8843
|
+
],
|
|
8844
|
+
"additionalProperties": false,
|
|
8845
|
+
"$schema": "http://json-schema.org/draft-07/schema#"
|
|
8846
|
+
}
|
|
8847
|
+
},
|
|
8822
8848
|
{
|
|
8823
8849
|
"id": "ads_get_datasets",
|
|
8824
8850
|
"domain": "ads",
|
|
@@ -8983,7 +9009,7 @@ var CLI_MANIFEST = {
|
|
|
8983
9009
|
{
|
|
8984
9010
|
"id": "applyFunnelTemplate",
|
|
8985
9011
|
"domain": "campaigns",
|
|
8986
|
-
"description": "Applies a funnel template to an existing campaign that has no funnel set up yet (override.initialScreenId is null). Pass a templateId from listFunnelTemplates: offer-basic (Sign Up routes straight to the offer wallet \u2014 no payment step; use this for offers redeemed in person), offer-prepay / offer-direct-prepay (Sign Up / landing routes to a Stripe payment screen), reservation-offer-basic (Sign Up routes to reservation-or-wallet), reservation-offer-prepay / reservation-offer-direct-prepay (payment then reservation), reservation-only. The promotion's canPrePay flag does NOT change what gets built \u2014 prepay templates always insert the payment screen, and are rejected unless the promotion has canPrePay: true and a price.
|
|
9012
|
+
"description": "Applies a funnel template to an existing campaign that has no funnel set up yet (override.initialScreenId is null). Pass a templateId from listFunnelTemplates: offer-basic (Sign Up routes straight to the offer wallet \u2014 no payment step; use this for offers redeemed in person), offer-prepay / offer-direct-prepay (Sign Up / landing routes to a Stripe payment screen), reservation-offer-basic (Sign Up routes to reservation-or-wallet), reservation-offer-prepay / reservation-offer-direct-prepay (payment then reservation), reservation-only. The promotion's canPrePay flag does NOT change what gets built \u2014 prepay templates always insert the payment screen, and are rejected unless the promotion has canPrePay: true and a price.",
|
|
8987
9013
|
"type": "mutation",
|
|
8988
9014
|
"path": [
|
|
8989
9015
|
"api",
|
|
@@ -8992,60 +9018,71 @@ var CLI_MANIFEST = {
|
|
|
8992
9018
|
"chooseFunnelTemplate"
|
|
8993
9019
|
],
|
|
8994
9020
|
"inputJsonSchema": {
|
|
8995
|
-
"
|
|
8996
|
-
|
|
8997
|
-
|
|
8998
|
-
"
|
|
8999
|
-
"campaignId": {
|
|
9000
|
-
"type": "string"
|
|
9001
|
-
},
|
|
9002
|
-
"templateId": {
|
|
9003
|
-
"type": "string",
|
|
9004
|
-
"enum": [
|
|
9005
|
-
"offer-basic",
|
|
9006
|
-
"offer-prepay",
|
|
9007
|
-
"offer-direct-prepay",
|
|
9008
|
-
"reservation-offer-basic",
|
|
9009
|
-
"reservation-offer-prepay",
|
|
9010
|
-
"reservation-offer-direct-prepay",
|
|
9011
|
-
"reservation-only"
|
|
9012
|
-
]
|
|
9013
|
-
}
|
|
9014
|
-
},
|
|
9015
|
-
"required": [
|
|
9016
|
-
"campaignId",
|
|
9017
|
-
"templateId"
|
|
9018
|
-
],
|
|
9019
|
-
"additionalProperties": false
|
|
9021
|
+
"type": "object",
|
|
9022
|
+
"properties": {
|
|
9023
|
+
"campaignId": {
|
|
9024
|
+
"type": "string"
|
|
9020
9025
|
},
|
|
9021
|
-
{
|
|
9022
|
-
"type": "
|
|
9023
|
-
"
|
|
9024
|
-
"
|
|
9025
|
-
|
|
9026
|
-
|
|
9027
|
-
"
|
|
9028
|
-
|
|
9029
|
-
|
|
9030
|
-
|
|
9031
|
-
|
|
9032
|
-
"simpleRewards"
|
|
9033
|
-
]
|
|
9034
|
-
},
|
|
9035
|
-
"skipSignUp": {
|
|
9036
|
-
"type": "boolean"
|
|
9037
|
-
},
|
|
9038
|
-
"isReservationFunnel": {
|
|
9039
|
-
"type": "boolean"
|
|
9040
|
-
}
|
|
9041
|
-
},
|
|
9042
|
-
"required": [
|
|
9043
|
-
"campaignId",
|
|
9044
|
-
"funnelType"
|
|
9045
|
-
],
|
|
9046
|
-
"additionalProperties": false
|
|
9026
|
+
"templateId": {
|
|
9027
|
+
"type": "string",
|
|
9028
|
+
"enum": [
|
|
9029
|
+
"offer-basic",
|
|
9030
|
+
"offer-prepay",
|
|
9031
|
+
"offer-direct-prepay",
|
|
9032
|
+
"reservation-offer-basic",
|
|
9033
|
+
"reservation-offer-prepay",
|
|
9034
|
+
"reservation-offer-direct-prepay",
|
|
9035
|
+
"reservation-only"
|
|
9036
|
+
]
|
|
9047
9037
|
}
|
|
9038
|
+
},
|
|
9039
|
+
"required": [
|
|
9040
|
+
"campaignId",
|
|
9041
|
+
"templateId"
|
|
9042
|
+
],
|
|
9043
|
+
"additionalProperties": false,
|
|
9044
|
+
"$schema": "http://json-schema.org/draft-07/schema#"
|
|
9045
|
+
}
|
|
9046
|
+
},
|
|
9047
|
+
{
|
|
9048
|
+
"id": "awardReward",
|
|
9049
|
+
"domain": "membersProgram",
|
|
9050
|
+
"description": "Give one member a reward they can redeem, the way the dashboard's Give Reward button does. This is a real grant that lands in the guest's wallet pass \u2014 it is not the same as createMembersProgramReward, which only defines a reward the program offers. serialNumber identifies the member (get one from searchUsers) and itemId the catalog item they get; both are checked against this organization and a wrong id is rejected rather than granted. Expiry is optional and a reward with none never expires: expiresInDays sets it to the end of that day in the restaurant's timezone, which is what a guest reads '14 days' to mean, and expiresAt takes an exact ISO 8601 instant \u2014 pass one or the other. locationId restricts redemption to one participating location and is otherwise left open. Awarding recomputes the member's progress, which also re-evaluates their automations, so a flow triggered by earning a reward will fire. There is no undo and no idempotency key, so a retried call grants a second reward.",
|
|
9051
|
+
"type": "mutation",
|
|
9052
|
+
"path": [
|
|
9053
|
+
"api",
|
|
9054
|
+
"membersProgram",
|
|
9055
|
+
"awardReward"
|
|
9056
|
+
],
|
|
9057
|
+
"inputJsonSchema": {
|
|
9058
|
+
"type": "object",
|
|
9059
|
+
"properties": {
|
|
9060
|
+
"serialNumber": {
|
|
9061
|
+
"type": "string",
|
|
9062
|
+
"minLength": 1
|
|
9063
|
+
},
|
|
9064
|
+
"itemId": {
|
|
9065
|
+
"type": "string",
|
|
9066
|
+
"minLength": 1
|
|
9067
|
+
},
|
|
9068
|
+
"locationId": {
|
|
9069
|
+
"type": "string",
|
|
9070
|
+
"minLength": 1
|
|
9071
|
+
},
|
|
9072
|
+
"expiresAt": {
|
|
9073
|
+
"type": "string",
|
|
9074
|
+
"format": "date-time"
|
|
9075
|
+
},
|
|
9076
|
+
"expiresInDays": {
|
|
9077
|
+
"type": "integer",
|
|
9078
|
+
"exclusiveMinimum": 0
|
|
9079
|
+
}
|
|
9080
|
+
},
|
|
9081
|
+
"required": [
|
|
9082
|
+
"serialNumber",
|
|
9083
|
+
"itemId"
|
|
9048
9084
|
],
|
|
9085
|
+
"additionalProperties": false,
|
|
9049
9086
|
"$schema": "http://json-schema.org/draft-07/schema#"
|
|
9050
9087
|
}
|
|
9051
9088
|
},
|
|
@@ -10664,6 +10701,32 @@ var CLI_MANIFEST = {
|
|
|
10664
10701
|
"setCustomProperty"
|
|
10665
10702
|
],
|
|
10666
10703
|
"additionalProperties": false
|
|
10704
|
+
},
|
|
10705
|
+
{
|
|
10706
|
+
"type": "object",
|
|
10707
|
+
"properties": {
|
|
10708
|
+
"type": {
|
|
10709
|
+
"type": "string",
|
|
10710
|
+
"const": "sendWalletPush"
|
|
10711
|
+
},
|
|
10712
|
+
"sendWalletPush": {
|
|
10713
|
+
"type": "object",
|
|
10714
|
+
"properties": {
|
|
10715
|
+
"message": {
|
|
10716
|
+
"type": "string"
|
|
10717
|
+
}
|
|
10718
|
+
},
|
|
10719
|
+
"required": [
|
|
10720
|
+
"message"
|
|
10721
|
+
],
|
|
10722
|
+
"additionalProperties": false
|
|
10723
|
+
}
|
|
10724
|
+
},
|
|
10725
|
+
"required": [
|
|
10726
|
+
"type",
|
|
10727
|
+
"sendWalletPush"
|
|
10728
|
+
],
|
|
10729
|
+
"additionalProperties": false
|
|
10667
10730
|
}
|
|
10668
10731
|
]
|
|
10669
10732
|
}
|
|
@@ -12556,6 +12619,32 @@ var CLI_MANIFEST = {
|
|
|
12556
12619
|
"setCustomProperty"
|
|
12557
12620
|
],
|
|
12558
12621
|
"additionalProperties": false
|
|
12622
|
+
},
|
|
12623
|
+
{
|
|
12624
|
+
"type": "object",
|
|
12625
|
+
"properties": {
|
|
12626
|
+
"type": {
|
|
12627
|
+
"type": "string",
|
|
12628
|
+
"const": "sendWalletPush"
|
|
12629
|
+
},
|
|
12630
|
+
"sendWalletPush": {
|
|
12631
|
+
"type": "object",
|
|
12632
|
+
"properties": {
|
|
12633
|
+
"message": {
|
|
12634
|
+
"type": "string"
|
|
12635
|
+
}
|
|
12636
|
+
},
|
|
12637
|
+
"required": [
|
|
12638
|
+
"message"
|
|
12639
|
+
],
|
|
12640
|
+
"additionalProperties": false
|
|
12641
|
+
}
|
|
12642
|
+
},
|
|
12643
|
+
"required": [
|
|
12644
|
+
"type",
|
|
12645
|
+
"sendWalletPush"
|
|
12646
|
+
],
|
|
12647
|
+
"additionalProperties": false
|
|
12559
12648
|
}
|
|
12560
12649
|
]
|
|
12561
12650
|
}
|
|
@@ -13018,6 +13107,9 @@ var CLI_MANIFEST = {
|
|
|
13018
13107
|
],
|
|
13019
13108
|
"additionalProperties": false
|
|
13020
13109
|
},
|
|
13110
|
+
"secondary": {
|
|
13111
|
+
"$ref": "#/properties/theme/properties/palette/properties/primary"
|
|
13112
|
+
},
|
|
13021
13113
|
"mode": {
|
|
13022
13114
|
"type": "string",
|
|
13023
13115
|
"enum": [
|
|
@@ -13042,9 +13134,15 @@ var CLI_MANIFEST = {
|
|
|
13042
13134
|
"properties": {
|
|
13043
13135
|
"default": {
|
|
13044
13136
|
"type": "string"
|
|
13137
|
+
},
|
|
13138
|
+
"paper": {
|
|
13139
|
+
"type": "string"
|
|
13045
13140
|
}
|
|
13046
13141
|
},
|
|
13047
13142
|
"additionalProperties": false
|
|
13143
|
+
},
|
|
13144
|
+
"divider": {
|
|
13145
|
+
"type": "string"
|
|
13048
13146
|
}
|
|
13049
13147
|
},
|
|
13050
13148
|
"additionalProperties": false
|
|
@@ -13336,7 +13434,7 @@ var CLI_MANIFEST = {
|
|
|
13336
13434
|
{
|
|
13337
13435
|
"id": "createInfluencerPayout",
|
|
13338
13436
|
"domain": "creators",
|
|
13339
|
-
"description": "Charges the organization's card to pay a creator's content bonus. NEVER call this on your own initiative or as part of an automated flow \u2014 every call needs the client's explicit, fresh approval to pay this specific creator, given to you directly; a standing instruction or an inferred intent does not count. The endpoint enforces its own preconditions and refuses otherwise: the visit must have a content submission approved as a paid ad (decideCreatorSubmission with approvalType 'ad' \u2014 organic approvals earn no payout), and no payout may already exist for the visit in any active status \u2014 one payout per visit, so a second call while one is pending, funding, onboarding, or paid is rejected. The bonus amount
|
|
13437
|
+
"description": "Charges the organization's card to pay a creator's content bonus. NEVER call this on your own initiative or as part of an automated flow \u2014 every call needs the client's explicit, fresh approval to pay this specific creator, given to you directly; a standing instruction or an inferred intent does not count. The endpoint enforces its own preconditions and refuses otherwise: the visit must have a content submission approved as a paid ad (decideCreatorSubmission with approvalType 'ad' \u2014 organic approvals earn no payout), and no payout may already exist for the visit in any active status \u2014 one payout per visit, so a second call while one is pending, funding, onboarding, or paid is rejected. A visit whose only attempts are FAILED or REFUNDED may be retried; the retry voids the earlier attempt's open Stripe invoice first and recomputes the default amount the same way. The bonus amount defaults to the one stamped on the submission when it was approved (falling back to the location's board config), and is grossed up so the org covers the Stripe fee. Pass amountCents only when the client explicitly asks to pay this one creator a different amount; it is written back to the submission so reporting matches what was paid. After the charge, Stripe webhooks carry it to the creator (FUNDED \u2192 onboarding if needed \u2192 PAID) with no further action from you; follow progress in queryData creators.creatorPayout.",
|
|
13340
13438
|
"type": "mutation",
|
|
13341
13439
|
"path": [
|
|
13342
13440
|
"api",
|
|
@@ -13349,6 +13447,12 @@ var CLI_MANIFEST = {
|
|
|
13349
13447
|
"eventId": {
|
|
13350
13448
|
"type": "string",
|
|
13351
13449
|
"description": "The creator visit's eventId (creatorVisitApplication.eventId) whose approved paid-ad submission is being paid out."
|
|
13450
|
+
},
|
|
13451
|
+
"amountCents": {
|
|
13452
|
+
"type": "integer",
|
|
13453
|
+
"exclusiveMinimum": 0,
|
|
13454
|
+
"maximum": 5e5,
|
|
13455
|
+
"description": "One-time bonus amount in cents for this payout only, before the Stripe fee gross-up. Omit to pay the default amount. Does not change the board config."
|
|
13352
13456
|
}
|
|
13353
13457
|
},
|
|
13354
13458
|
"required": [
|
|
@@ -13610,7 +13714,8 @@ var CLI_MANIFEST = {
|
|
|
13610
13714
|
"organizationFilePublic",
|
|
13611
13715
|
"organizationFilePrivate",
|
|
13612
13716
|
"creativeLibrary",
|
|
13613
|
-
"creativeLibraryBroll"
|
|
13717
|
+
"creativeLibraryBroll",
|
|
13718
|
+
"creativeLibraryVoiceover"
|
|
13614
13719
|
]
|
|
13615
13720
|
},
|
|
13616
13721
|
"key": {
|
|
@@ -13740,7 +13845,7 @@ var CLI_MANIFEST = {
|
|
|
13740
13845
|
{
|
|
13741
13846
|
"id": "getAutomationDraft",
|
|
13742
13847
|
"domain": "automations",
|
|
13743
|
-
"description": "Read an automation draft \u2014 its staged operations, the flows it touches, and the preview links that show those changes highlighted. Use the returned `operations` as `edits` on simulateAutomations to preview what the draft would do.",
|
|
13848
|
+
"description": "Read an automation draft \u2014 its staged operations, the flows it touches, the resulting automations after those operations are merged onto current live state, and the preview links that show those changes highlighted. `resultingAutomations` is what each touched automation will actually look like if the draft is saved \u2014 always check it for fields that silently changed or disappeared, not just the fields the operations explicitly mention. Use the returned `operations` as `edits` on simulateAutomations to preview what the draft would do.",
|
|
13744
13849
|
"type": "query",
|
|
13745
13850
|
"path": [
|
|
13746
13851
|
"api",
|
|
@@ -13792,7 +13897,388 @@ var CLI_MANIFEST = {
|
|
|
13792
13897
|
}
|
|
13793
13898
|
},
|
|
13794
13899
|
"required": [
|
|
13795
|
-
"campaignId"
|
|
13900
|
+
"campaignId"
|
|
13901
|
+
],
|
|
13902
|
+
"additionalProperties": false,
|
|
13903
|
+
"$schema": "http://json-schema.org/draft-07/schema#"
|
|
13904
|
+
}
|
|
13905
|
+
},
|
|
13906
|
+
{
|
|
13907
|
+
"id": "getCampaignBreakdown",
|
|
13908
|
+
"domain": "campaigns",
|
|
13909
|
+
"description": `A campaign's metrics broken down by channel, Facebook campaign, ad set, ad, referrer and creator, as a tree of nodes, loaded a batch at a time. Pass node refs, get back each node's metrics plus the refs of its children (identifiers only, no metrics). Load children by passing those refs back in.
|
|
13910
|
+
|
|
13911
|
+
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. 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).
|
|
13912
|
+
|
|
13913
|
+
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.`,
|
|
13914
|
+
"type": "query",
|
|
13915
|
+
"path": [
|
|
13916
|
+
"api",
|
|
13917
|
+
"campaigns",
|
|
13918
|
+
"app",
|
|
13919
|
+
"breakdown"
|
|
13920
|
+
],
|
|
13921
|
+
"inputJsonSchema": {
|
|
13922
|
+
"type": "object",
|
|
13923
|
+
"properties": {
|
|
13924
|
+
"refs": {
|
|
13925
|
+
"type": "array",
|
|
13926
|
+
"items": {
|
|
13927
|
+
"anyOf": [
|
|
13928
|
+
{
|
|
13929
|
+
"type": "object",
|
|
13930
|
+
"properties": {
|
|
13931
|
+
"type": {
|
|
13932
|
+
"type": "string",
|
|
13933
|
+
"const": "campaign"
|
|
13934
|
+
},
|
|
13935
|
+
"campaign": {
|
|
13936
|
+
"type": "object",
|
|
13937
|
+
"properties": {
|
|
13938
|
+
"campaignId": {
|
|
13939
|
+
"type": "string",
|
|
13940
|
+
"minLength": 1
|
|
13941
|
+
}
|
|
13942
|
+
},
|
|
13943
|
+
"required": [
|
|
13944
|
+
"campaignId"
|
|
13945
|
+
],
|
|
13946
|
+
"additionalProperties": false
|
|
13947
|
+
}
|
|
13948
|
+
},
|
|
13949
|
+
"required": [
|
|
13950
|
+
"type",
|
|
13951
|
+
"campaign"
|
|
13952
|
+
],
|
|
13953
|
+
"additionalProperties": false
|
|
13954
|
+
},
|
|
13955
|
+
{
|
|
13956
|
+
"type": "object",
|
|
13957
|
+
"properties": {
|
|
13958
|
+
"type": {
|
|
13959
|
+
"type": "string",
|
|
13960
|
+
"const": "channel"
|
|
13961
|
+
},
|
|
13962
|
+
"channel": {
|
|
13963
|
+
"type": "object",
|
|
13964
|
+
"properties": {
|
|
13965
|
+
"campaignId": {
|
|
13966
|
+
"$ref": "#/properties/refs/items/anyOf/0/properties/campaign/properties/campaignId"
|
|
13967
|
+
},
|
|
13968
|
+
"channel": {
|
|
13969
|
+
"type": "string",
|
|
13970
|
+
"enum": [
|
|
13971
|
+
"facebook",
|
|
13972
|
+
"influencer",
|
|
13973
|
+
"tiktok",
|
|
13974
|
+
"google",
|
|
13975
|
+
"misc",
|
|
13976
|
+
"referral",
|
|
13977
|
+
"unknown"
|
|
13978
|
+
]
|
|
13979
|
+
}
|
|
13980
|
+
},
|
|
13981
|
+
"required": [
|
|
13982
|
+
"campaignId",
|
|
13983
|
+
"channel"
|
|
13984
|
+
],
|
|
13985
|
+
"additionalProperties": false
|
|
13986
|
+
}
|
|
13987
|
+
},
|
|
13988
|
+
"required": [
|
|
13989
|
+
"type",
|
|
13990
|
+
"channel"
|
|
13991
|
+
],
|
|
13992
|
+
"additionalProperties": false
|
|
13993
|
+
},
|
|
13994
|
+
{
|
|
13995
|
+
"type": "object",
|
|
13996
|
+
"properties": {
|
|
13997
|
+
"type": {
|
|
13998
|
+
"type": "string",
|
|
13999
|
+
"const": "fbCampaign"
|
|
14000
|
+
},
|
|
14001
|
+
"fbCampaign": {
|
|
14002
|
+
"type": "object",
|
|
14003
|
+
"properties": {
|
|
14004
|
+
"campaignId": {
|
|
14005
|
+
"$ref": "#/properties/refs/items/anyOf/0/properties/campaign/properties/campaignId"
|
|
14006
|
+
},
|
|
14007
|
+
"fbCampaignId": {
|
|
14008
|
+
"anyOf": [
|
|
14009
|
+
{
|
|
14010
|
+
"type": "string",
|
|
14011
|
+
"minLength": 1
|
|
14012
|
+
},
|
|
14013
|
+
{
|
|
14014
|
+
"type": "null"
|
|
14015
|
+
}
|
|
14016
|
+
]
|
|
14017
|
+
}
|
|
14018
|
+
},
|
|
14019
|
+
"required": [
|
|
14020
|
+
"campaignId",
|
|
14021
|
+
"fbCampaignId"
|
|
14022
|
+
],
|
|
14023
|
+
"additionalProperties": false
|
|
14024
|
+
}
|
|
14025
|
+
},
|
|
14026
|
+
"required": [
|
|
14027
|
+
"type",
|
|
14028
|
+
"fbCampaign"
|
|
14029
|
+
],
|
|
14030
|
+
"additionalProperties": false
|
|
14031
|
+
},
|
|
14032
|
+
{
|
|
14033
|
+
"type": "object",
|
|
14034
|
+
"properties": {
|
|
14035
|
+
"type": {
|
|
14036
|
+
"type": "string",
|
|
14037
|
+
"const": "fbAdset"
|
|
14038
|
+
},
|
|
14039
|
+
"fbAdset": {
|
|
14040
|
+
"type": "object",
|
|
14041
|
+
"properties": {
|
|
14042
|
+
"campaignId": {
|
|
14043
|
+
"$ref": "#/properties/refs/items/anyOf/0/properties/campaign/properties/campaignId"
|
|
14044
|
+
},
|
|
14045
|
+
"fbCampaignId": {
|
|
14046
|
+
"$ref": "#/properties/refs/items/anyOf/2/properties/fbCampaign/properties/fbCampaignId"
|
|
14047
|
+
},
|
|
14048
|
+
"fbAdsetId": {
|
|
14049
|
+
"$ref": "#/properties/refs/items/anyOf/2/properties/fbCampaign/properties/fbCampaignId"
|
|
14050
|
+
}
|
|
14051
|
+
},
|
|
14052
|
+
"required": [
|
|
14053
|
+
"campaignId",
|
|
14054
|
+
"fbCampaignId",
|
|
14055
|
+
"fbAdsetId"
|
|
14056
|
+
],
|
|
14057
|
+
"additionalProperties": false
|
|
14058
|
+
}
|
|
14059
|
+
},
|
|
14060
|
+
"required": [
|
|
14061
|
+
"type",
|
|
14062
|
+
"fbAdset"
|
|
14063
|
+
],
|
|
14064
|
+
"additionalProperties": false
|
|
14065
|
+
},
|
|
14066
|
+
{
|
|
14067
|
+
"type": "object",
|
|
14068
|
+
"properties": {
|
|
14069
|
+
"type": {
|
|
14070
|
+
"type": "string",
|
|
14071
|
+
"const": "fbAd"
|
|
14072
|
+
},
|
|
14073
|
+
"fbAd": {
|
|
14074
|
+
"type": "object",
|
|
14075
|
+
"properties": {
|
|
14076
|
+
"campaignId": {
|
|
14077
|
+
"$ref": "#/properties/refs/items/anyOf/0/properties/campaign/properties/campaignId"
|
|
14078
|
+
},
|
|
14079
|
+
"fbCampaignId": {
|
|
14080
|
+
"$ref": "#/properties/refs/items/anyOf/2/properties/fbCampaign/properties/fbCampaignId"
|
|
14081
|
+
},
|
|
14082
|
+
"fbAdsetId": {
|
|
14083
|
+
"$ref": "#/properties/refs/items/anyOf/2/properties/fbCampaign/properties/fbCampaignId"
|
|
14084
|
+
},
|
|
14085
|
+
"fbAdId": {
|
|
14086
|
+
"type": "string",
|
|
14087
|
+
"minLength": 1
|
|
14088
|
+
}
|
|
14089
|
+
},
|
|
14090
|
+
"required": [
|
|
14091
|
+
"campaignId",
|
|
14092
|
+
"fbCampaignId",
|
|
14093
|
+
"fbAdsetId",
|
|
14094
|
+
"fbAdId"
|
|
14095
|
+
],
|
|
14096
|
+
"additionalProperties": false
|
|
14097
|
+
}
|
|
14098
|
+
},
|
|
14099
|
+
"required": [
|
|
14100
|
+
"type",
|
|
14101
|
+
"fbAd"
|
|
14102
|
+
],
|
|
14103
|
+
"additionalProperties": false
|
|
14104
|
+
},
|
|
14105
|
+
{
|
|
14106
|
+
"type": "object",
|
|
14107
|
+
"properties": {
|
|
14108
|
+
"type": {
|
|
14109
|
+
"type": "string",
|
|
14110
|
+
"const": "googleCampaign"
|
|
14111
|
+
},
|
|
14112
|
+
"googleCampaign": {
|
|
14113
|
+
"type": "object",
|
|
14114
|
+
"properties": {
|
|
14115
|
+
"campaignId": {
|
|
14116
|
+
"$ref": "#/properties/refs/items/anyOf/0/properties/campaign/properties/campaignId"
|
|
14117
|
+
},
|
|
14118
|
+
"googleCampaignId": {
|
|
14119
|
+
"$ref": "#/properties/refs/items/anyOf/2/properties/fbCampaign/properties/fbCampaignId"
|
|
14120
|
+
}
|
|
14121
|
+
},
|
|
14122
|
+
"required": [
|
|
14123
|
+
"campaignId",
|
|
14124
|
+
"googleCampaignId"
|
|
14125
|
+
],
|
|
14126
|
+
"additionalProperties": false
|
|
14127
|
+
}
|
|
14128
|
+
},
|
|
14129
|
+
"required": [
|
|
14130
|
+
"type",
|
|
14131
|
+
"googleCampaign"
|
|
14132
|
+
],
|
|
14133
|
+
"additionalProperties": false
|
|
14134
|
+
},
|
|
14135
|
+
{
|
|
14136
|
+
"type": "object",
|
|
14137
|
+
"properties": {
|
|
14138
|
+
"type": {
|
|
14139
|
+
"type": "string",
|
|
14140
|
+
"const": "tiktokCampaign"
|
|
14141
|
+
},
|
|
14142
|
+
"tiktokCampaign": {
|
|
14143
|
+
"type": "object",
|
|
14144
|
+
"properties": {
|
|
14145
|
+
"campaignId": {
|
|
14146
|
+
"$ref": "#/properties/refs/items/anyOf/0/properties/campaign/properties/campaignId"
|
|
14147
|
+
},
|
|
14148
|
+
"utmCampaignId": {
|
|
14149
|
+
"$ref": "#/properties/refs/items/anyOf/2/properties/fbCampaign/properties/fbCampaignId"
|
|
14150
|
+
}
|
|
14151
|
+
},
|
|
14152
|
+
"required": [
|
|
14153
|
+
"campaignId",
|
|
14154
|
+
"utmCampaignId"
|
|
14155
|
+
],
|
|
14156
|
+
"additionalProperties": false
|
|
14157
|
+
}
|
|
14158
|
+
},
|
|
14159
|
+
"required": [
|
|
14160
|
+
"type",
|
|
14161
|
+
"tiktokCampaign"
|
|
14162
|
+
],
|
|
14163
|
+
"additionalProperties": false
|
|
14164
|
+
},
|
|
14165
|
+
{
|
|
14166
|
+
"type": "object",
|
|
14167
|
+
"properties": {
|
|
14168
|
+
"type": {
|
|
14169
|
+
"type": "string",
|
|
14170
|
+
"const": "miscSource"
|
|
14171
|
+
},
|
|
14172
|
+
"miscSource": {
|
|
14173
|
+
"type": "object",
|
|
14174
|
+
"properties": {
|
|
14175
|
+
"campaignId": {
|
|
14176
|
+
"$ref": "#/properties/refs/items/anyOf/0/properties/campaign/properties/campaignId"
|
|
14177
|
+
},
|
|
14178
|
+
"source": {
|
|
14179
|
+
"$ref": "#/properties/refs/items/anyOf/2/properties/fbCampaign/properties/fbCampaignId"
|
|
14180
|
+
}
|
|
14181
|
+
},
|
|
14182
|
+
"required": [
|
|
14183
|
+
"campaignId",
|
|
14184
|
+
"source"
|
|
14185
|
+
],
|
|
14186
|
+
"additionalProperties": false
|
|
14187
|
+
}
|
|
14188
|
+
},
|
|
14189
|
+
"required": [
|
|
14190
|
+
"type",
|
|
14191
|
+
"miscSource"
|
|
14192
|
+
],
|
|
14193
|
+
"additionalProperties": false
|
|
14194
|
+
},
|
|
14195
|
+
{
|
|
14196
|
+
"type": "object",
|
|
14197
|
+
"properties": {
|
|
14198
|
+
"type": {
|
|
14199
|
+
"type": "string",
|
|
14200
|
+
"const": "referrer"
|
|
14201
|
+
},
|
|
14202
|
+
"referrer": {
|
|
14203
|
+
"type": "object",
|
|
14204
|
+
"properties": {
|
|
14205
|
+
"campaignId": {
|
|
14206
|
+
"$ref": "#/properties/refs/items/anyOf/0/properties/campaign/properties/campaignId"
|
|
14207
|
+
},
|
|
14208
|
+
"referrerSerialNumber": {
|
|
14209
|
+
"$ref": "#/properties/refs/items/anyOf/2/properties/fbCampaign/properties/fbCampaignId"
|
|
14210
|
+
}
|
|
14211
|
+
},
|
|
14212
|
+
"required": [
|
|
14213
|
+
"campaignId",
|
|
14214
|
+
"referrerSerialNumber"
|
|
14215
|
+
],
|
|
14216
|
+
"additionalProperties": false
|
|
14217
|
+
}
|
|
14218
|
+
},
|
|
14219
|
+
"required": [
|
|
14220
|
+
"type",
|
|
14221
|
+
"referrer"
|
|
14222
|
+
],
|
|
14223
|
+
"additionalProperties": false
|
|
14224
|
+
},
|
|
14225
|
+
{
|
|
14226
|
+
"type": "object",
|
|
14227
|
+
"properties": {
|
|
14228
|
+
"type": {
|
|
14229
|
+
"type": "string",
|
|
14230
|
+
"const": "creator"
|
|
14231
|
+
},
|
|
14232
|
+
"creator": {
|
|
14233
|
+
"type": "object",
|
|
14234
|
+
"properties": {
|
|
14235
|
+
"campaignId": {
|
|
14236
|
+
"$ref": "#/properties/refs/items/anyOf/0/properties/campaign/properties/campaignId"
|
|
14237
|
+
},
|
|
14238
|
+
"promoCode": {
|
|
14239
|
+
"$ref": "#/properties/refs/items/anyOf/2/properties/fbCampaign/properties/fbCampaignId"
|
|
14240
|
+
}
|
|
14241
|
+
},
|
|
14242
|
+
"required": [
|
|
14243
|
+
"campaignId",
|
|
14244
|
+
"promoCode"
|
|
14245
|
+
],
|
|
14246
|
+
"additionalProperties": false
|
|
14247
|
+
}
|
|
14248
|
+
},
|
|
14249
|
+
"required": [
|
|
14250
|
+
"type",
|
|
14251
|
+
"creator"
|
|
14252
|
+
],
|
|
14253
|
+
"additionalProperties": false
|
|
14254
|
+
}
|
|
14255
|
+
]
|
|
14256
|
+
},
|
|
14257
|
+
"minItems": 1,
|
|
14258
|
+
"maxItems": 100
|
|
14259
|
+
},
|
|
14260
|
+
"start": {
|
|
14261
|
+
"type": "string",
|
|
14262
|
+
"format": "date-time"
|
|
14263
|
+
},
|
|
14264
|
+
"end": {
|
|
14265
|
+
"type": "string",
|
|
14266
|
+
"format": "date-time"
|
|
14267
|
+
},
|
|
14268
|
+
"attributionWindow": {
|
|
14269
|
+
"type": "string",
|
|
14270
|
+
"enum": [
|
|
14271
|
+
"infinite",
|
|
14272
|
+
"7day",
|
|
14273
|
+
"14day"
|
|
14274
|
+
],
|
|
14275
|
+
"default": "infinite"
|
|
14276
|
+
}
|
|
14277
|
+
},
|
|
14278
|
+
"required": [
|
|
14279
|
+
"refs",
|
|
14280
|
+
"start",
|
|
14281
|
+
"end"
|
|
13796
14282
|
],
|
|
13797
14283
|
"additionalProperties": false,
|
|
13798
14284
|
"$schema": "http://json-schema.org/draft-07/schema#"
|
|
@@ -13801,7 +14287,7 @@ var CLI_MANIFEST = {
|
|
|
13801
14287
|
{
|
|
13802
14288
|
"id": "getCampaignKpis",
|
|
13803
14289
|
"domain": "campaigns",
|
|
13804
|
-
"description": "Performance metrics for an acquisition campaign. campaignId is the Feast campaign's `id` from listCampaigns (a UUID), NOT the nested Meta campaignId. Returns { id, type, value, unit } per metric, where unit is COUNT, PERCENTAGE (0-1) or CURRENCY (cents). Covers ad performance (spend, impressions, thumb stop, hold rate, CTR \u2014 sourced from synced Facebook data, so ROAS is revenue divided by spend), the funnel, automations, and results. Metrics whose value would be zero are omitted rather than returned as 0 \u2014 notably spend, so an absent spend metric means no spend OR no sync yet, never a confirmed zero.",
|
|
14290
|
+
"description": "Performance metrics for an acquisition campaign. campaignId is the Feast campaign's `id` from listCampaigns (a UUID), NOT the nested Meta campaignId. Returns { id, type, value, unit } per metric, where unit is COUNT, PERCENTAGE (0-1) or CURRENCY (cents). Covers ad performance (spend, impressions, hook rate (thumb stop), hold rate, CTR \u2014 sourced from synced Facebook data, so ROAS is revenue divided by spend), the funnel, automations, and results. Metrics whose value would be zero are omitted rather than returned as 0 \u2014 notably spend, so an absent spend metric means no spend OR no sync yet, never a confirmed zero.",
|
|
13805
14291
|
"type": "query",
|
|
13806
14292
|
"path": [
|
|
13807
14293
|
"api",
|
|
@@ -13910,7 +14396,7 @@ var CLI_MANIFEST = {
|
|
|
13910
14396
|
{
|
|
13911
14397
|
"id": "getInfluencerBoardConfig",
|
|
13912
14398
|
"domain": "creators",
|
|
13913
|
-
"description": "Read a location's creator program settings
|
|
14399
|
+
"description": "Read a location's creator program settings (dining credit, creator bonus, follower minimum and booking limits) plus its recruitment offers. Returns config: null when the location has no program yet. Read this before writing recruitment copy: the credit and bonus amounts you are supposed to quote live here and nowhere else. Get a locationId from queryData interface.location.",
|
|
13914
14400
|
"type": "query",
|
|
13915
14401
|
"path": [
|
|
13916
14402
|
"api",
|
|
@@ -13980,7 +14466,8 @@ var CLI_MANIFEST = {
|
|
|
13980
14466
|
"organizationFilePublic",
|
|
13981
14467
|
"organizationFilePrivate",
|
|
13982
14468
|
"creativeLibrary",
|
|
13983
|
-
"creativeLibraryBroll"
|
|
14469
|
+
"creativeLibraryBroll",
|
|
14470
|
+
"creativeLibraryVoiceover"
|
|
13984
14471
|
]
|
|
13985
14472
|
},
|
|
13986
14473
|
"fileName": {
|
|
@@ -14428,13 +14915,13 @@ var CLI_MANIFEST = {
|
|
|
14428
14915
|
{
|
|
14429
14916
|
"id": "listCampaigns",
|
|
14430
14917
|
"domain": "core",
|
|
14431
|
-
"description": "The organization's acquisition campaigns, newest first. Start here to resolve a campaignId: the `id` field (a UUID) is what every other campaign tool takes, NOT the nested Meta campaign id. Also carries each campaign's name, shorthand (used in reservation links), publish state, and referrers. Read one campaign's full configuration with getCampaign.",
|
|
14918
|
+
"description": "The organization's acquisition campaigns, newest first, as summaries. Start here to resolve a campaignId: the `id` field (a UUID) is what every other campaign tool takes, NOT the nested Meta campaign id. Also carries each campaign's name, shorthand (used in reservation links), publish state, and referrers. Read one campaign's full configuration \u2014 promotions, ad copy, banner and image config \u2014 with getCampaign.",
|
|
14432
14919
|
"type": "query",
|
|
14433
14920
|
"path": [
|
|
14434
14921
|
"api",
|
|
14435
14922
|
"campaigns",
|
|
14436
14923
|
"app",
|
|
14437
|
-
"
|
|
14924
|
+
"listSummaries"
|
|
14438
14925
|
],
|
|
14439
14926
|
"inputJsonSchema": null
|
|
14440
14927
|
},
|
|
@@ -14469,7 +14956,7 @@ var CLI_MANIFEST = {
|
|
|
14469
14956
|
{
|
|
14470
14957
|
"id": "listCreatorApplications",
|
|
14471
14958
|
"domain": "creators",
|
|
14472
|
-
"description": "Creator applications waiting on an approve/deny decision, newest first, across every location. Each row carries the `eventId` for updateCreatorVisit plus who applied, where, when, and their handles and follower count. That follower count is usually the deciding factor and is not reachable through queryData, so start here rather than querying creatorVisitApplication when working the approval queue.",
|
|
14959
|
+
"description": "Creator applications waiting on an approve/deny decision, newest first, across every location. Each row carries the `eventId` for updateCreatorVisit plus who applied, where, when, and their handles and follower count. That follower count is usually the deciding factor and is not reachable through queryData, so start here rather than querying creatorVisitApplication when working the approval queue. Each row also carries the creative brief already assigned to that visit as `strategyId`/`strategyTitle` and its `campaignId`/`campaignName`, all null when no brief is assigned yet \u2014 assign one with assignVisitStrategy before approving, because the approval text links whatever brief the visit carries at that moment.",
|
|
14473
14960
|
"type": "query",
|
|
14474
14961
|
"path": [
|
|
14475
14962
|
"api",
|
|
@@ -14481,7 +14968,7 @@ var CLI_MANIFEST = {
|
|
|
14481
14968
|
{
|
|
14482
14969
|
"id": "listCreatorConversations",
|
|
14483
14970
|
"domain": "creators",
|
|
14484
|
-
"description": "Every creator's SMS conversation with its unread state \u2014 the 'who is waiting on a reply' queue. `hasUnread` means their last message came in after ours and nobody has marked it read; those need a human. Each row carries the last message body, time and direction, the creator's handles, and `visitStatus`, a derived stage that is more reliable than reading raw columns off creatorVisitApplication. Read the full thread behind a row with getCreatorConversation and its userId, and reply with sendText and {type:'creator', userId}. Read-only: marking a conversation read stays in the dashboard.",
|
|
14971
|
+
"description": "Every creator's SMS conversation with its unread state \u2014 the 'who is waiting on a reply' queue. `hasUnread` means their last message came in after ours and nobody has marked it read; those need a human. Each row carries the last message body, time and direction, the creator's handles, `visitLocationIds` (every location they have a visit at, in any status), and `visitStatus`, a derived stage that is more reliable than reading raw columns off creatorVisitApplication. Read the full thread behind a row with getCreatorConversation and its userId, and reply with sendText and {type:'creator', userId}. Read-only: marking a conversation read stays in the dashboard.",
|
|
14485
14972
|
"type": "query",
|
|
14486
14973
|
"path": [
|
|
14487
14974
|
"api",
|
|
@@ -14670,7 +15157,8 @@ var CLI_MANIFEST = {
|
|
|
14670
15157
|
"organizationFilePublic",
|
|
14671
15158
|
"organizationFilePrivate",
|
|
14672
15159
|
"creativeLibrary",
|
|
14673
|
-
"creativeLibraryBroll"
|
|
15160
|
+
"creativeLibraryBroll",
|
|
15161
|
+
"creativeLibraryVoiceover"
|
|
14674
15162
|
]
|
|
14675
15163
|
},
|
|
14676
15164
|
"minItems": 1
|
|
@@ -15444,7 +15932,7 @@ Example - opted-in members with more than 5 visits, newest first:
|
|
|
15444
15932
|
{
|
|
15445
15933
|
"id": "sendText",
|
|
15446
15934
|
"domain": "messaging",
|
|
15447
|
-
"description": "Send one SMS to one person from the organization's texting number \u2014 the reply you would otherwise type into the dashboard chat. `to` names who by id, never by phone number: {type:'creator', userId} for a creator, whose userId comes from listCreatorConversations or getCreatorConversation, or {type:'guest', serialNumber} for a loyalty member, whose serialNumber comes from searchUsers or getMemberConversation. The type is not cosmetic \u2014 the two are different people in different tables, and a creator who also holds a pass exists in both, so pass the type that matches the thread you are replying to. The third form, {type:'unknownSender', phoneNumber}, answers someone who texted in without being either \u2014 it is the only form that names a raw number, and it is refused unless that number has an inbound message to this organization on file. A creator must have a visit with this organization and a guest must belong to it, or the call is a 404 rather than a text to a stranger. Guest messages support the {{firstName}}-style handlebars text automations use and are rendered before sending; creator messages are sent verbatim. Sending as a creator's human handler also
|
|
15935
|
+
"description": "Send one SMS to one person from the organization's texting number \u2014 the reply you would otherwise type into the dashboard chat. `to` names who by id, never by phone number: {type:'creator', userId} for a creator, whose userId comes from listCreatorConversations or getCreatorConversation, or {type:'guest', serialNumber} for a loyalty member, whose serialNumber comes from searchUsers or getMemberConversation. The type is not cosmetic \u2014 the two are different people in different tables, and a creator who also holds a pass exists in both, so pass the type that matches the thread you are replying to. The third form, {type:'unknownSender', phoneNumber}, answers someone who texted in without being either \u2014 it is the only form that names a raw number, and it is refused unless that number has an inbound message to this organization on file. A creator must have a visit with this organization and a guest must belong to it, or the call is a 404 rather than a text to a stranger. Guest messages support the {{firstName}}-style handlebars text automations use and are rendered before sending; creator messages are sent verbatim. Sending as a creator's human handler also dismisses any reply the AI agent has staged for that creator and re-runs the agent with your message in context, so it never talks over you. High priority, sent immediately \u2014 there is no scheduling, no undo, and no bulk form: call it once per recipient.",
|
|
15448
15936
|
"type": "mutation",
|
|
15449
15937
|
"path": [
|
|
15450
15938
|
"api",
|
|
@@ -17651,6 +18139,32 @@ Example - opted-in members with more than 5 visits, newest first:
|
|
|
17651
18139
|
"setCustomProperty"
|
|
17652
18140
|
],
|
|
17653
18141
|
"additionalProperties": false
|
|
18142
|
+
},
|
|
18143
|
+
{
|
|
18144
|
+
"type": "object",
|
|
18145
|
+
"properties": {
|
|
18146
|
+
"type": {
|
|
18147
|
+
"type": "string",
|
|
18148
|
+
"const": "sendWalletPush"
|
|
18149
|
+
},
|
|
18150
|
+
"sendWalletPush": {
|
|
18151
|
+
"type": "object",
|
|
18152
|
+
"properties": {
|
|
18153
|
+
"message": {
|
|
18154
|
+
"type": "string"
|
|
18155
|
+
}
|
|
18156
|
+
},
|
|
18157
|
+
"required": [
|
|
18158
|
+
"message"
|
|
18159
|
+
],
|
|
18160
|
+
"additionalProperties": false
|
|
18161
|
+
}
|
|
18162
|
+
},
|
|
18163
|
+
"required": [
|
|
18164
|
+
"type",
|
|
18165
|
+
"sendWalletPush"
|
|
18166
|
+
],
|
|
18167
|
+
"additionalProperties": false
|
|
17654
18168
|
}
|
|
17655
18169
|
]
|
|
17656
18170
|
}
|
|
@@ -19483,6 +19997,32 @@ Example - opted-in members with more than 5 visits, newest first:
|
|
|
19483
19997
|
"setCustomProperty"
|
|
19484
19998
|
],
|
|
19485
19999
|
"additionalProperties": false
|
|
20000
|
+
},
|
|
20001
|
+
{
|
|
20002
|
+
"type": "object",
|
|
20003
|
+
"properties": {
|
|
20004
|
+
"type": {
|
|
20005
|
+
"type": "string",
|
|
20006
|
+
"const": "sendWalletPush"
|
|
20007
|
+
},
|
|
20008
|
+
"sendWalletPush": {
|
|
20009
|
+
"type": "object",
|
|
20010
|
+
"properties": {
|
|
20011
|
+
"message": {
|
|
20012
|
+
"type": "string"
|
|
20013
|
+
}
|
|
20014
|
+
},
|
|
20015
|
+
"required": [
|
|
20016
|
+
"message"
|
|
20017
|
+
],
|
|
20018
|
+
"additionalProperties": false
|
|
20019
|
+
}
|
|
20020
|
+
},
|
|
20021
|
+
"required": [
|
|
20022
|
+
"type",
|
|
20023
|
+
"sendWalletPush"
|
|
20024
|
+
],
|
|
20025
|
+
"additionalProperties": false
|
|
19486
20026
|
}
|
|
19487
20027
|
]
|
|
19488
20028
|
}
|
|
@@ -19704,7 +20244,7 @@ Example - opted-in members with more than 5 visits, newest first:
|
|
|
19704
20244
|
{
|
|
19705
20245
|
"id": "stageFunnelEdit",
|
|
19706
20246
|
"domain": "funnel",
|
|
19707
|
-
"description": "Stage a single renderable edit onto a funnel draft. The edit is validated against the current screen but not saved to production.",
|
|
20247
|
+
"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 \u2014 use getFunnelDraft to read them back, or listFunnelScreens with the draftId to see the funnel with the edits applied.",
|
|
19708
20248
|
"type": "mutation",
|
|
19709
20249
|
"path": [
|
|
19710
20250
|
"api",
|
|
@@ -20459,7 +20999,7 @@ Example - opted-in members with more than 5 visits, newest first:
|
|
|
20459
20999
|
"form"
|
|
20460
21000
|
],
|
|
20461
21001
|
"additionalProperties": false,
|
|
20462
|
-
"description": "Form with input fields that prevents duplicate submissions and shows previous values if already submitted. **IMPORTANT RESTRICTION**: This component can ONLY be used in screens that come AFTER the signup screen. Signups
|
|
21002
|
+
"description": "Form with input fields that prevents duplicate submissions and shows previous values if already submitted. **IMPORTANT RESTRICTION**: This component can ONLY be used in screens that come AFTER the signup screen. Signups happen on screens with a signUpForm widget. Do NOT use form components in any screen that appears before or is a screen with a signUpForm in the funnel flow."
|
|
20463
21003
|
},
|
|
20464
21004
|
{
|
|
20465
21005
|
"type": "object",
|
|
@@ -20479,6 +21019,24 @@ Example - opted-in members with more than 5 visits, newest first:
|
|
|
20479
21019
|
},
|
|
20480
21020
|
"collectEmail": {
|
|
20481
21021
|
"type": "boolean"
|
|
21022
|
+
},
|
|
21023
|
+
"properties": {
|
|
21024
|
+
"type": "array",
|
|
21025
|
+
"items": {
|
|
21026
|
+
"type": "object",
|
|
21027
|
+
"properties": {
|
|
21028
|
+
"propertyId": {
|
|
21029
|
+
"type": "string"
|
|
21030
|
+
},
|
|
21031
|
+
"required": {
|
|
21032
|
+
"type": "boolean"
|
|
21033
|
+
}
|
|
21034
|
+
},
|
|
21035
|
+
"required": [
|
|
21036
|
+
"propertyId"
|
|
21037
|
+
],
|
|
21038
|
+
"additionalProperties": false
|
|
21039
|
+
}
|
|
20482
21040
|
}
|
|
20483
21041
|
},
|
|
20484
21042
|
"additionalProperties": false
|
|
@@ -20490,7 +21048,7 @@ Example - opted-in members with more than 5 visits, newest first:
|
|
|
20490
21048
|
"signUpForm"
|
|
20491
21049
|
],
|
|
20492
21050
|
"additionalProperties": false,
|
|
20493
|
-
"description": "Sign up form widget with MemberInfoForm. Submit buttons are controlled by other renderables."
|
|
21051
|
+
"description": "Sign up form widget with MemberInfoForm. Submit buttons are controlled by other renderables. Optionally collects additional custom properties alongside the member's name, phone and email; those values are written against the new member as form submissions before any sign up automation runs."
|
|
20494
21052
|
},
|
|
20495
21053
|
{
|
|
20496
21054
|
"type": "object",
|
|
@@ -21719,6 +22277,9 @@ Example - opted-in members with more than 5 visits, newest first:
|
|
|
21719
22277
|
],
|
|
21720
22278
|
"additionalProperties": false
|
|
21721
22279
|
},
|
|
22280
|
+
"secondary": {
|
|
22281
|
+
"$ref": "#/properties/config/properties/theme/properties/palette/properties/primary"
|
|
22282
|
+
},
|
|
21722
22283
|
"mode": {
|
|
21723
22284
|
"type": "string",
|
|
21724
22285
|
"enum": [
|
|
@@ -21743,9 +22304,15 @@ Example - opted-in members with more than 5 visits, newest first:
|
|
|
21743
22304
|
"properties": {
|
|
21744
22305
|
"default": {
|
|
21745
22306
|
"type": "string"
|
|
22307
|
+
},
|
|
22308
|
+
"paper": {
|
|
22309
|
+
"type": "string"
|
|
21746
22310
|
}
|
|
21747
22311
|
},
|
|
21748
22312
|
"additionalProperties": false
|
|
22313
|
+
},
|
|
22314
|
+
"divider": {
|
|
22315
|
+
"type": "string"
|
|
21749
22316
|
}
|
|
21750
22317
|
},
|
|
21751
22318
|
"additionalProperties": false
|
|
@@ -22605,6 +23172,9 @@ Example - opted-in members with more than 5 visits, newest first:
|
|
|
22605
23172
|
"isReservationFunnel": {
|
|
22606
23173
|
"type": "boolean"
|
|
22607
23174
|
},
|
|
23175
|
+
"excludeFromTextBlasts": {
|
|
23176
|
+
"type": "boolean"
|
|
23177
|
+
},
|
|
22608
23178
|
"isCreating": {
|
|
22609
23179
|
"type": "boolean"
|
|
22610
23180
|
},
|
|
@@ -23005,7 +23575,7 @@ Example - opted-in members with more than 5 visits, newest first:
|
|
|
23005
23575
|
{
|
|
23006
23576
|
"id": "updateCreatorVisit",
|
|
23007
23577
|
"domain": "creators",
|
|
23008
|
-
"description": "Update one creator visit: change its time or record its outcome. `status` accepts approved, denied, pending_approval, confirmed, visited, missed, issue, cancelled. status: 'approved' runs the real approval \u2014 THIS TEXTS THE CREATOR IMMEDIATELY and consumes the location's monthly creator sourcing allowance, which auto-pauses recruitment once reached; 'denied' texts a decline and
|
|
23578
|
+
"description": "Update one creator visit: change its time or record its outcome. `status` accepts approved, denied, pending_approval, confirmed, visited, missed, issue, cancelled. status: 'approved' runs the real approval \u2014 THIS TEXTS THE CREATOR IMMEDIATELY and consumes the location's monthly creator sourcing allowance, which auto-pauses recruitment once reached; 'denied' texts a decline; approving a denied row reverses it \u2014 the creator gets a \"we changed our mind\" text and the scheduled texts are re-armed. Approving a row that is no longer actionable is a no-op and returns changed: false. Pass sideEffects: false to make any update silent \u2014 same field writes, but no creator text, no allowance spend, no post-approval automation. With sideEffects on (the default), setting startTime to a date texts the creator a confirmation and alerts the approver; setting startTime to null clears the time and texts the creator asking for a new one; of the remaining statuses only 'cancelled' texts the creator \u2014 the rest are plain record writes. Pass dryRun: true to get back the exact creator text(s) the same call would send \u2014 nothing is written or sent; use it to show the operator a preview before the real call. Get `eventId` from listCreatorApplications.",
|
|
23009
23579
|
"type": "mutation",
|
|
23010
23580
|
"path": [
|
|
23011
23581
|
"api",
|
|
@@ -23048,6 +23618,10 @@ Example - opted-in members with more than 5 visits, newest first:
|
|
|
23048
23618
|
"sideEffects": {
|
|
23049
23619
|
"type": "boolean",
|
|
23050
23620
|
"default": true
|
|
23621
|
+
},
|
|
23622
|
+
"dryRun": {
|
|
23623
|
+
"type": "boolean",
|
|
23624
|
+
"default": false
|
|
23051
23625
|
}
|
|
23052
23626
|
},
|
|
23053
23627
|
"required": [
|
|
@@ -23060,7 +23634,7 @@ Example - opted-in members with more than 5 visits, newest first:
|
|
|
23060
23634
|
{
|
|
23061
23635
|
"id": "updateInfluencerBoardConfig",
|
|
23062
23636
|
"domain": "creators",
|
|
23063
|
-
"description": "Create or update a location's creator program. This is an upsert
|
|
23637
|
+
"description": "Create or update a location's creator program. This is an upsert. There is no separate create tool, and the config is keyed by locationId, one per location, so calling it for a location with no program creates one, seeding a 5000-cent dining credit and leaving landingPageConfirmed, calendarConfigured, passConfigured and reimbursementEnabled false. Omitted fields are left alone. Every program is apply-only: creators apply, the approver reviews them, and the creator AI agent texts approved creators to book the visit. reimbursementEnabled switches the board from comping the meal to reimbursing a meal the creator paid for, and foodCreditAmountCents becomes the reimbursement cap rather than a dining credit. It changes what creators are promised on the landing page, brief and rights agreement, so never set it without the client asking for it. The Design creator program task needs a positive credit and landingPageConfirmed. launchInfluencerCampaign checks the same two. maxCreatorsPerMonth caps how many creators the location's recruitment ads source each calendar month; when the cap is reached every recruitment campaign at the location pauses automatically until the 1st of the next month, and changing or clearing the cap reconciles the campaigns immediately. agentPaused: true turns the creator AI agent off for the location: no automated creator texts (AI replies, visit reminders, content follow-ups) until it is set back to false; texts sent by people still deliver.",
|
|
23064
23638
|
"type": "mutation",
|
|
23065
23639
|
"path": [
|
|
23066
23640
|
"api",
|
|
@@ -23075,7 +23649,7 @@ Example - opted-in members with more than 5 visits, newest first:
|
|
|
23075
23649
|
},
|
|
23076
23650
|
"foodCreditAmountCents": {
|
|
23077
23651
|
"type": "integer",
|
|
23078
|
-
"minimum":
|
|
23652
|
+
"minimum": 2500
|
|
23079
23653
|
},
|
|
23080
23654
|
"landingPageConfirmed": {
|
|
23081
23655
|
"type": "boolean"
|
|
@@ -23083,19 +23657,22 @@ Example - opted-in members with more than 5 visits, newest first:
|
|
|
23083
23657
|
"calendarConfigured": {
|
|
23084
23658
|
"type": "boolean"
|
|
23085
23659
|
},
|
|
23086
|
-
"schedulingMode": {
|
|
23087
|
-
"type": "string",
|
|
23088
|
-
"enum": [
|
|
23089
|
-
"self_schedule_approval",
|
|
23090
|
-
"apply_only"
|
|
23091
|
-
]
|
|
23092
|
-
},
|
|
23093
23660
|
"approverUserId": {
|
|
23094
23661
|
"type": [
|
|
23095
23662
|
"string",
|
|
23096
23663
|
"null"
|
|
23097
23664
|
]
|
|
23098
23665
|
},
|
|
23666
|
+
"bookingNotificationEmails": {
|
|
23667
|
+
"type": "array",
|
|
23668
|
+
"items": {
|
|
23669
|
+
"type": "string",
|
|
23670
|
+
"maxLength": 254,
|
|
23671
|
+
"format": "email"
|
|
23672
|
+
},
|
|
23673
|
+
"maxItems": 20,
|
|
23674
|
+
"description": "Additional email addresses for scheduled, rescheduled, confirmed and cancelled visit emails and Calendar invitations. No Feast account is required. Send an empty array to remove all email-only recipients; omit to preserve them. Requires the organization's booking notification feature to be enabled."
|
|
23675
|
+
},
|
|
23099
23676
|
"passConfigured": {
|
|
23100
23677
|
"type": "boolean"
|
|
23101
23678
|
},
|
|
@@ -23153,7 +23730,19 @@ Example - opted-in members with more than 5 visits, newest first:
|
|
|
23153
23730
|
"type": "null"
|
|
23154
23731
|
}
|
|
23155
23732
|
],
|
|
23156
|
-
"description": "
|
|
23733
|
+
"description": "Instructions sent to the creator by the SMS agent. Despite the name, this covers the whole visit: before (download an app), during (check in with the host), or after (text a receipt). This text is injected into both pre-visit and post-visit SMS prompts. Keep staff-only information in staffBookingNotes instead. Omit to preserve; send null to clear."
|
|
23734
|
+
},
|
|
23735
|
+
"staffBookingNotes": {
|
|
23736
|
+
"anyOf": [
|
|
23737
|
+
{
|
|
23738
|
+
"type": "string",
|
|
23739
|
+
"maxLength": 2e3
|
|
23740
|
+
},
|
|
23741
|
+
{
|
|
23742
|
+
"type": "null"
|
|
23743
|
+
}
|
|
23744
|
+
],
|
|
23745
|
+
"description": "Internal notes included in restaurant booking emails and Calendar events. Never sent to creators or included in the SMS agent's instructions. Use this for staff comp policies, menu suggestions and other team-facing booking details. Omit to preserve; send null to clear."
|
|
23157
23746
|
},
|
|
23158
23747
|
"minFollowerCount": {
|
|
23159
23748
|
"anyOf": [
|
|
@@ -23193,6 +23782,20 @@ Example - opted-in members with more than 5 visits, newest first:
|
|
|
23193
23782
|
},
|
|
23194
23783
|
"reimbursementEnabled": {
|
|
23195
23784
|
"type": "boolean"
|
|
23785
|
+
},
|
|
23786
|
+
"maxCreatorsPerMonth": {
|
|
23787
|
+
"anyOf": [
|
|
23788
|
+
{
|
|
23789
|
+
"type": "integer",
|
|
23790
|
+
"exclusiveMinimum": 0
|
|
23791
|
+
},
|
|
23792
|
+
{
|
|
23793
|
+
"type": "null"
|
|
23794
|
+
}
|
|
23795
|
+
]
|
|
23796
|
+
},
|
|
23797
|
+
"agentPaused": {
|
|
23798
|
+
"type": "boolean"
|
|
23196
23799
|
}
|
|
23197
23800
|
},
|
|
23198
23801
|
"required": [
|
|
@@ -23604,6 +24207,154 @@ Example - opted-in members with more than 5 visits, newest first:
|
|
|
23604
24207
|
},
|
|
23605
24208
|
"additionalProperties": false
|
|
23606
24209
|
},
|
|
24210
|
+
"dataAudit": {
|
|
24211
|
+
"type": "object",
|
|
24212
|
+
"properties": {
|
|
24213
|
+
"pos": {
|
|
24214
|
+
"type": "object",
|
|
24215
|
+
"properties": {
|
|
24216
|
+
"type": {
|
|
24217
|
+
"type": "string",
|
|
24218
|
+
"enum": [
|
|
24219
|
+
"square",
|
|
24220
|
+
"toast-api",
|
|
24221
|
+
"toast-csv",
|
|
24222
|
+
"spoton"
|
|
24223
|
+
]
|
|
24224
|
+
},
|
|
24225
|
+
"isComplete": {
|
|
24226
|
+
"type": "boolean"
|
|
24227
|
+
},
|
|
24228
|
+
"toastCsv": {
|
|
24229
|
+
"type": "object",
|
|
24230
|
+
"properties": {
|
|
24231
|
+
"fileName": {
|
|
24232
|
+
"type": "string"
|
|
24233
|
+
},
|
|
24234
|
+
"key": {
|
|
24235
|
+
"type": "string"
|
|
24236
|
+
},
|
|
24237
|
+
"uploadedAt": {
|
|
24238
|
+
"type": "string"
|
|
24239
|
+
},
|
|
24240
|
+
"firstDate": {
|
|
24241
|
+
"type": "string"
|
|
24242
|
+
},
|
|
24243
|
+
"lastDate": {
|
|
24244
|
+
"type": "string"
|
|
24245
|
+
},
|
|
24246
|
+
"dayCount": {
|
|
24247
|
+
"type": "number"
|
|
24248
|
+
},
|
|
24249
|
+
"missingNetSalesCents": {
|
|
24250
|
+
"type": "number"
|
|
24251
|
+
}
|
|
24252
|
+
},
|
|
24253
|
+
"required": [
|
|
24254
|
+
"fileName",
|
|
24255
|
+
"key",
|
|
24256
|
+
"uploadedAt"
|
|
24257
|
+
],
|
|
24258
|
+
"additionalProperties": false
|
|
24259
|
+
},
|
|
24260
|
+
"toastCsvs": {
|
|
24261
|
+
"type": "array",
|
|
24262
|
+
"items": {
|
|
24263
|
+
"$ref": "#/properties/dataAudit/properties/pos/properties/toastCsv"
|
|
24264
|
+
}
|
|
24265
|
+
},
|
|
24266
|
+
"salesCoverage": {
|
|
24267
|
+
"type": "object",
|
|
24268
|
+
"properties": {
|
|
24269
|
+
"firstDate": {
|
|
24270
|
+
"type": "string"
|
|
24271
|
+
},
|
|
24272
|
+
"lastDate": {
|
|
24273
|
+
"type": "string"
|
|
24274
|
+
},
|
|
24275
|
+
"dayCount": {
|
|
24276
|
+
"type": "number"
|
|
24277
|
+
},
|
|
24278
|
+
"gaps": {
|
|
24279
|
+
"type": "array",
|
|
24280
|
+
"items": {
|
|
24281
|
+
"type": "object",
|
|
24282
|
+
"properties": {
|
|
24283
|
+
"start": {
|
|
24284
|
+
"type": "string"
|
|
24285
|
+
},
|
|
24286
|
+
"end": {
|
|
24287
|
+
"type": "string"
|
|
24288
|
+
},
|
|
24289
|
+
"days": {
|
|
24290
|
+
"type": "number"
|
|
24291
|
+
}
|
|
24292
|
+
},
|
|
24293
|
+
"required": [
|
|
24294
|
+
"start",
|
|
24295
|
+
"end",
|
|
24296
|
+
"days"
|
|
24297
|
+
],
|
|
24298
|
+
"additionalProperties": false
|
|
24299
|
+
}
|
|
24300
|
+
},
|
|
24301
|
+
"years": {
|
|
24302
|
+
"type": "array",
|
|
24303
|
+
"items": {
|
|
24304
|
+
"type": "object",
|
|
24305
|
+
"properties": {
|
|
24306
|
+
"year": {
|
|
24307
|
+
"type": "number"
|
|
24308
|
+
},
|
|
24309
|
+
"dayCount": {
|
|
24310
|
+
"type": "number"
|
|
24311
|
+
},
|
|
24312
|
+
"months": {
|
|
24313
|
+
"type": "array",
|
|
24314
|
+
"items": {
|
|
24315
|
+
"type": "boolean"
|
|
24316
|
+
}
|
|
24317
|
+
}
|
|
24318
|
+
},
|
|
24319
|
+
"required": [
|
|
24320
|
+
"year",
|
|
24321
|
+
"dayCount",
|
|
24322
|
+
"months"
|
|
24323
|
+
],
|
|
24324
|
+
"additionalProperties": false
|
|
24325
|
+
}
|
|
24326
|
+
}
|
|
24327
|
+
},
|
|
24328
|
+
"required": [
|
|
24329
|
+
"firstDate",
|
|
24330
|
+
"lastDate",
|
|
24331
|
+
"dayCount",
|
|
24332
|
+
"gaps",
|
|
24333
|
+
"years"
|
|
24334
|
+
],
|
|
24335
|
+
"additionalProperties": false
|
|
24336
|
+
}
|
|
24337
|
+
},
|
|
24338
|
+
"required": [
|
|
24339
|
+
"type"
|
|
24340
|
+
],
|
|
24341
|
+
"additionalProperties": false
|
|
24342
|
+
},
|
|
24343
|
+
"resultsCall": {
|
|
24344
|
+
"type": "object",
|
|
24345
|
+
"properties": {
|
|
24346
|
+
"isComplete": {
|
|
24347
|
+
"type": "boolean"
|
|
24348
|
+
},
|
|
24349
|
+
"firstBookedAt": {
|
|
24350
|
+
"type": "string"
|
|
24351
|
+
}
|
|
24352
|
+
},
|
|
24353
|
+
"additionalProperties": false
|
|
24354
|
+
}
|
|
24355
|
+
},
|
|
24356
|
+
"additionalProperties": false
|
|
24357
|
+
},
|
|
23607
24358
|
"staffTraining": {
|
|
23608
24359
|
"type": "object",
|
|
23609
24360
|
"properties": {
|
|
@@ -23726,7 +24477,7 @@ Example - opted-in members with more than 5 visits, newest first:
|
|
|
23726
24477
|
{
|
|
23727
24478
|
"id": "updateOrganization",
|
|
23728
24479
|
"domain": "core",
|
|
23729
|
-
"description": "Update the organization record. Omitted fields are left alone, but staffInstructions is replaced wholesale rather than merged \u2014 send every key you want to keep. minimumSpendValue is in dollars; timezone is an IANA zone. staffInstructions.scan completes the Members Program Visits POS setup task, and .prepaid is additionally required for Campaign POS setup when the promotion allows pre-pay. restaurantType, isArchived and isReadOnly are admin-only and rejected otherwise.",
|
|
24480
|
+
"description": "Update the organization record. Omitted fields are left alone, but staffInstructions is replaced wholesale rather than merged \u2014 send every key you want to keep. minimumSpendValue is in dollars; timezone is an IANA zone. staffInstructions.scan completes the Members Program Visits POS setup task, and .prepaid is additionally required for Campaign POS setup when the promotion allows pre-pay. restaurantType, isArchived and isReadOnly are admin-only and rejected otherwise. periodCalendar sets how Impact and revenue plans group weeks into periods: {type: 'fiscal', fiscal: {pattern: '4-4-5' | '4-5-4' | '5-4-4' | '13x4', yearEndWeekday: 'sunday' through 'saturday', yearEndRule: 'nearestDec31' | 'lastInDecember'}}; null resets it to 13 four-week periods ending on the Sunday nearest Dec 31.",
|
|
23730
24481
|
"type": "mutation",
|
|
23731
24482
|
"path": [
|
|
23732
24483
|
"api",
|
|
@@ -23748,6 +24499,70 @@ Example - opted-in members with more than 5 visits, newest first:
|
|
|
23748
24499
|
"null"
|
|
23749
24500
|
]
|
|
23750
24501
|
},
|
|
24502
|
+
"periodCalendar": {
|
|
24503
|
+
"anyOf": [
|
|
24504
|
+
{
|
|
24505
|
+
"anyOf": [
|
|
24506
|
+
{
|
|
24507
|
+
"type": "object",
|
|
24508
|
+
"properties": {
|
|
24509
|
+
"type": {
|
|
24510
|
+
"type": "string",
|
|
24511
|
+
"const": "fiscal"
|
|
24512
|
+
},
|
|
24513
|
+
"fiscal": {
|
|
24514
|
+
"type": "object",
|
|
24515
|
+
"properties": {
|
|
24516
|
+
"pattern": {
|
|
24517
|
+
"type": "string",
|
|
24518
|
+
"enum": [
|
|
24519
|
+
"4-4-5",
|
|
24520
|
+
"4-5-4",
|
|
24521
|
+
"5-4-4",
|
|
24522
|
+
"13x4"
|
|
24523
|
+
]
|
|
24524
|
+
},
|
|
24525
|
+
"yearEndWeekday": {
|
|
24526
|
+
"type": "string",
|
|
24527
|
+
"enum": [
|
|
24528
|
+
"sunday",
|
|
24529
|
+
"monday",
|
|
24530
|
+
"tuesday",
|
|
24531
|
+
"wednesday",
|
|
24532
|
+
"thursday",
|
|
24533
|
+
"friday",
|
|
24534
|
+
"saturday"
|
|
24535
|
+
]
|
|
24536
|
+
},
|
|
24537
|
+
"yearEndRule": {
|
|
24538
|
+
"type": "string",
|
|
24539
|
+
"enum": [
|
|
24540
|
+
"nearestDec31",
|
|
24541
|
+
"lastInDecember"
|
|
24542
|
+
]
|
|
24543
|
+
}
|
|
24544
|
+
},
|
|
24545
|
+
"required": [
|
|
24546
|
+
"pattern",
|
|
24547
|
+
"yearEndWeekday",
|
|
24548
|
+
"yearEndRule"
|
|
24549
|
+
],
|
|
24550
|
+
"additionalProperties": false
|
|
24551
|
+
}
|
|
24552
|
+
},
|
|
24553
|
+
"required": [
|
|
24554
|
+
"type",
|
|
24555
|
+
"fiscal"
|
|
24556
|
+
],
|
|
24557
|
+
"additionalProperties": false
|
|
24558
|
+
}
|
|
24559
|
+
]
|
|
24560
|
+
},
|
|
24561
|
+
{
|
|
24562
|
+
"type": "null"
|
|
24563
|
+
}
|
|
24564
|
+
]
|
|
24565
|
+
},
|
|
23751
24566
|
"scanRefractoryPeriodMs": {
|
|
23752
24567
|
"type": "number"
|
|
23753
24568
|
},
|
|
@@ -23777,9 +24592,6 @@ Example - opted-in members with more than 5 visits, newest first:
|
|
|
23777
24592
|
"isReadOnly": {
|
|
23778
24593
|
"type": "boolean"
|
|
23779
24594
|
},
|
|
23780
|
-
"isContactCardEnabled": {
|
|
23781
|
-
"type": "boolean"
|
|
23782
|
-
},
|
|
23783
24595
|
"staffInstructions": {
|
|
23784
24596
|
"anyOf": [
|
|
23785
24597
|
{
|
|
@@ -25017,6 +25829,12 @@ Example - opted-in members with more than 5 visits, newest first:
|
|
|
25017
25829
|
"$ref": "#/properties/sections/properties/headerFields/items"
|
|
25018
25830
|
}
|
|
25019
25831
|
},
|
|
25832
|
+
"backFields": {
|
|
25833
|
+
"type": "array",
|
|
25834
|
+
"items": {
|
|
25835
|
+
"$ref": "#/properties/sections/properties/headerFields/items"
|
|
25836
|
+
}
|
|
25837
|
+
},
|
|
25020
25838
|
"logoFile": {
|
|
25021
25839
|
"type": "object",
|
|
25022
25840
|
"properties": {
|