Streak synchronization choices
Read provider field labels and separate Wallkit mapping selectors. This catalog does not save field mappings, send member values or change Wallkit membership.
| Task | Operation |
|---|---|
| Read mapping choices | Read choices |
Example clients and synthetic values follow response conventions.
Read synchronization choices
GET /api/v1/integrations/streak/sync-fields
Read provider field labels and separate Wallkit mapping selectors. This catalog does not save field mappings, send member values or change Wallkit membership.
Before you call
Use an existing active member and valid resource with custom token and resource headers. Shared guards reject inactive callers and locked/suspended relationships. See credential transport.
Support is the lowest directly granted ACL role; roles inheriting that grant and root can use it. An ordinary member session is insufficient. In these examples USER_TOKEN means an already supplied session with this access. The resource must already have a Streak api_key configured. Configured Firebase resolution follows the API context.
Request
No request body or action-specific query parameters.
| Name | Location | Type / requirement | Meaning |
|---|---|---|---|
| resource | header | resource public key; required | Selects existing resource integration. |
| token | header | authorized member session token; required | Resolved caller identity; the prerequisite role requirements still apply. |
Result
HTTP 200 with two separate field catalogs. Pipelines lacking fields are skipped entirely, including their stages. Each accepted field/stage needs name and key. Field and stage entries share one map; a duplicate combined key can overwrite an earlier label. No explicit pagination or local catalog cache.
| Field | Type / presence | Meaning |
|---|---|---|
| streak | map of pipelineKey.fieldKey or pipelineKey.stageKey to string label; empty [] possible | Field labels are Pipeline: pipeline name - field name; stage labels are Stages: pipeline name - stage name. Identifiers are combined provider keys, not Wallkit IDs. |
| wallkit | sorted array of selector strings | Dynamic model-derived and explicit mapping choices such as User.email; not current values or a universal response schema. Duplicate selectors may remain. |
Example: Inspect provider and Wallkit choices
curl "${WALLKIT_API_BASE}/api/v1/integrations/streak/sync-fields" \
-H "resource: ${RESOURCE_KEY}" \
-H "token: ${USER_TOKEN}"
const response = await fetch(`${process.env.WALLKIT_API_BASE}/api/v1/integrations/streak/sync-fields`, {
method: "GET", headers: { "resource": process.env.RESOURCE_KEY, "token": process.env.USER_TOKEN }
});
console.log(response.status, await response.json());
import os, json
from urllib.request import Request, urlopen
from urllib.error import HTTPError
request = Request(os.environ["WALLKIT_API_BASE"] + "/api/v1/integrations/streak/sync-fields",
headers={"resource": os.environ["RESOURCE_KEY"], "token": os.environ["USER_TOKEN"]}, method="GET")
try:
with urlopen(request) as response:
print(response.status, json.load(response))
except HTTPError as error:
print(error.code, json.load(error))
Synthetic HTTP 200 excerpt:
{
"streak": {
"pipeline-example.field-example": "Pipeline: Readers - Interest",
"pipeline-example.stage-example": "Stages: Readers - New"
},
"wallkit": [
"User.email"
]
}
The Wallkit selector list is excerpted. Choose meaningful pairs through existing integration configuration; this call does not apply them.
Consequential alternate
Synthetic HTTP 200 excerpt when returned pipelines exist but no fields/stages are selected:
{
"streak": [],
"wallkit": [
"User.email"
]
}
This differs from a pipeline result that is empty or otherwise false in a boolean check, which returns HTTP 406. Pipelines without fields have their stages skipped too.
Recovery
| HTTP status | Code / shape | Cause | Next action |
|---|---|---|---|
| 500 | integration_error / Streak integration not configured | Selected resource lacks configured api_key. | Ask the owner to inspect existing Streak settings. |
| 406 | integration_error / Streak: followed by exception message | Provider pipeline request throws inside the action catch. | Check reported provider/configuration outcome with owner. |
| 406 | incorrect_pipelines_list / Pipelines list empaty | Pipeline result is empty or otherwise false in a boolean check. | Ask owner to inspect provider pipeline availability; do not treat as the HTTP 200 empty-field catalog. |
| ACL failure | Shared access denial | Caller lacks support/inherited/root grant. | Use the existing authorized role context supplied by the integration owner. |
Next task
Use the existing integration configuration process to choose mappings. For a separate member preference task, see Mailchimp preferences; these field choices do not authorize a subscription or content-access change.
Follow the task guide
Read the 3rd party integration flows for request order, context choices and response decisions.