Manage Customer Fields - Add New Field
Create a new field used to gather customer data:
The data to be submitted to the API is composed of the following fields:
|
|
field |
|
Example |
|
Note |
|
|
|
API |
|
1.6 |
|
Required |
|
|
|
user_id |
|
john1970 |
|
Required |
|
|
|
user_api_key |
|
1959caadac9b13dcb3 |
|
Required |
|
|
|
type |
|
manage_fields |
|
Required |
|
|
|
action |
|
add |
|
Required |
|
|
|
account_id |
|
greatwidgets |
|
Required |
|
|
|
custom_field_#_label |
|
Marital Status |
|
Required |
|
|
|
custom_field_#_show |
|
N |
|
optional |
|
|
|
custom_field_#_type |
|
List |
|
Required |
|
|
|
custom_field_#_choices |
|
Single, Married, Other |
|
optional |
|
|
|
custom_field_#_searchable |
|
Y |
|
optional |
|
|
|
custom_field_#_unique |
|
Y |
|
optional |
|
|
|
|
|
|
|
|
|
|
|
Output Format: |
|
|
|
output |
|
JSON or XML |
|
Optional. If not provided, defaults to XML |
|
|
|
callback |
|
someFunctionName |
|
Optional: JSONP format |
|
|
|
condensed |
|
yes |
|
Optional (No white space) Applies only to JSON(P) output |
|
|
|
|
|
|
|
|
|
NOTE:
- Only users with proper permissions can access this call.
- Multiple fields can be added at the same time.
- If a field is received by the API and is missing some of its parameters, it will be created with any such missing values set to their default: Show=No, Type=Text.
- Additional fields have the following [field_name_#] structure:
- "custom_field_#" where the "#" is any integer above 1
(because one of the per-existing fields is already "custom_field_1")
Example:
- custom_field_2
- custom_field_14
- ...
- How do know which number to use? We suggest you do a Customer Fields - List API call first, and see which custom fields, if any, already exist.
- Field types are:
- Text (up to 64000 characters, unless it's set as searchable (is ID) or unique, in which cases it's up to 255 characters.)
- Date ("datetime" stamp. Ex: 2012-01-01 14:45:04 )
- Pick (Requires [field_name]_choices )
- List (Requires [field_name]_choices )
- Currently, the only field type that can be set to be "unique" is the Text type. "Unique" fields don't allow a content entry to be a duplicate of an existing one. An example might be an ID code, etc.
- Only Text type fields can be set to searchable. All custom fields are searchable with the Customer - Find and Customer - Search API calls. This setting applies only to certain situations, like coalition accounts, where the ability to pull up a customer record is limited by the user's permissions. This field allows to mark a field as being like an "ID" field in that a user can pull up this customer in a coaltion account even though the customer doesn't yet "belong" to that campaign. In non-coalition situations, this would enable the user of Master/Slave customer IDs that allow multiple customers (family, businesses) to earn in a single customer account.
- The difference between the List type and the Pick type is that for the Pick type, only ONE of the choices can be submitted back to the API, whereas for the List type, any number of the choices can be sent back (separated by a comma ",".)
- The following default field_names can only be set to show or not. (Their type is set.)
- card_number
- first_name
- last_name
- phone
- email
- street1
- street2
- city
- state
- zip
- country
- customer_username
- customer_PIN
- customer_password
- custom_date
- custom_field_1
Example PHP Request:
If you are using PHP, the $data array would look like this:
- $data['API'] = '1.5';
- $data['user_id'] = 'john1970';
- $data['user_api_key'] = '1959caadac9b13dcb3';
- $data['account_id'] = 'greatwidgets';
- $data['type'] = 'manage_fields';
- $data['action'] = 'add';
- $data['custom_field_2_label'] = 'Middle Name'
- $data['custom_field_2_show'] = 'Y';
- $data['custom_field_2_type'] = 'Text';
- $data['custom_field_3_label'] = 'Tags';
- $data['custom_field_3_show'] = 'Y';
- $data['custom_field_3_type'] = 'List';
- $data['custom_field_3_choices'] = 'Tag A, Tag B, Tag C, Tag D, ...';
- $data['custom_field_4_label'] = 'Allow SMS';
- $data['custom_field_4_show'] = 'Y';
- $data['custom_field_4_type'] = 'Pick';
- $data['custom_field_4_choices'] = 'Yes|No';
Success XML Response (lists ALL the existing fields):
- <response status="success">
- <account>
- <account_id>test2009050502</account_id>
- <fields>
- <field>
- <name>card_number</name>
- <label>Member #</label>
- <show>Y</show>
- <type>Text</type>
- </field>
- <field>
- <name>first_name</name>
- <label>First Name</label>
- <show>Y</show>
- <type>Text</type>
- </field>
- ...
- <field>
- <name>custom_field_2</name>
- <label>Middle Name</label>
- <show>Y</show>
- <type>Text</type>
- </field>
- <field>
- <name>custom_field_3</name>
- <label>Tags</label>
- <show>Y</show>
- <type>List</type>
- <choices>
- <choice>Tag A</choice>
- <choice>Tag B</choice>
- <choice>Tag C</choice>
- </choice>
- </field>
- <field>
- <name>custom_field_4</name>
- <label>Allow SMS</label>
- <show>Y</show>
- <type>Pick</type>
- <choices>
- <choice>Yes</choice>
- <choice>No</choice>
- </choice>
- </field>
- </fields>
- </account>
- </response>
NOTE:
- The <show> response indicates whether or not this field ought to be shown or not. Usually fields with "N" will have nothing in them. However, it is allowed to add content to any defined field through the API regardless of their <show> status.
Error XML Response:
- <response status="error">
- <error>Error message</error>
- </response>
|