publ betaReference (MCP guide)
Open publ console

publ Reference

Change sign-up form requirements

Use screen channel.signup-form to read and change what a selected channel asks members to provide. Get returns definitions and state; apply merges requested changes into one full-form save. This workflow does not register a publ account or read/edit member answers.

Read, plan and save

  1. Resolve the intended channel through authorized discovery or its bound hosted resource. Use a selected-channel OWNER credential or DELEGATEE credential with MANAGE_CHANNEL_PUBLIC_SETTING; the separate CHANNEL_MANAGEMENT origin must be configured.
  2. Read the form. Require canApply:true; investigate missingKeys when false. Pick keys from the returned definitions, preserving the returned revision.
  3. Explain the intended collection changes, including the possible effect on existing members. A custom question being enabled needs a valid name; three essential fields cannot change.
  4. Plan with a stable request ID and dryRun:true. For a new request inspect writeNeeded, planned fields and writesPerformed:false.
  5. Submit the same business inputs with dryRun:false. A new dry run creates no recoverable job. Require SIGNUP_FORM_APPLIED and inspect verification, then use get for a fresh observation when needed.

Read:

{"channelCode":"selected-channel-code"}

Plan two custom questions, making only the first mandatory:

{"requestId":"signup-questions-example-001","channelCode":"selected-channel-code","expectedRevision":"0000000000000000000000000000000000000000000000000000000000000000","changes":[{"key":"profile_add_info_custom_1","enabled":true,"required":true,"name":"Preferred workshop"},{"key":"profile_add_info_custom_2","enabled":true,"required":false,"name":"Additional interests"}],"dryRun":true}

The channel and zero revision are placeholders; replace them from get. These are illustrative inputs, not execution evidence. Only perform the real save within the user's requested scope.

Understand defaults and preservation

There are 47 displayed definitions: three locked essential fields, 39 fixed questions and five custom slots. An exactly empty server array receives initial screen defaults for the 44 editable fields: disabled, not required, custom names blank. Get labels those values empty-form-screen-default and writes nothing. A partially missing nonempty array is not repaired; missing values remain null and saving is blocked.

required:true enables; enabled:false clears required. Setting both disabled and required is invalid. required:false alone leaves collection enabled if it already was. Omitting a property preserves it. Only the five custom slots accept name; explicit names are trimmed and normally need 2–100 characters, while an inactive slot can be cleared with an empty string. Existing unchanged names are retained.

Apply sends all 44 editable fields after merging the requested changes. It does not send essential fields or member answers. Disabling or renaming a question does not delete answers or prove recollection. A successful full-form readback proves stored settings only; there is no atomic concurrency lock or automatic rollback.

Recover the original request

After a real request returns a task ID, inspect it with task_status:

{"taskId":"signup-questions-example-001","taskType":"signup-form"}

Use the same ID/type with task_resume only to continue the original authorized change. prepared may perform a remaining write after a fresh comparison. sent only reconciles the saved target; it does not repeat an uncertain PUT. done returns historical completion. Do not omit taskType, regenerate the request ID to bypass uncertainty, or assume status is a fresh get. The apply reference explains phase and error details.

Resolved successful calls provide one console destination at /channels/{encodedChannelCode}/publish/sign-up-form, with the same legacy consoleUrl alias. Existing-job dry runs and task status cannot infer a fresh target link from saved data. A URL is a navigation reference, not proof that the browser reached the API environment.

Field keys

Use get's returned keys and state before editing. Labels here are English summaries; the tool also preserves quoted original UI labels. These data types/formats describe questions, not member-answer mutation inputs.

Key Label Category Data type / format
essential_info_email Email ESSENTIAL email / normal
essential_info_nick_name Nickname ESSENTIAL string / normal
essential_info_country Country ESSENTIAL enum / country
profile_add_info_personal_name Name PERSONAL string / normal
profile_add_info_personal_gender Gender PERSONAL enum / gender
profile_add_info_personal_birth_year Birth year PERSONAL birth_date / YYYY
profile_add_info_personal_birth_month Birth month PERSONAL birth_date / MM
profile_add_info_personal_birth_day Birth day PERSONAL birth_date / DD
profile_add_info_contact_address Home address CONTACT address / normal
profile_add_info_contact_email Personal email address CONTACT email / normal
profile_add_info_contact_mobile_number Mobile phone number CONTACT phone_number / normal
profile_add_info_contact_phone_number Home phone number CONTACT phone_number / normal
profile_add_info_shipping_name Recipient name SHIPPING string / normal
profile_add_info_shipping_mobile_number Recipient phone number SHIPPING phone_number / normal
profile_add_info_shipping_address Shipping address SHIPPING address / normal
profile_add_info_workplace_company_name Workplace name WORKPLACE string / normal
profile_add_info_workplace_department_name Department name WORKPLACE string / normal
profile_add_info_workplace_name Name WORKPLACE string / normal
profile_add_info_workplace_position Job title WORKPLACE string / normal
profile_add_info_workplace_email Work email address WORKPLACE email / normal
profile_add_info_workplace_phone_number Work phone number WORKPLACE phone_number / normal
profile_add_info_workplace_address Work address WORKPLACE address / normal
profile_add_info_biz_company_name Company name BIZ string / normal
profile_add_info_biz_ceo_name Business representative name BIZ string / normal
profile_add_info_biz_type Business type BIZ enum / biz_type
profile_add_info_biz_registration_number Business registration number BIZ string / normal
profile_add_info_biz_establishment Business opening date BIZ date / YYYY-MM-DD
profile_add_info_biz_category Business category BIZ string / normal
profile_add_info_biz_sector Business activity BIZ string / normal
profile_add_info_biz_location Business location BIZ string / normal
profile_add_info_biz_email Business email address BIZ email / normal
profile_add_info_biz_contact_name Contact person name BIZ string / normal
profile_add_info_biz_contact_mobile_number Contact person phone number BIZ phone_number / normal
profile_add_info_biz_contact_email Contact person email address BIZ email / normal
profile_add_info_etc_website Website or blog URL ETC url / normal
profile_add_info_etc_education Education ETC enum / education
profile_add_info_etc_interests Hobbies/interests ETC enum / interest
profile_add_info_etc_marital Marital status ETC enum / marital
profile_add_info_etc_children Number of children ETC string / normal
profile_add_info_etc_sns Social media account ETC sns / sns
profile_add_info_etc_referrer Referrer ETC string / normal
profile_add_info_etc_referrer_code Referral code ETC string / normal
profile_add_info_custom_1 Additional information 1 CUSTOM string / normal
profile_add_info_custom_2 Additional information 2 CUSTOM string / normal
profile_add_info_custom_3 Additional information 3 CUSTOM string / normal
profile_add_info_custom_4 Additional information 4 CUSTOM string / normal
profile_add_info_custom_5 Additional information 5 CUSTOM string / normal

See common results for navigation and recovery conventions.

Saved record identity

Existing apply/dry-run calls and task status/resume require both the saved task ID and saved input requestId to match the requested ID. A mismatching or malformed saved identity returns TASK_STATE_UNVERIFIED before workflow context or business reads. Preserve the original record for inspection; do not rename/edit it, try its embedded ID or create a replacement request to bypass the error. No record is repaired or resent. Matching records retain their existing recovery and freshness checks; this rule does not convert them into universally read-only calls.