Introduction
Welcome to the LeadPages Integrations API documentation. You can use this API to configure Integrations, Forms and manage Submissions.
This API adheres to the LeadPages HTTP API Standards document.
We suggest starting with the Walkthrough to begin accessing the API.
Walkthrough
A quick way to jump into Hydra is to use a tool like cURL to work with the API. This has the additional advantage of forcing you to consider each header and aspect of the request as you're learning it.
These examples use the syntax of the HTTPie tool.
You'll also need to be set up with the LeadPages API Gateway, Stargate. If you don't have any tokens or authentication set up, come back here after getting comfortable with Stargate.
The Stargate Walkthrough is the best place to begin.
Endpoints
/integration/v1
The integrations API.
Ping
/integration/v1/ping
A no-op endpoint that can be used to check what the currently-deployed version of the API is.
http GET http://hydra.docker/integration/v1/ping
{
"_meta": {
"_version": "0.1.0"
},
"_status": {
"code": 200
}
}
Request
GET /integration/v1/ping
| Body | |
|---|---|
| Empty | |
Response
| Body | |
|---|---|
_meta._version |
StringThe current internal version number of the API. |
_meta |
Dictionary |
| Responses | |
|---|---|
200 OK |
|
| Errors | |
|---|---|
| Empty | |
Providers
/integration/v1/providers
Providers are the available backends with which a user may configure an integration. A provider can be any kind of service provider, like a CRM, email service provider, webinar provider or payment processor for example. Provider information is readable by everyone but only super users may create, update or delete providers.
http GET http://hydra.docker/integration/v1/providers
{
"_meta": {
"limit": 20,
"total": null,
"cursor": "RStBQkFJSUNPbW9LYkdWaFpDMXdZV2RsYzNJa0N4SUlVSEp2ZG1sa1pYSWlGbnBUVUhsd2VGcFdSSFZhYzB0UU5WTlpWSE5pVGxVTW9nRUZhSGxrY21FVQ==",
"count": 1
},
"_items": [
{
"provider": {
"credentialsKind": "Key",
"name": "MailChimp",
"keyLabel": "API Key",
"category": "EmailServices",
"capabilities": ["write"],
"userSettings": [],
"baseUri": "http://mailchimp.docker/mailchimp/v1"
},
"_meta": {
"id": "abc",
"uri": "http://hydra.docker/integration/v1/providers/abc",
"created": "2015-09-23T14:34:30.601100+00:00",
"updated": "2015-09-23T14:34:30.632811+00:00"
},
"kind": "KeyProvider"
}
],
"_status": {
"code": 200
}
}
Request
GET /integration/v1/providers
Enumerate Providers.
| Body | |
|---|---|
| Empty | |
| Query string | |
|---|---|
limit |
Regexp?(\d+)The maximum number of items to return in the response. |
cursor |
String?A string representing where a previous request "left off". |
Response
| Body | |
|---|---|
_meta |
ListingMetaMeta information about the response. |
_items |
List[Provider] |
| Responses | |
|---|---|
200 OK |
|
| Errors | |
|---|---|
400 Bad Request |
bad content type |
400 Bad Request |
failed to parse JSON request |
400 Bad Request |
missing Content-Type header |
http POST http://hydra.docker/integration/v1/providers < mailchimp.json
{
"baseUri": "http://mailchimp.docker/mailchimp/v1"
}
{
"provider": {
"credentialsKind": "Key",
"name": "MailChimp",
"keyLabel": "API Key",
"category": "EmailServices",
"capabilities": ["write"],
"userSettings": [],
"baseUri": "http://mailchimp.docker/mailchimp/v1"
},
"_meta": {
"uri": "http://hydra.docker/integration/v1/providers/abc",
"id": "abc",
"created": "2015-09-24T19:27:34.319142+00:00",
"updated": "2015-09-24T19:27:35.058511+00:00"
},
"_status": {
"code": 200
},
"kind": "KeyProvider"
}
http POST http://hydra.docker/integration/v1/providers < aweber.json
{
"baseUri": "http://aweber.docker/aweber/v1"
}
{
"provider": {
"credentialsKind": "OAuth",
"name": "AWeber",
"keyCount": 0,
"keyLabels": [],
"category": "EmailServices",
"capabilities": ["write"],
"userSettings": [],
"baseUri": "http://aweber.docker/aweber/v1"
},
"_meta": {
"uri": "http://hydra.docker/integration/v1/providers/bcd",
"id": "bcd",
"created": "2015-09-25T13:09:16.366243+00:00",
"updated": "2015-09-25T13:09:16.395879+00:00"
},
"_status": {
"code": 200
},
"kind": "OAuthProvider"
}
http POST http://hydra.docker/integration/v1/providers < gotowebinar.json
{
"baseUri": "http://gotowebinar.docker/gotowebinar/v1",
"name": "GoToWebinar"
}
{
"provider": {
"credentialsKind": "OAuth2",
"name": "Gotowebinar",
"keyCount": 0,
"keyLabels": [],
"category": "WebinarServices",
"capabilities": ["write"],
"baseUri": "http://gotowebinar.docker/gotowebinar/v1"
},
"_meta": {
"uri": "http://hydra.docker/integration/v1/providers/cde",
"id": "cde",
"created": "2015-09-25T13:12:46.064565+00:00",
"updated": "2015-09-25T13:12:46.095472+00:00"
},
"_status": {
"code": 200
},
"kind": "OAuth2Provider"
}
Request
POST /integration/v1/providers
Create a new Provider.
| Body | |
|---|---|
name |
String?The unique name of the Provider. This field can be omitted in which case the Provider name will be grabbed off of its metadata. |
baseUri |
URIThe base URI of this Provider's agent. |
capacities |
List?[String]Which capacities, if any, this Provider is expected to act in if it supports them. |
Response
| Body | |
|---|---|
kind |
Enum('IdentityUserProvider', 'KeyProvider', 'KeysProvider', 'OAuthProvider', 'OAuth2Provider') |
provider |
Or[IdentityUserProvider, KeyProvider, KeysProvider, OAuthProvider, OAuth2Provider] |
_meta |
MetaMeta information about the resource. |
| Responses | |
|---|---|
200 OK |
|
| Errors | |
|---|---|
400 Bad Request |
unknown message |
400 Bad Request |
invalid response from agent |
400 Bad Request |
a provider with the name '{}' already exists |
400 Bad Request |
bad content type |
400 Bad Request |
missing Content-Type header |
400 Bad Request |
provider does not support given capacities |
400 Bad Request |
failed to parse JSON request |
Provider
/integration/v1/providers/{uuid}
http GET http://hydra.docker/integration/v1/providers/abc
{
"provider": {
"credentialsKind": "Key",
"name": "MailChimp",
"keyLabel": "API Key",
"category": "EmailServices",
"capabilities": ["write"],
"userSettings": [],
"baseUri": "http://mailchimp.docker/mailchimp/v1"
},
"_meta": {
"uri": "http://hydra.docker/integration/v1/providers/abc",
"id": "abc",
"created": "2015-09-24T19:27:34.319142+00:00",
"updated": "2015-09-24T19:27:35.058511+00:00"
},
"_status": {
"code": 200
},
"kind": "KeyProvider"
}
Request
GET /integration/v1/providers/{uuid}
View a Provider.
| Body | |
|---|---|
| Empty | |
Response
| Body | |
|---|---|
kind |
Enum('IdentityUserProvider', 'KeyProvider', 'KeysProvider', 'OAuthProvider', 'OAuth2Provider') |
provider |
Or[IdentityUserProvider, KeyProvider, KeysProvider, OAuthProvider, OAuth2Provider] |
_meta |
MetaMeta information about the resource. |
| Responses | |
|---|---|
200 OK |
|
| Errors | |
|---|---|
404 Not Found |
provider '{}' not found |
Request
PATCH /integration/v1/providers/{uuid}
Update a Provider's metadata.
| Body | |
|---|---|
| Empty | |
Response
| Body | |
|---|---|
kind |
Enum('IdentityUserProvider', 'KeyProvider', 'KeysProvider', 'OAuthProvider', 'OAuth2Provider') |
provider |
Or[IdentityUserProvider, KeyProvider, KeysProvider, OAuthProvider, OAuth2Provider] |
_meta |
MetaMeta information about the resource. |
| Responses | |
|---|---|
200 OK |
|
| Errors | |
|---|---|
400 Bad Request |
unknown message |
400 Bad Request |
agent has changed its kind |
404 Not Found |
provider '{}' not found |
Integrations
/integration/v1/integrations
Integrations are configured Provider instances. When a provider is set up to work specifically for a user, it becomes an integration owned by that user. The list of integrations returned is always scoped to those belonging to the current user.
Request
GET /integration/v1/integrations
Enumerate Integrations.
| Body | |
|---|---|
| Empty | |
| Query string | |
|---|---|
limit |
Regexp?(\d+)The maximum number of items to return in the response. |
cursor |
String?A string representing where a previous request "left off". |
provider |
Or?[String, List]If this parameter is provided then only integrations matching the given provider(s) will be returned. |
include |
Or?[String, List]Integrations do no list expired or read only collections by default. You can use this argument to make this endpoint include such collections (eg. `include=expired` or `include=expired&include=readonly`) |
Response
| Body | |
|---|---|
_meta |
ListingMetaMeta information about the response. |
_items |
List[Integration] |
| Responses | |
|---|---|
200 OK |
|
| Errors | |
|---|---|
400 Bad Request |
bad content type |
400 Bad Request |
failed to parse JSON request |
400 Bad Request |
missing Content-Type header |
Request
POST /integration/v1/integrations
Create a new Integration and its matching
set of Credentials. The ids for both the integration and
its credentials are returned in the response. OAuth and
OAuth2-based integrations require you to view the
generated Credentials resource in order to grab the
redirectUri. You must redirect your user to that URI in
order to complete the authorization process. Once they
have authorized the Provider to use their account, they
will be redirected back to your chosen successUri.
| Body | |
|---|---|
name |
StringThe Integration's name. Note: the uniqueness of Integration names is not enforced. |
provider |
StringThe unique id of the Provider this Integration is based on. |
credentials |
CreateIntegrationCredentialsThe Credentials this Integration must use when it communicates with the Provider. |
settings |
Dictionary?An arbitrary object representing the user's default settings for this Integration according its Provider's `userSettings` form. |
Response
| Body | |
|---|---|
name |
StringThe Integration's name. Note: the uniqueness of Integration names is not enforced. |
provider |
StringThe unique id of the Provider this Integration is based on. |
credentials |
StringThe unique id of the Credentials this Integration uses. |
settings |
Dictionary?An arbitrary object representing the user's default settings for this Integration according its Provider's `userSettings` form. |
_meta |
MetaMeta information about the resource. |
status |
Enum('ready', 'loading', 'done', 'reauthorizing', 'failed', 'authorization-request')The status of the Integration. |
failureReason |
Enum('authorization-failed', 'protocol-violation', 'retries-exceeded', 'timeout', 'unknown', 'integration-failure')The reason why the Integration is marked as `FAILED`, if applicable. |
collections |
List[Collection] |
tagGroups |
List?[TagGroup] |
statusUpdates |
List?[StatusUpdate] |
| Responses | |
|---|---|
200 OK |
|
| Errors | |
|---|---|
400 Bad Request |
unknown message |
400 Bad Request |
invalid credentials |
400 Bad Request |
bad content type |
400 Bad Request |
credentials must be of kind '{}' |
400 Bad Request |
missing Content-Type header |
400 Bad Request |
failed to parse JSON request |
400 Bad Request |
could not validate credentials |
404 Not Found |
provider '{}' not found. |
502 Bad Gateway |
the request could not be processed |
Request
PATCH /integration/v1/integrations
Update multiple Integrations at once.
| Body | |
|---|---|
integrations |
List[UpdateIntegrationWithId] |
Response
| Body | |
|---|---|
_meta |
ListingMetaMeta information about the response. |
_items |
List[Integration] |
| Responses | |
|---|---|
200 OK |
|
| Errors | |
|---|---|
400 Bad Request |
bad content type |
400 Bad Request |
failed to parse JSON request |
400 Bad Request |
missing Content-Type header |
Integration
/integration/v1/integrations/{uuid}
Request
GET /integration/v1/integrations/{uuid}
View an Integration.
| Body | |
|---|---|
| Empty | |
| Query string | |
|---|---|
provider |
Or?[String, List]If this parameter is provided then only integrations matching the given provider(s) will be returned. |
include |
Or?[String, List]Integrations do no list expired or read only collections by default. You can use this argument to make this endpoint include such collections (eg. `include=expired` or `include=expired&include=readonly`) |
Response
| Body | |
|---|---|
name |
StringThe Integration's name. Note: the uniqueness of Integration names is not enforced. |
provider |
StringThe unique id of the Provider this Integration is based on. |
credentials |
StringThe unique id of the Credentials this Integration uses. |
settings |
Dictionary?An arbitrary object representing the user's default settings for this Integration according its Provider's `userSettings` form. |
_meta |
MetaMeta information about the resource. |
status |
Enum('ready', 'loading', 'done', 'reauthorizing', 'failed', 'authorization-request')The status of the Integration. |
failureReason |
Enum('authorization-failed', 'protocol-violation', 'retries-exceeded', 'timeout', 'unknown', 'integration-failure')The reason why the Integration is marked as `FAILED`, if applicable. |
collections |
List[Collection] |
tagGroups |
List?[TagGroup] |
statusUpdates |
List?[StatusUpdate] |
| Responses | |
|---|---|
200 OK |
|
| Errors | |
|---|---|
404 Not Found |
unknown message |
http PATCH http://hydra.docker/integration/v1/integrations/abc
{
"_status": {
"code": 200
},
"failureReason": null,
"credentials": "itBkE2hti6GNTB4VEwvpUb",
"provider": "4BVCTBHEGdqGhXkrqurksF",
"collections": [],
"name": "Mailchimp",
"settings": {},
"_meta": {
"uri": "http://hydra.docker/integration/v1/integrations/abc",
"id": "abc",
"created": "2015-10-27T12:27:23+00:00",
"updated": "2015-11-24T13:40:37+00:00"
},
"status": "loading"
}
http PATCH http://hydra.docker/integration/v1/integrations/abc < updates.json
{
"name": "Mailchimps!",
"settings": {"a": "b"}
}
{
"_status": {
"code": 200
},
"failureReason": null,
"credentials": "itBkE2hti6GNTB4VEwvpUb",
"provider": "4BVCTBHEGdqGhXkrqurksF",
"collections": [],
"name": "Mailchimps!",
"settings": {"a": "b"},
"_meta": {
"uri": "http://hydra.docker/integration/v1/integrations/abc",
"id": "abc",
"created": "2015-10-27T12:27:23+00:00",
"updated": "2015-11-24T13:40:37+00:00"
},
"status": "done"
}
Request
PATCH /integration/v1/integrations/{uuid}
Force an Integration to update its list of collections. This is usually done on the user's request after they have taken action on that integration's website (for example: after they have added or removed a list in Mailchimp).
| Body | |
|---|---|
| Empty | |
Response
| Body | |
|---|---|
name |
StringThe Integration's name. Note: the uniqueness of Integration names is not enforced. |
provider |
StringThe unique id of the Provider this Integration is based on. |
credentials |
StringThe unique id of the Credentials this Integration uses. |
settings |
Dictionary?An arbitrary object representing the user's default settings for this Integration according its Provider's `userSettings` form. |
_meta |
MetaMeta information about the resource. |
status |
Enum('ready', 'loading', 'done', 'reauthorizing', 'failed', 'authorization-request')The status of the Integration. |
failureReason |
Enum('authorization-failed', 'protocol-violation', 'retries-exceeded', 'timeout', 'unknown', 'integration-failure')The reason why the Integration is marked as `FAILED`, if applicable. |
collections |
List[Collection] |
tagGroups |
List?[TagGroup] |
statusUpdates |
List?[StatusUpdate] |
| Responses | |
|---|---|
200 OK |
|
| Errors | |
|---|---|
400 Bad Request |
unknown message |
400 Bad Request |
JSON decode error |
404 Not Found |
unknown message |
Request
DELETE /integration/v1/integrations/{uuid}
Delete (soft) an Integration.
| Body | |
|---|---|
| Empty | |
Response
| Body | |
|---|---|
| Empty | |
| Responses | |
|---|---|
200 OK |
|
| Errors | |
|---|---|
404 Not Found |
unknown message |
Collections
/integration/v1/integrations/{uuid}/collections
Request
POST /integration/v1/integrations/{uuid}/collections
Create a new Collection in this
Integration. This functionality is only available
for Integrations that are based on Providers that
have the creates-collections feature.
| Body | |
|---|---|
parent |
String?The id of then existing collection that the new one should be nested under. |
name |
StringThe new collection's name. |
providerParams |
Dictionary?An unconstrained dictionary of params custom to the configured provider for this integration-collection. |
Response
| Body | |
|---|---|
id |
StringThe unique id of a Collection. Note: these are only unique within the context of an Integration. Two Integrations could have clashing collection identifiers between them. |
path |
List[String]A list of strings representing the fully qualified path of this collection within the Provider (for example, in AWeber's case this would be a list of two elements, the first element representing the AWeber list and the second representing a Form belonging to that list. |
status |
String?The status of this collection within the Agent. |
| Responses | |
|---|---|
201 Created |
|
| Errors | |
|---|---|
400 Bad Request |
bad content type |
400 Bad Request |
failed to parse JSON request |
400 Bad Request |
missing Content-Type header |
Collection
/integration/v1/integrations/{uuid}/collections/{collection_uuid}
Request
PUT /integration/v1/integrations/{uuid}/collections/{collection_uuid}
Create or replace a Collection in this
Integration. This functionality is only available for
Integrations that are based on Providers that have the
creates-collections feature.
| Body | |
|---|---|
parent |
String?The id of then existing collection that the new one should be nested under. |
name |
StringThe new collection's name. |
providerParams |
Dictionary?An unconstrained dictionary of params custom to the configured provider for this integration-collection. |
Response
| Body | |
|---|---|
id |
StringThe unique id of a Collection. Note: these are only unique within the context of an Integration. Two Integrations could have clashing collection identifiers between them. |
path |
List[String]A list of strings representing the fully qualified path of this collection within the Provider (for example, in AWeber's case this would be a list of two elements, the first element representing the AWeber list and the second representing a Form belonging to that list. |
status |
String?The status of this collection within the Agent. |
| Responses | |
|---|---|
201 Created |
|
| Errors | |
|---|---|
400 Bad Request |
unknown message |
400 Bad Request |
bad content type |
400 Bad Request |
missing Content-Type header |
400 Bad Request |
failed to parse JSON request |
403 Forbidden |
unknown message |
404 Not Found |
unknown message |
409 Conflict |
unknown message |
504 Gateway Timeout |
unknown message |
Request
DELETE /integration/v1/integrations/{uuid}/collections/{collection_uuid}
Delete a Collection in this
Integration. This functionality is only available
for Integrations that are based on Providers that
have the deletes-collections feature.
| Body | |
|---|---|
| Empty | |
Response
| Body | |
|---|---|
| Empty | |
| Responses | |
|---|---|
204 No Content |
|
| Errors | |
|---|---|
400 Bad Request |
unknown message |
400 Bad Request |
bad content type |
400 Bad Request |
missing Content-Type header |
400 Bad Request |
failed to parse JSON request |
404 Not Found |
unknown message |
409 Conflict |
unknown message |
504 Gateway Timeout |
unknown message |
Fields
/integration/v1/integrations/{uuid}/collections/{collection_uuid}/fields
Request
POST /integration/v1/integrations/{uuid}/collections/{collection_uuid}/fields
Create a new custom field on this collection, if available.
| Body | |
|---|---|
kind |
Enum('TextField', 'CheckBoxField', 'ChoiceField', 'SelectField', 'MultiSelectField', 'RadioField', 'ReadOnlyField', 'HiddenField', 'SystemHiddenField', 'HiddenMultiSelectField', 'NumberField', 'IntegerField', 'PaymentAmountField', 'RefundAmountField', 'CouponAmountField', 'CurrencyField', 'StrictCurrencyField', 'PercentageField', 'TextAreaField', 'CommentField', 'DayField', 'DateField', 'DateTimeField', 'TimezoneOffsetField', 'URIField', 'PathField', 'UserAgentField', 'IPAddressField', 'IPv4AddressField', 'IPv6AddressField', 'PasswordField', 'EmailField', 'SalutationField', 'FullNameField', 'FirstNameField', 'MiddleNameField', 'LastNameField', 'AgeField', 'BirthdayField', 'BirthdateField', 'PhoneNumberField', 'HomePhoneNumberField', 'WorkPhoneNumberField', 'MobilePhoneNumberField', 'FaxNumberField', 'HomeFaxNumberField', 'WorkFaxNumberField', 'CompanyField', 'JobTitleField', 'IndustryField', 'NumberOfEmployeesField', 'AnnualRevenueField', 'WebsiteField', 'TagField', 'MultiTagField', 'HiddenMultiTagField', 'PostalCodeField', 'AddressStreetField', 'AddressCityField', 'AddressStateField', 'AddressStrictStateField', 'AddressPostalCodeField', 'AddressCountryField', 'AddressStrictCountryField', 'BillingAddressStreetField', 'BillingAddressCityField', 'BillingAddressStateField', 'BillingAddressStrictStateField', 'BillingAddressPostalCodeField', 'BillingAddressCountryField', 'BillingAddressStrictCountryField', 'ShippingAddressStreetField', 'ShippingAddressCityField', 'ShippingAddressStateField', 'ShippingAddressStrictStateField', 'ShippingAddressPostalCodeField', 'ShippingAddressCountryField', 'ShippingAddressStrictCountryField', 'UserHandleField', 'TwitterUserHandleField', 'FacebookUserHandleField', 'LinkedInUserHandleField', 'GooglePlusUserHandleField', 'GeographicLatitudeField', 'GeographicLongitudeField', 'GeographicElevationField', 'ViewportWidthField', 'ViewportHeightField', 'LocaleField', 'StrictLocaleField', 'RatingField', 'LeadScoreField', 'LifetimeValueField', 'DurationMinutesField', 'CenterViewerUUIDField')The field's exact type. |
field |
Or[TextField, CheckBoxField, ChoiceField, SelectField, MultiSelectField, RadioField, ReadOnlyField, HiddenField, SystemHiddenField, HiddenMultiSelectField, NumberField, IntegerField, PaymentAmountField, RefundAmountField, CouponAmountField, CurrencyField, StrictCurrencyField, PercentageField, TextAreaField, CommentField, DayField, DateField, DateTimeField, TimezoneOffsetField, URIField, PathField, UserAgentField, IPAddressField, IPv4AddressField, IPv6AddressField, PasswordField, EmailField, SalutationField, FullNameField, FirstNameField, MiddleNameField, LastNameField, AgeField, BirthdayField, BirthdateField, PhoneNumberField, HomePhoneNumberField, WorkPhoneNumberField, MobilePhoneNumberField, FaxNumberField, HomeFaxNumberField, WorkFaxNumberField, CompanyField, JobTitleField, IndustryField, NumberOfEmployeesField, AnnualRevenueField, WebsiteField, TagField, MultiTagField, HiddenMultiTagField, PostalCodeField, AddressStreetField, AddressCityField, AddressStateField, AddressStrictStateField, AddressPostalCodeField, AddressCountryField, AddressStrictCountryField, BillingAddressStreetField, BillingAddressCityField, BillingAddressStateField, BillingAddressStrictStateField, BillingAddressPostalCodeField, BillingAddressCountryField, BillingAddressStrictCountryField, ShippingAddressStreetField, ShippingAddressCityField, ShippingAddressStateField, ShippingAddressStrictStateField, ShippingAddressPostalCodeField, ShippingAddressCountryField, ShippingAddressStrictCountryField, UserHandleField, TwitterUserHandleField, FacebookUserHandleField, LinkedInUserHandleField, GooglePlusUserHandleField, GeographicLatitudeField, GeographicLongitudeField, GeographicElevationField, ViewportWidthField, ViewportHeightField, LocaleField, StrictLocaleField, RatingField, LeadScoreField, LifetimeValueField, DurationMinutesField, CenterViewerUUIDField]The structure of this must match the type described by kind. |
Response
| Body | |
|---|---|
| Empty | |
| Responses | |
|---|---|
201 Created |
|
| Errors | |
|---|---|
400 Bad Request |
unknown message |
400 Bad Request |
bad content type |
400 Bad Request |
missing Content-Type header |
400 Bad Request |
failed to parse JSON request |
403 Forbidden |
unknown message |
404 Not Found |
unknown message |
409 Conflict |
unknown message |
504 Gateway Timeout |
unknown message |
Field
/integration/v1/integrations/{uuid}/collections/{collection_uuid}/fields/{field_name}
Request
DELETE /integration/v1/integrations/{uuid}/collections/{collection_uuid}/fields/{field_name}
Delete a custom field from this collection.
| Body | |
|---|---|
| Empty | |
Response
| Body | |
|---|---|
| Empty | |
| Responses | |
|---|---|
200 OK |
|
| Errors | |
|---|---|
400 Bad Request |
unknown message |
403 Forbidden |
unknown message |
404 Not Found |
unknown message |
409 Conflict |
unknown message |
504 Gateway Timeout |
unknown message |
Credentials
/integration/v1/credentials
Credentials are user-supplied authentication information for connecting to a provider. They are always associated with a specific Integration and are always scoped to the current user.
Request
GET /integration/v1/credentials
Enumerate Credentials.
| Body | |
|---|---|
| Empty | |
| Query string | |
|---|---|
limit |
Regexp?(\d+)The maximum number of items to return in the response. |
cursor |
String?A string representing where a previous request "left off". |
Response
| Body | |
|---|---|
_meta |
ListingMetaMeta information about the response. |
_items |
List[Credentials] |
| Responses | |
|---|---|
200 OK |
|
| Errors | |
|---|---|
| Empty | |
Oauthcallback
/integration/v1/credentials/oauth-callback
Users connecting an OAuth integration for
the first time get redirected to this endpoint after they
authorize the Provider to access their account, this
endpoint then redirects them to the configured successUri
or failureUri based on the result.
Note: Redirection to and from this endpoint is handled for you.
Request
GET /integration/v1/credentials/oauth-callback
| Body | |
|---|---|
| Empty | |
| Query string | |
|---|---|
uuid |
String |
oauth_token |
String? |
oauth_verifier |
String |
Response
| Body | |
|---|---|
| Empty | |
| Responses | |
|---|---|
302 Found |
|
| Errors | |
|---|---|
400 Bad Request |
invalid callback payload |
400 Bad Request |
missing UUID in callback payload |
404 Not Found |
unknown message |
Oauth2callback
/integration/v1/credentials/oauth2-callback
Users connecting an OAuth2 integration for
the first time get redirected to this endpoint after they
authorize the Provider to access their account, this endpoint
then redirects them to the configured successUri or failureUri
based on the result.
Note: Redirection to and from this endpoint is handled for you.
Request
GET /integration/v1/credentials/oauth2-callback
| Body | |
|---|---|
| Empty | |
| Query string | |
|---|---|
| Empty | |
Response
| Body | |
|---|---|
| Empty | |
| Responses | |
|---|---|
302 Found |
|
| Errors | |
|---|---|
400 Bad Request |
invalid callback payload |
404 Not Found |
credentials not found |
Credential
/integration/v1/credentials/{uuid}
Request
GET /integration/v1/credentials/{uuid}
View a set of Credentials.
| Body | |
|---|---|
| Empty | |
Response
| Body | |
|---|---|
kind |
Enum('IdentityUser', 'Key', 'Keys', 'OAuth', 'OAuth2') |
credentials |
Or[IdentityUser, Key, Keys, OAuth, OAuth2] |
_meta |
MetaMeta information about the resource. |
integration |
StringThe unique id of the Integration these Credentials belong to. |
provider |
StringThe unique id of the Provider that is accessed using these credentials. |
| Responses | |
|---|---|
200 OK |
|
| Errors | |
|---|---|
400 Bad Request |
unknown message |
404 Not Found |
unknown message |
Request
PATCH /integration/v1/credentials/{uuid}
Update a set of Credentials.
| Body | |
|---|---|
kind |
Enum('Key', 'Keys', 'OAuth', 'OAuth2') |
credentials |
Or[UpdateKey, UpdateKeys, UpdateOAuth, UpdateOAuth2] |
Response
| Body | |
|---|---|
kind |
Enum('IdentityUser', 'Key', 'Keys', 'OAuth', 'OAuth2') |
credentials |
Or[IdentityUser, Key, Keys, OAuth, OAuth2] |
_meta |
MetaMeta information about the resource. |
integration |
StringThe unique id of the Integration these Credentials belong to. |
provider |
StringThe unique id of the Provider that is accessed using these credentials. |
| Responses | |
|---|---|
200 OK |
|
| Errors | |
|---|---|
400 Bad Request |
unknown message |
400 Bad Request |
invalid credentials |
400 Bad Request |
invalid 'kind', expected: {} |
400 Bad Request |
could not validate credentials |
404 Not Found |
unknown message |
Fieldsets
/integration/v1/fieldsets
Fieldsets offer a way to "query" for what a specific target configuration will look like without forcing you to create a Form.
Request
GET /integration/v1/fieldsets
Enumerate Fieldsets
| Body | |
|---|---|
| Empty | |
| Query string | |
|---|---|
limit |
Regexp?(\d+)The maximum number of items to return in the response. |
cursor |
String?A string representing where a previous request "left off". |
Response
| Body | |
|---|---|
_meta |
ListingMetaMeta information about the response. |
_items |
List[Fieldset] |
| Responses | |
|---|---|
200 OK |
|
| Errors | |
|---|---|
400 Bad Request |
failed to parse JSON request |
400 Bad Request |
bad content type |
400 Bad Request |
unknown message |
400 Bad Request |
missing Content-Type header |
Request
POST /integration/v1/fieldsets
Create a Fieldset.
| Body | |
|---|---|
name |
String?An optional name to represent this Fieldset. |
targets[].integration |
StringThe unique id of an Integration. |
targets[].collection |
StringThe unique id of a collection within that Integration. |
targets |
List[Dictionary] |
strategy |
Enum('append', 'fold')The Strategy to use when merging fields from multiple targets. Defaults to fold. |
reCaptchaV2 |
Dictionary?Settings to include and excute a v2 recaptcha |
spamCheckJs |
Boolean?Do we want to detect and exclude spam/bot submissions? |
Response
| Body | |
|---|---|
name |
String?An optional name to represent this Fieldset. |
targets[].integration |
StringThe unique id of an Integration. |
targets[].collection |
StringThe unique id of a collection within that Integration. |
targets |
List[Dictionary] |
strategy |
Enum('append', 'fold')The Strategy to use when merging fields from multiple targets. Defaults to fold. |
reCaptchaV2 |
Dictionary?Settings to include and excute a v2 recaptcha |
spamCheckJs |
Boolean?Do we want to detect and exclude spam/bot submissions? |
_meta |
MetaMeta information about the resource. |
fields |
List[Field]The result of merging together each Target's fields. |
status |
Enum('ready', 'loading', 'done', 'failed') |
failureReason |
Enum('target-error', 'processing-error')The reason why the FormLike is marked as `FAILED`, if applicable. |
| Responses | |
|---|---|
200 OK |
|
| Errors | |
|---|---|
400 Bad Request |
unknown message |
400 Bad Request |
bad content type |
400 Bad Request |
failed to parse JSON request |
400 Bad Request |
missing Content-Type header |
404 Not Found |
unknown message |
Fieldset
/integration/v1/fieldsets/{uuid}
Request
GET /integration/v1/fieldsets/{uuid}
View a Fieldset.
| Body | |
|---|---|
| Empty | |
Response
| Body | |
|---|---|
name |
String?An optional name to represent this Fieldset. |
targets[].integration |
StringThe unique id of an Integration. |
targets[].collection |
StringThe unique id of a collection within that Integration. |
targets |
List[Dictionary] |
strategy |
Enum('append', 'fold')The Strategy to use when merging fields from multiple targets. Defaults to fold. |
reCaptchaV2 |
Dictionary?Settings to include and excute a v2 recaptcha |
spamCheckJs |
Boolean?Do we want to detect and exclude spam/bot submissions? |
_meta |
MetaMeta information about the resource. |
fields |
List[Field]The result of merging together each Target's fields. |
status |
Enum('ready', 'loading', 'done', 'failed') |
failureReason |
Enum('target-error', 'processing-error')The reason why the FormLike is marked as `FAILED`, if applicable. |
| Responses | |
|---|---|
200 OK |
|
| Errors | |
|---|---|
404 Not Found |
unknown message |
Request
PATCH /integration/v1/fieldsets/{uuid}
Force a Fieldset to update its field data.
| Body | |
|---|---|
| Empty | |
Response
| Body | |
|---|---|
name |
String?An optional name to represent this Fieldset. |
targets[].integration |
StringThe unique id of an Integration. |
targets[].collection |
StringThe unique id of a collection within that Integration. |
targets |
List[Dictionary] |
strategy |
Enum('append', 'fold')The Strategy to use when merging fields from multiple targets. Defaults to fold. |
reCaptchaV2 |
Dictionary?Settings to include and excute a v2 recaptcha |
spamCheckJs |
Boolean?Do we want to detect and exclude spam/bot submissions? |
_meta |
MetaMeta information about the resource. |
fields |
List[Field]The result of merging together each Target's fields. |
status |
Enum('ready', 'loading', 'done', 'failed') |
failureReason |
Enum('target-error', 'processing-error')The reason why the FormLike is marked as `FAILED`, if applicable. |
| Responses | |
|---|---|
200 OK |
|
| Errors | |
|---|---|
404 Not Found |
unknown message |
Forms
/integration/v1/forms
Forms are collections of fields. They are the topmost organizational element and primarily reference one or more targets (tuples composed of an integration id and the id of a collection belonging to that integration). Based on those targets they generate and maintain a list of fields.
Request
GET /integration/v1/forms
Enumerate Forms.
| Body | |
|---|---|
| Empty | |
| Query string | |
|---|---|
limit |
Regexp?(\d+)The maximum number of items to return in the response. |
cursor |
String?A string representing where a previous request "left off". |
audience_role |
Or?[String]If this parameter is provided forms will be returned based on API visibility. 5000 (default) will return owner visible forms. 9001 will return owner and super visible forms. |
Response
| Body | |
|---|---|
_meta |
ListingMetaMeta information about the response. |
_items |
List[Form] |
| Responses | |
|---|---|
200 OK |
|
| Errors | |
|---|---|
400 Bad Request |
failed to parse JSON request |
400 Bad Request |
bad content type |
400 Bad Request |
unknown message |
400 Bad Request |
missing Content-Type header |
Request
POST /integration/v1/forms
Create a new Form or duplicate one.
| Body | |
|---|---|
| Empty | |
Response
| Body | |
|---|---|
name |
StringNote: the uniqueness of Form names is not enforced. |
targets[].integration |
StringThe unique id of an Integration. |
targets[].collection |
StringThe unique id of a collection within that Integration. |
targets |
List[Dictionary] |
strategy |
Enum('append', 'fold')The Strategy to use when merging fields from multiple targets. Defaults to fold. |
reCaptchaV2 |
Dictionary?Settings to include and excute a v2 recaptcha |
spamCheckJs |
Boolean?Do we want to detect and exclude spam/bot submissions? |
contentName |
String?The name of the asset this form belongs to. |
contentType |
String?Identifies the asset type |
contentUuid |
String?Identifies the asset this form belongs to. |
settings |
Dictionary?An arbitrary object representing the user's default settings for this Integration according its Provider's `userSettings` form. |
origin |
Enum('Leadpages', 'Center')An optional identifier of what service/entity created this Form. |
audienceRole |
Integer?A Form's intended API user audience. For example, audience_role of super implies
that the customer is excluded from the intended API audience. |
_meta |
MetaMeta information about the resource. |
zaps |
List[Zap] |
fields |
List[Field]The result of merging together each Target's fields. |
status |
Enum('ready', 'loading', 'done', 'failed') |
failureReason |
Enum('target-error', 'processing-error')The reason why the FormLike is marked as `FAILED`, if applicable. |
failureDetails |
String?Details about the failure. |
failureReferences[].failureReferences[].target.integration |
StringThe unique id of an Integration. |
failureReferences[].failureReferences[].target.collection |
StringThe unique id of a collection within that Integration. |
failureReferences[].target |
Dictionary |
failureReferences[].reason |
String |
failureReferences |
List?[Dictionary] |
| Responses | |
|---|---|
201 Created |
|
| Errors | |
|---|---|
400 Bad Request |
unknown message |
400 Bad Request |
bad content type |
400 Bad Request |
failed to parse JSON request |
400 Bad Request |
missing Content-Type header |
404 Not Found |
unknown message |
Form
/integration/v1/forms/{uuid}
Request
GET /integration/v1/forms/{uuid}
View a Form.
| Body | |
|---|---|
| Empty | |
Response
| Body | |
|---|---|
name |
StringNote: the uniqueness of Form names is not enforced. |
targets[].integration |
StringThe unique id of an Integration. |
targets[].collection |
StringThe unique id of a collection within that Integration. |
targets |
List[Dictionary] |
strategy |
Enum('append', 'fold')The Strategy to use when merging fields from multiple targets. Defaults to fold. |
reCaptchaV2 |
Dictionary?Settings to include and excute a v2 recaptcha |
spamCheckJs |
Boolean?Do we want to detect and exclude spam/bot submissions? |
contentName |
String?The name of the asset this form belongs to. |
contentType |
String?Identifies the asset type |
contentUuid |
String?Identifies the asset this form belongs to. |
settings |
Dictionary?An arbitrary object representing the user's default settings for this Integration according its Provider's `userSettings` form. |
origin |
Enum('Leadpages', 'Center')An optional identifier of what service/entity created this Form. |
audienceRole |
Integer?A Form's intended API user audience. For example, audience_role of super implies
that the customer is excluded from the intended API audience. |
_meta |
MetaMeta information about the resource. |
zaps |
List[Zap] |
fields |
List[Field]The result of merging together each Target's fields. |
status |
Enum('ready', 'loading', 'done', 'failed') |
failureReason |
Enum('target-error', 'processing-error')The reason why the FormLike is marked as `FAILED`, if applicable. |
failureDetails |
String?Details about the failure. |
failureReferences[].failureReferences[].target.integration |
StringThe unique id of an Integration. |
failureReferences[].failureReferences[].target.collection |
StringThe unique id of a collection within that Integration. |
failureReferences[].target |
Dictionary |
failureReferences[].reason |
String |
failureReferences |
List?[Dictionary] |
| Responses | |
|---|---|
200 OK |
|
| Errors | |
|---|---|
400 Bad Request |
unknown message |
400 Bad Request |
bad content type |
400 Bad Request |
missing Content-Type header |
400 Bad Request |
failed to parse JSON request |
404 Not Found |
unknown message |
Request
PATCH /integration/v1/forms/{uuid}
Force a form to update its field data.
| Body | |
|---|---|
| Empty | |
Response
| Body | |
|---|---|
name |
StringNote: the uniqueness of Form names is not enforced. |
targets[].integration |
StringThe unique id of an Integration. |
targets[].collection |
StringThe unique id of a collection within that Integration. |
targets |
List[Dictionary] |
strategy |
Enum('append', 'fold')The Strategy to use when merging fields from multiple targets. Defaults to fold. |
reCaptchaV2 |
Dictionary?Settings to include and excute a v2 recaptcha |
spamCheckJs |
Boolean?Do we want to detect and exclude spam/bot submissions? |
contentName |
String?The name of the asset this form belongs to. |
contentType |
String?Identifies the asset type |
contentUuid |
String?Identifies the asset this form belongs to. |
settings |
Dictionary?An arbitrary object representing the user's default settings for this Integration according its Provider's `userSettings` form. |
origin |
Enum('Leadpages', 'Center')An optional identifier of what service/entity created this Form. |
audienceRole |
Integer?A Form's intended API user audience. For example, audience_role of super implies
that the customer is excluded from the intended API audience. |
_meta |
MetaMeta information about the resource. |
zaps |
List[Zap] |
fields |
List[Field]The result of merging together each Target's fields. |
status |
Enum('ready', 'loading', 'done', 'failed') |
failureReason |
Enum('target-error', 'processing-error')The reason why the FormLike is marked as `FAILED`, if applicable. |
failureDetails |
String?Details about the failure. |
failureReferences[].failureReferences[].target.integration |
StringThe unique id of an Integration. |
failureReferences[].failureReferences[].target.collection |
StringThe unique id of a collection within that Integration. |
failureReferences[].target |
Dictionary |
failureReferences[].reason |
String |
failureReferences |
List?[Dictionary] |
| Responses | |
|---|---|
200 OK |
|
| Errors | |
|---|---|
400 Bad Request |
unknown message |
400 Bad Request |
bad content type |
400 Bad Request |
failed to parse JSON request |
400 Bad Request |
missing Content-Type header |
404 Not Found |
unknown message |
Request
PUT /integration/v1/forms/{uuid}
Update a Form.
Changing a form's target list will force it to update its field data.
| Body | |
|---|---|
name |
StringNote: the uniqueness of Form names is not enforced. |
targets[].integration |
StringThe unique id of an Integration. |
targets[].collection |
StringThe unique id of a collection within that Integration. |
targets |
List[Dictionary] |
strategy |
Enum('append', 'fold') |
reCaptchaV2 |
Dictionary?Settings to include and excute a v2 recaptcha |
spamCheckJs |
Boolean?Do we want to detect and exclude spam/bot submissions? |
contentName |
String?The name of the asset this form belongs to. |
contentType |
String?Identifies the asset type |
contentUuid |
String?Identifies the asset this form belongs to. |
settings |
Dictionary?An arbitrary object representing the user's default settings for this Integration according its Provider's `userSettings` form. |
origin |
Enum('Leadpages', 'Center')An optional identifier of what service/entity created this Form. |
audienceRole |
Integer?A Form's intended API user audience. For example, audience_role of super implies
that the customer is excluded from the intended API audience. |
Response
| Body | |
|---|---|
name |
StringNote: the uniqueness of Form names is not enforced. |
targets[].integration |
StringThe unique id of an Integration. |
targets[].collection |
StringThe unique id of a collection within that Integration. |
targets |
List[Dictionary] |
strategy |
Enum('append', 'fold')The Strategy to use when merging fields from multiple targets. Defaults to fold. |
reCaptchaV2 |
Dictionary?Settings to include and excute a v2 recaptcha |
spamCheckJs |
Boolean?Do we want to detect and exclude spam/bot submissions? |
contentName |
String?The name of the asset this form belongs to. |
contentType |
String?Identifies the asset type |
contentUuid |
String?Identifies the asset this form belongs to. |
settings |
Dictionary?An arbitrary object representing the user's default settings for this Integration according its Provider's `userSettings` form. |
origin |
Enum('Leadpages', 'Center')An optional identifier of what service/entity created this Form. |
audienceRole |
Integer?A Form's intended API user audience. For example, audience_role of super implies
that the customer is excluded from the intended API audience. |
_meta |
MetaMeta information about the resource. |
zaps |
List[Zap] |
fields |
List[Field]The result of merging together each Target's fields. |
status |
Enum('ready', 'loading', 'done', 'failed') |
failureReason |
Enum('target-error', 'processing-error')The reason why the FormLike is marked as `FAILED`, if applicable. |
failureDetails |
String?Details about the failure. |
failureReferences[].failureReferences[].target.integration |
StringThe unique id of an Integration. |
failureReferences[].failureReferences[].target.collection |
StringThe unique id of a collection within that Integration. |
failureReferences[].target |
Dictionary |
failureReferences[].reason |
String |
failureReferences |
List?[Dictionary] |
| Responses | |
|---|---|
200 OK |
|
| Errors | |
|---|---|
400 Bad Request |
unknown message |
400 Bad Request |
bad content type |
400 Bad Request |
failed to parse JSON request |
400 Bad Request |
missing Content-Type header |
404 Not Found |
unknown message |
Request
DELETE /integration/v1/forms/{uuid}
Delete a Form.
| Body | |
|---|---|
| Empty | |
Response
| Body | |
|---|---|
| Empty | |
| Responses | |
|---|---|
200 OK |
|
| Errors | |
|---|---|
400 Bad Request |
unknown message |
400 Bad Request |
bad content type |
400 Bad Request |
failed to parse JSON request |
400 Bad Request |
missing Content-Type header |
404 Not Found |
unknown message |
Submissions
/integration/v1/forms/{uuid}/submissions
Request
GET /integration/v1/forms/{uuid}/submissions
Enumerate all of a Form's Submissions.
| Body | |
|---|---|
| Empty | |
| Query string | |
|---|---|
limit |
Regexp?(\d+)The maximum number of items to return in the response. |
cursor |
String?A string representing where a previous request "left off". |
Response
| Body | |
|---|---|
_meta |
ListingMetaMeta information about the response. |
_items |
List[Submission] |
| Responses | |
|---|---|
200 OK |
|
| Errors | |
|---|---|
| Empty | |
Request
POST /integration/v1/forms/{uuid}/submissions
Submit data to a Form.
Data must be urlencoded and that request must have a valid Content-Type header whose value is "application/x-www-form-urlencoded".
| Body | |
|---|---|
| Empty | |
| Query string | |
|---|---|
next |
URI?A URI representing where the submitting user should be redirected to (the "thank you page"). If this is omitted, the user is taken to 'https://my.leadpages.net/thank-you/'. |
skip_redirect |
Enum('true')If this is set, the endpoint won't attempt a redirect to the thank you page on successful submission. Instead, it will simply return an empty 202 response. |
Response
| Body | |
|---|---|
| Empty | |
| Responses | |
|---|---|
202 Accepted |
|
302 Found |
|
| Errors | |
|---|---|
404 Not Found |
form '{}' not found |
Backups
/integration/v1/forms/{uuid}/backups
Request
POST /integration/v1/forms/{uuid}/backups
Generate a backup of all submissions to
this form. The request must have an Accept header whose
value is text/csv.
| Body | |
|---|---|
| Empty | |
Response
| Body | |
|---|---|
_meta |
MetaMeta information about the resource. |
status |
Enum('ready', 'loading', 'done', 'failed') |
backupUri |
URI?The URI hosting the completed form backup. |
| Responses | |
|---|---|
200 OK |
|
| Errors | |
|---|---|
400 Bad Request |
unsupported content type; must be 'text/csv' |
404 Not Found |
form '{}' not found |
Contacts
/integration/v1/forms/{uuid}/contacts
Request
GET /integration/v1/forms/{uuid}/contacts
| Body | |
|---|---|
| Empty | |
| Query string | |
|---|---|
limit |
Regexp?(\d+)The maximum number of items to return in the response. |
cursor |
String?A string representing where a previous request "left off". |
Response
| Body | |
|---|---|
_meta |
ListingMetaMeta information about the response. |
_items |
List[Contact] |
| Responses | |
|---|---|
200 OK |
|
| Errors | |
|---|---|
| Empty | |
Matchsubmissions
/integration/v1/forms/{uuid}/match-submissions
Request
POST /integration/v1/forms/{uuid}/match-submissions
Submit event match data to a form. Upon request, the match data will be converted to a standard submission.
| Body | |
|---|---|
fields |
List[MatchField] |
Response
| Body | |
|---|---|
| Empty | |
| Responses | |
|---|---|
202 Accepted |
|
| Errors | |
|---|---|
400 Bad Request |
bad content type |
400 Bad Request |
failed to parse JSON request |
400 Bad Request |
missing Content-Type header |
Formbackups
/integration/v1/backups
Formbackup
/integration/v1/backups/{uuid}
Request
GET /integration/v1/backups/{uuid}
Fetch a Form's submissions backup
| Body | |
|---|---|
| Empty | |
Response
| Body | |
|---|---|
_meta |
MetaMeta information about the resource. |
status |
Enum('ready', 'loading', 'done', 'failed') |
backupUri |
URI?The URI hosting the completed form backup. |
| Responses | |
|---|---|
200 OK |
|
| Errors | |
|---|---|
404 Not Found |
unknown message |
Submissions
/integration/v1/submissions
Submissions are filled-out forms and contain all of the submitted data for a given form. A submission generally represents a single visitor to a user's website filling out a form.
Request
GET /integration/v1/submissions
Enumerate Submissions.
| Body | |
|---|---|
| Empty | |
| Query string | |
|---|---|
limit |
Regexp?(\d+)The maximum number of items to return in the response. |
cursor |
String?A string representing where a previous request "left off". |
Response
| Body | |
|---|---|
_meta |
ListingMetaMeta information about the response. |
_items |
List[Submission] |
| Responses | |
|---|---|
200 OK |
|
| Errors | |
|---|---|
| Empty | |
Submission
/integration/v1/submissions/{uuid}
Request
GET /integration/v1/submissions/{uuid}
View a Submission.
Response
| Body | |
|---|---|
_meta |
MetaMeta information about the resource. |
contentName |
String?An optional string identifying the asset name the submission belongs to. |
contentType |
String?An optional string identifying the asset type the submission belongs to. |
contentUuid |
String?An optional string identifying the asset that the submission belongs to. |
form |
StringThe id of the Form this Submission belongs to. |
raw |
DictionaryA dictionary representing raw submission data. |
referrer |
String?The request referrer. |
uri |
StringThe request URI under which this Submission was made. |
userAgent |
StringThe User Agent of the user who made the Submission. |
isBot |
BooleanDo we think this Submission was by a bot? |
| Responses | |
|---|---|
200 OK |
|
| Errors | |
|---|---|
404 Not Found |
unknown message |
Transactions
/integration/v1/transactions
Transactions represent the processing of a Submission to an Integration. They represent the state of that submission with respect to the agent processing the submission.
A transaction object must contain the form data, mapping information for that form data from its canonical form to the provider-specific representation, credentials for the relevant user, and any other information required by the agent to complete the submission task.
Request
GET /integration/v1/transactions
Enumerate Transactions.
| Body | |
|---|---|
| Empty | |
| Query string | |
|---|---|
limit |
Regexp?(\d+)The maximum number of items to return in the response. |
cursor |
String?A string representing where a previous request "left off". |
Response
| Body | |
|---|---|
_meta |
ListingMetaMeta information about the response. |
_items |
List[Transaction] |
| Responses | |
|---|---|
200 OK |
|
| Errors | |
|---|---|
| Empty | |
Transaction
/integration/v1/transactions/{uuid}
Request
GET /integration/v1/transactions/{uuid}
View a Transaction.
Response
| Body | |
|---|---|
_meta |
MetaMeta information about the resource. |
status |
String |
statusReason |
String?A reason for the current status of this Transaction. |
target.integration |
StringThe unique id of an Integration. |
target.collection |
StringThe unique id of a collection within that Integration. |
target |
Dictionary |
provider |
String?The Provider id this Transaction references. |
submission |
StringThe unique id of the Submission this Transaction references. |
settings |
Dictionary?The user-specified set of settings for this Transaction. |
startedAt |
DateTime?When the Transaction started. |
succeededAt |
DateTime?When the Transaction succeeded. |
failedAt |
DateTime?When the Transaction failed. |
events |
List[TransactionEventDetails]A list of the events this transaction has received in descending order. |
| Responses | |
|---|---|
200 OK |
|
| Errors | |
|---|---|
404 Not Found |
transaction '{}' not found |
Hook
/integration/v1/transactions/{uuid}/hook
Agents use this endpoint to send information about a Transaction back to Hydra.
Request
POST /integration/v1/transactions/{uuid}/hook
| Body | |
|---|---|
kind |
Enum('_BaseFailureEvent', 'OptinSuccessEvent', 'OptinFailureEvent', 'ActionSuccessEvent', 'ActionFailureEvent', 'ProtocolViolationEvent', 'NetworkFailureEvent', 'ServiceFailureEvent', 'IntegrationFailureEvent', 'AuthorizationFailureEvent')The event's specific type, such as `OptinSuccessEvent`. |
event |
Or[_BaseFailureEvent, OptinSuccessEvent, OptinFailureEvent, ActionSuccessEvent, ActionFailureEvent, ProtocolViolationEvent, NetworkFailureEvent, ServiceFailureEvent, IntegrationFailureEvent, AuthorizationFailureEvent]The event's specific schema. |
Response
| Body | |
|---|---|
| Empty | |
| Responses | |
|---|---|
202 Accepted |
|
| Errors | |
|---|---|
400 Bad Request |
unknown message |
404 Not Found |
transaction '{}' not found |
Csvs
/integration/v1/csvs
Request
POST /integration/v1/csvs
| Body | |
|---|---|
contentUuid |
StringThe id of the asset to group submissions by. |
Response
| Body | |
|---|---|
_meta |
MetaMeta information about the resource. |
contentUuid |
StringThe id of the asset to group submissions by. |
uri |
String? |
status |
Enum('ready', 'loading', 'failed', 'done') |
failureReason |
String?In the case of a failed CSV this contains the reason why it failed. |
| Responses | |
|---|---|
201 Created |
|
| Errors | |
|---|---|
400 Bad Request |
unknown message |
Csv
/integration/v1/csvs/{uuid}
Request
GET /integration/v1/csvs/{uuid}
| Body | |
|---|---|
| Empty | |
Response
| Body | |
|---|---|
_meta |
MetaMeta information about the resource. |
contentUuid |
StringThe id of the asset to group submissions by. |
uri |
String? |
status |
Enum('ready', 'loading', 'failed', 'done') |
failureReason |
String?In the case of a failed CSV this contains the reason why it failed. |
| Responses | |
|---|---|
200 OK |
|
| Errors | |
|---|---|
404 Not Found |
CSV {!r} not found |
Contacts
/integration/v1/contacts
Request
GET /integration/v1/contacts
| Body | |
|---|---|
| Empty | |
| Query string | |
|---|---|
limit |
Regexp?(\d+)The maximum number of items to return in the response. |
cursor |
String?A string representing where a previous request "left off". |
Response
| Body | |
|---|---|
_meta |
ListingMetaMeta information about the response. |
_items |
List[Contact] |
| Responses | |
|---|---|
200 OK |
|
| Errors | |
|---|---|
| Empty | |
Contact
/integration/v1/contacts/{uuid}
Request
GET /integration/v1/contacts/{uuid}
| Body | |
|---|---|
| Empty | |
Response
| Body | |
|---|---|
_meta |
MetaMeta information about the resource. |
fields |
Dictionary |
customFields |
Dictionary |
| Responses | |
|---|---|
200 OK |
|
| Errors | |
|---|---|
404 Not Found |
Contact not found. |
Definitions
IdentityUserProvider
| IdentityUserProvider | |
|---|---|
name |
StringThe unique name of the Provider (for example: `Mailchimp`). |
category |
Enum('Forms', 'CustomerRelationshipManagement', 'SupportDesk', 'ECommerce', 'EmailServices', 'WebinarServices', 'PaymentServices', 'MediaServices', 'Ave81Services', 'Uncategorized')The category this Provider belongs to. |
capabilities |
List[String]A list representing the capabilities this Provider has. |
capacities |
List?[String]The capacities the agent can act in. |
features |
List?[String]A list representing any unusual features that this Provider may have. |
supportedActions |
List?[String]A list representing the types of Actions this Provider supports. |
userSettings |
List[Field]A list representing the form fields that make up the configuration that a user can specify when configuring an Integration or a Form. |
providerSettings |
List?[ProviderSetting]A list representing the form fields that make up the configuration that an agent can impose on Hydra when configuring the provider. |
readEvents |
List?[ReadEventDefinition]A list representing the types of events this provider can export from the integration. This is null for write-only agents. |
readModes |
List?[String]The supported read modes (streaming, polling) for the agent. |
unscopedEvents |
Boolean?A boolean representing whether or not events read from this provider are "unscoped;" that is, they are not assigned to a specific integration and are global to the user's account. |
baseUri |
URI?The base URI of this Provider's agent. |
credentialsKind |
Enum('IdentityUser', 'Key', 'Keys', 'OAuth', 'OAuth2') |
allowedGroups |
List?[String]A list of strings representing the Identity groups that are allowed to access this Provider. |
Field
| Field | |
|---|---|
kind |
Enum('TextField', 'CheckBoxField', 'ChoiceField', 'SelectField', 'MultiSelectField', 'RadioField', 'ReadOnlyField', 'HiddenField', 'SystemHiddenField', 'HiddenMultiSelectField', 'NumberField', 'IntegerField', 'PaymentAmountField', 'RefundAmountField', 'CouponAmountField', 'CurrencyField', 'StrictCurrencyField', 'PercentageField', 'TextAreaField', 'CommentField', 'DayField', 'DateField', 'DateTimeField', 'TimezoneOffsetField', 'URIField', 'PathField', 'UserAgentField', 'IPAddressField', 'IPv4AddressField', 'IPv6AddressField', 'PasswordField', 'EmailField', 'SalutationField', 'FullNameField', 'FirstNameField', 'MiddleNameField', 'LastNameField', 'AgeField', 'BirthdayField', 'BirthdateField', 'PhoneNumberField', 'HomePhoneNumberField', 'WorkPhoneNumberField', 'MobilePhoneNumberField', 'FaxNumberField', 'HomeFaxNumberField', 'WorkFaxNumberField', 'CompanyField', 'JobTitleField', 'IndustryField', 'NumberOfEmployeesField', 'AnnualRevenueField', 'WebsiteField', 'TagField', 'MultiTagField', 'HiddenMultiTagField', 'PostalCodeField', 'AddressStreetField', 'AddressCityField', 'AddressStateField', 'AddressStrictStateField', 'AddressPostalCodeField', 'AddressCountryField', 'AddressStrictCountryField', 'BillingAddressStreetField', 'BillingAddressCityField', 'BillingAddressStateField', 'BillingAddressStrictStateField', 'BillingAddressPostalCodeField', 'BillingAddressCountryField', 'BillingAddressStrictCountryField', 'ShippingAddressStreetField', 'ShippingAddressCityField', 'ShippingAddressStateField', 'ShippingAddressStrictStateField', 'ShippingAddressPostalCodeField', 'ShippingAddressCountryField', 'ShippingAddressStrictCountryField', 'UserHandleField', 'TwitterUserHandleField', 'FacebookUserHandleField', 'LinkedInUserHandleField', 'GooglePlusUserHandleField', 'GeographicLatitudeField', 'GeographicLongitudeField', 'GeographicElevationField', 'ViewportWidthField', 'ViewportHeightField', 'LocaleField', 'StrictLocaleField', 'RatingField', 'LeadScoreField', 'LifetimeValueField', 'DurationMinutesField', 'CenterViewerUUIDField')The field's exact type. |
field |
Or[TextField, CheckBoxField, ChoiceField, SelectField, MultiSelectField, RadioField, ReadOnlyField, HiddenField, SystemHiddenField, HiddenMultiSelectField, NumberField, IntegerField, PaymentAmountField, RefundAmountField, CouponAmountField, CurrencyField, StrictCurrencyField, PercentageField, TextAreaField, CommentField, DayField, DateField, DateTimeField, TimezoneOffsetField, URIField, PathField, UserAgentField, IPAddressField, IPv4AddressField, IPv6AddressField, PasswordField, EmailField, SalutationField, FullNameField, FirstNameField, MiddleNameField, LastNameField, AgeField, BirthdayField, BirthdateField, PhoneNumberField, HomePhoneNumberField, WorkPhoneNumberField, MobilePhoneNumberField, FaxNumberField, HomeFaxNumberField, WorkFaxNumberField, CompanyField, JobTitleField, IndustryField, NumberOfEmployeesField, AnnualRevenueField, WebsiteField, TagField, MultiTagField, HiddenMultiTagField, PostalCodeField, AddressStreetField, AddressCityField, AddressStateField, AddressStrictStateField, AddressPostalCodeField, AddressCountryField, AddressStrictCountryField, BillingAddressStreetField, BillingAddressCityField, BillingAddressStateField, BillingAddressStrictStateField, BillingAddressPostalCodeField, BillingAddressCountryField, BillingAddressStrictCountryField, ShippingAddressStreetField, ShippingAddressCityField, ShippingAddressStateField, ShippingAddressStrictStateField, ShippingAddressPostalCodeField, ShippingAddressCountryField, ShippingAddressStrictCountryField, UserHandleField, TwitterUserHandleField, FacebookUserHandleField, LinkedInUserHandleField, GooglePlusUserHandleField, GeographicLatitudeField, GeographicLongitudeField, GeographicElevationField, ViewportWidthField, ViewportHeightField, LocaleField, StrictLocaleField, RatingField, LeadScoreField, LifetimeValueField, DurationMinutesField, CenterViewerUUIDField]The structure of this must match the type described by kind. |
TextField
| TextField | |
|---|---|
name |
StringThe field's name, this maps to an HTML name attribute. |
label |
StringThe field's label/caption, this maps to an HTML label element. |
description |
String?The field's description, this maps to the HTML description attribute. |
placeholder |
String?A placeholder that is displayed when the field has no value. |
required |
BooleanRepresents whether or not this field is required. |
autoComplete |
String?The autocomplete merge field name |
value |
String?The field's default value. |
CheckBoxField
| CheckBoxField | |
|---|---|
name |
StringThe field's name, this maps to an HTML name attribute. |
label |
StringThe field's label/caption, this maps to an HTML label element. |
description |
String?The field's description, this maps to the HTML description attribute. |
placeholder |
String?A placeholder that is displayed when the field has no value. |
required |
BooleanRepresents whether or not this field is required. |
autoComplete |
String?The autocomplete merge field name |
value |
StringA value that will get sent through when checked is True. |
checked |
BooleanRepresents whether or not the value should be inspected. |
ChoiceField
| ChoiceField | |
|---|---|
name |
StringThe field's name, this maps to an HTML name attribute. |
label |
StringThe field's label/caption, this maps to an HTML label element. |
description |
String?The field's description, this maps to the HTML description attribute. |
placeholder |
String?A placeholder that is displayed when the field has no value. |
required |
BooleanRepresents whether or not this field is required. |
autoComplete |
String?The autocomplete merge field name |
value |
String?Represents the default choice (by its value). |
values[].value |
String |
values[].label |
String |
values |
List?[Dictionary]This represents the possible choices for this field's value. |
SelectField
| SelectField | |
|---|---|
name |
StringThe field's name, this maps to an HTML name attribute. |
label |
StringThe field's label/caption, this maps to an HTML label element. |
description |
String?The field's description, this maps to the HTML description attribute. |
placeholder |
String?A placeholder that is displayed when the field has no value. |
required |
BooleanRepresents whether or not this field is required. |
autoComplete |
String?The autocomplete merge field name |
value |
String?Represents the default choice (by its value). |
values[].value |
String |
values[].label |
String |
values |
List?[Dictionary]This represents the possible choices for this field's value. |
MultiSelectField
| MultiSelectField | |
|---|---|
name |
StringThe field's name, this maps to an HTML name attribute. |
label |
StringThe field's label/caption, this maps to an HTML label element. |
description |
String?The field's description, this maps to the HTML description attribute. |
placeholder |
String?A placeholder that is displayed when the field has no value. |
required |
BooleanRepresents whether or not this field is required. |
autoComplete |
String?The autocomplete merge field name |
value |
List?[String]This represents the default selected possible value(s) for this field's value. |
values[].value |
String |
values[].label |
String |
values |
List?[Dictionary]This represents the possible values this field can have (any number of). |
RadioField
| RadioField | |
|---|---|
name |
StringThe field's name, this maps to an HTML name attribute. |
label |
StringThe field's label/caption, this maps to an HTML label element. |
description |
String?The field's description, this maps to the HTML description attribute. |
placeholder |
String?A placeholder that is displayed when the field has no value. |
required |
BooleanRepresents whether or not this field is required. |
autoComplete |
String?The autocomplete merge field name |
value |
String?Represents the default choice (by its value). |
values[].value |
String |
values[].label |
String |
values |
List?[Dictionary]This represents the possible choices for this field's value. |
ReadOnlyField
| ReadOnlyField | |
|---|---|
name |
StringThe field's name, this maps to an HTML name attribute. |
label |
StringThe field's label/caption, this maps to an HTML label element. |
description |
String?The field's description, this maps to the HTML description attribute. |
placeholder |
String?A placeholder that is displayed when the field has no value. |
required |
BooleanRepresents whether or not this field is required. |
autoComplete |
String?The autocomplete merge field name |
value |
StringThe field's value. |
HiddenField
| HiddenField | |
|---|---|
name |
StringThe field's name, this maps to an HTML name attribute. |
label |
StringThe field's label/caption, this maps to an HTML label element. |
description |
String?The field's description, this maps to the HTML description attribute. |
placeholder |
String?A placeholder that is displayed when the field has no value. |
required |
BooleanRepresents whether or not this field is required. |
autoComplete |
String?The autocomplete merge field name |
value |
String?The field's default value. |
SystemHiddenField
| SystemHiddenField | |
|---|---|
name |
StringThe field's name, this maps to an HTML name attribute. |
label |
StringThe field's label/caption, this maps to an HTML label element. |
description |
String?The field's description, this maps to the HTML description attribute. |
placeholder |
String?A placeholder that is displayed when the field has no value. |
required |
BooleanRepresents whether or not this field is required. |
autoComplete |
String?The autocomplete merge field name |
value |
String?The field's default value. |
HiddenMultiSelectField
| HiddenMultiSelectField | |
|---|---|
name |
StringThe field's name, this maps to an HTML name attribute. |
label |
StringThe field's label/caption, this maps to an HTML label element. |
description |
String?The field's description, this maps to the HTML description attribute. |
placeholder |
String?A placeholder that is displayed when the field has no value. |
required |
BooleanRepresents whether or not this field is required. |
autoComplete |
String?The autocomplete merge field name |
value |
List?[String]This represents the default selected possible value(s) for this field's value. |
values[].value |
String |
values[].label |
String |
values |
List?[Dictionary]This represents the possible values this field can have (any number of). |
NumberField
| NumberField | |
|---|---|
name |
StringThe field's name, this maps to an HTML name attribute. |
label |
StringThe field's label/caption, this maps to an HTML label element. |
description |
String?The field's description, this maps to the HTML description attribute. |
placeholder |
String?A placeholder that is displayed when the field has no value. |
required |
BooleanRepresents whether or not this field is required. |
autoComplete |
String?The autocomplete merge field name |
value |
Number?A number representing this field's value. |
minValue |
Number?The minimum numeric value that this field can contain. |
maxValue |
Number?The maximum numeric value that this field can contain. |
step |
Number?Specifies the legal number intervals for this field. |
IntegerField
| IntegerField | |
|---|---|
name |
StringThe field's name, this maps to an HTML name attribute. |
label |
StringThe field's label/caption, this maps to an HTML label element. |
description |
String?The field's description, this maps to the HTML description attribute. |
placeholder |
String?A placeholder that is displayed when the field has no value. |
required |
BooleanRepresents whether or not this field is required. |
autoComplete |
String?The autocomplete merge field name |
value |
Integer?A integer representing this field's value. |
minValue |
Integer?The minimum numeric value that this field can contain. |
maxValue |
Integer?The maximum numeric value that this field can contain. |
step |
Integer?Specifies the legal integer intervals for this field. |
PaymentAmountField
| PaymentAmountField | |
|---|---|
name |
StringThe field's name, this maps to an HTML name attribute. |
label |
StringThe field's label/caption, this maps to an HTML label element. |
description |
String?The field's description, this maps to the HTML description attribute. |
placeholder |
String?A placeholder that is displayed when the field has no value. |
required |
BooleanRepresents whether or not this field is required. |
autoComplete |
String?The autocomplete merge field name |
value |
Integer?A integer representing this field's value. |
minValue |
Integer?The minimum numeric value that this field can contain. |
maxValue |
Integer?The maximum numeric value that this field can contain. |
step |
Integer?Specifies the legal integer intervals for this field. |
RefundAmountField
| RefundAmountField | |
|---|---|
name |
StringThe field's name, this maps to an HTML name attribute. |
label |
StringThe field's label/caption, this maps to an HTML label element. |
description |
String?The field's description, this maps to the HTML description attribute. |
placeholder |
String?A placeholder that is displayed when the field has no value. |
required |
BooleanRepresents whether or not this field is required. |
autoComplete |
String?The autocomplete merge field name |
value |
Integer?A integer representing this field's value. |
minValue |
Integer?The minimum numeric value that this field can contain. |
maxValue |
Integer?The maximum numeric value that this field can contain. |
step |
Integer?Specifies the legal integer intervals for this field. |
CouponAmountField
| CouponAmountField | |
|---|---|
name |
StringThe field's name, this maps to an HTML name attribute. |
label |
StringThe field's label/caption, this maps to an HTML label element. |
description |
String?The field's description, this maps to the HTML description attribute. |
placeholder |
String?A placeholder that is displayed when the field has no value. |
required |
BooleanRepresents whether or not this field is required. |
autoComplete |
String?The autocomplete merge field name |
value |
Integer?A integer representing this field's value. |
minValue |
Integer?The minimum numeric value that this field can contain. |
maxValue |
Integer?The maximum numeric value that this field can contain. |
step |
Integer?Specifies the legal integer intervals for this field. |
CurrencyField
| CurrencyField | |
|---|---|
name |
StringThe field's name, this maps to an HTML name attribute. |
label |
StringThe field's label/caption, this maps to an HTML label element. |
description |
String?The field's description, this maps to the HTML description attribute. |
placeholder |
String?A placeholder that is displayed when the field has no value. |
required |
BooleanRepresents whether or not this field is required. |
autoComplete |
String?The autocomplete merge field name |
value |
String?The field's default value. |
StrictCurrencyField
| StrictCurrencyField | |
|---|---|
name |
StringThe field's name, this maps to an HTML name attribute. |
label |
StringThe field's label/caption, this maps to an HTML label element. |
description |
String?The field's description, this maps to the HTML description attribute. |
placeholder |
String?A placeholder that is displayed when the field has no value. |
required |
BooleanRepresents whether or not this field is required. |
autoComplete |
String?The autocomplete merge field name |
value |
String?Represents the default choice (by its value). |
values[].value |
String |
values[].label |
String |
values |
List?[Dictionary]This represents the possible choices for this field's value. |
PercentageField
| PercentageField | |
|---|---|
name |
StringThe field's name, this maps to an HTML name attribute. |
label |
StringThe field's label/caption, this maps to an HTML label element. |
description |
String?The field's description, this maps to the HTML description attribute. |
placeholder |
String?A placeholder that is displayed when the field has no value. |
required |
BooleanRepresents whether or not this field is required. |
autoComplete |
String?The autocomplete merge field name |
value |
Number?(0 < n < 1)A number representing a percentage. |
minValue |
Number?The minimum numeric value that this field can contain. |
maxValue |
Number?The maximum numeric value that this field can contain. |
step |
Number?Specifies the legal number intervals for this field. |
TextAreaField
| TextAreaField | |
|---|---|
name |
StringThe field's name, this maps to an HTML name attribute. |
label |
StringThe field's label/caption, this maps to an HTML label element. |
description |
String?The field's description, this maps to the HTML description attribute. |
placeholder |
String?A placeholder that is displayed when the field has no value. |
required |
BooleanRepresents whether or not this field is required. |
autoComplete |
String?The autocomplete merge field name |
value |
String?The field's default value. |
CommentField
| CommentField | |
|---|---|
name |
StringThe field's name, this maps to an HTML name attribute. |
label |
StringThe field's label/caption, this maps to an HTML label element. |
description |
String?The field's description, this maps to the HTML description attribute. |
placeholder |
String?A placeholder that is displayed when the field has no value. |
required |
BooleanRepresents whether or not this field is required. |
autoComplete |
String?The autocomplete merge field name |
value |
String?The field's default value. |
DayField
| DayField | |
|---|---|
name |
StringThe field's name, this maps to an HTML name attribute. |
label |
StringThe field's label/caption, this maps to an HTML label element. |
description |
String?The field's description, this maps to the HTML description attribute. |
placeholder |
String?A placeholder that is displayed when the field has no value. |
required |
BooleanRepresents whether or not this field is required. |
autoComplete |
String?The autocomplete merge field name |
value |
Regexp?(\d{2}-\d{2}$)Day field values are in MM-DD format. |
DateField
| DateField | |
|---|---|
name |
StringThe field's name, this maps to an HTML name attribute. |
label |
StringThe field's label/caption, this maps to an HTML label element. |
description |
String?The field's description, this maps to the HTML description attribute. |
placeholder |
String?A placeholder that is displayed when the field has no value. |
required |
BooleanRepresents whether or not this field is required. |
autoComplete |
String?The autocomplete merge field name |
value |
Regexp?(\d{4}-\d{2}-\d{2}$)Date field values are in YYYY-MM-DD format. |
DateTimeField
| DateTimeField | |
|---|---|
name |
StringThe field's name, this maps to an HTML name attribute. |
label |
StringThe field's label/caption, this maps to an HTML label element. |
description |
String?The field's description, this maps to the HTML description attribute. |
placeholder |
String?A placeholder that is displayed when the field has no value. |
required |
BooleanRepresents whether or not this field is required. |
autoComplete |
String?The autocomplete merge field name |
value |
Regexp?(\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(Z|(\+|-)\d{2}(:?\d{2})?)$)Date time field values are in YYYY-MM-DDTHH:mm:SS+HH:mm format. |
TimezoneOffsetField
| TimezoneOffsetField | |
|---|---|
name |
StringThe field's name, this maps to an HTML name attribute. |
label |
StringThe field's label/caption, this maps to an HTML label element. |
description |
String?The field's description, this maps to the HTML description attribute. |
placeholder |
String?A placeholder that is displayed when the field has no value. |
required |
BooleanRepresents whether or not this field is required. |
autoComplete |
String?The autocomplete merge field name |
value |
Regexp?((Z|(\+|-)\d{2}(:?\d{2})?))Timezone offset values are in ±hh:mm, ±hhmm, or ±hh format, or Z. |
URIField
| URIField | |
|---|---|
name |
StringThe field's name, this maps to an HTML name attribute. |
label |
StringThe field's label/caption, this maps to an HTML label element. |
description |
String?The field's description, this maps to the HTML description attribute. |
placeholder |
String?A placeholder that is displayed when the field has no value. |
required |
BooleanRepresents whether or not this field is required. |
autoComplete |
String?The autocomplete merge field name |
value |
String?The field's default value. |
PathField
| PathField | |
|---|---|
name |
StringThe field's name, this maps to an HTML name attribute. |
label |
StringThe field's label/caption, this maps to an HTML label element. |
description |
String?The field's description, this maps to the HTML description attribute. |
placeholder |
String?A placeholder that is displayed when the field has no value. |
required |
BooleanRepresents whether or not this field is required. |
autoComplete |
String?The autocomplete merge field name |
value |
String?The field's default value. |
UserAgentField
| UserAgentField | |
|---|---|
name |
StringThe field's name, this maps to an HTML name attribute. |
label |
StringThe field's label/caption, this maps to an HTML label element. |
description |
String?The field's description, this maps to the HTML description attribute. |
placeholder |
String?A placeholder that is displayed when the field has no value. |
required |
BooleanRepresents whether or not this field is required. |
autoComplete |
String?The autocomplete merge field name |
value |
String?The field's default value. |
IPAddressField
| IPAddressField | |
|---|---|
name |
StringThe field's name, this maps to an HTML name attribute. |
label |
StringThe field's label/caption, this maps to an HTML label element. |
description |
String?The field's description, this maps to the HTML description attribute. |
placeholder |
String?A placeholder that is displayed when the field has no value. |
required |
BooleanRepresents whether or not this field is required. |
autoComplete |
String?The autocomplete merge field name |
value |
Or[IPv4, IPv6] |
IPv4AddressField
| IPv4AddressField | |
|---|---|
name |
StringThe field's name, this maps to an HTML name attribute. |
label |
StringThe field's label/caption, this maps to an HTML label element. |
description |
String?The field's description, this maps to the HTML description attribute. |
placeholder |
String?A placeholder that is displayed when the field has no value. |
required |
BooleanRepresents whether or not this field is required. |
autoComplete |
String?The autocomplete merge field name |
value |
String?The field's default value. |
IPv6AddressField
| IPv6AddressField | |
|---|---|
name |
StringThe field's name, this maps to an HTML name attribute. |
label |
StringThe field's label/caption, this maps to an HTML label element. |
description |
String?The field's description, this maps to the HTML description attribute. |
placeholder |
String?A placeholder that is displayed when the field has no value. |
required |
BooleanRepresents whether or not this field is required. |
autoComplete |
String?The autocomplete merge field name |
value |
String?The field's default value. |
PasswordField
| PasswordField | |
|---|---|
name |
StringThe field's name, this maps to an HTML name attribute. |
label |
StringThe field's label/caption, this maps to an HTML label element. |
description |
String?The field's description, this maps to the HTML description attribute. |
placeholder |
String?A placeholder that is displayed when the field has no value. |
required |
BooleanRepresents whether or not this field is required. |
autoComplete |
String?The autocomplete merge field name |
value |
String?The field's default value. |
EmailField
| EmailField | |
|---|---|
name |
StringThe field's name, this maps to an HTML name attribute. |
label |
StringThe field's label/caption, this maps to an HTML label element. |
description |
String?The field's description, this maps to the HTML description attribute. |
placeholder |
String?A placeholder that is displayed when the field has no value. |
required |
BooleanRepresents whether or not this field is required. |
autoComplete |
String?The autocomplete merge field name |
value |
Regexp?(.+@.+$)E-mail fields must contain an @ sign. |
SalutationField
| SalutationField | |
|---|---|
name |
StringThe field's name, this maps to an HTML name attribute. |
label |
StringThe field's label/caption, this maps to an HTML label element. |
description |
String?The field's description, this maps to the HTML description attribute. |
placeholder |
String?A placeholder that is displayed when the field has no value. |
required |
BooleanRepresents whether or not this field is required. |
autoComplete |
String?The autocomplete merge field name |
value |
String?Represents the default choice (by its value). |
values[].value |
String |
values[].label |
String |
values |
List?[Dictionary]This represents the possible choices for this field's value. |
FullNameField
| FullNameField | |
|---|---|
name |
StringThe field's name, this maps to an HTML name attribute. |
label |
StringThe field's label/caption, this maps to an HTML label element. |
description |
String?The field's description, this maps to the HTML description attribute. |
placeholder |
String?A placeholder that is displayed when the field has no value. |
required |
BooleanRepresents whether or not this field is required. |
autoComplete |
String?The autocomplete merge field name |
value |
String?The field's default value. |
FirstNameField
| FirstNameField | |
|---|---|
name |
StringThe field's name, this maps to an HTML name attribute. |
label |
StringThe field's label/caption, this maps to an HTML label element. |
description |
String?The field's description, this maps to the HTML description attribute. |
placeholder |
String?A placeholder that is displayed when the field has no value. |
required |
BooleanRepresents whether or not this field is required. |
autoComplete |
String?The autocomplete merge field name |
value |
String?The field's default value. |
MiddleNameField
| MiddleNameField | |
|---|---|
name |
StringThe field's name, this maps to an HTML name attribute. |
label |
StringThe field's label/caption, this maps to an HTML label element. |
description |
String?The field's description, this maps to the HTML description attribute. |
placeholder |
String?A placeholder that is displayed when the field has no value. |
required |
BooleanRepresents whether or not this field is required. |
autoComplete |
String?The autocomplete merge field name |
value |
String?The field's default value. |
LastNameField
| LastNameField | |
|---|---|
name |
StringThe field's name, this maps to an HTML name attribute. |
label |
StringThe field's label/caption, this maps to an HTML label element. |
description |
String?The field's description, this maps to the HTML description attribute. |
placeholder |
String?A placeholder that is displayed when the field has no value. |
required |
BooleanRepresents whether or not this field is required. |
autoComplete |
String?The autocomplete merge field name |
value |
String?The field's default value. |
AgeField
| AgeField | |
|---|---|
name |
StringThe field's name, this maps to an HTML name attribute. |
label |
StringThe field's label/caption, this maps to an HTML label element. |
description |
String?The field's description, this maps to the HTML description attribute. |
placeholder |
String?A placeholder that is displayed when the field has no value. |
required |
BooleanRepresents whether or not this field is required. |
autoComplete |
String?The autocomplete merge field name |
value |
Number?A number representing this field's value. |
minValue |
Number?The minimum numeric value that this field can contain. |
maxValue |
Number?The maximum numeric value that this field can contain. |
step |
Number?Specifies the legal number intervals for this field. |
BirthdayField
| BirthdayField | |
|---|---|
name |
StringThe field's name, this maps to an HTML name attribute. |
label |
StringThe field's label/caption, this maps to an HTML label element. |
description |
String?The field's description, this maps to the HTML description attribute. |
placeholder |
String?A placeholder that is displayed when the field has no value. |
required |
BooleanRepresents whether or not this field is required. |
autoComplete |
String?The autocomplete merge field name |
value |
Regexp?(\d{2}-\d{2}$)Day field values are in MM-DD format. |
BirthdateField
| BirthdateField | |
|---|---|
name |
StringThe field's name, this maps to an HTML name attribute. |
label |
StringThe field's label/caption, this maps to an HTML label element. |
description |
String?The field's description, this maps to the HTML description attribute. |
placeholder |
String?A placeholder that is displayed when the field has no value. |
required |
BooleanRepresents whether or not this field is required. |
autoComplete |
String?The autocomplete merge field name |
value |
Regexp?(\d{4}-\d{2}-\d{2}$)Date field values are in YYYY-MM-DD format. |
PhoneNumberField
| PhoneNumberField | |
|---|---|
name |
StringThe field's name, this maps to an HTML name attribute. |
label |
StringThe field's label/caption, this maps to an HTML label element. |
description |
String?The field's description, this maps to the HTML description attribute. |
placeholder |
String?A placeholder that is displayed when the field has no value. |
required |
BooleanRepresents whether or not this field is required. |
autoComplete |
String?The autocomplete merge field name |
value |
String?The field's default value. |
HomePhoneNumberField
| HomePhoneNumberField | |
|---|---|
name |
StringThe field's name, this maps to an HTML name attribute. |
label |
StringThe field's label/caption, this maps to an HTML label element. |
description |
String?The field's description, this maps to the HTML description attribute. |
placeholder |
String?A placeholder that is displayed when the field has no value. |
required |
BooleanRepresents whether or not this field is required. |
autoComplete |
String?The autocomplete merge field name |
value |
String?The field's default value. |
WorkPhoneNumberField
| WorkPhoneNumberField | |
|---|---|
name |
StringThe field's name, this maps to an HTML name attribute. |
label |
StringThe field's label/caption, this maps to an HTML label element. |
description |
String?The field's description, this maps to the HTML description attribute. |
placeholder |
String?A placeholder that is displayed when the field has no value. |
required |
BooleanRepresents whether or not this field is required. |
autoComplete |
String?The autocomplete merge field name |
value |
String?The field's default value. |
MobilePhoneNumberField
| MobilePhoneNumberField | |
|---|---|
name |
StringThe field's name, this maps to an HTML name attribute. |
label |
StringThe field's label/caption, this maps to an HTML label element. |
description |
String?The field's description, this maps to the HTML description attribute. |
placeholder |
String?A placeholder that is displayed when the field has no value. |
required |
BooleanRepresents whether or not this field is required. |
autoComplete |
String?The autocomplete merge field name |
value |
String?The field's default value. |
FaxNumberField
| FaxNumberField | |
|---|---|
name |
StringThe field's name, this maps to an HTML name attribute. |
label |
StringThe field's label/caption, this maps to an HTML label element. |
description |
String?The field's description, this maps to the HTML description attribute. |
placeholder |
String?A placeholder that is displayed when the field has no value. |
required |
BooleanRepresents whether or not this field is required. |
autoComplete |
String?The autocomplete merge field name |
value |
String?The field's default value. |
HomeFaxNumberField
| HomeFaxNumberField | |
|---|---|
name |
StringThe field's name, this maps to an HTML name attribute. |
label |
StringThe field's label/caption, this maps to an HTML label element. |
description |
String?The field's description, this maps to the HTML description attribute. |
placeholder |
String?A placeholder that is displayed when the field has no value. |
required |
BooleanRepresents whether or not this field is required. |
autoComplete |
String?The autocomplete merge field name |
value |
String?The field's default value. |
WorkFaxNumberField
| WorkFaxNumberField | |
|---|---|
name |
StringThe field's name, this maps to an HTML name attribute. |
label |
StringThe field's label/caption, this maps to an HTML label element. |
description |
String?The field's description, this maps to the HTML description attribute. |
placeholder |
String?A placeholder that is displayed when the field has no value. |
required |
BooleanRepresents whether or not this field is required. |
autoComplete |
String?The autocomplete merge field name |
value |
String?The field's default value. |
CompanyField
| CompanyField | |
|---|---|
name |
StringThe field's name, this maps to an HTML name attribute. |
label |
StringThe field's label/caption, this maps to an HTML label element. |
description |
String?The field's description, this maps to the HTML description attribute. |
placeholder |
String?A placeholder that is displayed when the field has no value. |
required |
BooleanRepresents whether or not this field is required. |
autoComplete |
String?The autocomplete merge field name |
value |
String?The field's default value. |
JobTitleField
| JobTitleField | |
|---|---|
name |
StringThe field's name, this maps to an HTML name attribute. |
label |
StringThe field's label/caption, this maps to an HTML label element. |
description |
String?The field's description, this maps to the HTML description attribute. |
placeholder |
String?A placeholder that is displayed when the field has no value. |
required |
BooleanRepresents whether or not this field is required. |
autoComplete |
String?The autocomplete merge field name |
value |
String?The field's default value. |
IndustryField
| IndustryField | |
|---|---|
name |
StringThe field's name, this maps to an HTML name attribute. |
label |
StringThe field's label/caption, this maps to an HTML label element. |
description |
String?The field's description, this maps to the HTML description attribute. |
placeholder |
String?A placeholder that is displayed when the field has no value. |
required |
BooleanRepresents whether or not this field is required. |
autoComplete |
String?The autocomplete merge field name |
value |
String?The field's default value. |
NumberOfEmployeesField
| NumberOfEmployeesField | |
|---|---|
name |
StringThe field's name, this maps to an HTML name attribute. |
label |
StringThe field's label/caption, this maps to an HTML label element. |
description |
String?The field's description, this maps to the HTML description attribute. |
placeholder |
String?A placeholder that is displayed when the field has no value. |
required |
BooleanRepresents whether or not this field is required. |
autoComplete |
String?The autocomplete merge field name |
value |
Number?A number representing this field's value. |
minValue |
Number?The minimum numeric value that this field can contain. |
maxValue |
Number?The maximum numeric value that this field can contain. |
step |
Number?Specifies the legal number intervals for this field. |
AnnualRevenueField
| AnnualRevenueField | |
|---|---|
name |
StringThe field's name, this maps to an HTML name attribute. |
label |
StringThe field's label/caption, this maps to an HTML label element. |
description |
String?The field's description, this maps to the HTML description attribute. |
placeholder |
String?A placeholder that is displayed when the field has no value. |
required |
BooleanRepresents whether or not this field is required. |
autoComplete |
String?The autocomplete merge field name |
value |
String?The field's default value. |
WebsiteField
| WebsiteField | |
|---|---|
name |
StringThe field's name, this maps to an HTML name attribute. |
label |
StringThe field's label/caption, this maps to an HTML label element. |
description |
String?The field's description, this maps to the HTML description attribute. |
placeholder |
String?A placeholder that is displayed when the field has no value. |
required |
BooleanRepresents whether or not this field is required. |
autoComplete |
String?The autocomplete merge field name |
value |
String?The field's default value. |
TagField
| TagField | |
|---|---|
name |
StringThe field's name, this maps to an HTML name attribute. |
label |
StringThe field's label/caption, this maps to an HTML label element. |
description |
String?The field's description, this maps to the HTML description attribute. |
placeholder |
String?A placeholder that is displayed when the field has no value. |
required |
BooleanRepresents whether or not this field is required. |
autoComplete |
String?The autocomplete merge field name |
value |
String?The field's default value. |
MultiTagField
| MultiTagField | |
|---|---|
name |
StringThe field's name, this maps to an HTML name attribute. |
label |
StringThe field's label/caption, this maps to an HTML label element. |
description |
String?The field's description, this maps to the HTML description attribute. |
placeholder |
String?A placeholder that is displayed when the field has no value. |
required |
BooleanRepresents whether or not this field is required. |
autoComplete |
String?The autocomplete merge field name |
values |
List?[String] |
selected |
List?[String] |
HiddenMultiTagField
| HiddenMultiTagField | |
|---|---|
name |
StringThe field's name, this maps to an HTML name attribute. |
label |
StringThe field's label/caption, this maps to an HTML label element. |
description |
String?The field's description, this maps to the HTML description attribute. |
placeholder |
String?A placeholder that is displayed when the field has no value. |
required |
BooleanRepresents whether or not this field is required. |
autoComplete |
String?The autocomplete merge field name |
values |
List?[String] |
selected |
List?[String] |
PostalCodeField
| PostalCodeField | |
|---|---|
name |
StringThe field's name, this maps to an HTML name attribute. |
label |
StringThe field's label/caption, this maps to an HTML label element. |
description |
String?The field's description, this maps to the HTML description attribute. |
placeholder |
String?A placeholder that is displayed when the field has no value. |
required |
BooleanRepresents whether or not this field is required. |
autoComplete |
String?The autocomplete merge field name |
value |
String?The field's default value. |
AddressStreetField
| AddressStreetField | |
|---|---|
name |
StringThe field's name, this maps to an HTML name attribute. |
label |
StringThe field's label/caption, this maps to an HTML label element. |
description |
String?The field's description, this maps to the HTML description attribute. |
placeholder |
String?A placeholder that is displayed when the field has no value. |
required |
BooleanRepresents whether or not this field is required. |
autoComplete |
String?The autocomplete merge field name |
value |
String?The field's default value. |
AddressCityField
| AddressCityField | |
|---|---|
name |
StringThe field's name, this maps to an HTML name attribute. |
label |
StringThe field's label/caption, this maps to an HTML label element. |
description |
String?The field's description, this maps to the HTML description attribute. |
placeholder |
String?A placeholder that is displayed when the field has no value. |
required |
BooleanRepresents whether or not this field is required. |
autoComplete |
String?The autocomplete merge field name |
value |
String?The field's default value. |
AddressStateField
| AddressStateField | |
|---|---|
name |
StringThe field's name, this maps to an HTML name attribute. |
label |
StringThe field's label/caption, this maps to an HTML label element. |
description |
String?The field's description, this maps to the HTML description attribute. |
placeholder |
String?A placeholder that is displayed when the field has no value. |
required |
BooleanRepresents whether or not this field is required. |
autoComplete |
String?The autocomplete merge field name |
value |
String?The field's default value. |
AddressStrictStateField
| AddressStrictStateField | |
|---|---|
name |
StringThe field's name, this maps to an HTML name attribute. |
label |
StringThe field's label/caption, this maps to an HTML label element. |
description |
String?The field's description, this maps to the HTML description attribute. |
placeholder |
String?A placeholder that is displayed when the field has no value. |
required |
BooleanRepresents whether or not this field is required. |
autoComplete |
String?The autocomplete merge field name |
value |
String?Represents the default choice (by its value). |
values[].value |
String |
values[].label |
String |
values |
List?[Dictionary]This represents the possible choices for this field's value. |
AddressPostalCodeField
| AddressPostalCodeField | |
|---|---|
name |
StringThe field's name, this maps to an HTML name attribute. |
label |
StringThe field's label/caption, this maps to an HTML label element. |
description |
String?The field's description, this maps to the HTML description attribute. |
placeholder |
String?A placeholder that is displayed when the field has no value. |
required |
BooleanRepresents whether or not this field is required. |
autoComplete |
String?The autocomplete merge field name |
value |
String?The field's default value. |
AddressCountryField
| AddressCountryField | |
|---|---|
name |
StringThe field's name, this maps to an HTML name attribute. |
label |
StringThe field's label/caption, this maps to an HTML label element. |
description |
String?The field's description, this maps to the HTML description attribute. |
placeholder |
String?A placeholder that is displayed when the field has no value. |
required |
BooleanRepresents whether or not this field is required. |
autoComplete |
String?The autocomplete merge field name |
value |
String?The field's default value. |
AddressStrictCountryField
| AddressStrictCountryField | |
|---|---|
name |
StringThe field's name, this maps to an HTML name attribute. |
label |
StringThe field's label/caption, this maps to an HTML label element. |
description |
String?The field's description, this maps to the HTML description attribute. |
placeholder |
String?A placeholder that is displayed when the field has no value. |
required |
BooleanRepresents whether or not this field is required. |
autoComplete |
String?The autocomplete merge field name |
value |
String?Represents the default choice (by its value). |
values[].value |
String |
values[].label |
String |
values |
List?[Dictionary]This represents the possible choices for this field's value. |
BillingAddressStreetField
| BillingAddressStreetField | |
|---|---|
name |
StringThe field's name, this maps to an HTML name attribute. |
label |
StringThe field's label/caption, this maps to an HTML label element. |
description |
String?The field's description, this maps to the HTML description attribute. |
placeholder |
String?A placeholder that is displayed when the field has no value. |
required |
BooleanRepresents whether or not this field is required. |
autoComplete |
String?The autocomplete merge field name |
value |
String?The field's default value. |
BillingAddressCityField
| BillingAddressCityField | |
|---|---|
name |
StringThe field's name, this maps to an HTML name attribute. |
label |
StringThe field's label/caption, this maps to an HTML label element. |
description |
String?The field's description, this maps to the HTML description attribute. |
placeholder |
String?A placeholder that is displayed when the field has no value. |
required |
BooleanRepresents whether or not this field is required. |
autoComplete |
String?The autocomplete merge field name |
value |
String?The field's default value. |
BillingAddressStateField
| BillingAddressStateField | |
|---|---|
name |
StringThe field's name, this maps to an HTML name attribute. |
label |
StringThe field's label/caption, this maps to an HTML label element. |
description |
String?The field's description, this maps to the HTML description attribute. |
placeholder |
String?A placeholder that is displayed when the field has no value. |
required |
BooleanRepresents whether or not this field is required. |
autoComplete |
String?The autocomplete merge field name |
value |
String?The field's default value. |
BillingAddressStrictStateField
| BillingAddressStrictStateField | |
|---|---|
name |
StringThe field's name, this maps to an HTML name attribute. |
label |
StringThe field's label/caption, this maps to an HTML label element. |
description |
String?The field's description, this maps to the HTML description attribute. |
placeholder |
String?A placeholder that is displayed when the field has no value. |
required |
BooleanRepresents whether or not this field is required. |
autoComplete |
String?The autocomplete merge field name |
value |
String?Represents the default choice (by its value). |
values[].value |
String |
values[].label |
String |
values |
List?[Dictionary]This represents the possible choices for this field's value. |
BillingAddressPostalCodeField
| BillingAddressPostalCodeField | |
|---|---|
name |
StringThe field's name, this maps to an HTML name attribute. |
label |
StringThe field's label/caption, this maps to an HTML label element. |
description |
String?The field's description, this maps to the HTML description attribute. |
placeholder |
String?A placeholder that is displayed when the field has no value. |
required |
BooleanRepresents whether or not this field is required. |
autoComplete |
String?The autocomplete merge field name |
value |
String?The field's default value. |
BillingAddressCountryField
| BillingAddressCountryField | |
|---|---|
name |
StringThe field's name, this maps to an HTML name attribute. |
label |
StringThe field's label/caption, this maps to an HTML label element. |
description |
String?The field's description, this maps to the HTML description attribute. |
placeholder |
String?A placeholder that is displayed when the field has no value. |
required |
BooleanRepresents whether or not this field is required. |
autoComplete |
String?The autocomplete merge field name |
value |
String?The field's default value. |
BillingAddressStrictCountryField
| BillingAddressStrictCountryField | |
|---|---|
name |
StringThe field's name, this maps to an HTML name attribute. |
label |
StringThe field's label/caption, this maps to an HTML label element. |
description |
String?The field's description, this maps to the HTML description attribute. |
placeholder |
String?A placeholder that is displayed when the field has no value. |
required |
BooleanRepresents whether or not this field is required. |
autoComplete |
String?The autocomplete merge field name |
value |
String?Represents the default choice (by its value). |
values[].value |
String |
values[].label |
String |
values |
List?[Dictionary]This represents the possible choices for this field's value. |
ShippingAddressStreetField
| ShippingAddressStreetField | |
|---|---|
name |
StringThe field's name, this maps to an HTML name attribute. |
label |
StringThe field's label/caption, this maps to an HTML label element. |
description |
String?The field's description, this maps to the HTML description attribute. |
placeholder |
String?A placeholder that is displayed when the field has no value. |
required |
BooleanRepresents whether or not this field is required. |
autoComplete |
String?The autocomplete merge field name |
value |
String?The field's default value. |
ShippingAddressCityField
| ShippingAddressCityField | |
|---|---|
name |
StringThe field's name, this maps to an HTML name attribute. |
label |
StringThe field's label/caption, this maps to an HTML label element. |
description |
String?The field's description, this maps to the HTML description attribute. |
placeholder |
String?A placeholder that is displayed when the field has no value. |
required |
BooleanRepresents whether or not this field is required. |
autoComplete |
String?The autocomplete merge field name |
value |
String?The field's default value. |
ShippingAddressStateField
| ShippingAddressStateField | |
|---|---|
name |
StringThe field's name, this maps to an HTML name attribute. |
label |
StringThe field's label/caption, this maps to an HTML label element. |
description |
String?The field's description, this maps to the HTML description attribute. |
placeholder |
String?A placeholder that is displayed when the field has no value. |
required |
BooleanRepresents whether or not this field is required. |
autoComplete |
String?The autocomplete merge field name |
value |
String?The field's default value. |
ShippingAddressStrictStateField
| ShippingAddressStrictStateField | |
|---|---|
name |
StringThe field's name, this maps to an HTML name attribute. |
label |
StringThe field's label/caption, this maps to an HTML label element. |
description |
String?The field's description, this maps to the HTML description attribute. |
placeholder |
String?A placeholder that is displayed when the field has no value. |
required |
BooleanRepresents whether or not this field is required. |
autoComplete |
String?The autocomplete merge field name |
value |
String?Represents the default choice (by its value). |
values[].value |
String |
values[].label |
String |
values |
List?[Dictionary]This represents the possible choices for this field's value. |
ShippingAddressPostalCodeField
| ShippingAddressPostalCodeField | |
|---|---|
name |
StringThe field's name, this maps to an HTML name attribute. |
label |
StringThe field's label/caption, this maps to an HTML label element. |
description |
String?The field's description, this maps to the HTML description attribute. |
placeholder |
String?A placeholder that is displayed when the field has no value. |
required |
BooleanRepresents whether or not this field is required. |
autoComplete |
String?The autocomplete merge field name |
value |
String?The field's default value. |
ShippingAddressCountryField
| ShippingAddressCountryField | |
|---|---|
name |
StringThe field's name, this maps to an HTML name attribute. |
label |
StringThe field's label/caption, this maps to an HTML label element. |
description |
String?The field's description, this maps to the HTML description attribute. |
placeholder |
String?A placeholder that is displayed when the field has no value. |
required |
BooleanRepresents whether or not this field is required. |
autoComplete |
String?The autocomplete merge field name |
value |
String?The field's default value. |
ShippingAddressStrictCountryField
| ShippingAddressStrictCountryField | |
|---|---|
name |
StringThe field's name, this maps to an HTML name attribute. |
label |
StringThe field's label/caption, this maps to an HTML label element. |
description |
String?The field's description, this maps to the HTML description attribute. |
placeholder |
String?A placeholder that is displayed when the field has no value. |
required |
BooleanRepresents whether or not this field is required. |
autoComplete |
String?The autocomplete merge field name |
value |
String?Represents the default choice (by its value). |
values[].value |
String |
values[].label |
String |
values |
List?[Dictionary]This represents the possible choices for this field's value. |
UserHandleField
| UserHandleField | |
|---|---|
name |
StringThe field's name, this maps to an HTML name attribute. |
label |
StringThe field's label/caption, this maps to an HTML label element. |
description |
String?The field's description, this maps to the HTML description attribute. |
placeholder |
String?A placeholder that is displayed when the field has no value. |
required |
BooleanRepresents whether or not this field is required. |
autoComplete |
String?The autocomplete merge field name |
value |
String?The field's default value. |
TwitterUserHandleField
| TwitterUserHandleField | |
|---|---|
name |
StringThe field's name, this maps to an HTML name attribute. |
label |
StringThe field's label/caption, this maps to an HTML label element. |
description |
String?The field's description, this maps to the HTML description attribute. |
placeholder |
String?A placeholder that is displayed when the field has no value. |
required |
BooleanRepresents whether or not this field is required. |
autoComplete |
String?The autocomplete merge field name |
value |
String?The field's default value. |
FacebookUserHandleField
| FacebookUserHandleField | |
|---|---|
name |
StringThe field's name, this maps to an HTML name attribute. |
label |
StringThe field's label/caption, this maps to an HTML label element. |
description |
String?The field's description, this maps to the HTML description attribute. |
placeholder |
String?A placeholder that is displayed when the field has no value. |
required |
BooleanRepresents whether or not this field is required. |
autoComplete |
String?The autocomplete merge field name |
value |
String?The field's default value. |
LinkedInUserHandleField
| LinkedInUserHandleField | |
|---|---|
name |
StringThe field's name, this maps to an HTML name attribute. |
label |
StringThe field's label/caption, this maps to an HTML label element. |
description |
String?The field's description, this maps to the HTML description attribute. |
placeholder |
String?A placeholder that is displayed when the field has no value. |
required |
BooleanRepresents whether or not this field is required. |
autoComplete |
String?The autocomplete merge field name |
value |
String?The field's default value. |
GooglePlusUserHandleField
| GooglePlusUserHandleField | |
|---|---|
name |
StringThe field's name, this maps to an HTML name attribute. |
label |
StringThe field's label/caption, this maps to an HTML label element. |
description |
String?The field's description, this maps to the HTML description attribute. |
placeholder |
String?A placeholder that is displayed when the field has no value. |
required |
BooleanRepresents whether or not this field is required. |
autoComplete |
String?The autocomplete merge field name |
value |
String?The field's default value. |
GeographicLatitudeField
| GeographicLatitudeField | |
|---|---|
name |
StringThe field's name, this maps to an HTML name attribute. |
label |
StringThe field's label/caption, this maps to an HTML label element. |
description |
String?The field's description, this maps to the HTML description attribute. |
placeholder |
String?A placeholder that is displayed when the field has no value. |
required |
BooleanRepresents whether or not this field is required. |
autoComplete |
String?The autocomplete merge field name |
value |
Number?A number representing this field's value. |
minValue |
Number?The minimum numeric value that this field can contain. |
maxValue |
Number?The maximum numeric value that this field can contain. |
step |
Number?Specifies the legal number intervals for this field. |
GeographicLongitudeField
| GeographicLongitudeField | |
|---|---|
name |
StringThe field's name, this maps to an HTML name attribute. |
label |
StringThe field's label/caption, this maps to an HTML label element. |
description |
String?The field's description, this maps to the HTML description attribute. |
placeholder |
String?A placeholder that is displayed when the field has no value. |
required |
BooleanRepresents whether or not this field is required. |
autoComplete |
String?The autocomplete merge field name |
value |
Number?A number representing this field's value. |
minValue |
Number?The minimum numeric value that this field can contain. |
maxValue |
Number?The maximum numeric value that this field can contain. |
step |
Number?Specifies the legal number intervals for this field. |
GeographicElevationField
| GeographicElevationField | |
|---|---|
name |
StringThe field's name, this maps to an HTML name attribute. |
label |
StringThe field's label/caption, this maps to an HTML label element. |
description |
String?The field's description, this maps to the HTML description attribute. |
placeholder |
String?A placeholder that is displayed when the field has no value. |
required |
BooleanRepresents whether or not this field is required. |
autoComplete |
String?The autocomplete merge field name |
value |
Number?A number representing this field's value. |
minValue |
Number?The minimum numeric value that this field can contain. |
maxValue |
Number?The maximum numeric value that this field can contain. |
step |
Number?Specifies the legal number intervals for this field. |
ViewportWidthField
| ViewportWidthField | |
|---|---|
name |
StringThe field's name, this maps to an HTML name attribute. |
label |
StringThe field's label/caption, this maps to an HTML label element. |
description |
String?The field's description, this maps to the HTML description attribute. |
placeholder |
String?A placeholder that is displayed when the field has no value. |
required |
BooleanRepresents whether or not this field is required. |
autoComplete |
String?The autocomplete merge field name |
value |
Integer?A integer representing this field's value. |
minValue |
Integer?The minimum numeric value that this field can contain. |
maxValue |
Integer?The maximum numeric value that this field can contain. |
step |
Integer?Specifies the legal integer intervals for this field. |
ViewportHeightField
| ViewportHeightField | |
|---|---|
name |
StringThe field's name, this maps to an HTML name attribute. |
label |
StringThe field's label/caption, this maps to an HTML label element. |
description |
String?The field's description, this maps to the HTML description attribute. |
placeholder |
String?A placeholder that is displayed when the field has no value. |
required |
BooleanRepresents whether or not this field is required. |
autoComplete |
String?The autocomplete merge field name |
value |
Integer?A integer representing this field's value. |
minValue |
Integer?The minimum numeric value that this field can contain. |
maxValue |
Integer?The maximum numeric value that this field can contain. |
step |
Integer?Specifies the legal integer intervals for this field. |
LocaleField
| LocaleField | |
|---|---|
name |
StringThe field's name, this maps to an HTML name attribute. |
label |
StringThe field's label/caption, this maps to an HTML label element. |
description |
String?The field's description, this maps to the HTML description attribute. |
placeholder |
String?A placeholder that is displayed when the field has no value. |
required |
BooleanRepresents whether or not this field is required. |
autoComplete |
String?The autocomplete merge field name |
value |
String?The field's default value. |
StrictLocaleField
| StrictLocaleField | |
|---|---|
name |
StringThe field's name, this maps to an HTML name attribute. |
label |
StringThe field's label/caption, this maps to an HTML label element. |
description |
String?The field's description, this maps to the HTML description attribute. |
placeholder |
String?A placeholder that is displayed when the field has no value. |
required |
BooleanRepresents whether or not this field is required. |
autoComplete |
String?The autocomplete merge field name |
value |
String?Represents the default choice (by its value). |
values[].value |
String |
values[].label |
String |
values |
List?[Dictionary]This represents the possible choices for this field's value. |
RatingField
| RatingField | |
|---|---|
name |
StringThe field's name, this maps to an HTML name attribute. |
label |
StringThe field's label/caption, this maps to an HTML label element. |
description |
String?The field's description, this maps to the HTML description attribute. |
placeholder |
String?A placeholder that is displayed when the field has no value. |
required |
BooleanRepresents whether or not this field is required. |
autoComplete |
String?The autocomplete merge field name |
value |
Integer?A integer representing this field's value. |
minValue |
Integer?The minimum numeric value that this field can contain. |
maxValue |
Integer?The maximum numeric value that this field can contain. |
step |
Integer?Specifies the legal integer intervals for this field. |
LeadScoreField
| LeadScoreField | |
|---|---|
name |
StringThe field's name, this maps to an HTML name attribute. |
label |
StringThe field's label/caption, this maps to an HTML label element. |
description |
String?The field's description, this maps to the HTML description attribute. |
placeholder |
String?A placeholder that is displayed when the field has no value. |
required |
BooleanRepresents whether or not this field is required. |
autoComplete |
String?The autocomplete merge field name |
value |
Integer?A integer representing this field's value. |
minValue |
Integer?The minimum numeric value that this field can contain. |
maxValue |
Integer?The maximum numeric value that this field can contain. |
step |
Integer?Specifies the legal integer intervals for this field. |
LifetimeValueField
| LifetimeValueField | |
|---|---|
name |
StringThe field's name, this maps to an HTML name attribute. |
label |
StringThe field's label/caption, this maps to an HTML label element. |
description |
String?The field's description, this maps to the HTML description attribute. |
placeholder |
String?A placeholder that is displayed when the field has no value. |
required |
BooleanRepresents whether or not this field is required. |
autoComplete |
String?The autocomplete merge field name |
value |
Integer?A integer representing this field's value. |
minValue |
Integer?The minimum numeric value that this field can contain. |
maxValue |
Integer?The maximum numeric value that this field can contain. |
step |
Integer?Specifies the legal integer intervals for this field. |
DurationMinutesField
| DurationMinutesField | |
|---|---|
name |
StringThe field's name, this maps to an HTML name attribute. |
label |
StringThe field's label/caption, this maps to an HTML label element. |
description |
String?The field's description, this maps to the HTML description attribute. |
placeholder |
String?A placeholder that is displayed when the field has no value. |
required |
BooleanRepresents whether or not this field is required. |
autoComplete |
String?The autocomplete merge field name |
value |
Integer?A integer representing this field's value. |
minValue |
Integer?The minimum numeric value that this field can contain. |
maxValue |
Integer?The maximum numeric value that this field can contain. |
step |
Integer?Specifies the legal integer intervals for this field. |
CenterViewerUUIDField
| CenterViewerUUIDField | |
|---|---|
name |
StringThe field's name, this maps to an HTML name attribute. |
label |
StringThe field's label/caption, this maps to an HTML label element. |
description |
String?The field's description, this maps to the HTML description attribute. |
placeholder |
String?A placeholder that is displayed when the field has no value. |
required |
BooleanRepresents whether or not this field is required. |
autoComplete |
String?The autocomplete merge field name |
value |
String?The field's default value. |
ProviderSetting
| ProviderSetting | |
|---|---|
kind |
Enum('OAuthCallbackTokenKeySetting', 'OAuthCallbackVerifierKeySetting') |
setting |
Or[OAuthCallbackTokenKeySetting, OAuthCallbackVerifierKeySetting] |
OAuthCallbackTokenKeySetting
| OAuthCallbackTokenKeySetting | |
|---|---|
value |
StringThe key referencing the token value in the query string of an OAuth callback (usually oauth_token as specified in RFC 5849). |
OAuthCallbackVerifierKeySetting
| OAuthCallbackVerifierKeySetting | |
|---|---|
value |
StringThe key referencing the verifier value in the query string of an OAuth callback (usually oauth_verifier as specified in RFC 5849). |
ReadEventDefinition
| ReadEventDefinition | |
|---|---|
name |
StringThe name of the event (for example, `WebinarAttendanceEvent`). This maps directly to the materialized ReadEvent's `kind` property.' |
label |
StringThe event's label/caption. This may be shown to the user while they're setting up Center Filters. |
fields |
List[EventFieldDefinition]The list of fields that are associated with this kind of Event. |
primaryField |
StringThe type of field contact data should be merged on. |
tagField |
String?The type of field events should be tagged with. |
EventFieldDefinition
| EventFieldDefinition | |
|---|---|
name |
StringThe name of the field. |
label |
StringThe field's label/caption. |
valueType |
Enum('String', 'Boolean', 'Integer', 'Double', 'DateTime')The type of values this field may contain. This is used by the UI when deciding what kinds of comparator to use for a specific field. |
targets |
List[String]A prioritized list of the kinds of fields values of this field may be mapped to. Mappings are attempted in the order they show up in the list. May be empty, in which case its values should not be sent to the target Form. |
widget |
Enum('TextField', 'CheckBoxField', 'ChoiceField', 'SelectField', 'MultiSelectField', 'RadioField', 'ReadOnlyField', 'HiddenField', 'SystemHiddenField', 'HiddenMultiSelectField', 'NumberField', 'IntegerField', 'PaymentAmountField', 'RefundAmountField', 'CouponAmountField', 'CurrencyField', 'StrictCurrencyField', 'PercentageField', 'TextAreaField', 'CommentField', 'DayField', 'DateField', 'DateTimeField', 'TimezoneOffsetField', 'URIField', 'PathField', 'UserAgentField', 'IPAddressField', 'IPv4AddressField', 'IPv6AddressField', 'PasswordField', 'EmailField', 'SalutationField', 'FullNameField', 'FirstNameField', 'MiddleNameField', 'LastNameField', 'AgeField', 'BirthdayField', 'BirthdateField', 'PhoneNumberField', 'HomePhoneNumberField', 'WorkPhoneNumberField', 'MobilePhoneNumberField', 'FaxNumberField', 'HomeFaxNumberField', 'WorkFaxNumberField', 'CompanyField', 'JobTitleField', 'IndustryField', 'NumberOfEmployeesField', 'AnnualRevenueField', 'WebsiteField', 'TagField', 'MultiTagField', 'HiddenMultiTagField', 'PostalCodeField', 'AddressStreetField', 'AddressCityField', 'AddressStateField', 'AddressStrictStateField', 'AddressPostalCodeField', 'AddressCountryField', 'AddressStrictCountryField', 'BillingAddressStreetField', 'BillingAddressCityField', 'BillingAddressStateField', 'BillingAddressStrictStateField', 'BillingAddressPostalCodeField', 'BillingAddressCountryField', 'BillingAddressStrictCountryField', 'ShippingAddressStreetField', 'ShippingAddressCityField', 'ShippingAddressStateField', 'ShippingAddressStrictStateField', 'ShippingAddressPostalCodeField', 'ShippingAddressCountryField', 'ShippingAddressStrictCountryField', 'UserHandleField', 'TwitterUserHandleField', 'FacebookUserHandleField', 'LinkedInUserHandleField', 'GooglePlusUserHandleField', 'GeographicLatitudeField', 'GeographicLongitudeField', 'GeographicElevationField', 'ViewportWidthField', 'ViewportHeightField', 'LocaleField', 'StrictLocaleField', 'RatingField', 'LeadScoreField', 'LifetimeValueField', 'DurationMinutesField', 'CenterViewerUUIDField')The type of widget that the UI can use when retrieving user input for this field. |
widgetLabel |
String?Label for widget, for the UI, which is separate from the field label, for example "Subscriber status" could be the filter field label, but the filter may be a checkbox, requiring a label, such as "Active Only". |
KeyProvider
| KeyProvider | |
|---|---|
name |
StringThe unique name of the Provider (for example: `Mailchimp`). |
category |
Enum('Forms', 'CustomerRelationshipManagement', 'SupportDesk', 'ECommerce', 'EmailServices', 'WebinarServices', 'PaymentServices', 'MediaServices', 'Ave81Services', 'Uncategorized')The category this Provider belongs to. |
capabilities |
List[String]A list representing the capabilities this Provider has. |
capacities |
List?[String]The capacities the agent can act in. |
features |
List?[String]A list representing any unusual features that this Provider may have. |
supportedActions |
List?[String]A list representing the types of Actions this Provider supports. |
userSettings |
List[Field]A list representing the form fields that make up the configuration that a user can specify when configuring an Integration or a Form. |
providerSettings |
List?[ProviderSetting]A list representing the form fields that make up the configuration that an agent can impose on Hydra when configuring the provider. |
readEvents |
List?[ReadEventDefinition]A list representing the types of events this provider can export from the integration. This is null for write-only agents. |
readModes |
List?[String]The supported read modes (streaming, polling) for the agent. |
unscopedEvents |
Boolean?A boolean representing whether or not events read from this provider are "unscoped;" that is, they are not assigned to a specific integration and are global to the user's account. |
baseUri |
URI?The base URI of this Provider's agent. |
credentialsKind |
Enum('IdentityUser', 'Key', 'Keys', 'OAuth', 'OAuth2') |
allowedGroups |
List?[String]A list of strings representing the Identity groups that are allowed to access this Provider. |
keyLabel |
StringA label for the API key's input field. |
KeysProvider
| KeysProvider | |
|---|---|
name |
StringThe unique name of the Provider (for example: `Mailchimp`). |
category |
Enum('Forms', 'CustomerRelationshipManagement', 'SupportDesk', 'ECommerce', 'EmailServices', 'WebinarServices', 'PaymentServices', 'MediaServices', 'Ave81Services', 'Uncategorized')The category this Provider belongs to. |
capabilities |
List[String]A list representing the capabilities this Provider has. |
capacities |
List?[String]The capacities the agent can act in. |
features |
List?[String]A list representing any unusual features that this Provider may have. |
supportedActions |
List?[String]A list representing the types of Actions this Provider supports. |
userSettings |
List[Field]A list representing the form fields that make up the configuration that a user can specify when configuring an Integration or a Form. |
providerSettings |
List?[ProviderSetting]A list representing the form fields that make up the configuration that an agent can impose on Hydra when configuring the provider. |
readEvents |
List?[ReadEventDefinition]A list representing the types of events this provider can export from the integration. This is null for write-only agents. |
readModes |
List?[String]The supported read modes (streaming, polling) for the agent. |
unscopedEvents |
Boolean?A boolean representing whether or not events read from this provider are "unscoped;" that is, they are not assigned to a specific integration and are global to the user's account. |
baseUri |
URI?The base URI of this Provider's agent. |
credentialsKind |
Enum('IdentityUser', 'Key', 'Keys', 'OAuth', 'OAuth2') |
allowedGroups |
List?[String]A list of strings representing the Identity groups that are allowed to access this Provider. |
keyCount |
Integer(2 < n)The number of keys this Provider requires. |
keyLabels |
List[String]The labels for each key's input field. |
OAuthProvider
| OAuthProvider | |
|---|---|
name |
StringThe unique name of the Provider (for example: `Mailchimp`). |
category |
Enum('Forms', 'CustomerRelationshipManagement', 'SupportDesk', 'ECommerce', 'EmailServices', 'WebinarServices', 'PaymentServices', 'MediaServices', 'Ave81Services', 'Uncategorized')The category this Provider belongs to. |
capabilities |
List[String]A list representing the capabilities this Provider has. |
capacities |
List?[String]The capacities the agent can act in. |
features |
List?[String]A list representing any unusual features that this Provider may have. |
supportedActions |
List?[String]A list representing the types of Actions this Provider supports. |
userSettings |
List[Field]A list representing the form fields that make up the configuration that a user can specify when configuring an Integration or a Form. |
providerSettings |
List?[ProviderSetting]A list representing the form fields that make up the configuration that an agent can impose on Hydra when configuring the provider. |
readEvents |
List?[ReadEventDefinition]A list representing the types of events this provider can export from the integration. This is null for write-only agents. |
readModes |
List?[String]The supported read modes (streaming, polling) for the agent. |
unscopedEvents |
Boolean?A boolean representing whether or not events read from this provider are "unscoped;" that is, they are not assigned to a specific integration and are global to the user's account. |
baseUri |
URI?The base URI of this Provider's agent. |
credentialsKind |
Enum('IdentityUser', 'Key', 'Keys', 'OAuth', 'OAuth2') |
allowedGroups |
List?[String]A list of strings representing the Identity groups that are allowed to access this Provider. |
keyCount |
IntegerThe number of keys this Provider requires. |
keyLabels |
List[String]The labels for each key's input field. |
OAuth2Provider
| OAuth2Provider | |
|---|---|
name |
StringThe unique name of the Provider (for example: `Mailchimp`). |
category |
Enum('Forms', 'CustomerRelationshipManagement', 'SupportDesk', 'ECommerce', 'EmailServices', 'WebinarServices', 'PaymentServices', 'MediaServices', 'Ave81Services', 'Uncategorized')The category this Provider belongs to. |
capabilities |
List[String]A list representing the capabilities this Provider has. |
capacities |
List?[String]The capacities the agent can act in. |
features |
List?[String]A list representing any unusual features that this Provider may have. |
supportedActions |
List?[String]A list representing the types of Actions this Provider supports. |
userSettings |
List[Field]A list representing the form fields that make up the configuration that a user can specify when configuring an Integration or a Form. |
providerSettings |
List?[ProviderSetting]A list representing the form fields that make up the configuration that an agent can impose on Hydra when configuring the provider. |
readEvents |
List?[ReadEventDefinition]A list representing the types of events this provider can export from the integration. This is null for write-only agents. |
readModes |
List?[String]The supported read modes (streaming, polling) for the agent. |
unscopedEvents |
Boolean?A boolean representing whether or not events read from this provider are "unscoped;" that is, they are not assigned to a specific integration and are global to the user's account. |
baseUri |
URI?The base URI of this Provider's agent. |
credentialsKind |
Enum('IdentityUser', 'Key', 'Keys', 'OAuth', 'OAuth2') |
allowedGroups |
List?[String]A list of strings representing the Identity groups that are allowed to access this Provider. |
keyCount |
IntegerThe number of keys this Provider requires. |
keyLabels |
List[String]The labels for each key's input field. |
Meta
| Meta | |
|---|---|
id |
StringThe resource's unique identifier. |
uri |
URIThe resource's absolute URI. |
created |
DateTimeWhen the resource was created. |
updated |
DateTimeWhen the resource was last updated. |
ListingMeta
| ListingMeta | |
|---|---|
limit |
Integer(0 < n)The requested limit on the number of items. |
total |
Integer?(0 < n)The number of items in the database. |
count |
Integer(0 < n)The total number of items in the response. |
cursor |
String?This is used in conjunction with limit to paginate through lists of items. |
Provider
| Provider | |
|---|---|
kind |
Enum('IdentityUserProvider', 'KeyProvider', 'KeysProvider', 'OAuthProvider', 'OAuth2Provider') |
provider |
Or[IdentityUserProvider, KeyProvider, KeysProvider, OAuthProvider, OAuth2Provider] |
_meta |
MetaMeta information about the resource. |
Collection
| Collection | |
|---|---|
id |
StringThe unique id of a Collection. Note: these are only unique within the context of an Integration. Two Integrations could have clashing collection identifiers between them. |
path |
List[String]A list of strings representing the fully qualified path of this collection within the Provider (for example, in AWeber's case this would be a list of two elements, the first element representing the AWeber list and the second representing a Form belonging to that list. |
status |
String?The status of this collection within the Agent. |
TagGroup
| TagGroup | |
|---|---|
id |
StringThe unique id of a TagGroup. |
name |
StringThe name of a TagGroup. |
tags |
List[Tag] |
Tag
| Tag | |
|---|---|
id |
StringThe unique id of a Tag. |
name |
StringThe name of a Tag. |
StatusUpdate
| StatusUpdate | |
|---|---|
status |
Enum('ready', 'loading', 'done', 'reauthorizing', 'failed', 'authorization-request')The status set on this integration during the update. |
timestamp |
DateTimeUnix time when the status update occurred. |
event |
StringThe event or task that triggered the status update. |
message |
String?Optional descriptive information about the update event. |
Integration
| Integration | |
|---|---|
name |
StringThe Integration's name. Note: the uniqueness of Integration names is not enforced. |
provider |
StringThe unique id of the Provider this Integration is based on. |
credentials |
StringThe unique id of the Credentials this Integration uses. |
settings |
Dictionary?An arbitrary object representing the user's default settings for this Integration according its Provider's `userSettings` form. |
_meta |
MetaMeta information about the resource. |
status |
Enum('ready', 'loading', 'done', 'reauthorizing', 'failed', 'authorization-request')The status of the Integration. |
failureReason |
Enum('authorization-failed', 'protocol-violation', 'retries-exceeded', 'timeout', 'unknown', 'integration-failure')The reason why the Integration is marked as `FAILED`, if applicable. |
collections |
List[Collection] |
tagGroups |
List?[TagGroup] |
statusUpdates |
List?[StatusUpdate] |
CreateIntegrationCredentials
| CreateIntegrationCredentials | |
|---|---|
kind |
Enum('IdentityUser', 'Key', 'Keys', 'OAuth', 'OAuth2') |
credentials |
Or[CreateIdentityUser, CreateKey, CreateKeys, CreateOAuth, CreateOAuth2] |
CreateKey
| CreateKey | |
|---|---|
key |
StringA string that can be used to access a Provider's API. |
CreateKeys
| CreateKeys | |
|---|---|
keys |
List[String]A list of strings that is required to acccess a Provider's API. Keys are ordered and must be specified in the same order dictated by keyLabels. |
CreateOAuth
| CreateOAuth | |
|---|---|
successUri |
URIThe URI where a user must be sent to after successfully completing the OAuth flow. |
failureUri |
URIThe URI where a user must be sent to after failing to complete the OAuth flow. |
keys |
List?[String]A list of strings to send over to the Provider. This varies depending on the Provider and most Providers do not require any keys. |
CreateOAuth2
| CreateOAuth2 | |
|---|---|
successUri |
URIThe URI where a user must be sent to after successfully completing the OAuth flow. |
failureUri |
URIThe URI where a user must be sent to after failing to complete the OAuth flow. |
keys |
List?[String]A list of strings to send over to the Provider. This varies depending on the Provider and most Providers do not require any keys. |
UpdateIntegrationWithId
| UpdateIntegrationWithId | |
|---|---|
name |
String?The Integration's name. Note: the uniqueness of Integration names is not enforced. |
settings |
Dictionary?An arbitrary object representing the user's default settings for this Integration according its Provider's `userSettings` form. |
id |
String |
IdentityUser
| IdentityUser | |
|---|---|
uuid |
StringA UUID representing an Identity service user. |
email |
EmailA string representing that user's e-mail address. |
policy.role |
Integer |
policy.groups |
List[String] |
policy |
Dictionary? |
status |
Enum('processing', 'failed', 'done', 'authorization-request') |
Key
| Key | |
|---|---|
key |
StringA string that can be used to access a Provider's API. |
status |
Enum('processing', 'failed', 'done', 'authorization-request') |
Keys
| Keys | |
|---|---|
keys |
List[String]A list of strings that is required to acccess a Provider's API. Keys are ordered and must be specified in the same order dictated by keyLabels. |
status |
Enum('processing', 'failed', 'done', 'authorization-request') |
OAuth
| OAuth | |
|---|---|
accessToken |
String? |
accessTokenSecret |
String? |
redirectUri |
URI |
successUri |
URI |
failureUri |
URI |
status |
Enum('processing', 'failed', 'done', 'authorization-request') |
keys |
List?[String] |
OAuth2
| OAuth2 | |
|---|---|
expiresOn |
DateTime? |
accessToken |
String? |
refreshToken |
String? |
redirectUri |
URI |
successUri |
URI |
failureUri |
URI |
metadata |
Dictionary? |
status |
Enum('processing', 'failed', 'done', 'authorization-request') |
keys |
List?[String] |
UpdateKey
| UpdateKey | |
|---|---|
key |
StringA string that can be used to access a Provider's API. |
UpdateKeys
| UpdateKeys | |
|---|---|
keys |
List[String]A list of strings that is required to acccess a Provider's API. Keys are ordered and must be specified in the same order dictated by keyLabels. |
UpdateOAuth
| UpdateOAuth | |
|---|---|
successUri |
URI?The URI where a user must be sent to after successfully completing the OAuth flow. |
failureUri |
URI?The URI where a user must be sent to after failing to complete the OAuth flow. |
keys |
List?[String]A list of strings to send over to the Provider. This varies depending on the Provider and most Providers do not require any keys. |
UpdateOAuth2
| UpdateOAuth2 | |
|---|---|
successUri |
URI?The URI where a user must be sent to after successfully completing the OAuth flow. |
failureUri |
URI?The URI where a user must be sent to after failing to complete the OAuth flow. |
keys |
List?[String]A list of strings to send over to the Provider. This varies depending on the Provider and most Providers do not require any keys. |
accessToken |
String?If this is provided, then only the access token and expires on fields will be updated. This can be used to update credentials' access tokens w/o making the user go through the OAuth flow again. |
Credentials
| Credentials | |
|---|---|
kind |
Enum('IdentityUser', 'Key', 'Keys', 'OAuth', 'OAuth2') |
credentials |
Or[IdentityUser, Key, Keys, OAuth, OAuth2] |
_meta |
MetaMeta information about the resource. |
integration |
StringThe unique id of the Integration these Credentials belong to. |
provider |
StringThe unique id of the Provider that is accessed using these credentials. |
Fieldset
| Fieldset | |
|---|---|
name |
String?An optional name to represent this Fieldset. |
targets[].integration |
StringThe unique id of an Integration. |
targets[].collection |
StringThe unique id of a collection within that Integration. |
targets |
List[Dictionary] |
strategy |
Enum('append', 'fold')The Strategy to use when merging fields from multiple targets. Defaults to fold. |
reCaptchaV2 |
Dictionary?Settings to include and excute a v2 recaptcha |
spamCheckJs |
Boolean?Do we want to detect and exclude spam/bot submissions? |
_meta |
MetaMeta information about the resource. |
fields |
List[Field]The result of merging together each Target's fields. |
status |
Enum('ready', 'loading', 'done', 'failed') |
failureReason |
Enum('target-error', 'processing-error')The reason why the FormLike is marked as `FAILED`, if applicable. |
Submission
| Submission | |
|---|---|
_meta |
MetaMeta information about the resource. |
contentName |
String?An optional string identifying the asset name the submission belongs to. |
contentType |
String?An optional string identifying the asset type the submission belongs to. |
contentUuid |
String?An optional string identifying the asset that the submission belongs to. |
form |
StringThe id of the Form this Submission belongs to. |
raw |
DictionaryA dictionary representing raw submission data. |
referrer |
String?The request referrer. |
uri |
StringThe request URI under which this Submission was made. |
userAgent |
StringThe User Agent of the user who made the Submission. |
isBot |
BooleanDo we think this Submission was by a bot? |
Contact
| Contact | |
|---|---|
_meta |
MetaMeta information about the resource. |
fields |
Dictionary |
customFields |
Dictionary |
MatchField
| MatchField | |
|---|---|
value |
Or[String, Boolean, Integer, Number, DateTime] |
targets |
List[String] |
Zap
| Zap | |
|---|---|
id |
String |
target |
URI |
Form
| Form | |
|---|---|
name |
StringNote: the uniqueness of Form names is not enforced. |
targets[].integration |
StringThe unique id of an Integration. |
targets[].collection |
StringThe unique id of a collection within that Integration. |
targets |
List[Dictionary] |
strategy |
Enum('append', 'fold')The Strategy to use when merging fields from multiple targets. Defaults to fold. |
reCaptchaV2 |
Dictionary?Settings to include and excute a v2 recaptcha |
spamCheckJs |
Boolean?Do we want to detect and exclude spam/bot submissions? |
contentName |
String?The name of the asset this form belongs to. |
contentType |
String?Identifies the asset type |
contentUuid |
String?Identifies the asset this form belongs to. |
settings |
Dictionary?An arbitrary object representing the user's default settings for this Integration according its Provider's `userSettings` form. |
origin |
Enum('Leadpages', 'Center')An optional identifier of what service/entity created this Form. |
audienceRole |
Integer?A Form's intended API user audience. For example, audience_role of super implies
that the customer is excluded from the intended API audience. |
_meta |
MetaMeta information about the resource. |
zaps |
List[Zap] |
fields |
List[Field]The result of merging together each Target's fields. |
status |
Enum('ready', 'loading', 'done', 'failed') |
failureReason |
Enum('target-error', 'processing-error')The reason why the FormLike is marked as `FAILED`, if applicable. |
failureDetails |
String?Details about the failure. |
failureReferences[].failureReferences[].target.integration |
StringThe unique id of an Integration. |
failureReferences[].failureReferences[].target.collection |
StringThe unique id of a collection within that Integration. |
failureReferences[].target |
Dictionary |
failureReferences[].reason |
String |
failureReferences |
List?[Dictionary] |
_BaseFailureEvent
| _BaseFailureEvent | |
|---|---|
reason |
String |
OptinFailureEvent
| OptinFailureEvent | |
|---|---|
reason |
String |
ActionFailureEvent
| ActionFailureEvent | |
|---|---|
reason |
String |
ProtocolViolationEvent
| ProtocolViolationEvent | |
|---|---|
reason |
String |
NetworkFailureEvent
| NetworkFailureEvent | |
|---|---|
reason |
String |
ServiceFailureEvent
| ServiceFailureEvent | |
|---|---|
reason |
String |
IntegrationFailureEvent
| IntegrationFailureEvent | |
|---|---|
reason |
String |
message |
String |
AuthorizationFailureEvent
| AuthorizationFailureEvent | |
|---|---|
reason |
String |
credentials |
String |
TransactionEventDetails
| TransactionEventDetails | |
|---|---|
kind |
Enum('_BaseFailureEvent', 'OptinSuccessEvent', 'OptinFailureEvent', 'ActionSuccessEvent', 'ActionFailureEvent', 'ProtocolViolationEvent', 'NetworkFailureEvent', 'ServiceFailureEvent', 'IntegrationFailureEvent', 'AuthorizationFailureEvent')The event's specific type, such as `OptinSuccessEvent`. |
event |
Or[_BaseFailureEvent, OptinSuccessEvent, OptinFailureEvent, ActionSuccessEvent, ActionFailureEvent, ProtocolViolationEvent, NetworkFailureEvent, ServiceFailureEvent, IntegrationFailureEvent, AuthorizationFailureEvent]The event's specific schema. |
_meta |
TransactionEventMeta |
TransactionEventMeta
| TransactionEventMeta | |
|---|---|
created |
DateTimeWhen the event was received. |
updated |
DateTimeWhen the event was last updated. |
Transaction
| Transaction | |
|---|---|
_meta |
MetaMeta information about the resource. |
status |
String |
statusReason |
String?A reason for the current status of this Transaction. |
target.integration |
StringThe unique id of an Integration. |
target.collection |
StringThe unique id of a collection within that Integration. |
target |
Dictionary |
provider |
String?The Provider id this Transaction references. |
submission |
StringThe unique id of the Submission this Transaction references. |
settings |
Dictionary?The user-specified set of settings for this Transaction. |
startedAt |
DateTime?When the Transaction started. |
succeededAt |
DateTime?When the Transaction succeeded. |
failedAt |
DateTime?When the Transaction failed. |
Architecture
Hydra is the large, central component of the new Integrations API. There are several pieces that revolve around Hydra and their architecture is outlined here.
Third-Party Credentials Management
Credentials management is core to the integrations system. The system must support:
- Connection flow (OAuth, API keys, etc.)
- An API so that API users can implement connection flow handling
- Determining when credentials have expired (where possible)
- Notifying API users when credentials are expired or about to expire
Further, several hooks must be in place around credentials events. For example, updating credentials must provide a hook to retry paused submission transactions and failed submission transactions.
Integration Configuration
Returns integration configuration in generic form, where configuration is:
- Available forms, fields, and other third-party assets
- Abstraction of those form fields (validation, type information, etc.)
- Mapping of those fields to concrete fields relevant to that provider
- State of the configuration:
- Global state
- Per-user state
- Hooks on state change
- Available provider list, which could include "duplicate" provider offerings
- A single user may connect with one provider multiple times
- We may offer multiple provider implementations for the same provider
Form Submission Handler
The form submission handler is the endpoint that public-facing forms will send data to. A few notes on that handler:
- Plain HTML form endpoint
- Redirects user to "thank you" page
- That destination page should be specified in the form submission, like
?next={url}for example - The destination should be specified as the
Locationheader
- That destination page should be specified in the form submission, like
- Supports triggers around the submission event
- When the form is submitted, Hydra will store that form data as a generic submission so that it can always be rendered to a target provider from its lossless, canonical form
- This submission event may also create the initial optin transaction(s), but this may not always be the case. For example, if the credentials for use in creating the transaction having been marked as expired or invalid, the transaction may not be created at all.
Integration Routing
The integration routing is concerned with sending a fully-rendered transaction to certain agents based on a list of tags that resolve to that agent's endpoints.
Routing tags are associated with the transaction. The transaction itself is generic and is separate from the actual submission event. The submission can always be rendered into a new transaction, tagged and sent to the integration router to be processed.
Agents
Agents are the long-running, provider-specific handlers of completely rendered submissions.
- Agents have queues and can retry on transitory failures.
- Agents must notify Hydra regarding transactions that it considers to have encountered a hard failure. This is so Hydra can mark that user's integration to that provider as failing, or short-circuit further transactions, or notify the user, or a combination of some or all of these.
- Agents must hook back to Hydra on:
- Hard optin failure
- Soft optin failure that it escalates into a hard failure
- Success, to update the transaction record
Configuration
This section is incomplete.
Requirements:
- Returning the list of forms as a push to Hydra
- Telling Hydra that some configuration has expired
Optin Replay
This section is incomplete.
Concepts
Hydra, and the integrations ecosystem, use some heavier concepts to provide clarity and flexibility to the complex environment of form handling. The most core concepts are broken down here.
Fields and Field Groups
Fields are single inputs, like a text box or a check box. They may be useful on their own, but most forms are not composed of a single text box. To aid in organizing what may be a complex hierarchy of form fields, we use the idea of "field groups" to organize and group fields. Imagine a form like the following:
Volunteer Signup
- Name
- Do you prefer weekdays or weekends?
- Weekdays
- Which days?
- Weekends
- Both
- Which days?
- Weekdays
This form is not as simple as you might think; it is not apparent whether a first and last name is expected, or just a single free-form name; the email address may or may not need validation, and there are dependencies in the volunteer preferences. We can rearrange this form to use field groups instead, and it will become clearer how having reusable field groups can be useful.
Volunteer Signup
FieldGroup(Form, [
Field(Name),
Field(Email),
FieldGroup(Weekdays, [
Field(All),
FieldGroup(Days, [
Field(Monday),
Field(Tuesday),
Field(Wednesday),
Field(Thursday),
Field(Friday),
])
]),
Field(Weekends)
]
Structured this way, in reusable blocks, we could imagine rules like "if the user chooses All Weekdays, don't show or submit the Days FieldGroup."