Portal API
- Base URL:
https://customer-portal-api.sls.epilot.io - API Docs: https://docs.epilot.io/api/customer-portal
Backend for epilot portals - End Customer Portal & Installer Portal
Quick Startโ
# List available operations
epilot customer-portal
# Call an operation
epilot customer-portal upsertPortal -p origin=example
Common Flagsโ
| Flag | Description |
|---|---|
-p key=value | Set a named parameter |
-d '{...}' | Request body JSON |
-H 'Key: Value' | Custom header |
-t, --token <token> | Bearer token for authentication |
--profile <name> | Use a named profile |
-s, --server <url> | Override server base URL |
-i, --include | Include response headers in output |
--json | Output raw JSON (no formatting) |
-v, --verbose | Verbose output (show request details) |
--jsonata <expr> | JSONata expression to transform response |
--definition <file> | Override OpenAPI spec file/URL |
--guided | Prompt for all parameters interactively |
--no-interactive | Disable interactive prompts |
Operationsโ
ECP Admin
upsertPortalโ Upserts the settings for a portal of an organization.getPortalConfigโ Retrieves the portal configuration.deletePortalโ Deletes the portal.getPortalExtensionsโ Retrieves the installed portal extensions.getPortalExtensionsV3โ Retrieves the installed portal extensions.getExternalLinksโ Retrieves the portal configuration external links.getExternalLinksV3โ Retrieves the portal configuration external links.getOrgPortalConfigโ Retrieves the portal configuration for the organization.getOrgPortalConfigV3โ Retrieves the portal configuration for the organization.getAllPortalConfigsโ Retrieves all portal configurations.getEmailTemplatesโ Retrieves the email templates of a portalupsertEmailTemplatesโ Upserts the email templates of a portalgetEmailTemplatesByPortalIdโ Retrieves the email templates of a portal by portal IDupsertEmailTemplatesByPortalIdโ Upserts the email templates of a portal by portal IDgetPortalWidgetsโ Retrieves the widgets of a portalupsertPortalWidgetโ Upsert widget for a portal of an organization.replaceECPTemplateVariablesโ Replaces the template variables of a portalextraPermissionAttributesโ Retrieves the extra permission attributes.validateCaaRecordsโ Validates the CAA records of a portalvalidateCaaRecordsV3โ Validates the CAA records of a portalgetECPContactโ Get the Contact by idgetValidSecondaryAttributesโ Get valid secondary attributes that are used while mapping a contact on registrationresendConfirmationEmailโ Resend confirmation emailfetchPortalUsersByRelatedEntityโ Get all users for a given entitygetRecipientsToNotifyOnAutomationโ Get recipients to notify on automationconfigureDistributionโ Configure the distribution for the portal's custom domainconfigureDistributionV3โ Configure the distribution for the portal's custom domaingetEntityIdentifiersโ Retrieve a list of entity identifiers used for entity search by portal users.savePortalFilesโ Add files to portalgetRegistrationIdentifiersโ Get valid attributes from entities that can be used as identifier to map contact to user on registrationloginToPortalAsUserโ Generate a token to log in to a portal impersonating a users.canTriggerPortalFlowโ Returns whether the user can trigger a portal flowupdatePortalPageโ Update a portal page by iddeletePortalPageโ Delete a portal page by idcreatePortalPageโ Create a new portal pagegetDefaultPagesโ Fetch all default portal pagescreatePortalPageBlockโ Create a new portal page blockupdatePortalPageBlockโ Update a portal page block by iddeletePortalPageBlockโ Delete a portal page block by idcreatePortalConfigโ Creates a new portal configuration.getPortalConfigV3โ Retrieves a specific portal configuration by ID.putPortalConfigโ Updates a specific portal configuration by ID.deletePortalConfigโ Deletes a specific portal configuration by ID.listAllPortalConfigsโ Retrieves all portal configurations.swapPortalConfigโ Swaps the portal configuration of two portals.
Public
createUserโ Registers a portal usercreateUserV3โ Registers a portal user with portal idgetPortalConfigByDomainโ Retrieves the portal configuration by domain.getPublicPortalExtensionDetailsโ Get public extension details shown to end customers and configuring users.getPublicPortalExtensionDetailsV3โ Get public extension details shown to end customers and configuring users.getPublicPortalConfigโ Retrieves the public portal configuration.getPublicPortalConfigV3โ Retrieves the public portal configuration.getPublicPortalWidgetsโ Retrieves the public widgets of a portalgetSchemasByDomainโ Retrieves schemas by domain. Only schemas and attributes used on public pages are returned.getOrganizationSettingsByDomainโ Retrieves organization settings by domain. Only public organization settings are returned.checkContactExistsโ True if contact with given identifiers exists.checkContactExistsV3โ True if contact with given identifiers exists.confirmUserโ Confirm a portal userconfirmUserWithUserIdโ Confirm a portal useruserExistsโ Checks whether a user exists in the portaluserExistsV3โ Checks whether a user exists in the portalssoRedirectโ Handles the redirect from the external SSO provider. Validates the authorizationcodeandstatereceived from the prssoCallbackโ Handles the callback from the external SSO provider, validates the authorizationcodegetPublicPagesโ Fetch all public portal pagesgetUserEntryPointโ Get the entry point for the userdeRegisterMLoginUserโ Deregisters a user from the M Login clientnotifyMLoginInterestChangeโ Notifies the interest change of a user in the M Login client
ECP
validateTokenโ Validates Portal Token is valid. Pass the token via Authorization Header.revokeTokenโ Revokes all of the access tokens for the given Refresh Token.getConsumptionโ Get energy consumption data between a given time period.getCostsโ Get energy cost data between a given time period.getPricesโ Get energy prices data between a given time period.getResolvedSeamlessLinkโ Retrieves a resolved seamless portal link.getSchemasโ Retrieves the schemas. Only schemas usable in the private part of the portal are returned.getContactโ Retrieves the contact of the logged in user.updateContactโ Updates the contact details.getPortalUserโ Get the portal user detailsupdatePortalUserโ Update the portal user detailsdeletePortalUserโ Delete the portal userupdatePortalUserEmailโ Update portal user emailgetAllOrdersโ Get all orders for the portal userpostOrderAcceptanceโ Accept/decline an offer by idgetOrderโ Get an order by idupdateOrderโ Update an order by idgetAllOpportunitiesโ Get all opportunities of a portal usergetSearchableAttributesForOpportunitiesโ Get all opportunity searchable attributes for a portal usergetSearchResultsForOpportunitiesโ Get all opportunity with the given serached attributesgetOpportunityโ Get an opportunity by idupdateOpportunityโ Update an opportunity by idgetAllRequestsโ Get all opportunities & orders of a portal usergetAllContractsโ Get all contracts for a portal usergetContractโ Get a contract by idupdateContractโ Update a contract by idaddContractByIdentifiersโ Self-assign contract(s) by pre-configured identifiers.validateCadenceEntityEditRulesโ Validate if cadence rule is valid for an entitysearchPaymentRelationsInEntitiesโ Search for entities that have the payment relation with the given payment idcreateCustomEntityActivityโ Create a custom activity that can be displayed in activity feed of an entity.saveEntityFileโ Add files to an entitydeleteEntityFileโ Delete files from an entitygetFileByIdโ Fetch a document with IDtrackFileDownloadedโ Track that user has downloaded a filegetBillingEventsโ Fetch billing events for a portal usertriggerEntityAccessEventโ Trigger entity access event for a portal usertriggerEntityAccessEventV3โ Trigger entity access event for a portal usergetPortalUserEntityโ Get a single entity for a portal usersearchPortalUserEntitiesโ Search all entities of a portal usergetAutomationContextโ Retrieves the automation context.updateWorkflowStepAsDoneโ Update a workflow step as donegetEntityWorkflowsโ Get all workflows associated with an entity (requires access to the entity)uploadMeterReadingPhotoโ Uploads a Meter Reading photo and - if enabled - gives back data extracted from the photo.createMeterReadingโ Inserts a new meter reading.getAllowedMeterReadingRangeโ Get allowed reading range for all counters of a meter from the configuredgetPortalPageโ Fetch a portal page by idgetPortalPagesโ Fetch all portal pagesgetPortalPageBlocksโ Fetch all portal page blocksgetPortalPageBlockโ Fetch a portal page block by idupdateCampaignPortalBlockStatusโ Updates the status of a campaign portal block for multiple recipients.updateNotificationsStatusโ Updates the statuses of multiple notifications at once.invitePartnerโ Invites a partner to a portallistBusinessPartnersโ Lists all business partners linked to the businessaccountresendPartnerInvitationโ Resends an invitation email to a partnerrevokePartnerโ Revokes a partner from a portaldisablePartnerโ Disables a partner from a portalenablePartnerโ Enables a partner from a portal
Activity
getEntityActivityFeedโ Get activity feed for an entity
Balance
getCustomerBalanceโ Get total balance across all contracts and orders of a customer entity.
Billing Accounts
getBillingAccountโ Get a billing account by id.
Login
ssoLoginโ Initiate login using external SSO identity.ssoLoginV3โ Initiate login using external SSO identity.
upsertPortalโ
Upserts the settings for a portal of an organization.
POST /v2/portal/portal
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
origin | query | string | Yes | Origin of the portal |
portal_id | query | string | No | Portal ID |
Request Body (required)
Sample Call
epilot customer-portal upsertPortal \
-p origin=example
With request body:
epilot customer-portal upsertPortal \
-p origin=example \
-d '{
"entity_actions": [
{
"journey_id": "5da0a718-c822-403d-9f5d-20d4584e0528",
"slug": "contact",
"action_Label": {}
}
],
"extensions": [
{
"id": "string",
"status": "installed",
"options": {}
}
],
"extension_hooks": {},
"default_user_to_notify": {
"onPendingUser": [
{}
]
},
"enabled": true,
"name": "Installer Portal",
"domain": "abc.com",
"is_epilot_domain": true,
"epilot_domain": "example-portal-12345.ecp.epilot.cloud",
"domain_settings": {
"is_custom_domain_enabled": true,
"is_epilot_domain_enabled": true,
"is_redirection_enabled": true
},
"design_id": "5da0a718-c822-403d-9f5d-20d4584e0528",
"self_registration_setting": "ALLOW_WITH_CONTACT_CREATION",
"user_account_self_management": false,
"feature_settings": {
"start_page": true,
"billing": true,
"change_due_date": true,
"new_design": true
},
"accessToken": "string",
"advanced_mfa": {
"enabled": true
},
"auth_settings": {
"passwordless_login": {
"enabled": true
},
"entry_point": "PASSWORD",
"preferred_sso_providers": ["office-365-login"],
"auto_redirect_to_sso": true
},
"cognito_details": {
"cognito_user_pool_client_id": "6bsd0jkgoie74k2i8mrhc1vest",
"cognito_user_pool_arn": "arn:aws:cognito-idp:us-east-1:123412341234:userpool/us-east-1_123412341",
"cognito_user_pool_id": "eu-central-1_CUEQRNbUb",
"password_policy": {
"minimum_length": 8,
"maximum_length": 256,
"require_lowercase": true,
"require_uppercase": true,
"require_numbers": true,
"require_symbols": true
}
},
"config": "string",
"contact_identifiers": ["email", "last_name"],
"approval_state_attributes": {
"contact": ["name", "address"],
"contract": ["installment_amount"]
},
"email_templates": {
"confirmAccount": "5da0a718-c822-403d-9f5d-20d4584e0528",
"advancedAuth": "5da0a718-c822-403d-9f5d-20d4584e0528",
"advancedMFA": "5da0a718-c822-403d-9f5d-20d4584e0528",
"journeySignUp": "5da0a718-c822-403d-9f5d-20d4584e0528",
"journeySignInOneTimePassword": "5da0a718-c822-403d-9f5d-20d4584e0528",
"journeyLoginOTP": "5da0a718-c822-403d-9f5d-20d4584e0528",
"forgotPassword": "5da0a718-c822-403d-9f5d-20d4584e0528",
"invitation": "5da0a718-c822-403d-9f5d-20d4584e0528",
"partnerInvitation": "5da0a718-c822-403d-9f5d-20d4584e0528",
"onNewQuote": "5da0a718-c822-403d-9f5d-20d4584e0528",
"onMapAPendingUser": "5da0a718-c822-403d-9f5d-20d4584e0528",
"onDocUpload": "5da0a718-c822-403d-9f5d-20d4584e0528",
"onWorkflowStepAssigned": "5da0a718-c822-403d-9f5d-20d4584e0528",
"confirmEmailUpdate": "5da0a718-c822-403d-9f5d-20d4584e0528",
"verifyCodeToSetPassword": "5da0a718-c822-403d-9f5d-20d4584e0528"
},
"images": {
"orderLeftTeaser": "https://epilot-bucket.s3.eu-central-1.amazonaws.com/12344/6538fddb-f0e9-4f0f-af51-6e57891ff20a/order-left-teaser.jpeg",
"orderRightTeaser": "https://epilot-bucket.s3.eu-central-1.amazonaws.com/12344/6538fddb-f0e9-4f0f-af51-6e57891ff20a/order-right-teaser.jpeg",
"welcomeBanner": "https://epilot-bucket.s3.eu-central-1.amazonaws.com/12344/6538fddb-f0e9-4f0f-af51-6e57891ff20a/welcome-banner.jpeg"
},
"entity_identifiers": {
"type": {
"isEnabled": true,
"attributes": ["contract_number"]
}
},
"contract_identifiers": [
{
"name": "email",
"schema": "contact"
},
{
"name": "last_name",
"schema": "contact"
}
],
"contract_selector_config": {
"show_inactive": true,
"title_path": "string"
},
"registration_identifiers": [
{
"name": "last_name",
"schema": "contact"
},
{
"name": "contract_number",
"schema": "contract"
}
],
"triggered_journeys": [
{
"trigger_name": "FIRST_LOGIN",
"journey_id": "5da0a718-c822-403d-9f5d-20d4584e0528"
}
],
"entity_edit_rules": [
{
"slug": "contact",
"attribute": "first_name",
"rule_type": "cadence",
"cadence_period_type": "days",
"cadence_period": 1,
"changes_allowed": 1,
"grace_period": 1,
"allowed_increment": "10%",
"allowed_decrement": "10%",
"number_of_days_before_restriction": 10
}
],
"allowed_file_extensions": {
"document": ["pdf"],
"image": ["jpg"],
"spreadsheet": ["xls"],
"presentation": ["ppt"],
"audioVideo": ["mp4"],
"email": ["eml"],
"archive": ["zip"],
"cad": ["cad"],
"calendar": ["ics"],
"other": ["txt"]
},
"prevent_search_engine_indexing": true,
"meter_reading_grace_period": 0,
"inactive_contract_cutoff_years": 0,
"is_dummy": true,
"is_v3_item": true,
"portal_id": "453ad7bf-86d5-46c8-8252-bcc868df5e3c",
"portal_sk_v3": "PORTAL_CONFIG#453ad7bf-86d5-46c8-8252-bcc868df5e3c",
"origin": "string",
"pages": {}
}'
Using stdin pipe:
cat body.json | epilot customer-portal upsertPortal -p origin=example
With JSONata filter:
epilot customer-portal upsertPortal -p origin=example --jsonata '$'
Sample Response
{
"enabled": true,
"name": "Installer Portal",
"domain": "abc.com",
"is_epilot_domain": true,
"epilot_domain": "example-portal-12345.ecp.epilot.cloud",
"domain_settings": {
"is_custom_domain_enabled": true,
"is_epilot_domain_enabled": true,
"is_redirection_enabled": true
},
"design_id": "5da0a718-c822-403d-9f5d-20d4584e0528",
"self_registration_setting": "ALLOW_WITH_CONTACT_CREATION",
"user_account_self_management": false,
"feature_settings": {
"start_page": true,
"billing": true,
"change_due_date": true,
"new_design": true
},
"accessToken": "string",
"advanced_mfa": {
"enabled": true
},
"auth_settings": {
"passwordless_login": {
"enabled": true
},
"entry_point": "PASSWORD",
"preferred_sso_providers": ["office-365-login"],
"auto_redirect_to_sso": true
},
"cognito_details": {
"cognito_user_pool_client_id": "6bsd0jkgoie74k2i8mrhc1vest",
"cognito_user_pool_arn": "arn:aws:cognito-idp:us-east-1:123412341234:userpool/us-east-1_123412341",
"cognito_user_pool_id": "eu-central-1_CUEQRNbUb",
"password_policy": {
"minimum_length": 8,
"maximum_length": 256,
"require_lowercase": true,
"require_uppercase": true,
"require_numbers": true,
"require_symbols": true
}
},
"config": "string",
"contact_identifiers": ["email", "last_name"],
"approval_state_attributes": {
"contact": ["name", "address"],
"contract": ["installment_amount"]
},
"email_templates": {
"confirmAccount": "5da0a718-c822-403d-9f5d-20d4584e0528",
"advancedAuth": "5da0a718-c822-403d-9f5d-20d4584e0528",
"advancedMFA": "5da0a718-c822-403d-9f5d-20d4584e0528",
"journeySignUp": "5da0a718-c822-403d-9f5d-20d4584e0528",
"journeySignInOneTimePassword": "5da0a718-c822-403d-9f5d-20d4584e0528",
"journeyLoginOTP": "5da0a718-c822-403d-9f5d-20d4584e0528",
"forgotPassword": "5da0a718-c822-403d-9f5d-20d4584e0528",
"invitation": "5da0a718-c822-403d-9f5d-20d4584e0528",
"partnerInvitation": "5da0a718-c822-403d-9f5d-20d4584e0528",
"onNewQuote": "5da0a718-c822-403d-9f5d-20d4584e0528",
"onMapAPendingUser": "5da0a718-c822-403d-9f5d-20d4584e0528",
"onDocUpload": "5da0a718-c822-403d-9f5d-20d4584e0528",
"onWorkflowStepAssigned": "5da0a718-c822-403d-9f5d-20d4584e0528",
"confirmEmailUpdate": "5da0a718-c822-403d-9f5d-20d4584e0528",
"verifyCodeToSetPassword": "5da0a718-c822-403d-9f5d-20d4584e0528"
},
"images": {
"orderLeftTeaser": "https://epilot-bucket.s3.eu-central-1.amazonaws.com/12344/6538fddb-f0e9-4f0f-af51-6e57891ff20a/order-left-teaser.jpeg",
"orderRightTeaser": "https://epilot-bucket.s3.eu-central-1.amazonaws.com/12344/6538fddb-f0e9-4f0f-af51-6e57891ff20a/order-right-teaser.jpeg",
"welcomeBanner": "https://epilot-bucket.s3.eu-central-1.amazonaws.com/12344/6538fddb-f0e9-4f0f-af51-6e57891ff20a/welcome-banner.jpeg"
},
"entity_identifiers": {
"type": {
"isEnabled": true,
"attributes": ["contract_number"]
}
},
"contract_identifiers": [
{
"name": "email",
"schema": "contact"
},
{
"name": "last_name",
"schema": "contact"
}
],
"contract_selector_config": {
"show_inactive": true,
"title_path": "string"
},
"registration_identifiers": [
{
"name": "last_name",
"schema": "contact"
},
{
"name": "contract_number",
"schema": "contract"
}
],
"triggered_journeys": [
{
"trigger_name": "FIRST_LOGIN",
"journey_id": "5da0a718-c822-403d-9f5d-20d4584e0528"
}
],
"entity_edit_rules": [
{
"slug": "contact",
"attribute": "first_name",
"rule_type": "cadence",
"cadence_period_type": "days",
"cadence_period": 1,
"changes_allowed": 1,
"grace_period": 1,
"allowed_increment": "10%",
"allowed_decrement": "10%",
"number_of_days_before_restriction": 10
}
],
"allowed_file_extensions": {
"document": ["pdf"],
"image": ["jpg"],
"spreadsheet": ["xls"],
"presentation": ["ppt"],
"audioVideo": ["mp4"],
"email": ["eml"],
"archive": ["zip"],
"cad": ["cad"],
"calendar": ["ics"],
"other": ["txt"]
},
"prevent_search_engine_indexing": true,
"meter_reading_grace_period": 0,
"inactive_contract_cutoff_years": 0,
"is_dummy": true,
"is_v3_item": true,
"portal_id": "453ad7bf-86d5-46c8-8252-bcc868df5e3c",
"portal_sk_v3": "PORTAL_CONFIG#453ad7bf-86d5-46c8-8252-bcc868df5e3c",
"origin": "string",
"pages": {},
"id": 12345,
"organization_id": 12345,
"org_settings": {
"canary": {
"enabled": true
},
"notracking": {
"enabled": true
}
},
"feature_flags": {},
"grants": [
{
"action": "entity-read",
"resource": "entity:123:contact:f7c22299-ca72-4bca-8538-0a88eeefc947",
"effect": "allow"
}
],
"identity_providers": [
{
"slug": "office-365-login",
"display_name": "Office 365 Login",
"oidc_config": {},
"mobile_oidc_config": {}
}
]
}
createUserโ
Registers a portal user
POST /v2/portal/public/user
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
origin | query | string | Yes | Origin of the portal |
Request Body (required)
Sample Call
epilot customer-portal createUser \
-p origin=example
With request body:
epilot customer-portal createUser \
-p origin=example \
-d '{
"email": "testemail921@yopmail.com",
"first_name": "John",
"last_name": "Doe",
"contactId": "5da0a718-c822-403d-9f5d-20d4584e0528",
"orgId": 728,
"password": "124n$aAJs*d41h4",
"contactIdentifiers": {},
"registration_identifiers": {
"contact": {
"email": "john.doe@example.com"
},
"contract": {
"contract_number": "123456"
}
},
"account_id": "string"
}'
Using stdin pipe:
cat body.json | epilot customer-portal createUser -p origin=example
With JSONata filter:
epilot customer-portal createUser -p origin=example --jsonata 'message'
Sample Response
{
"message": "User created successfully"
}
createUserV3โ
Registers a portal user with portal id
POST /v3/portal/public/user
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
portal_id | query | string | Yes | Origin of the portal |
Request Body (required)
Sample Call
epilot customer-portal createUserV3 \
-p portal_id=453ad7bf-86d5-46c8-8252-bcc868df5e3c
With request body:
epilot customer-portal createUserV3 \
-p portal_id=453ad7bf-86d5-46c8-8252-bcc868df5e3c \
-d '{
"email": "testemail921@yopmail.com",
"first_name": "John",
"last_name": "Doe",
"contactId": "5da0a718-c822-403d-9f5d-20d4584e0528",
"orgId": 728,
"password": "124n$aAJs*d41h4",
"contactIdentifiers": {},
"registration_identifiers": {
"contact": {
"email": "john.doe@example.com"
},
"contract": {
"contract_number": "123456"
}
},
"account_id": "string"
}'
Using stdin pipe:
cat body.json | epilot customer-portal createUserV3 -p portal_id=453ad7bf-86d5-46c8-8252-bcc868df5e3c
With JSONata filter:
epilot customer-portal createUserV3 -p portal_id=453ad7bf-86d5-46c8-8252-bcc868df5e3c --jsonata 'message'
Sample Response
{
"message": "User created successfully"
}
validateTokenโ
Validates Portal Token is valid. Pass the token via Authorization Header.
POST /v2/portal/token/validate
Sample Call
epilot customer-portal validateToken
With JSONata filter:
epilot customer-portal validateToken --jsonata '$'
revokeTokenโ
Revokes all of the access tokens for the given Refresh Token.
POST /v2/portal/token/revoke
Request Body (required)
Sample Call
epilot customer-portal revokeToken
With request body:
epilot customer-portal revokeToken \
-d '{
"refresh_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c"
}'
Using stdin pipe:
cat body.json | epilot customer-portal revokeToken
With JSONata filter:
epilot customer-portal revokeToken --jsonata 'message'
Sample Response
{
"message": "Token revoked successfully"
}
getPortalConfigByDomainโ
Retrieves the portal configuration by domain.
GET /v2/portal/public/config
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
domain | query | string | Yes |
Sample Call
epilot customer-portal getPortalConfigByDomain \
-p domain=example.com
With JSONata filter:
epilot customer-portal getPortalConfigByDomain -p domain=example.com --jsonata '$'
Sample Response
{
"enabled": true,
"name": "Installer Portal",
"domain": "abc.com",
"is_epilot_domain": true,
"epilot_domain": "example-portal-12345.ecp.epilot.cloud",
"domain_settings": {
"is_custom_domain_enabled": true,
"is_epilot_domain_enabled": true,
"is_redirection_enabled": true
},
"design_id": "5da0a718-c822-403d-9f5d-20d4584e0528",
"self_registration_setting": "ALLOW_WITH_CONTACT_CREATION",
"user_account_self_management": false,
"feature_settings": {
"start_page": true,
"billing": true,
"change_due_date": true,
"new_design": true
},
"accessToken": "string",
"advanced_mfa": {
"enabled": true
},
"auth_settings": {
"passwordless_login": {
"enabled": true
},
"entry_point": "PASSWORD",
"preferred_sso_providers": ["office-365-login"],
"auto_redirect_to_sso": true
},
"cognito_details": {
"cognito_user_pool_client_id": "6bsd0jkgoie74k2i8mrhc1vest",
"cognito_user_pool_arn": "arn:aws:cognito-idp:us-east-1:123412341234:userpool/us-east-1_123412341",
"cognito_user_pool_id": "eu-central-1_CUEQRNbUb",
"password_policy": {
"minimum_length": 8,
"maximum_length": 256,
"require_lowercase": true,
"require_uppercase": true,
"require_numbers": true,
"require_symbols": true
}
},
"config": "string",
"contact_identifiers": ["email", "last_name"],
"approval_state_attributes": {
"contact": ["name", "address"],
"contract": ["installment_amount"]
},
"email_templates": {
"confirmAccount": "5da0a718-c822-403d-9f5d-20d4584e0528",
"advancedAuth": "5da0a718-c822-403d-9f5d-20d4584e0528",
"advancedMFA": "5da0a718-c822-403d-9f5d-20d4584e0528",
"journeySignUp": "5da0a718-c822-403d-9f5d-20d4584e0528",
"journeySignInOneTimePassword": "5da0a718-c822-403d-9f5d-20d4584e0528",
"journeyLoginOTP": "5da0a718-c822-403d-9f5d-20d4584e0528",
"forgotPassword": "5da0a718-c822-403d-9f5d-20d4584e0528",
"invitation": "5da0a718-c822-403d-9f5d-20d4584e0528",
"partnerInvitation": "5da0a718-c822-403d-9f5d-20d4584e0528",
"onNewQuote": "5da0a718-c822-403d-9f5d-20d4584e0528",
"onMapAPendingUser": "5da0a718-c822-403d-9f5d-20d4584e0528",
"onDocUpload": "5da0a718-c822-403d-9f5d-20d4584e0528",
"onWorkflowStepAssigned": "5da0a718-c822-403d-9f5d-20d4584e0528",
"confirmEmailUpdate": "5da0a718-c822-403d-9f5d-20d4584e0528",
"verifyCodeToSetPassword": "5da0a718-c822-403d-9f5d-20d4584e0528"
},
"images": {
"orderLeftTeaser": "https://epilot-bucket.s3.eu-central-1.amazonaws.com/12344/6538fddb-f0e9-4f0f-af51-6e57891ff20a/order-left-teaser.jpeg",
"orderRightTeaser": "https://epilot-bucket.s3.eu-central-1.amazonaws.com/12344/6538fddb-f0e9-4f0f-af51-6e57891ff20a/order-right-teaser.jpeg",
"welcomeBanner": "https://epilot-bucket.s3.eu-central-1.amazonaws.com/12344/6538fddb-f0e9-4f0f-af51-6e57891ff20a/welcome-banner.jpeg"
},
"entity_identifiers": {
"type": {
"isEnabled": true,
"attributes": ["contract_number"]
}
},
"contract_identifiers": [
{
"name": "email",
"schema": "contact"
},
{
"name": "last_name",
"schema": "contact"
}
],
"contract_selector_config": {
"show_inactive": true,
"title_path": "string"
},
"registration_identifiers": [
{
"name": "last_name",
"schema": "contact"
},
{
"name": "contract_number",
"schema": "contract"
}
],
"triggered_journeys": [
{
"trigger_name": "FIRST_LOGIN",
"journey_id": "5da0a718-c822-403d-9f5d-20d4584e0528"
}
],
"entity_edit_rules": [
{
"slug": "contact",
"attribute": "first_name",
"rule_type": "cadence",
"cadence_period_type": "days",
"cadence_period": 1,
"changes_allowed": 1,
"grace_period": 1,
"allowed_increment": "10%",
"allowed_decrement": "10%",
"number_of_days_before_restriction": 10
}
],
"allowed_file_extensions": {
"document": ["pdf"],
"image": ["jpg"],
"spreadsheet": ["xls"],
"presentation": ["ppt"],
"audioVideo": ["mp4"],
"email": ["eml"],
"archive": ["zip"],
"cad": ["cad"],
"calendar": ["ics"],
"other": ["txt"]
},
"prevent_search_engine_indexing": true,
"meter_reading_grace_period": 0,
"inactive_contract_cutoff_years": 0,
"is_dummy": true,
"is_v3_item": true,
"portal_id": "453ad7bf-86d5-46c8-8252-bcc868df5e3c",
"portal_sk_v3": "PORTAL_CONFIG#453ad7bf-86d5-46c8-8252-bcc868df5e3c",
"origin": "string",
"pages": {},
"id": 12345,
"organization_id": 12345,
"org_settings": {
"canary": {
"enabled": true
},
"notracking": {
"enabled": true
}
},
"feature_flags": {},
"grants": [
{
"action": "entity-read",
"resource": "entity:123:contact:f7c22299-ca72-4bca-8538-0a88eeefc947",
"effect": "allow"
}
],
"identity_providers": [
{
"slug": "office-365-login",
"display_name": "Office 365 Login",
"oidc_config": {},
"mobile_oidc_config": {}
}
]
}
getPortalConfigโ
Retrieves the portal configuration.
GET /v2/portal/config
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
origin | query | string | No | Origin of the portal |
Sample Call
epilot customer-portal getPortalConfig
With JSONata filter:
epilot customer-portal getPortalConfig --jsonata '$'
Sample Response
{
"enabled": true,
"name": "Installer Portal",
"domain": "abc.com",
"is_epilot_domain": true,
"epilot_domain": "example-portal-12345.ecp.epilot.cloud",
"domain_settings": {
"is_custom_domain_enabled": true,
"is_epilot_domain_enabled": true,
"is_redirection_enabled": true
},
"design_id": "5da0a718-c822-403d-9f5d-20d4584e0528",
"self_registration_setting": "ALLOW_WITH_CONTACT_CREATION",
"user_account_self_management": false,
"feature_settings": {
"start_page": true,
"billing": true,
"change_due_date": true,
"new_design": true
},
"accessToken": "string",
"advanced_mfa": {
"enabled": true
},
"auth_settings": {
"passwordless_login": {
"enabled": true
},
"entry_point": "PASSWORD",
"preferred_sso_providers": ["office-365-login"],
"auto_redirect_to_sso": true
},
"cognito_details": {
"cognito_user_pool_client_id": "6bsd0jkgoie74k2i8mrhc1vest",
"cognito_user_pool_arn": "arn:aws:cognito-idp:us-east-1:123412341234:userpool/us-east-1_123412341",
"cognito_user_pool_id": "eu-central-1_CUEQRNbUb",
"password_policy": {
"minimum_length": 8,
"maximum_length": 256,
"require_lowercase": true,
"require_uppercase": true,
"require_numbers": true,
"require_symbols": true
}
},
"config": "string",
"contact_identifiers": ["email", "last_name"],
"approval_state_attributes": {
"contact": ["name", "address"],
"contract": ["installment_amount"]
},
"email_templates": {
"confirmAccount": "5da0a718-c822-403d-9f5d-20d4584e0528",
"advancedAuth": "5da0a718-c822-403d-9f5d-20d4584e0528",
"advancedMFA": "5da0a718-c822-403d-9f5d-20d4584e0528",
"journeySignUp": "5da0a718-c822-403d-9f5d-20d4584e0528",
"journeySignInOneTimePassword": "5da0a718-c822-403d-9f5d-20d4584e0528",
"journeyLoginOTP": "5da0a718-c822-403d-9f5d-20d4584e0528",
"forgotPassword": "5da0a718-c822-403d-9f5d-20d4584e0528",
"invitation": "5da0a718-c822-403d-9f5d-20d4584e0528",
"partnerInvitation": "5da0a718-c822-403d-9f5d-20d4584e0528",
"onNewQuote": "5da0a718-c822-403d-9f5d-20d4584e0528",
"onMapAPendingUser": "5da0a718-c822-403d-9f5d-20d4584e0528",
"onDocUpload": "5da0a718-c822-403d-9f5d-20d4584e0528",
"onWorkflowStepAssigned": "5da0a718-c822-403d-9f5d-20d4584e0528",
"confirmEmailUpdate": "5da0a718-c822-403d-9f5d-20d4584e0528",
"verifyCodeToSetPassword": "5da0a718-c822-403d-9f5d-20d4584e0528"
},
"images": {
"orderLeftTeaser": "https://epilot-bucket.s3.eu-central-1.amazonaws.com/12344/6538fddb-f0e9-4f0f-af51-6e57891ff20a/order-left-teaser.jpeg",
"orderRightTeaser": "https://epilot-bucket.s3.eu-central-1.amazonaws.com/12344/6538fddb-f0e9-4f0f-af51-6e57891ff20a/order-right-teaser.jpeg",
"welcomeBanner": "https://epilot-bucket.s3.eu-central-1.amazonaws.com/12344/6538fddb-f0e9-4f0f-af51-6e57891ff20a/welcome-banner.jpeg"
},
"entity_identifiers": {
"type": {
"isEnabled": true,
"attributes": ["contract_number"]
}
},
"contract_identifiers": [
{
"name": "email",
"schema": "contact"
},
{
"name": "last_name",
"schema": "contact"
}
],
"contract_selector_config": {
"show_inactive": true,
"title_path": "string"
},
"registration_identifiers": [
{
"name": "last_name",
"schema": "contact"
},
{
"name": "contract_number",
"schema": "contract"
}
],
"triggered_journeys": [
{
"trigger_name": "FIRST_LOGIN",
"journey_id": "5da0a718-c822-403d-9f5d-20d4584e0528"
}
],
"entity_edit_rules": [
{
"slug": "contact",
"attribute": "first_name",
"rule_type": "cadence",
"cadence_period_type": "days",
"cadence_period": 1,
"changes_allowed": 1,
"grace_period": 1,
"allowed_increment": "10%",
"allowed_decrement": "10%",
"number_of_days_before_restriction": 10
}
],
"allowed_file_extensions": {
"document": ["pdf"],
"image": ["jpg"],
"spreadsheet": ["xls"],
"presentation": ["ppt"],
"audioVideo": ["mp4"],
"email": ["eml"],
"archive": ["zip"],
"cad": ["cad"],
"calendar": ["ics"],
"other": ["txt"]
},
"prevent_search_engine_indexing": true,
"meter_reading_grace_period": 0,
"inactive_contract_cutoff_years": 0,
"is_dummy": true,
"is_v3_item": true,
"portal_id": "453ad7bf-86d5-46c8-8252-bcc868df5e3c",
"portal_sk_v3": "PORTAL_CONFIG#453ad7bf-86d5-46c8-8252-bcc868df5e3c",
"origin": "string",
"pages": {},
"id": 12345,
"organization_id": 12345,
"org_settings": {
"canary": {
"enabled": true
},
"notracking": {
"enabled": true
}
},
"feature_flags": {},
"grants": [
{
"action": "entity-read",
"resource": "entity:123:contact:f7c22299-ca72-4bca-8538-0a88eeefc947",
"effect": "allow"
}
],
"identity_providers": [
{
"slug": "office-365-login",
"display_name": "Office 365 Login",
"oidc_config": {},
"mobile_oidc_config": {}
}
]
}
deletePortalโ
Deletes the portal.
DELETE /v2/portal/config
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
origin | query | string | Yes | Origin of the portal |
Sample Call
epilot customer-portal deletePortal \
-p origin=example
With JSONata filter:
epilot customer-portal deletePortal -p origin=example --jsonata '$'
getPortalExtensionsโ
Retrieves the installed portal extensions.
GET /v2/portal/extensions
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
origin | query | string | No | Origin of the portal |
Sample Call
epilot customer-portal getPortalExtensions
With JSONata filter:
epilot customer-portal getPortalExtensions --jsonata '$'
Sample Response
[
{
"id": "string",
"app_id": "string",
"app_name": "string",
"name": {
"en": "string"
},
"description": {
"en": "string"
},
"version": "string",
"options": [
{}
],
"links": [
{}
],
"hooks": [
{}
]
}
]
getPublicPortalExtensionDetailsโ
Get public extension details shown to end customers and configuring users.
GET /v2/portal/public/extensions
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
org_id | query | string | Yes | |
origin | query | string | Yes | Origin of the portal |
Sample Call
epilot customer-portal getPublicPortalExtensionDetails \
-p org_id=12324 \
-p origin=example
With JSONata filter:
epilot customer-portal getPublicPortalExtensionDetails -p org_id=12324 -p origin=example --jsonata 'consumptionDataRetrieval'
Sample Response
{
"consumptionDataRetrieval": [
{
"extension": {
"id": "string",
"name": {
"en": "string"
}
},
"hook": {
"id": "string",
"name": {
"en": "string"
},
"intervals": ["string"]
}
}
],
"priceDataRetrieval": [
{
"extension": {
"id": "string",
"name": {
"en": "string"
}
},
"hook": {
"id": "string",
"name": {
"en": "string"
},
"intervals": ["string"]
}
}
],
"costDataRetrieval": [
{
"extension": {
"id": "string",
"name": {
"en": "string"
}
},
"hook": {
"id": "string",
"name": {
"en": "string"
},
"intervals": ["string"]
}
}
],
"contractIdentification": {
"extension": {
"id": "string",
"name": {
"en": "string"
}
},
"hook": {
"explanation": {
"en": "This process will give you access to all Contracts kept"
}
}
},
"meterReadingPlausibilityCheck": {
"extension": {
"id": "string",
"name": {
"en": "string"
}
},
"hook": {
"plausibility_mode": "check"
}
}
}
getPortalExtensionsV3โ
Retrieves the installed portal extensions.
GET /v3/portal/extensions
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
portal_id | query | string | Yes | Portal ID |
Sample Call
epilot customer-portal getPortalExtensionsV3 \
-p portal_id=453ad7bf-86d5-46c8-8252-bcc868df5e3c
With JSONata filter:
epilot customer-portal getPortalExtensionsV3 -p portal_id=453ad7bf-86d5-46c8-8252-bcc868df5e3c --jsonata '$'
Sample Response
[
{
"id": "string",
"app_id": "string",
"app_name": "string",
"name": {
"en": "string"
},
"description": {
"en": "string"
},
"version": "string",
"options": [
{}
],
"links": [
{}
],
"hooks": [
{}
]
}
]
getPublicPortalExtensionDetailsV3โ
Get public extension details shown to end customers and configuring users.
GET /v3/portal/public/extensions
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
org_id | query | string | No | Organization ID (required if domain is not provided) |
portal_id | query | string | No | Portal ID (required if domain is not provided) |
domain | query | string | No | Portal domain for identification (alternative to org_id + portal_id) |
Sample Call
epilot customer-portal getPublicPortalExtensionDetailsV3
With JSONata filter:
epilot customer-portal getPublicPortalExtensionDetailsV3 --jsonata 'consumptionDataRetrieval'
Sample Response
{
"consumptionDataRetrieval": [
{
"extension": {
"id": "string",
"name": {
"en": "string"
}
},
"hook": {
"id": "string",
"name": {
"en": "string"
},
"intervals": ["string"]
}
}
],
"priceDataRetrieval": [
{
"extension": {
"id": "string",
"name": {
"en": "string"
}
},
"hook": {
"id": "string",
"name": {
"en": "string"
},
"intervals": ["string"]
}
}
],
"costDataRetrieval": [
{
"extension": {
"id": "string",
"name": {
"en": "string"
}
},
"hook": {
"id": "string",
"name": {
"en": "string"
},
"intervals": ["string"]
}
}
],
"contractIdentification": {
"extension": {
"id": "string",
"name": {
"en": "string"
}
},
"hook": {
"explanation": {
"en": "This process will give you access to all Contracts kept"
}
}
},
"meterReadingPlausibilityCheck": {
"extension": {
"id": "string",
"name": {
"en": "string"
}
},
"hook": {
"plausibility_mode": "check"
}
}
}
getConsumptionโ
Get energy consumption data between a given time period.
GET /v2/portal/consumption
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
app_id | query | string | No | App ID for consumption data. |
extensionId | query | string | Yes | Extension ID for consumption data. |
hookId | query | string | Yes | Hook ID for consumption data. |
meter_id | query | string | No | Meter ID for consumption data. Deprecated - use context_entities instead. |
from | query | string (date-time) | Yes | Start date for consumption data (ISO 8601 format). |
to | query | string (date-time) | Yes | End date for consumption data (ISO 8601 format). |
interval | query | "PT15M" | "PT1H" | "P1D" | "P1M" | Yes | Interval between consumption data points (e.g., PT15M for 15 minutes, PT1H for hourly). Not all intervals have to be supported. |
context_entities | query | object[] | No | Additional entities to include in the context for variable interpolation in the hook. |
Sample Call
epilot customer-portal getConsumption \
-p extensionId=123e4567-e89b-12d3-a456-426614174000 \
-p hookId=123e4567-e89b-12d3-a456-426614174000 \
-p from=example \
-p to=example \
-p interval=example
With JSONata filter:
epilot customer-portal getConsumption -p extensionId=123e4567-e89b-12d3-a456-426614174000 -p hookId=123e4567-e89b-12d3-a456-426614174000 -p from=example -p to=example -p interval=example --jsonata 'consumptions'
Sample Response
{
"consumptions": [
{
"timestamp": "1970-01-01T00:00:00.000Z",
"value": 0,
"type": "string"
}
]
}
getCostsโ
Get energy cost data between a given time period.
GET /v2/portal/costs
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
app_id | query | string | No | App ID for consumption data. |
extensionId | query | string | Yes | Extension ID for cost data. |
hookId | query | string | Yes | Hook ID for cost data. |
meter_id | query | string | No | Meter ID for cost data. Deprecated - use context_entities instead. |
from | query | string (date-time) | Yes | Start date for cost data (ISO 8601 format). |
to | query | string (date-time) | Yes | End date for cost data (ISO 8601 format). |
interval | query | "PT15M" | "PT1H" | "P1D" | "P1M" | Yes | Interval between cost data points (e.g., PT15M for 15 minutes, PT1H for hourly). Not all intervals have to be supported. |
context_entities | query | object[] | No | Additional entities to include in the context for variable interpolation in the hook. |
Sample Call
epilot customer-portal getCosts \
-p extensionId=123e4567-e89b-12d3-a456-426614174000 \
-p hookId=123e4567-e89b-12d3-a456-426614174000 \
-p from=example \
-p to=example \
-p interval=example
With JSONata filter:
epilot customer-portal getCosts -p extensionId=123e4567-e89b-12d3-a456-426614174000 -p hookId=123e4567-e89b-12d3-a456-426614174000 -p from=example -p to=example -p interval=example --jsonata 'costs'
Sample Response
{
"costs": [
{
"timestamp": "1970-01-01T00:00:00.000Z",
"unit_amount": 1234,
"unit_amount_currency": "EUR",
"unit_amount_decimal": "12.34",
"tax_behavior": "exclusive",
"tax_rate": 19
}
]
}
getPricesโ
Get energy prices data between a given time period.
GET /v2/portal/prices
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
app_id | query | string | No | App ID for consumption data. |
extensionId | query | string | Yes | Extension ID for price data. |
hookId | query | string | Yes | Hook ID for price data. |
meter_id | query | string | No | Meter ID for price data. Deprecated - use context_entities instead. |
from | query | string (date-time) | Yes | Start date for price data (ISO 8601 format). |
to | query | string (date-time) | Yes | End date for price data (ISO 8601 format). |
interval | query | "PT15M" | "PT1H" | "P1D" | "P1M" | Yes | Interval between price data points (e.g., PT15M for 15 minutes, PT1H for hourly). Not all intervals have to be supported. |
context_entities | query | object[] | No | Additional entities to include in the context for variable interpolation in the hook. |
Sample Call
epilot customer-portal getPrices \
-p extensionId=123e4567-e89b-12d3-a456-426614174000 \
-p hookId=123e4567-e89b-12d3-a456-426614174000 \
-p from=example \
-p to=example \
-p interval=example
With JSONata filter:
epilot customer-portal getPrices -p extensionId=123e4567-e89b-12d3-a456-426614174000 -p hookId=123e4567-e89b-12d3-a456-426614174000 -p from=example -p to=example -p interval=example --jsonata 'prices'
Sample Response
{
"prices": [
{
"timestamp": "1970-01-01T00:00:00.000Z",
"unit_amount": 1234,
"unit_amount_currency": "EUR",
"unit_amount_decimal": "12.34",
"components": {
"auction_price_amount": 1000,
"auction_price_amount_decimal": "10.00",
"taxes_levies_amount": 50,
"taxes_levies_amount_decimal": "0.50",
"source_fee_amount": 50,
"source_fee_amount_decimal": "0.50",
"grid_fee_amount": 100,
"grid_fee_amount_decimal": "1.00",
"margin_amount": 34,
"margin_amount_decimal": "0.34"
},
"tax_behavior": "exclusive",
"tax_rate": 19
}
]
}
getExternalLinksโ
Retrieves the portal configuration external links.
GET /v2/portal/external-links
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
origin | query | string | No | Origin of the portal |
contactId | query | string (uuid) | No | Contact ID of the user |
Sample Call
epilot customer-portal getExternalLinks
With JSONata filter:
epilot customer-portal getExternalLinks --jsonata '$'
Sample Response
[
{
"id": "string",
"label": {},
"type": "link",
"link": "string",
"rules": [
{}
],
"attribute": "string",
"entity": "string",
"attribute_value": "string",
"icon": {
"name": "string",
"color": "string",
"size": 0
},
"extension_link_id": ["string"]
}
]
getExternalLinksV3โ
Retrieves the portal configuration external links.
GET /v3/portal/external-links
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
portal_id | query | string | No | PortalId of the portal |
contactId | query | string (uuid) | No | Contact ID of the user |
Sample Call
epilot customer-portal getExternalLinksV3
With JSONata filter:
epilot customer-portal getExternalLinksV3 --jsonata '$'
Sample Response
[
{
"id": "string",
"label": {},
"type": "link",
"link": "string",
"rules": [
{}
],
"attribute": "string",
"entity": "string",
"attribute_value": "string",
"icon": {
"name": "string",
"color": "string",
"size": 0
},
"extension_link_id": ["string"]
}
]
getResolvedSeamlessLinkโ
Retrieves a resolved seamless portal link.
GET /v2/portal/resolve:seamless-link
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
app_id | query | string | No | ID of the App if the Portal Extension was installed from an App |
extension_id | query | string | Yes | ID of the Portal Extension |
link_id | query | string | Yes | ID of the Seamless Link |
context_entities | query | object[] | No | If the request is in a context of certain entities (i.e. the user in in a context of a specific contract), links can be customized for that. Portal User and Contact entities are automatically part of |
Sample Call
epilot customer-portal getResolvedSeamlessLink \
-p extension_id=123e4567-e89b-12d3-a456-426614174000 \
-p link_id=123e4567-e89b-12d3-a456-426614174000
With JSONata filter:
epilot customer-portal getResolvedSeamlessLink -p extension_id=123e4567-e89b-12d3-a456-426614174000 -p link_id=123e4567-e89b-12d3-a456-426614174000 --jsonata 'link'
Sample Response
{
"link": "string"
}
getPublicPortalConfigโ
Retrieves the public portal configuration.
GET /v2/portal/public/portal/config
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
org_id | query | string | Yes | |
origin | query | string | Yes | Origin of the portal |
Sample Call
epilot customer-portal getPublicPortalConfig \
-p org_id=12324 \
-p origin=example
With JSONata filter:
epilot customer-portal getPublicPortalConfig -p org_id=12324 -p origin=example --jsonata '$'
Sample Response
{
"enabled": true,
"name": "Installer Portal",
"domain": "abc.com",
"is_epilot_domain": true,
"epilot_domain": "example-portal-12345.ecp.epilot.cloud",
"domain_settings": {
"is_custom_domain_enabled": true,
"is_epilot_domain_enabled": true,
"is_redirection_enabled": true
},
"design_id": "5da0a718-c822-403d-9f5d-20d4584e0528",
"self_registration_setting": "ALLOW_WITH_CONTACT_CREATION",
"user_account_self_management": false,
"feature_settings": {
"start_page": true,
"billing": true,
"change_due_date": true,
"new_design": true
},
"accessToken": "string",
"advanced_mfa": {
"enabled": true
},
"auth_settings": {
"passwordless_login": {
"enabled": true
},
"entry_point": "PASSWORD",
"preferred_sso_providers": ["office-365-login"],
"auto_redirect_to_sso": true
},
"cognito_details": {
"cognito_user_pool_client_id": "6bsd0jkgoie74k2i8mrhc1vest",
"cognito_user_pool_arn": "arn:aws:cognito-idp:us-east-1:123412341234:userpool/us-east-1_123412341",
"cognito_user_pool_id": "eu-central-1_CUEQRNbUb",
"password_policy": {
"minimum_length": 8,
"maximum_length": 256,
"require_lowercase": true,
"require_uppercase": true,
"require_numbers": true,
"require_symbols": true
}
},
"config": "string",
"contact_identifiers": ["email", "last_name"],
"approval_state_attributes": {
"contact": ["name", "address"],
"contract": ["installment_amount"]
},
"email_templates": {
"confirmAccount": "5da0a718-c822-403d-9f5d-20d4584e0528",
"advancedAuth": "5da0a718-c822-403d-9f5d-20d4584e0528",
"advancedMFA": "5da0a718-c822-403d-9f5d-20d4584e0528",
"journeySignUp": "5da0a718-c822-403d-9f5d-20d4584e0528",
"journeySignInOneTimePassword": "5da0a718-c822-403d-9f5d-20d4584e0528",
"journeyLoginOTP": "5da0a718-c822-403d-9f5d-20d4584e0528",
"forgotPassword": "5da0a718-c822-403d-9f5d-20d4584e0528",
"invitation": "5da0a718-c822-403d-9f5d-20d4584e0528",
"partnerInvitation": "5da0a718-c822-403d-9f5d-20d4584e0528",
"onNewQuote": "5da0a718-c822-403d-9f5d-20d4584e0528",
"onMapAPendingUser": "5da0a718-c822-403d-9f5d-20d4584e0528",
"onDocUpload": "5da0a718-c822-403d-9f5d-20d4584e0528",
"onWorkflowStepAssigned": "5da0a718-c822-403d-9f5d-20d4584e0528",
"confirmEmailUpdate": "5da0a718-c822-403d-9f5d-20d4584e0528",
"verifyCodeToSetPassword": "5da0a718-c822-403d-9f5d-20d4584e0528"
},
"images": {
"orderLeftTeaser": "https://epilot-bucket.s3.eu-central-1.amazonaws.com/12344/6538fddb-f0e9-4f0f-af51-6e57891ff20a/order-left-teaser.jpeg",
"orderRightTeaser": "https://epilot-bucket.s3.eu-central-1.amazonaws.com/12344/6538fddb-f0e9-4f0f-af51-6e57891ff20a/order-right-teaser.jpeg",
"welcomeBanner": "https://epilot-bucket.s3.eu-central-1.amazonaws.com/12344/6538fddb-f0e9-4f0f-af51-6e57891ff20a/welcome-banner.jpeg"
},
"entity_identifiers": {
"type": {
"isEnabled": true,
"attributes": ["contract_number"]
}
},
"contract_identifiers": [
{
"name": "email",
"schema": "contact"
},
{
"name": "last_name",
"schema": "contact"
}
],
"contract_selector_config": {
"show_inactive": true,
"title_path": "string"
},
"registration_identifiers": [
{
"name": "last_name",
"schema": "contact"
},
{
"name": "contract_number",
"schema": "contract"
}
],
"triggered_journeys": [
{
"trigger_name": "FIRST_LOGIN",
"journey_id": "5da0a718-c822-403d-9f5d-20d4584e0528"
}
],
"entity_edit_rules": [
{
"slug": "contact",
"attribute": "first_name",
"rule_type": "cadence",
"cadence_period_type": "days",
"cadence_period": 1,
"changes_allowed": 1,
"grace_period": 1,
"allowed_increment": "10%",
"allowed_decrement": "10%",
"number_of_days_before_restriction": 10
}
],
"allowed_file_extensions": {
"document": ["pdf"],
"image": ["jpg"],
"spreadsheet": ["xls"],
"presentation": ["ppt"],
"audioVideo": ["mp4"],
"email": ["eml"],
"archive": ["zip"],
"cad": ["cad"],
"calendar": ["ics"],
"other": ["txt"]
},
"prevent_search_engine_indexing": true,
"meter_reading_grace_period": 0,
"inactive_contract_cutoff_years": 0,
"is_dummy": true,
"is_v3_item": true,
"portal_id": "453ad7bf-86d5-46c8-8252-bcc868df5e3c",
"portal_sk_v3": "PORTAL_CONFIG#453ad7bf-86d5-46c8-8252-bcc868df5e3c",
"origin": "string",
"pages": {},
"id": 12345,
"organization_id": 12345,
"org_settings": {
"canary": {
"enabled": true
},
"notracking": {
"enabled": true
}
},
"feature_flags": {},
"grants": [
{
"action": "entity-read",
"resource": "entity:123:contact:f7c22299-ca72-4bca-8538-0a88eeefc947",
"effect": "allow"
}
],
"identity_providers": [
{
"slug": "office-365-login",
"display_name": "Office 365 Login",
"oidc_config": {},
"mobile_oidc_config": {}
}
]
}
getOrgPortalConfigโ
Retrieves the portal configuration for the organization.
GET /v2/portal/org/portal/config
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
origin | query | string | Yes | Origin of the portal |
Sample Call
epilot customer-portal getOrgPortalConfig \
-p origin=example
With JSONata filter:
epilot customer-portal getOrgPortalConfig -p origin=example --jsonata '$'
Sample Response
{
"enabled": true,
"name": "Installer Portal",
"domain": "abc.com",
"is_epilot_domain": true,
"epilot_domain": "example-portal-12345.ecp.epilot.cloud",
"domain_settings": {
"is_custom_domain_enabled": true,
"is_epilot_domain_enabled": true,
"is_redirection_enabled": true
},
"design_id": "5da0a718-c822-403d-9f5d-20d4584e0528",
"self_registration_setting": "ALLOW_WITH_CONTACT_CREATION",
"user_account_self_management": false,
"feature_settings": {
"start_page": true,
"billing": true,
"change_due_date": true,
"new_design": true
},
"accessToken": "string",
"advanced_mfa": {
"enabled": true
},
"auth_settings": {
"passwordless_login": {
"enabled": true
},
"entry_point": "PASSWORD",
"preferred_sso_providers": ["office-365-login"],
"auto_redirect_to_sso": true
},
"cognito_details": {
"cognito_user_pool_client_id": "6bsd0jkgoie74k2i8mrhc1vest",
"cognito_user_pool_arn": "arn:aws:cognito-idp:us-east-1:123412341234:userpool/us-east-1_123412341",
"cognito_user_pool_id": "eu-central-1_CUEQRNbUb",
"password_policy": {
"minimum_length": 8,
"maximum_length": 256,
"require_lowercase": true,
"require_uppercase": true,
"require_numbers": true,
"require_symbols": true
}
},
"config": "string",
"contact_identifiers": ["email", "last_name"],
"approval_state_attributes": {
"contact": ["name", "address"],
"contract": ["installment_amount"]
},
"email_templates": {
"confirmAccount": "5da0a718-c822-403d-9f5d-20d4584e0528",
"advancedAuth": "5da0a718-c822-403d-9f5d-20d4584e0528",
"advancedMFA": "5da0a718-c822-403d-9f5d-20d4584e0528",
"journeySignUp": "5da0a718-c822-403d-9f5d-20d4584e0528",
"journeySignInOneTimePassword": "5da0a718-c822-403d-9f5d-20d4584e0528",
"journeyLoginOTP": "5da0a718-c822-403d-9f5d-20d4584e0528",
"forgotPassword": "5da0a718-c822-403d-9f5d-20d4584e0528",
"invitation": "5da0a718-c822-403d-9f5d-20d4584e0528",
"partnerInvitation": "5da0a718-c822-403d-9f5d-20d4584e0528",
"onNewQuote": "5da0a718-c822-403d-9f5d-20d4584e0528",
"onMapAPendingUser": "5da0a718-c822-403d-9f5d-20d4584e0528",
"onDocUpload": "5da0a718-c822-403d-9f5d-20d4584e0528",
"onWorkflowStepAssigned": "5da0a718-c822-403d-9f5d-20d4584e0528",
"confirmEmailUpdate": "5da0a718-c822-403d-9f5d-20d4584e0528",
"verifyCodeToSetPassword": "5da0a718-c822-403d-9f5d-20d4584e0528"
},
"images": {
"orderLeftTeaser": "https://epilot-bucket.s3.eu-central-1.amazonaws.com/12344/6538fddb-f0e9-4f0f-af51-6e57891ff20a/order-left-teaser.jpeg",
"orderRightTeaser": "https://epilot-bucket.s3.eu-central-1.amazonaws.com/12344/6538fddb-f0e9-4f0f-af51-6e57891ff20a/order-right-teaser.jpeg",
"welcomeBanner": "https://epilot-bucket.s3.eu-central-1.amazonaws.com/12344/6538fddb-f0e9-4f0f-af51-6e57891ff20a/welcome-banner.jpeg"
},
"entity_identifiers": {
"type": {
"isEnabled": true,
"attributes": ["contract_number"]
}
},
"contract_identifiers": [
{
"name": "email",
"schema": "contact"
},
{
"name": "last_name",
"schema": "contact"
}
],
"contract_selector_config": {
"show_inactive": true,
"title_path": "string"
},
"registration_identifiers": [
{
"name": "last_name",
"schema": "contact"
},
{
"name": "contract_number",
"schema": "contract"
}
],
"triggered_journeys": [
{
"trigger_name": "FIRST_LOGIN",
"journey_id": "5da0a718-c822-403d-9f5d-20d4584e0528"
}
],
"entity_edit_rules": [
{
"slug": "contact",
"attribute": "first_name",
"rule_type": "cadence",
"cadence_period_type": "days",
"cadence_period": 1,
"changes_allowed": 1,
"grace_period": 1,
"allowed_increment": "10%",
"allowed_decrement": "10%",
"number_of_days_before_restriction": 10
}
],
"allowed_file_extensions": {
"document": ["pdf"],
"image": ["jpg"],
"spreadsheet": ["xls"],
"presentation": ["ppt"],
"audioVideo": ["mp4"],
"email": ["eml"],
"archive": ["zip"],
"cad": ["cad"],
"calendar": ["ics"],
"other": ["txt"]
},
"prevent_search_engine_indexing": true,
"meter_reading_grace_period": 0,
"inactive_contract_cutoff_years": 0,
"is_dummy": true,
"is_v3_item": true,
"portal_id": "453ad7bf-86d5-46c8-8252-bcc868df5e3c",
"portal_sk_v3": "PORTAL_CONFIG#453ad7bf-86d5-46c8-8252-bcc868df5e3c",
"origin": "string",
"pages": {},
"id": 12345,
"organization_id": 12345,
"org_settings": {
"canary": {
"enabled": true
},
"notracking": {
"enabled": true
}
},
"feature_flags": {},
"grants": [
{
"action": "entity-read",
"resource": "entity:123:contact:f7c22299-ca72-4bca-8538-0a88eeefc947",
"effect": "allow"
}
],
"identity_providers": [
{
"slug": "office-365-login",
"display_name": "Office 365 Login",
"oidc_config": {},
"mobile_oidc_config": {}
}
],
"certificate_details": {
"status": "PENDING_VALIDATION",
"failed_reason": "CAA_ERROR"
}
}
getPublicPortalConfigV3โ
Retrieves the public portal configuration.
GET /v3/portal/public/portal/config
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
org_id | query | string | Yes | |
portal_id | query | string | Yes | PortalId of the portal |
Sample Call
epilot customer-portal getPublicPortalConfigV3 \
-p org_id=12324 \
-p portal_id=453ad7bf-86d5-46c8-8252-bcc868df5e3c
With JSONata filter:
epilot customer-portal getPublicPortalConfigV3 -p org_id=12324 -p portal_id=453ad7bf-86d5-46c8-8252-bcc868df5e3c --jsonata '$'
Sample Response
{
"enabled": true,
"name": "Installer Portal",
"domain": "abc.com",
"is_epilot_domain": true,
"epilot_domain": "example-portal-12345.ecp.epilot.cloud",
"domain_settings": {
"is_custom_domain_enabled": true,
"is_epilot_domain_enabled": true,
"is_redirection_enabled": true
},
"design_id": "5da0a718-c822-403d-9f5d-20d4584e0528",
"self_registration_setting": "ALLOW_WITH_CONTACT_CREATION",
"user_account_self_management": false,
"feature_settings": {
"start_page": true,
"billing": true,
"change_due_date": true,
"new_design": true
},
"accessToken": "string",
"advanced_mfa": {
"enabled": true
},
"auth_settings": {
"passwordless_login": {
"enabled": true
},
"entry_point": "PASSWORD",
"preferred_sso_providers": ["office-365-login"],
"auto_redirect_to_sso": true
},
"cognito_details": {
"cognito_user_pool_client_id": "6bsd0jkgoie74k2i8mrhc1vest",
"cognito_user_pool_arn": "arn:aws:cognito-idp:us-east-1:123412341234:userpool/us-east-1_123412341",
"cognito_user_pool_id": "eu-central-1_CUEQRNbUb",
"password_policy": {
"minimum_length": 8,
"maximum_length": 256,
"require_lowercase": true,
"require_uppercase": true,
"require_numbers": true,
"require_symbols": true
}
},
"config": "string",
"contact_identifiers": ["email", "last_name"],
"approval_state_attributes": {
"contact": ["name", "address"],
"contract": ["installment_amount"]
},
"email_templates": {
"confirmAccount": "5da0a718-c822-403d-9f5d-20d4584e0528",
"advancedAuth": "5da0a718-c822-403d-9f5d-20d4584e0528",
"advancedMFA": "5da0a718-c822-403d-9f5d-20d4584e0528",
"journeySignUp": "5da0a718-c822-403d-9f5d-20d4584e0528",
"journeySignInOneTimePassword": "5da0a718-c822-403d-9f5d-20d4584e0528",
"journeyLoginOTP": "5da0a718-c822-403d-9f5d-20d4584e0528",
"forgotPassword": "5da0a718-c822-403d-9f5d-20d4584e0528",
"invitation": "5da0a718-c822-403d-9f5d-20d4584e0528",
"partnerInvitation": "5da0a718-c822-403d-9f5d-20d4584e0528",
"onNewQuote": "5da0a718-c822-403d-9f5d-20d4584e0528",
"onMapAPendingUser": "5da0a718-c822-403d-9f5d-20d4584e0528",
"onDocUpload": "5da0a718-c822-403d-9f5d-20d4584e0528",
"onWorkflowStepAssigned": "5da0a718-c822-403d-9f5d-20d4584e0528",
"confirmEmailUpdate": "5da0a718-c822-403d-9f5d-20d4584e0528",
"verifyCodeToSetPassword": "5da0a718-c822-403d-9f5d-20d4584e0528"
},
"images": {
"orderLeftTeaser": "https://epilot-bucket.s3.eu-central-1.amazonaws.com/12344/6538fddb-f0e9-4f0f-af51-6e57891ff20a/order-left-teaser.jpeg",
"orderRightTeaser": "https://epilot-bucket.s3.eu-central-1.amazonaws.com/12344/6538fddb-f0e9-4f0f-af51-6e57891ff20a/order-right-teaser.jpeg",
"welcomeBanner": "https://epilot-bucket.s3.eu-central-1.amazonaws.com/12344/6538fddb-f0e9-4f0f-af51-6e57891ff20a/welcome-banner.jpeg"
},
"entity_identifiers": {
"type": {
"isEnabled": true,
"attributes": ["contract_number"]
}
},
"contract_identifiers": [
{
"name": "email",
"schema": "contact"
},
{
"name": "last_name",
"schema": "contact"
}
],
"contract_selector_config": {
"show_inactive": true,
"title_path": "string"
},
"registration_identifiers": [
{
"name": "last_name",
"schema": "contact"
},
{
"name": "contract_number",
"schema": "contract"
}
],
"triggered_journeys": [
{
"trigger_name": "FIRST_LOGIN",
"journey_id": "5da0a718-c822-403d-9f5d-20d4584e0528"
}
],
"entity_edit_rules": [
{
"slug": "contact",
"attribute": "first_name",
"rule_type": "cadence",
"cadence_period_type": "days",
"cadence_period": 1,
"changes_allowed": 1,
"grace_period": 1,
"allowed_increment": "10%",
"allowed_decrement": "10%",
"number_of_days_before_restriction": 10
}
],
"allowed_file_extensions": {
"document": ["pdf"],
"image": ["jpg"],
"spreadsheet": ["xls"],
"presentation": ["ppt"],
"audioVideo": ["mp4"],
"email": ["eml"],
"archive": ["zip"],
"cad": ["cad"],
"calendar": ["ics"],
"other": ["txt"]
},
"prevent_search_engine_indexing": true,
"meter_reading_grace_period": 0,
"inactive_contract_cutoff_years": 0,
"is_dummy": true,
"is_v3_item": true,
"portal_id": "453ad7bf-86d5-46c8-8252-bcc868df5e3c",
"portal_sk_v3": "PORTAL_CONFIG#453ad7bf-86d5-46c8-8252-bcc868df5e3c",
"origin": "string",
"pages": {},
"id": 12345,
"organization_id": 12345,
"org_settings": {
"canary": {
"enabled": true
},
"notracking": {
"enabled": true
}
},
"feature_flags": {},
"grants": [
{
"action": "entity-read",
"resource": "entity:123:contact:f7c22299-ca72-4bca-8538-0a88eeefc947",
"effect": "allow"
}
],
"identity_providers": [
{
"slug": "office-365-login",
"display_name": "Office 365 Login",
"oidc_config": {},
"mobile_oidc_config": {}
}
]
}
getOrgPortalConfigV3โ
Retrieves the portal configuration for the organization.
GET /v3/portal/org/portal/config
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
portal_id | query | string | Yes | PortalId of the portal |
Sample Call
epilot customer-portal getOrgPortalConfigV3 \
-p portal_id=453ad7bf-86d5-46c8-8252-bcc868df5e3c
With JSONata filter:
epilot customer-portal getOrgPortalConfigV3 -p portal_id=453ad7bf-86d5-46c8-8252-bcc868df5e3c --jsonata '$'
Sample Response
{
"enabled": true,
"name": "Installer Portal",
"domain": "abc.com",
"is_epilot_domain": true,
"epilot_domain": "example-portal-12345.ecp.epilot.cloud",
"domain_settings": {
"is_custom_domain_enabled": true,
"is_epilot_domain_enabled": true,
"is_redirection_enabled": true
},
"design_id": "5da0a718-c822-403d-9f5d-20d4584e0528",
"self_registration_setting": "ALLOW_WITH_CONTACT_CREATION",
"user_account_self_management": false,
"feature_settings": {
"start_page": true,
"billing": true,
"change_due_date": true,
"new_design": true
},
"accessToken": "string",
"advanced_mfa": {
"enabled": true
},
"auth_settings": {
"passwordless_login": {
"enabled": true
},
"entry_point": "PASSWORD",
"preferred_sso_providers": ["office-365-login"],
"auto_redirect_to_sso": true
},
"cognito_details": {
"cognito_user_pool_client_id": "6bsd0jkgoie74k2i8mrhc1vest",
"cognito_user_pool_arn": "arn:aws:cognito-idp:us-east-1:123412341234:userpool/us-east-1_123412341",
"cognito_user_pool_id": "eu-central-1_CUEQRNbUb",
"password_policy": {
"minimum_length": 8,
"maximum_length": 256,
"require_lowercase": true,
"require_uppercase": true,
"require_numbers": true,
"require_symbols": true
}
},
"config": "string",
"contact_identifiers": ["email", "last_name"],
"approval_state_attributes": {
"contact": ["name", "address"],
"contract": ["installment_amount"]
},
"email_templates": {
"confirmAccount": "5da0a718-c822-403d-9f5d-20d4584e0528",
"advancedAuth": "5da0a718-c822-403d-9f5d-20d4584e0528",
"advancedMFA": "5da0a718-c822-403d-9f5d-20d4584e0528",
"journeySignUp": "5da0a718-c822-403d-9f5d-20d4584e0528",
"journeySignInOneTimePassword": "5da0a718-c822-403d-9f5d-20d4584e0528",
"journeyLoginOTP": "5da0a718-c822-403d-9f5d-20d4584e0528",
"forgotPassword": "5da0a718-c822-403d-9f5d-20d4584e0528",
"invitation": "5da0a718-c822-403d-9f5d-20d4584e0528",
"partnerInvitation": "5da0a718-c822-403d-9f5d-20d4584e0528",
"onNewQuote": "5da0a718-c822-403d-9f5d-20d4584e0528",
"onMapAPendingUser": "5da0a718-c822-403d-9f5d-20d4584e0528",
"onDocUpload": "5da0a718-c822-403d-9f5d-20d4584e0528",
"onWorkflowStepAssigned": "5da0a718-c822-403d-9f5d-20d4584e0528",
"confirmEmailUpdate": "5da0a718-c822-403d-9f5d-20d4584e0528",
"verifyCodeToSetPassword": "5da0a718-c822-403d-9f5d-20d4584e0528"
},
"images": {
"orderLeftTeaser": "https://epilot-bucket.s3.eu-central-1.amazonaws.com/12344/6538fddb-f0e9-4f0f-af51-6e57891ff20a/order-left-teaser.jpeg",
"orderRightTeaser": "https://epilot-bucket.s3.eu-central-1.amazonaws.com/12344/6538fddb-f0e9-4f0f-af51-6e57891ff20a/order-right-teaser.jpeg",
"welcomeBanner": "https://epilot-bucket.s3.eu-central-1.amazonaws.com/12344/6538fddb-f0e9-4f0f-af51-6e57891ff20a/welcome-banner.jpeg"
},
"entity_identifiers": {
"type": {
"isEnabled": true,
"attributes": ["contract_number"]
}
},
"contract_identifiers": [
{
"name": "email",
"schema": "contact"
},
{
"name": "last_name",
"schema": "contact"
}
],
"contract_selector_config": {
"show_inactive": true,
"title_path": "string"
},
"registration_identifiers": [
{
"name": "last_name",
"schema": "contact"
},
{
"name": "contract_number",
"schema": "contract"
}
],
"triggered_journeys": [
{
"trigger_name": "FIRST_LOGIN",
"journey_id": "5da0a718-c822-403d-9f5d-20d4584e0528"
}
],
"entity_edit_rules": [
{
"slug": "contact",
"attribute": "first_name",
"rule_type": "cadence",
"cadence_period_type": "days",
"cadence_period": 1,
"changes_allowed": 1,
"grace_period": 1,
"allowed_increment": "10%",
"allowed_decrement": "10%",
"number_of_days_before_restriction": 10
}
],
"allowed_file_extensions": {
"document": ["pdf"],
"image": ["jpg"],
"spreadsheet": ["xls"],
"presentation": ["ppt"],
"audioVideo": ["mp4"],
"email": ["eml"],
"archive": ["zip"],
"cad": ["cad"],
"calendar": ["ics"],
"other": ["txt"]
},
"prevent_search_engine_indexing": true,
"meter_reading_grace_period": 0,
"inactive_contract_cutoff_years": 0,
"is_dummy": true,
"is_v3_item": true,
"portal_id": "453ad7bf-86d5-46c8-8252-bcc868df5e3c",
"portal_sk_v3": "PORTAL_CONFIG#453ad7bf-86d5-46c8-8252-bcc868df5e3c",
"origin": "string",
"pages": {},
"id": 12345,
"organization_id": 12345,
"org_settings": {
"canary": {
"enabled": true
},
"notracking": {
"enabled": true
}
},
"feature_flags": {},
"grants": [
{
"action": "entity-read",
"resource": "entity:123:contact:f7c22299-ca72-4bca-8538-0a88eeefc947",
"effect": "allow"
}
],
"identity_providers": [
{
"slug": "office-365-login",
"display_name": "Office 365 Login",
"oidc_config": {},
"mobile_oidc_config": {}
}
],
"certificate_details": {
"status": "PENDING_VALIDATION",
"failed_reason": "CAA_ERROR"
}
}
getAllPortalConfigsโ
Retrieves all portal configurations.
GET /v2/portal/configs
Sample Call
epilot customer-portal getAllPortalConfigs
With JSONata filter:
epilot customer-portal getAllPortalConfigs --jsonata 'data'
Sample Response
{
"data": [
{
"enabled": true,
"name": "Installer Portal",
"domain": "abc.com",
"is_epilot_domain": true,
"epilot_domain": "example-portal-12345.ecp.epilot.cloud",
"domain_settings": {},
"design_id": "5da0a718-c822-403d-9f5d-20d4584e0528",
"self_registration_setting": "ALLOW_WITH_CONTACT_CREATION",
"user_account_self_management": false,
"feature_settings": {},
"accessToken": "string",
"advanced_mfa": {},
"auth_settings": {},
"cognito_details": {},
"config": "string",
"contact_identifiers": ["email", "last_name"],
"approval_state_attributes": {},
"email_templates": {},
"images": {},
"entity_identifiers": {},
"contract_identifiers": [],
"contract_selector_config": {},
"registration_identifiers": [],
"triggered_journeys": [],
"entity_edit_rules": [],
"allowed_file_extensions": {},
"prevent_search_engine_indexing": true,
"meter_reading_grace_period": 0,
"inactive_contract_cutoff_years": 0,
"is_dummy": true,
"is_v3_item": true,
"portal_id": "453ad7bf-86d5-46c8-8252-bcc868df5e3c",
"portal_sk_v3": "PORTAL_CONFIG#453ad7bf-86d5-46c8-8252-bcc868df5e3c",
"origin": "string",
"pages": {},
"id": 12345,
"organization_id": 12345,
"org_settings": {},
"feature_flags": {},
"grants": [],
"identity_providers": []
}
]
}
getEmailTemplatesโ
Retrieves the email templates of a portal
GET /v2/portal/email-templates
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
origin | query | string | Yes | Origin of the portal |
Sample Call
epilot customer-portal getEmailTemplates \
-p origin=example
With JSONata filter:
epilot customer-portal getEmailTemplates -p origin=example --jsonata 'confirmAccount'
Sample Response
{
"confirmAccount": "5da0a718-c822-403d-9f5d-20d4584e0528",
"advancedAuth": "5da0a718-c822-403d-9f5d-20d4584e0528",
"advancedMFA": "5da0a718-c822-403d-9f5d-20d4584e0528",
"journeySignUp": "5da0a718-c822-403d-9f5d-20d4584e0528",
"journeySignInOneTimePassword": "5da0a718-c822-403d-9f5d-20d4584e0528",
"journeyLoginOTP": "5da0a718-c822-403d-9f5d-20d4584e0528",
"forgotPassword": "5da0a718-c822-403d-9f5d-20d4584e0528",
"invitation": "5da0a718-c822-403d-9f5d-20d4584e0528",
"partnerInvitation": "5da0a718-c822-403d-9f5d-20d4584e0528",
"onNewQuote": "5da0a718-c822-403d-9f5d-20d4584e0528",
"onMapAPendingUser": "5da0a718-c822-403d-9f5d-20d4584e0528",
"onDocUpload": "5da0a718-c822-403d-9f5d-20d4584e0528",
"onWorkflowStepAssigned": "5da0a718-c822-403d-9f5d-20d4584e0528",
"confirmEmailUpdate": "5da0a718-c822-403d-9f5d-20d4584e0528",
"verifyCodeToSetPassword": "5da0a718-c822-403d-9f5d-20d4584e0528"
}
upsertEmailTemplatesโ
Upserts the email templates of a portal
POST /v2/portal/email-templates
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
origin | query | string | Yes | Origin of the portal |
Request Body (required)
Sample Call
epilot customer-portal upsertEmailTemplates \
-p origin=example
With request body:
epilot customer-portal upsertEmailTemplates \
-p origin=example \
-d '{
"confirmAccount": "5da0a718-c822-403d-9f5d-20d4584e0528",
"advancedAuth": "5da0a718-c822-403d-9f5d-20d4584e0528",
"advancedMFA": "5da0a718-c822-403d-9f5d-20d4584e0528",
"journeySignUp": "5da0a718-c822-403d-9f5d-20d4584e0528",
"journeySignInOneTimePassword": "5da0a718-c822-403d-9f5d-20d4584e0528",
"journeyLoginOTP": "5da0a718-c822-403d-9f5d-20d4584e0528",
"forgotPassword": "5da0a718-c822-403d-9f5d-20d4584e0528",
"invitation": "5da0a718-c822-403d-9f5d-20d4584e0528",
"partnerInvitation": "5da0a718-c822-403d-9f5d-20d4584e0528",
"onNewQuote": "5da0a718-c822-403d-9f5d-20d4584e0528",
"onMapAPendingUser": "5da0a718-c822-403d-9f5d-20d4584e0528",
"onDocUpload": "5da0a718-c822-403d-9f5d-20d4584e0528",
"onWorkflowStepAssigned": "5da0a718-c822-403d-9f5d-20d4584e0528",
"confirmEmailUpdate": "5da0a718-c822-403d-9f5d-20d4584e0528",
"verifyCodeToSetPassword": "5da0a718-c822-403d-9f5d-20d4584e0528"
}'
Using stdin pipe:
cat body.json | epilot customer-portal upsertEmailTemplates -p origin=example
With JSONata filter:
epilot customer-portal upsertEmailTemplates -p origin=example --jsonata 'message'
Sample Response
{
"message": "Email Templates upserted successfully",
"emailTemplates": {
"confirmAccount": "5da0a718-c822-403d-9f5d-20d4584e0528",
"advancedAuth": "5da0a718-c822-403d-9f5d-20d4584e0528",
"advancedMFA": "5da0a718-c822-403d-9f5d-20d4584e0528",
"journeySignUp": "5da0a718-c822-403d-9f5d-20d4584e0528",
"journeySignInOneTimePassword": "5da0a718-c822-403d-9f5d-20d4584e0528",
"journeyLoginOTP": "5da0a718-c822-403d-9f5d-20d4584e0528",
"forgotPassword": "5da0a718-c822-403d-9f5d-20d4584e0528",
"invitation": "5da0a718-c822-403d-9f5d-20d4584e0528",
"partnerInvitation": "5da0a718-c822-403d-9f5d-20d4584e0528",
"onNewQuote": "5da0a718-c822-403d-9f5d-20d4584e0528",
"onMapAPendingUser": "5da0a718-c822-403d-9f5d-20d4584e0528",
"onDocUpload": "5da0a718-c822-403d-9f5d-20d4584e0528",
"onWorkflowStepAssigned": "5da0a718-c822-403d-9f5d-20d4584e0528",
"confirmEmailUpdate": "5da0a718-c822-403d-9f5d-20d4584e0528",
"verifyCodeToSetPassword": "5da0a718-c822-403d-9f5d-20d4584e0528"
}
}
getEmailTemplatesByPortalIdโ
Retrieves the email templates of a portal by portal ID
GET /v3/portal/email-templates/{portal_id}
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
portal_id | path | string | Yes | ID of the portal |
Sample Call
epilot customer-portal getEmailTemplatesByPortalId \
-p portal_id=123e4567-e89b-12d3-a456-426614174000
Using positional args for path parameters:
epilot customer-portal getEmailTemplatesByPortalId 123e4567-e89b-12d3-a456-426614174000
With JSONata filter:
epilot customer-portal getEmailTemplatesByPortalId -p portal_id=123e4567-e89b-12d3-a456-426614174000 --jsonata 'confirmAccount'
Sample Response
{
"confirmAccount": "5da0a718-c822-403d-9f5d-20d4584e0528",
"advancedAuth": "5da0a718-c822-403d-9f5d-20d4584e0528",
"advancedMFA": "5da0a718-c822-403d-9f5d-20d4584e0528",
"journeySignUp": "5da0a718-c822-403d-9f5d-20d4584e0528",
"journeySignInOneTimePassword": "5da0a718-c822-403d-9f5d-20d4584e0528",
"journeyLoginOTP": "5da0a718-c822-403d-9f5d-20d4584e0528",
"forgotPassword": "5da0a718-c822-403d-9f5d-20d4584e0528",
"invitation": "5da0a718-c822-403d-9f5d-20d4584e0528",
"partnerInvitation": "5da0a718-c822-403d-9f5d-20d4584e0528",
"onNewQuote": "5da0a718-c822-403d-9f5d-20d4584e0528",
"onMapAPendingUser": "5da0a718-c822-403d-9f5d-20d4584e0528",
"onDocUpload": "5da0a718-c822-403d-9f5d-20d4584e0528",
"onWorkflowStepAssigned": "5da0a718-c822-403d-9f5d-20d4584e0528",
"confirmEmailUpdate": "5da0a718-c822-403d-9f5d-20d4584e0528",
"verifyCodeToSetPassword": "5da0a718-c822-403d-9f5d-20d4584e0528"
}
upsertEmailTemplatesByPortalIdโ
Upserts the email templates of a portal by portal ID
POST /v3/portal/email-templates/{portal_id}
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
portal_id | path | string | Yes | ID of the portal |
Request Body (required)
Sample Call
epilot customer-portal upsertEmailTemplatesByPortalId \
-p portal_id=123e4567-e89b-12d3-a456-426614174000
With request body:
epilot customer-portal upsertEmailTemplatesByPortalId \
-p portal_id=123e4567-e89b-12d3-a456-426614174000 \
-d '{
"confirmAccount": "5da0a718-c822-403d-9f5d-20d4584e0528",
"advancedAuth": "5da0a718-c822-403d-9f5d-20d4584e0528",
"advancedMFA": "5da0a718-c822-403d-9f5d-20d4584e0528",
"journeySignUp": "5da0a718-c822-403d-9f5d-20d4584e0528",
"journeySignInOneTimePassword": "5da0a718-c822-403d-9f5d-20d4584e0528",
"journeyLoginOTP": "5da0a718-c822-403d-9f5d-20d4584e0528",
"forgotPassword": "5da0a718-c822-403d-9f5d-20d4584e0528",
"invitation": "5da0a718-c822-403d-9f5d-20d4584e0528",
"partnerInvitation": "5da0a718-c822-403d-9f5d-20d4584e0528",
"onNewQuote": "5da0a718-c822-403d-9f5d-20d4584e0528",
"onMapAPendingUser": "5da0a718-c822-403d-9f5d-20d4584e0528",
"onDocUpload": "5da0a718-c822-403d-9f5d-20d4584e0528",
"onWorkflowStepAssigned": "5da0a718-c822-403d-9f5d-20d4584e0528",
"confirmEmailUpdate": "5da0a718-c822-403d-9f5d-20d4584e0528",
"verifyCodeToSetPassword": "5da0a718-c822-403d-9f5d-20d4584e0528"
}'
Using positional args for path parameters:
epilot customer-portal upsertEmailTemplatesByPortalId 123e4567-e89b-12d3-a456-426614174000
Using stdin pipe:
cat body.json | epilot customer-portal upsertEmailTemplatesByPortalId -p portal_id=123e4567-e89b-12d3-a456-426614174000
With JSONata filter:
epilot customer-portal upsertEmailTemplatesByPortalId -p portal_id=123e4567-e89b-12d3-a456-426614174000 --jsonata 'message'
Sample Response
{
"message": "Email Templates upserted successfully",
"emailTemplates": {
"confirmAccount": "5da0a718-c822-403d-9f5d-20d4584e0528",
"advancedAuth": "5da0a718-c822-403d-9f5d-20d4584e0528",
"advancedMFA": "5da0a718-c822-403d-9f5d-20d4584e0528",
"journeySignUp": "5da0a718-c822-403d-9f5d-20d4584e0528",
"journeySignInOneTimePassword": "5da0a718-c822-403d-9f5d-20d4584e0528",
"journeyLoginOTP": "5da0a718-c822-403d-9f5d-20d4584e0528",
"forgotPassword": "5da0a718-c822-403d-9f5d-20d4584e0528",
"invitation": "5da0a718-c822-403d-9f5d-20d4584e0528",
"partnerInvitation": "5da0a718-c822-403d-9f5d-20d4584e0528",
"onNewQuote": "5da0a718-c822-403d-9f5d-20d4584e0528",
"onMapAPendingUser": "5da0a718-c822-403d-9f5d-20d4584e0528",
"onDocUpload": "5da0a718-c822-403d-9f5d-20d4584e0528",
"onWorkflowStepAssigned": "5da0a718-c822-403d-9f5d-20d4584e0528",
"confirmEmailUpdate": "5da0a718-c822-403d-9f5d-20d4584e0528",
"verifyCodeToSetPassword": "5da0a718-c822-403d-9f5d-20d4584e0528"
}
}
getPublicPortalWidgetsโ
Retrieves the public widgets of a portal
GET /v2/portal/public-widgets
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
org_id | query | string | Yes | |
origin | query | string | Yes | Origin of the portal |
Sample Call
epilot customer-portal getPublicPortalWidgets \
-p org_id=123 \
-p origin=example
With JSONata filter:
epilot customer-portal getPublicPortalWidgets -p org_id=123 -p origin=example --jsonata 'widgets'
Sample Response
{
"widgets": [
{
"id": "string",
"type": "ACTION_WIDGET",
"listIndex": 0,
"headline": {
"en": "string",
"de": "string"
},
"subHeadline": {
"en": "string",
"de": "string"
},
"schema": "string"
},
{
"id": "string",
"type": "ACTION_WIDGET",
"listIndex": 0,
"headline": {
"en": "string",
"de": "string"
},
"subHeadline": {
"en": "string",
"de": "string"
},
"content": "string"
}
]
}
getPortalWidgetsโ
Retrieves the widgets of a portal
GET /v2/portal/widgets
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
origin | query | string | No | Origin of the portal |
contract_id | query | string (uuid) | No | Contract context for widgets |
Sample Call
epilot customer-portal getPortalWidgets
With JSONata filter:
epilot customer-portal getPortalWidgets --jsonata 'widgets'
Sample Response
{
"widgets": [
{
"id": "string",
"type": "ACTION_WIDGET",
"listIndex": 0,
"headline": {
"en": "string",
"de": "string"
},
"subHeadline": {
"en": "string",
"de": "string"
},
"schema": "string"
},
{
"id": "string",
"type": "ACTION_WIDGET",
"listIndex": 0,
"headline": {
"en": "string",
"de": "string"
},
"subHeadline": {
"en": "string",
"de": "string"
},
"content": "string"
}
]
}
upsertPortalWidgetโ
Upsert widget for a portal of an organization.
POST /v2/portal/widgets
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
origin | query | string | Yes | Origin of the portal |
Request Body (required)
Sample Call
epilot customer-portal upsertPortalWidget \
-p origin=example
With request body:
epilot customer-portal upsertPortalWidget \
-p origin=example \
-d '{
"widgets": [
{
"id": "string",
"type": "ACTION_WIDGET",
"listIndex": 0,
"headline": {
"en": "string",
"de": "string"
},
"subHeadline": {
"en": "string",
"de": "string"
},
"schema": "string"
},
{
"id": "string",
"type": "ACTION_WIDGET",
"listIndex": 0,
"headline": {
"en": "string",
"de": "string"
},
"subHeadline": {
"en": "string",
"de": "string"
},
"content": "string"
}
]
}'
Using stdin pipe:
cat body.json | epilot customer-portal upsertPortalWidget -p origin=example
With JSONata filter:
epilot customer-portal upsertPortalWidget -p origin=example --jsonata 'widgets'
Sample Response
{
"widgets": [
{
"id": "string",
"type": "ACTION_WIDGET",
"listIndex": 0,
"headline": {
"en": "string",
"de": "string"
},
"subHeadline": {
"en": "string",
"de": "string"
},
"schema": "string"
},
{
"id": "string",
"type": "ACTION_WIDGET",
"listIndex": 0,
"headline": {
"en": "string",
"de": "string"
},
"subHeadline": {
"en": "string",
"de": "string"
},
"content": "string"
}
]
}
replaceECPTemplateVariablesโ
Replaces the template variables of a portal
POST /v2/portal/replace-ecp-template-variables
Request Body
Sample Call
epilot customer-portal replaceECPTemplateVariables \
-d '{"template_id":"5da0a718-c822-403d-9f5d-20d4584e0528","entity_context":{}}'
Using stdin pipe:
cat body.json | epilot customer-portal replaceECPTemplateVariables
With JSONata filter:
epilot customer-portal replaceECPTemplateVariables --jsonata 'customerPortal'
Sample Response
{
"customerPortal": {
"invitationLink": "https://end-customer-portal.ecp.dev.epilot.io/register?contactId=7aa44fb8-d60e-40cc-9a3a-ba09a1ff7f51&email=john@doe.com",
"newDocumentLink": "https://end-customer-portal.ecp.dev.epilot.io/requests/opportunities/b8fef220-abe0-4382-a704-26848f60977b",
"entityLink": "https://end-customer-portal.ecp.dev.epilot.io/requests/opportunities/b8fef220-abe0-4382-a704-26848f60977b",
"userEmailsOnEntity": ["john@doe.com", "mary@doe.com"]
},
"installerPortal": {
"invitationLink": "https://installer-portal.ecp.dev.epilot.io/register?contactId=7aa44fb8-d60e-40cc-9a3a-ba09a1ff7f51&email=john@doe.com",
"newDocumentLink": "https://installer-portal.ecp.dev.epilot.io/requests/opportunities/b8fef220-abe0-4382-a704-26848f60977b",
"entityLink": "https://installer-portal.ecp.dev.epilot.io/requests/opportunities/b8fef220-abe0-4382-a704-26848f60977b",
"userEmailsOnEntity": ["peter@doe.com", "jane@doe.com"]
},
"portalUser": {
"invitationLink": "https://employee-portal.ecp.dev.epilot.io/register?contactId=7aa44fb8-d60e-40cc-9a3a-ba09a1ff7f51&email=john@doe.com",
"newDocumentLink": "https://employee-portal.ecp.dev.epilot.io/requests/opportunities/b8fef220-abe0-4382-a704-26848f60977b",
"entityLink": "https://employee-portal.ecp.dev.epilot.io/requests/opportunities/b8fef220-abe0-4382-a704-26848f60977b",
"userEmailsOnEntity": ["peter@doe.com", "jane@doe.com"]
}
}
getSchemasโ
Retrieves the schemas. Only schemas usable in the private part of the portal are returned.
GET /v2/portal/schemas
Sample Call
epilot customer-portal getSchemas
With JSONata filter:
epilot customer-portal getSchemas --jsonata 'schemas'
Sample Response
{
"schemas": [
{
"slug": "contact"
}
]
}
getSchemasByDomainโ
Retrieves schemas by domain. Only schemas and attributes used on public pages are returned.
GET /v2/portal/public/schemas
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
domain | query | string | Yes |
Sample Call
epilot customer-portal getSchemasByDomain \
-p domain=ecp.dev.epilot.io
With JSONata filter:
epilot customer-portal getSchemasByDomain -p domain=ecp.dev.epilot.io --jsonata 'schemas'
Sample Response
{
"schemas": [
{
"slug": "contact"
}
]
}
getOrganizationSettingsByDomainโ
Retrieves organization settings by domain. Only public organization settings are returned.
GET /v2/portal/public/org/settings
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
domain | query | string | Yes |
Sample Call
epilot customer-portal getOrganizationSettingsByDomain \
-p domain=ecp.dev.epilot.io
With JSONata filter:
epilot customer-portal getOrganizationSettingsByDomain -p domain=ecp.dev.epilot.io --jsonata 'data'
Sample Response
{
"data": {
"automation_entity_mapping": {
"enabled": true
},
"automation_preview": {
"enabled": true
},
"central_inbox_preview_setting": {
"enabled": true
},
"contracts_preview_setting": {
"enabled": true
},
"disable_ivy": {
"enabled": true
},
"double_opt_in": {
"enabled": true
},
"ecommerce_catalog_preview": {
"enabled": true
},
"ecommerce_opportunities_preview": {
"enabled": true
},
"ecommerce_preview": {
"enabled": true
},
"end_customer_portal": {
"enabled": true
},
"installer_portal": {
"enabled": true
},
"entity_schema_builder": {
"enabled": true
},
"logic_editor_preview": {
"enabled": true
},
"new_navigation": {
"enabled": true
},
"partnering": {
"enabled": true
},
"product-availability": {
"enabled": true
},
"sso": {
"enabled": true
},
"submission_preview": {
"enabled": true
},
"user_roles_preview": {
"enabled": true
}
}
}
extraPermissionAttributesโ
Retrieves the extra permission attributes.
GET /v2/portal/extra-permission-attributes
Sample Call
epilot customer-portal extraPermissionAttributes
With JSONata filter:
epilot customer-portal extraPermissionAttributes --jsonata 'data'
Sample Response
{
"data": {
"contact": [
{
"name": "string",
"label": "string",
"group": "string"
}
],
"contract": [
{
"name": "string",
"label": "string",
"group": "string"
}
],
"order": [
{
"name": "string",
"label": "string",
"group": "string"
}
],
"opportunity": [
{
"name": "string",
"label": "string",
"group": "string"
}
],
"meter": [
{
"name": "string",
"label": "string",
"group": "string"
}
],
"meter_counter": [
{
"name": "string",
"label": "string",
"group": "string"
}
]
}
}
validateCaaRecordsโ
Validates the CAA records of a portal
POST /v2/portal/validate/caa-records
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
origin | query | string | Yes |
Sample Call
epilot customer-portal validateCaaRecords \
-p origin=example
With JSONata filter:
epilot customer-portal validateCaaRecords -p origin=example --jsonata 'retry'
Sample Response
{
"retry": true,
"message": "string",
"isDNSConfigured": true
}
validateCaaRecordsV3โ
Validates the CAA records of a portal
POST /v3/portal/validate/caa-records
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
portal_id | query | string | Yes | PortalId of the portal |
Sample Call
epilot customer-portal validateCaaRecordsV3 \
-p portal_id=453ad7bf-86d5-46c8-8252-bcc868df5e3c
With JSONata filter:
epilot customer-portal validateCaaRecordsV3 -p portal_id=453ad7bf-86d5-46c8-8252-bcc868df5e3c --jsonata 'retry'
Sample Response
{
"retry": true,
"message": "string",
"isDNSConfigured": true
}
getContactโ
Retrieves the contact of the logged in user.
GET /v2/portal/contact
Sample Call
epilot customer-portal getContact
With JSONata filter:
epilot customer-portal getContact --jsonata 'entity._title'
Sample Response
{
"entity": {
"_id": "5da0a718-c822-403d-9f5d-20d4584e0528",
"_title": "Example Entity",
"_org": "123",
"_tags": ["example", "mock"],
"_created_at": "2021-02-09T12:41:43.662Z",
"_updated_at": "2021-02-09T12:41:43.662Z",
"_schema": "contact"
},
"files": [
{
"_id": "5da0a718-c822-403d-9f5d-20d4584e0528",
"_title": "Example Entity",
"_org": "123",
"_tags": ["example", "mock"],
"_created_at": "2021-02-09T12:41:43.662Z",
"_updated_at": "2021-02-09T12:41:43.662Z",
"_schema": "file"
}
],
"relations": [
{
"_id": "5da0a718-c822-403d-9f5d-20d4584e0528",
"_title": "Example Entity",
"_org": "123",
"_tags": ["example", "mock"],
"_created_at": "2021-02-09T12:41:43.662Z",
"_updated_at": "2021-02-09T12:41:43.662Z",
"templates_output": {
"content_top_name": "Customer #123456",
"main_content_name": "Orange Flexible A2 (654321)",
"content_bottom_name": "Porscheplatz 1, 70435 Stuttgart, Germany",
"nested_content": {
"title": "Orange Flexible A2",
"subtitle": "654321"
}
},
"_schema": "contact"
}
],
"journey_actions": [
{
"journey_id": "string",
"action_label": {
"en": "string",
"de": "string"
},
"slug": "string",
"rules": [
{
"entity": "string",
"attribute": "string",
"attribute_value": "string"
}
]
}
]
}
updateContactโ
Updates the contact details.
PATCH /v2/portal/contact
Request Body
Sample Call
epilot customer-portal updateContact \
-d '{}'
Using stdin pipe:
cat body.json | epilot customer-portal updateContact
With JSONata filter:
epilot customer-portal updateContact --jsonata 'data'
Sample Response
{
"data": {
"_id": "5da0a718-c822-403d-9f5d-20d4584e0528",
"_title": "Example Entity",
"_org": "123",
"_tags": ["example", "mock"],
"_created_at": "2021-02-09T12:41:43.662Z",
"_updated_at": "2021-02-09T12:41:43.662Z",
"_schema": "contact"
}
}
getECPContactโ
Get the Contact by id
GET /v2/portal/ecp/contact
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
id | query | string (uuid) | Yes |
Sample Call
epilot customer-portal getECPContact \
-p id=5da0a718-c822-403d-9f5d-20d4584e0528
With JSONata filter:
epilot customer-portal getECPContact -p id=5da0a718-c822-403d-9f5d-20d4584e0528 --jsonata 'data'
Sample Response
{
"data": {
"_id": "5da0a718-c822-403d-9f5d-20d4584e0528",
"_title": "Example Entity",
"_org": "123",
"_tags": ["example", "mock"],
"_created_at": "2021-02-09T12:41:43.662Z",
"_updated_at": "2021-02-09T12:41:43.662Z",
"_schema": "contact"
}
}
checkContactExistsโ
True if contact with given identifiers exists.
POST /v2/portal/public/contact/exists
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
origin | query | string | Yes | Origin of the portal |
Request Body (required)
Sample Call
epilot customer-portal checkContactExists \
-p origin=example
With request body:
epilot customer-portal checkContactExists \
-p origin=example \
-d '{
"org_id": 728,
"registration_identifiers": {
"contact": {
"email": "john.doe@example.com"
},
"contract": {
"contract_number": "123456"
}
}
}'
Using stdin pipe:
cat body.json | epilot customer-portal checkContactExists -p origin=example
With JSONata filter:
epilot customer-portal checkContactExists -p origin=example --jsonata 'exists'
Sample Response
{
"exists": true,
"contactId": "5da0a718-c822-403d-9f5d-20d4584e0528"
}
checkContactExistsV3โ
True if contact with given identifiers exists.
POST /v3/portal/public/contact/exists
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
portal_id | query | string | Yes | PortalId of the portal |
Request Body (required)
Sample Call
epilot customer-portal checkContactExistsV3 \
-p portal_id=453ad7bf-86d5-46c8-8252-bcc868df5e3c
With request body:
epilot customer-portal checkContactExistsV3 \
-p portal_id=453ad7bf-86d5-46c8-8252-bcc868df5e3c \
-d '{
"org_id": 728,
"registration_identifiers": {
"contact": {
"email": "john.doe@example.com"
},
"contract": {
"contract_number": "123456"
}
}
}'
Using stdin pipe:
cat body.json | epilot customer-portal checkContactExistsV3 -p portal_id=453ad7bf-86d5-46c8-8252-bcc868df5e3c
With JSONata filter:
epilot customer-portal checkContactExistsV3 -p portal_id=453ad7bf-86d5-46c8-8252-bcc868df5e3c --jsonata 'exists'
Sample Response
{
"exists": true,
"contactId": "5da0a718-c822-403d-9f5d-20d4584e0528"
}
getValidSecondaryAttributesโ
Get valid secondary attributes that are used while mapping a contact on registration
GET /v2/portal/contact/valid/secondary/attributes
Sample Call
epilot customer-portal getValidSecondaryAttributes
With JSONata filter:
epilot customer-portal getValidSecondaryAttributes --jsonata 'data'
Sample Response
{
"data": [
{
"name": "first_name",
"type": "string"
}
]
}
getPortalUserโ
Get the portal user details
GET /v2/portal/user
Sample Call
epilot customer-portal getPortalUser
With JSONata filter:
epilot customer-portal getPortalUser --jsonata 'data'
Sample Response
{
"data": {
"_id": "5da0a718-c822-403d-9f5d-20d4584e0528",
"_title": "Example Entity",
"_org": "123",
"_tags": ["example", "mock"],
"_created_at": "2021-02-09T12:41:43.662Z",
"_updated_at": "2021-02-09T12:41:43.662Z",
"_schema": "portal_user"
}
}
updatePortalUserโ
Update the portal user details
PATCH /v2/portal/user
Request Body
Sample Call
epilot customer-portal updatePortalUser \
-d '{}'
Using stdin pipe:
cat body.json | epilot customer-portal updatePortalUser
With JSONata filter:
epilot customer-portal updatePortalUser --jsonata 'data'
Sample Response
{
"data": {
"_id": "5da0a718-c822-403d-9f5d-20d4584e0528",
"_title": "Example Entity",
"_org": "123",
"_tags": ["example", "mock"],
"_created_at": "2021-02-09T12:41:43.662Z",
"_updated_at": "2021-02-09T12:41:43.662Z",
"_schema": "portal_user"
}
}
deletePortalUserโ
Delete the portal user
DELETE /v2/portal/user
Sample Call
epilot customer-portal deletePortalUser
With JSONata filter:
epilot customer-portal deletePortalUser --jsonata 'data'
Sample Response
{
"message": "User Succesfully Deleted",
"data": "5da0a718-c822-403d-9f5d-20d4584e0528"
}
updatePortalUserEmailโ
Update portal user email
PUT /v2/portal/user/update/email
Request Body (required)
Sample Call
epilot customer-portal updatePortalUserEmail \
-d '{"email":"john@doe.com","password":"string"}'
Using stdin pipe:
cat body.json | epilot customer-portal updatePortalUserEmail
With JSONata filter:
epilot customer-portal updatePortalUserEmail --jsonata 'message'
Sample Response
{
"message": "You will receive a confirmation mail soon on your updated email address."
}
resendConfirmationEmailโ
Resend confirmation email
POST /v2/portal/user/resend/confirmation-email/{id}
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string (uuid) | Yes | The ID of portal user id |
Sample Call
epilot customer-portal resendConfirmationEmail \
-p id=5da0a718-c822-403d-9f5d-20d4584e0528
Using positional args for path parameters:
epilot customer-portal resendConfirmationEmail 5da0a718-c822-403d-9f5d-20d4584e0528
With JSONata filter:
epilot customer-portal resendConfirmationEmail -p id=5da0a718-c822-403d-9f5d-20d4584e0528 --jsonata 'message'
Sample Response
{
"message": "Confirmation email sent successfully."
}
fetchPortalUsersByRelatedEntityโ
Get all users for a given entity
GET /v2/portal/users/by-related-entity
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
entity_id | query | string (uuid) | Yes | |
slug | query | string | Yes |
Sample Call
epilot customer-portal fetchPortalUsersByRelatedEntity \
-p entity_id=5da0a718-c822-403d-9f5d-20d4584e0528 \
-p slug=contact
With JSONata filter:
epilot customer-portal fetchPortalUsersByRelatedEntity -p entity_id=5da0a718-c822-403d-9f5d-20d4584e0528 -p slug=contact --jsonata 'portalUsers'
Sample Response
{
"portalUsers": [
{
"_id": "5da0a718-c822-403d-9f5d-20d4584e0528",
"_title": "Example Entity",
"_org": "123",
"_tags": ["example", "mock"],
"_created_at": "2021-02-09T12:41:43.662Z",
"_updated_at": "2021-02-09T12:41:43.662Z",
"_schema": "portal_user"
}
]
}
confirmUserโ
Confirm a portal user
GET /v2/portal/user/confirm
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
confirmation_link_token | query | string | Yes | |
use_redirect | query | boolean | No |
Sample Call
epilot customer-portal confirmUser \
-p confirmation_link_token=example
With JSONata filter:
epilot customer-portal confirmUser -p confirmation_link_token=example --jsonata 'confirmed'
Sample Response
{
"confirmed": true,
"user_already_confirmed": true
}
confirmUserWithUserIdโ
Confirm a portal user
GET /v2/portal/user/confirm/{id}
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
origin | query | string | Yes | |
id | path | string (uuid) | Yes | The ID of portal user id |
org_id | query | string | Yes | Organization ID |
Sample Call
epilot customer-portal confirmUserWithUserId \
-p origin=example \
-p id=5da0a718-c822-403d-9f5d-20d4584e0528 \
-p org_id=123
Using positional args for path parameters:
epilot customer-portal confirmUserWithUserId 5da0a718-c822-403d-9f5d-20d4584e0528
With JSONata filter:
epilot customer-portal confirmUserWithUserId -p origin=example -p id=5da0a718-c822-403d-9f5d-20d4584e0528 -p org_id=123 --jsonata '$'
userExistsโ
Checks whether a user exists in the portal
GET /v2/portal/public/user/exists
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
email | query | string | Yes | |
org_id | query | string | Yes | |
origin | query | string | No | Checkes if user exists in the given portal origin. If not provided, checks in all origins. |
Sample Call
epilot customer-portal userExists \
-p email=user@example.com \
-p org_id=123
With JSONata filter:
epilot customer-portal userExists -p email=user@example.com -p org_id=123 --jsonata 'exists'
Sample Response
{
"exists": true
}
userExistsV3โ
Checks whether a user exists in the portal
GET /v3/portal/public/user/exists
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
email | query | string | Yes | |
org_id | query | string | Yes | |
portal_id | query | string | No | Checkes if user exists in the given portal ID. If not provided, checks in all portals. |
Sample Call
epilot customer-portal userExistsV3 \
-p email=user@example.com \
-p org_id=123
With JSONata filter:
epilot customer-portal userExistsV3 -p email=user@example.com -p org_id=123 --jsonata 'exists'
Sample Response
{
"exists": true
}
getRecipientsToNotifyOnAutomationโ
Get recipients to notify on automation
POST /v2/portal/recipients-to-notify
Request Body
Sample Call
epilot customer-portal getRecipientsToNotifyOnAutomation
With request body:
epilot customer-portal getRecipientsToNotifyOnAutomation \
-d '{
"emails": ["john@doe.com"],
"template_id": "5da0a718-c822-403d-9f5d-20d4584e0528",
"context_id": "5da0a718-c822-403d-9f5d-20d4584e0528"
}'
Using stdin pipe:
cat body.json | epilot customer-portal getRecipientsToNotifyOnAutomation
With JSONata filter:
epilot customer-portal getRecipientsToNotifyOnAutomation --jsonata 'recipients'
Sample Response
{
"recipients": [
{
"email": "john@doe.com",
"recipient_id": "5da0a718-c822-403d-9f5d-20d4584e0528"
}
],
"message": "string"
}
configureDistributionโ
Configure the distribution for the portal's custom domain
GET /v2/portal/configure-distribution
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
origin | query | string | Yes |
Sample Call
epilot customer-portal configureDistribution \
-p origin=example
With JSONata filter:
epilot customer-portal configureDistribution -p origin=example --jsonata 'domainName'
Sample Response
{
"domainName": "dsj8op4ha01jha23.cloudfront.net"
}
configureDistributionV3โ
Configure the distribution for the portal's custom domain
GET /v3/portal/configure-distribution
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
portal_id | query | string | Yes |
Sample Call
epilot customer-portal configureDistributionV3 \
-p portal_id=453ad7bf-86d5-46c8-8252-bcc868df5e3c
With JSONata filter:
epilot customer-portal configureDistributionV3 -p portal_id=453ad7bf-86d5-46c8-8252-bcc868df5e3c --jsonata 'domainName'
Sample Response
{
"domainName": "dsj8op4ha01jha23.cloudfront.net"
}
getAllOrdersโ
Get all orders for the portal user
GET /v2/portal/order
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
from | query | number | No | |
size | query | number | No |
Sample Call
epilot customer-portal getAllOrders
With JSONata filter:
epilot customer-portal getAllOrders --jsonata 'data'
Sample Response
{
"data": [
{
"_id": "5da0a718-c822-403d-9f5d-20d4584e0528",
"_title": "Example Entity",
"_org": "123",
"_tags": ["example", "mock"],
"_created_at": "2021-02-09T12:41:43.662Z",
"_updated_at": "2021-02-09T12:41:43.662Z",
"_schema": "order",
"journey_actions": {
"journey_id": "string",
"action_label": {
"en": "string",
"de": "string"
},
"slug": "string",
"rules": [
{
"entity": "string",
"attribute": "string",
"attribute_value": "string"
}
]
}
}
]
}
postOrderAcceptanceโ
Accept/decline an offer by id
POST /v2/portal/order/{id}/acceptance
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string (uuid) | Yes | The ID of order |
Request Body
Sample Call
epilot customer-portal postOrderAcceptance \
-p id=5da0a718-c822-403d-9f5d-20d4584e0528 \
-d '{"decision":"accept"}'
Using positional args for path parameters:
epilot customer-portal postOrderAcceptance 5da0a718-c822-403d-9f5d-20d4584e0528
Using stdin pipe:
cat body.json | epilot customer-portal postOrderAcceptance -p id=5da0a718-c822-403d-9f5d-20d4584e0528
With JSONata filter:
epilot customer-portal postOrderAcceptance -p id=5da0a718-c822-403d-9f5d-20d4584e0528 --jsonata 'data'
Sample Response
{
"data": {
"_id": "5da0a718-c822-403d-9f5d-20d4584e0528",
"_title": "Example Entity",
"_org": "123",
"_tags": ["example", "mock"],
"_created_at": "2021-02-09T12:41:43.662Z",
"_updated_at": "2021-02-09T12:41:43.662Z",
"_schema": "order"
}
}
getOrderโ
Get an order by id
GET /v2/portal/order/{id}
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string (uuid) | Yes | The ID of order |
Sample Call
epilot customer-portal getOrder \
-p id=5da0a718-c822-403d-9f5d-20d4584e0528
Using positional args for path parameters:
epilot customer-portal getOrder 5da0a718-c822-403d-9f5d-20d4584e0528
With JSONata filter:
epilot customer-portal getOrder -p id=5da0a718-c822-403d-9f5d-20d4584e0528 --jsonata 'entity._title'
Sample Response
{
"entity": {
"_id": "5da0a718-c822-403d-9f5d-20d4584e0528",
"_title": "Example Entity",
"_org": "123",
"_tags": ["example", "mock"],
"_created_at": "2021-02-09T12:41:43.662Z",
"_updated_at": "2021-02-09T12:41:43.662Z",
"_schema": "order"
},
"files": [
{
"_id": "5da0a718-c822-403d-9f5d-20d4584e0528",
"_title": "Example Entity",
"_org": "123",
"_tags": ["example", "mock"],
"_created_at": "2021-02-09T12:41:43.662Z",
"_updated_at": "2021-02-09T12:41:43.662Z",
"_schema": "file"
}
],
"relations": [
{
"_id": "5da0a718-c822-403d-9f5d-20d4584e0528",
"_title": "Example Entity",
"_org": "123",
"_tags": ["example", "mock"],
"_created_at": "2021-02-09T12:41:43.662Z",
"_updated_at": "2021-02-09T12:41:43.662Z",
"templates_output": {},
"_schema": "contact"
}
],
"products": [
{
"_id": "5da0a718-c822-403d-9f5d-20d4584e0528",
"_title": "Example Entity",
"_org": "123",
"_tags": ["example", "mock"],
"_created_at": "2021-02-09T12:41:43.662Z",
"_updated_at": "2021-02-09T12:41:43.662Z",
"_schema": "product"
}
],
"crossSellableProducts": [
{
"_id": "5da0a718-c822-403d-9f5d-20d4584e0528",
"_title": "Example Entity",
"_org": "123",
"_tags": ["example", "mock"],
"_created_at": "2021-02-09T12:41:43.662Z",
"_updated_at": "2021-02-09T12:41:43.662Z",
"_schema": "product"
}
],
"workflow": [
{
"id": "8gja72h6kas6h",
"name": "Lead Qualification",
"trigger": "MANUAL",
"status": "STARTED",
"creationTime": "2021-04-27T12:01:13.000Z",
"lastUpdateTime": "2021-04-27T12:01:13.000Z",
"dueDate": "2021-04-27T12:01:13.000Z",
"assignedTo": ["252", "29052"],
"flow": []
}
],
"journey_actions": [
{
"journey_id": "string",
"action_label": {},
"slug": "string",
"rules": []
}
]
}
updateOrderโ
Update an order by id
PATCH /v2/portal/order/{id}
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string (uuid) | Yes | The ID of order |
Request Body
Sample Call
epilot customer-portal updateOrder \
-p id=5da0a718-c822-403d-9f5d-20d4584e0528 \
-d '{}'
Using positional args for path parameters:
epilot customer-portal updateOrder 5da0a718-c822-403d-9f5d-20d4584e0528
Using stdin pipe:
cat body.json | epilot customer-portal updateOrder -p id=5da0a718-c822-403d-9f5d-20d4584e0528
With JSONata filter:
epilot customer-portal updateOrder -p id=5da0a718-c822-403d-9f5d-20d4584e0528 --jsonata 'data'
Sample Response
{
"data": {
"_id": "5da0a718-c822-403d-9f5d-20d4584e0528",
"_title": "Example Entity",
"_org": "123",
"_tags": ["example", "mock"],
"_created_at": "2021-02-09T12:41:43.662Z",
"_updated_at": "2021-02-09T12:41:43.662Z",
"_schema": "order"
}
}
getAllOpportunitiesโ
Get all opportunities of a portal user
GET /v2/portal/opportunity
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
from | query | number | No | |
size | query | number | No |
Sample Call
epilot customer-portal getAllOpportunities
With JSONata filter:
epilot customer-portal getAllOpportunities --jsonata 'data'
Sample Response
{
"data": [
{
"_id": "5da0a718-c822-403d-9f5d-20d4584e0528",
"_title": "Example Entity",
"_org": "123",
"_tags": ["example", "mock"],
"_created_at": "2021-02-09T12:41:43.662Z",
"_updated_at": "2021-02-09T12:41:43.662Z",
"_schema": "opportunity",
"journey_actions": {
"journey_id": "string",
"action_label": {
"en": "string",
"de": "string"
},
"slug": "string",
"rules": [
{
"entity": "string",
"attribute": "string",
"attribute_value": "string"
}
]
}
}
]
}
getSearchableAttributesForOpportunitiesโ
Get all opportunity searchable attributes for a portal user
GET /v2/portal/opportunities/searchable-attributes
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
from | query | number | No | |
size | query | number | No |
Sample Call
epilot customer-portal getSearchableAttributesForOpportunities
With JSONata filter:
epilot customer-portal getSearchableAttributesForOpportunities --jsonata 'data'
Sample Response
{
"data": [
{
"_id": "5da0a718-c822-403d-9f5d-20d4584e0528",
"_title": "Example Entity",
"_org": "123",
"_tags": ["example", "mock"],
"_created_at": "2021-02-09T12:41:43.662Z",
"_updated_at": "2021-02-09T12:41:43.662Z",
"_schema": "opportunity"
}
]
}
getSearchResultsForOpportunitiesโ
Get all opportunity with the given serached attributes
POST /v2/portal/opportunities/search
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
from | query | number | No | |
size | query | number | No |
Request Body (required)
Sample Call
epilot customer-portal getSearchResultsForOpportunities \
-d '{"addresses":["string"],"customers":["string"],"purposes":["5da0a718-c822-403d-9f5d-20d4584e0528"],"workflows":[{}]}'
Using stdin pipe:
cat body.json | epilot customer-portal getSearchResultsForOpportunities
With JSONata filter:
epilot customer-portal getSearchResultsForOpportunities --jsonata 'data'
Sample Response
{
"data": [
{
"_id": "5da0a718-c822-403d-9f5d-20d4584e0528",
"_title": "Example Entity",
"_org": "123",
"_tags": ["example", "mock"],
"_created_at": "2021-02-09T12:41:43.662Z",
"_updated_at": "2021-02-09T12:41:43.662Z",
"_schema": "opportunity"
}
]
}
getOpportunityโ
Get an opportunity by id
GET /v2/portal/opportunities/{id}
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string (uuid) | Yes | The ID of opportunity |
Sample Call
epilot customer-portal getOpportunity \
-p id=5da0a718-c822-403d-9f5d-20d4584e0528
Using positional args for path parameters:
epilot customer-portal getOpportunity 5da0a718-c822-403d-9f5d-20d4584e0528
With JSONata filter:
epilot customer-portal getOpportunity -p id=5da0a718-c822-403d-9f5d-20d4584e0528 --jsonata 'entity._title'
Sample Response
{
"entity": {
"_id": "5da0a718-c822-403d-9f5d-20d4584e0528",
"_title": "Example Entity",
"_org": "123",
"_tags": ["example", "mock"],
"_created_at": "2021-02-09T12:41:43.662Z",
"_updated_at": "2021-02-09T12:41:43.662Z",
"_schema": "opportunity"
},
"orders": [
{
"_id": "5da0a718-c822-403d-9f5d-20d4584e0528",
"_title": "Example Entity",
"_org": "123",
"_tags": ["example", "mock"],
"_created_at": "2021-02-09T12:41:43.662Z",
"_updated_at": "2021-02-09T12:41:43.662Z",
"_schema": "order"
}
],
"files": [
{
"_id": "5da0a718-c822-403d-9f5d-20d4584e0528",
"_title": "Example Entity",
"_org": "123",
"_tags": ["example", "mock"],
"_created_at": "2021-02-09T12:41:43.662Z",
"_updated_at": "2021-02-09T12:41:43.662Z",
"_schema": "file"
}
],
"relations": [
{
"_id": "5da0a718-c822-403d-9f5d-20d4584e0528",
"_title": "Example Entity",
"_org": "123",
"_tags": ["example", "mock"],
"_created_at": "2021-02-09T12:41:43.662Z",
"_updated_at": "2021-02-09T12:41:43.662Z",
"templates_output": {},
"_schema": "contact"
}
],
"workflow": [
{
"id": "8gja72h6kas6h",
"name": "Lead Qualification",
"trigger": "MANUAL",
"status": "STARTED",
"creationTime": "2021-04-27T12:01:13.000Z",
"lastUpdateTime": "2021-04-27T12:01:13.000Z",
"dueDate": "2021-04-27T12:01:13.000Z",
"assignedTo": ["252", "29052"],
"flow": []
}
],
"journey_actions": [
{
"journey_id": "string",
"action_label": {},
"slug": "string",
"rules": []
}
]
}
updateOpportunityโ
Update an opportunity by id
PATCH /v2/portal/opportunities/{id}
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string (uuid) | Yes | The ID of opportunity |
Request Body (required)
Sample Call
epilot customer-portal updateOpportunity \
-p id=5da0a718-c822-403d-9f5d-20d4584e0528 \
-d '{}'
Using positional args for path parameters:
epilot customer-portal updateOpportunity 5da0a718-c822-403d-9f5d-20d4584e0528
Using stdin pipe:
cat body.json | epilot customer-portal updateOpportunity -p id=5da0a718-c822-403d-9f5d-20d4584e0528
With JSONata filter:
epilot customer-portal updateOpportunity -p id=5da0a718-c822-403d-9f5d-20d4584e0528 --jsonata 'data'
Sample Response
{
"data": {
"_id": "5da0a718-c822-403d-9f5d-20d4584e0528",
"_title": "Example Entity",
"_org": "123",
"_tags": ["example", "mock"],
"_created_at": "2021-02-09T12:41:43.662Z",
"_updated_at": "2021-02-09T12:41:43.662Z",
"_schema": "opportunity"
}
}
getAllRequestsโ
Get all opportunities & orders of a portal user
GET /v2/portal/request
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
from | query | number | No | |
size | query | number | No |
Sample Call
epilot customer-portal getAllRequests
With JSONata filter:
epilot customer-portal getAllRequests --jsonata 'results[0]'
Sample Response
{
"hits": 1,
"results": [
{
"_id": "5da0a718-c822-403d-9f5d-20d4584e0528",
"_title": "Example Entity",
"_org": "123",
"_tags": ["example", "mock"],
"_created_at": "2021-02-09T12:41:43.662Z",
"_updated_at": "2021-02-09T12:41:43.662Z",
"_schema": "opportunity"
}
]
}
getAllContractsโ
Get all contracts for a portal user
GET /v2/portal/contract
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
from | query | number | No | |
size | query | number | No |
Sample Call
epilot customer-portal getAllContracts
With JSONata filter:
epilot customer-portal getAllContracts --jsonata 'data'
Sample Response
{
"data": [
{
"_id": "5da0a718-c822-403d-9f5d-20d4584e0528",
"_title": "Example Entity",
"_org": "123",
"_tags": ["example", "mock"],
"_created_at": "2021-02-09T12:41:43.662Z",
"_updated_at": "2021-02-09T12:41:43.662Z",
"contract_name": "Grid Contract",
"contract_number": "12345",
"status": "approved",
"description": "This contract is for the supply of widgets.",
"account_number": "67890",
"branch": "power",
"billing_address": "123 Main St, Anytown",
"delivery_address": "456 Elm St, Anytown",
"additional_addresses": "789 Oak St, Anytown",
"termination_date": "2022-01-01",
"termination_reason": "Non-payment",
"billing_period": "monthly",
"billing_duration_amount": 30,
"renewal_duration_amount": 365,
"renewal_duration_unit": "years",
"notice_time_amount": 30,
"notice_time_unit": "months",
"start_date": "2021-01-01",
"billing_due_day": 2,
"installment_amount": 10050,
"balance": 8990,
"balance_currency": "EUR",
"journey_actions": {
"journey_id": "string",
"action_label": {
"en": "string",
"de": "string"
},
"slug": "string",
"rules": [
{
"entity": "string",
"attribute": "string",
"attribute_value": "string"
}
]
}
}
]
}
getContractโ
Get a contract by id
GET /v2/portal/contract/{id}
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string (uuid) | Yes | The ID of the contract |
Sample Call
epilot customer-portal getContract \
-p id=5da0a718-c822-403d-9f5d-20d4584e0528
Using positional args for path parameters:
epilot customer-portal getContract 5da0a718-c822-403d-9f5d-20d4584e0528
With JSONata filter:
epilot customer-portal getContract -p id=5da0a718-c822-403d-9f5d-20d4584e0528 --jsonata 'entity._title'
Sample Response
{
"entity": {
"_id": "5da0a718-c822-403d-9f5d-20d4584e0528",
"_title": "Example Entity",
"_org": "123",
"_tags": ["example", "mock"],
"_created_at": "2021-02-09T12:41:43.662Z",
"_updated_at": "2021-02-09T12:41:43.662Z",
"contract_name": "Grid Contract",
"contract_number": "12345",
"status": "approved",
"description": "This contract is for the supply of widgets.",
"account_number": "67890",
"branch": "power",
"billing_address": "123 Main St, Anytown",
"delivery_address": "456 Elm St, Anytown",
"additional_addresses": "789 Oak St, Anytown",
"termination_date": "2022-01-01",
"termination_reason": "Non-payment",
"billing_period": "monthly",
"billing_duration_amount": 30,
"renewal_duration_amount": 365,
"renewal_duration_unit": "years",
"notice_time_amount": 30,
"notice_time_unit": "months",
"start_date": "2021-01-01",
"billing_due_day": 2,
"installment_amount": 10050,
"balance": 8990,
"balance_currency": "EUR"
},
"orders": [
{
"_id": "5da0a718-c822-403d-9f5d-20d4584e0528",
"_title": "Example Entity",
"_org": "123",
"_tags": ["example", "mock"],
"_created_at": "2021-02-09T12:41:43.662Z",
"_updated_at": "2021-02-09T12:41:43.662Z",
"_schema": "order"
}
],
"meters": [
{
"_id": "5da0a718-c822-403d-9f5d-20d4584e0528",
"_title": "Example Entity",
"_org": "123",
"_tags": ["example", "mock"],
"_created_at": "2021-02-09T12:41:43.662Z",
"_updated_at": "2021-02-09T12:41:43.662Z",
"_schema": "meter"
}
],
"files": [
{
"_id": "5da0a718-c822-403d-9f5d-20d4584e0528",
"_title": "Example Entity",
"_org": "123",
"_tags": ["example", "mock"],
"_created_at": "2021-02-09T12:41:43.662Z",
"_updated_at": "2021-02-09T12:41:43.662Z",
"_schema": "file"
}
],
"relations": [
{
"_id": "5da0a718-c822-403d-9f5d-20d4584e0528",
"_title": "Example Entity",
"_org": "123",
"_tags": ["example", "mock"],
"_created_at": "2021-02-09T12:41:43.662Z",
"_updated_at": "2021-02-09T12:41:43.662Z",
"templates_output": {},
"_schema": "contact"
}
],
"workflow": [
{
"id": "8gja72h6kas6h",
"name": "Lead Qualification",
"trigger": "MANUAL",
"status": "STARTED",
"creationTime": "2021-04-27T12:01:13.000Z",
"lastUpdateTime": "2021-04-27T12:01:13.000Z",
"dueDate": "2021-04-27T12:01:13.000Z",
"assignedTo": ["252", "29052"],
"flow": []
}
],
"journey_actions": [
{
"journey_id": "string",
"action_label": {},
"slug": "string",
"rules": []
}
]
}
updateContractโ
Update a contract by id
PATCH /v2/portal/contract/{id}
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string (uuid) | Yes | The ID of the contract |
Request Body (required)
Sample Call
epilot customer-portal updateContract \
-p id=5da0a718-c822-403d-9f5d-20d4584e0528 \
-d '{}'
Using positional args for path parameters:
epilot customer-portal updateContract 5da0a718-c822-403d-9f5d-20d4584e0528
Using stdin pipe:
cat body.json | epilot customer-portal updateContract -p id=5da0a718-c822-403d-9f5d-20d4584e0528
With JSONata filter:
epilot customer-portal updateContract -p id=5da0a718-c822-403d-9f5d-20d4584e0528 --jsonata 'data'
Sample Response
{
"data": {
"_id": "5da0a718-c822-403d-9f5d-20d4584e0528",
"_title": "Example Entity",
"_org": "123",
"_tags": ["example", "mock"],
"_created_at": "2021-02-09T12:41:43.662Z",
"_updated_at": "2021-02-09T12:41:43.662Z",
"contract_name": "Grid Contract",
"contract_number": "12345",
"status": "approved",
"description": "This contract is for the supply of widgets.",
"account_number": "67890",
"branch": "power",
"billing_address": "123 Main St, Anytown",
"delivery_address": "456 Elm St, Anytown",
"additional_addresses": "789 Oak St, Anytown",
"termination_date": "2022-01-01",
"termination_reason": "Non-payment",
"billing_period": "monthly",
"billing_duration_amount": 30,
"renewal_duration_amount": 365,
"renewal_duration_unit": "years",
"notice_time_amount": 30,
"notice_time_unit": "months",
"start_date": "2021-01-01",
"billing_due_day": 2,
"installment_amount": 10050,
"balance": 8990,
"balance_currency": "EUR"
}
}
addContractByIdentifiersโ
Self-assign contract(s) by pre-configured identifiers.
POST /v2/portal/contract/by-identifiers
Request Body (required)
Sample Call
epilot customer-portal addContractByIdentifiers \
-d '{"contract":{"contract_number":"123456"},"meter":{"meter_number":"123456"}}'
Using stdin pipe:
cat body.json | epilot customer-portal addContractByIdentifiers
With JSONata filter:
epilot customer-portal addContractByIdentifiers --jsonata 'data'
Sample Response
{
"data": [
{
"_id": "5da0a718-c822-403d-9f5d-20d4584e0528",
"_title": "Example Entity",
"_org": "123",
"_tags": ["example", "mock"],
"_created_at": "2021-02-09T12:41:43.662Z",
"_updated_at": "2021-02-09T12:41:43.662Z",
"templates_output": {
"content_top_name": "Customer #123456",
"main_content_name": "Orange Flexible A2 (654321)",
"content_bottom_name": "Porscheplatz 1, 70435 Stuttgart, Germany",
"nested_content": {
"title": "Orange Flexible A2",
"subtitle": "654321"
}
},
"_schema": "contact"
}
],
"hits": 0
}
getEntityIdentifiersโ
Retrieve a list of entity identifiers used for entity search by portal users.
GET /v2/portal/entity/identifiers/{slug}
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
slug | path | string | Yes | The slug of an entity |
Sample Call
epilot customer-portal getEntityIdentifiers \
-p slug=contact
Using positional args for path parameters:
epilot customer-portal getEntityIdentifiers contact
With JSONata filter:
epilot customer-portal getEntityIdentifiers -p slug=contact --jsonata 'data'
Sample Response
{
"data": [
{
"name": "contract_number",
"type": "string"
}
]
}
getEntityActivityFeedโ
Get activity feed for an entity
GET /v2/portal/entity/{slug}/{id}/activity
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
slug | path | string | Yes | Entity Type |
id | path | string (uuid) | Yes | Entity id |
after | query | string (date-time) | No | Get activities after this timestamp |
before | query | string (date-time) | No | get activities before this timestamp |
from | query | number | No | start from page |
size | query | number | No | max number of results to return |
type | query | string | No | Filter by activity type |
include_relations | query | boolean | No | Include activities from related entities |
Sample Call
epilot customer-portal getEntityActivityFeed \
-p slug=contact \
-p id=5da0a718-c822-403d-9f5d-20d4584e0528
Using positional args for path parameters:
epilot customer-portal getEntityActivityFeed contact 5da0a718-c822-403d-9f5d-20d4584e0528
With JSONata filter:
epilot customer-portal getEntityActivityFeed -p slug=contact -p id=5da0a718-c822-403d-9f5d-20d4584e0528 --jsonata 'results[0]'
Sample Response
{
"total": 1,
"results": [
{
"_id": "01F130Q52Q6MWSNS8N2AVXV4JN",
"timestamp": "1970-01-01T00:00:00.000Z",
"type": "MyCustomActivity",
"title": "My custom activity",
"message": "{{caller}} did something with {{entity payload.entity.id}}.",
"payload": {
"entity": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"schema": "contact"
}
}
}
]
}
validateCadenceEntityEditRulesโ
Validate if cadence rule is valid for an entity
GET /v2/portal/{slug}/{id}:validateRule
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
slug | path | string | Yes | Entity Type |
id | path | string (uuid) | Yes | Entity id |
attribute | query | string | No | Get activities after this timestamp |
Sample Call
epilot customer-portal validateCadenceEntityEditRules \
-p slug=contact \
-p id=5da0a718-c822-403d-9f5d-20d4584e0528
Using positional args for path parameters:
epilot customer-portal validateCadenceEntityEditRules contact 5da0a718-c822-403d-9f5d-20d4584e0528
With JSONata filter:
epilot customer-portal validateCadenceEntityEditRules -p slug=contact -p id=5da0a718-c822-403d-9f5d-20d4584e0528 --jsonata 'isBlockedByRules'
Sample Response
{
"isBlockedByRules": false,
"failedRule": {
"slug": "contact",
"attribute": "string",
"rule_type": "string",
"cadence_period_type": "string",
"changes_allowed": 0,
"cadence_period": 0,
"allowed_decrement": "string",
"allowed_increment": "string",
"number_of_days_before_restriction": 0,
"grace_period": 0
}
}
searchPaymentRelationsInEntitiesโ
Search for entities that have the payment relation with the given payment id
GET /v2/portal/entities-by-payment/{id}
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string (uuid) | Yes | Entity id |
Sample Call
epilot customer-portal searchPaymentRelationsInEntities \
-p id=5da0a718-c822-403d-9f5d-20d4584e0528
Using positional args for path parameters:
epilot customer-portal searchPaymentRelationsInEntities 5da0a718-c822-403d-9f5d-20d4584e0528
With JSONata filter:
epilot customer-portal searchPaymentRelationsInEntities -p id=5da0a718-c822-403d-9f5d-20d4584e0528 --jsonata 'results[0]'
Sample Response
{
"results": [
{
"_id": "5da0a718-c822-403d-9f5d-20d4584e0528",
"_title": "Example Entity",
"_org": "123",
"_tags": ["example", "mock"],
"_created_at": "2021-02-09T12:41:43.662Z",
"_updated_at": "2021-02-09T12:41:43.662Z",
"templates_output": {
"content_top_name": "Customer #123456",
"main_content_name": "Orange Flexible A2 (654321)",
"content_bottom_name": "Porscheplatz 1, 70435 Stuttgart, Germany",
"nested_content": {
"title": "Orange Flexible A2",
"subtitle": "654321"
}
},
"_schema": "contact"
}
],
"hits": 50
}
createCustomEntityActivityโ
Create a custom activity that can be displayed in activity feed of an entity.
PUT /v2/portal/entity/activity
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
entities | query | string (uuid)[] | No | Comma-separated list of entities which the activity primarily concerns. Deprecated - ignored as the list of entities is automatically determined now. |
Request Body
Sample Call
epilot customer-portal createCustomEntityActivity \
-d '{"type":"PortalUserResetPassword"}'
Using stdin pipe:
cat body.json | epilot customer-portal createCustomEntityActivity
With JSONata filter:
epilot customer-portal createCustomEntityActivity --jsonata '$'
Sample Response
{
"_id": "01F130Q52Q6MWSNS8N2AVXV4JN",
"timestamp": "1970-01-01T00:00:00.000Z",
"type": "MyCustomActivity",
"title": "My custom activity",
"message": "{{caller}} did something with {{entity payload.entity.id}}.",
"payload": {
"entity": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"schema": "contact"
}
}
}
saveEntityFileโ
Add files to an entity
POST /v2/portal/entity/file
Request Body (required)
Sample Call
epilot customer-portal saveEntityFile
With request body:
epilot customer-portal saveEntityFile \
-d '{
"entity_id": "5da0a718-c822-403d-9f5d-20d4584e0528",
"entity_type": "order",
"files": [
{
"filename": "document.pdf",
"access_control": "private",
"s3ref": {
"bucket": 12345,
"key": 12345
}
}
]
}'
Using stdin pipe:
cat body.json | epilot customer-portal saveEntityFile
With JSONata filter:
epilot customer-portal saveEntityFile --jsonata 'createdFiles'
Sample Response
{
"createdFiles": [
{
"_id": "5da0a718-c822-403d-9f5d-20d4584e0528",
"_title": "Example Entity",
"_org": "123",
"_tags": ["example", "mock"],
"_created_at": "2021-02-09T12:41:43.662Z",
"_updated_at": "2021-02-09T12:41:43.662Z",
"_schema": "file"
}
]
}
deleteEntityFileโ
Delete files from an entity
DELETE /v2/portal/entity/file
Request Body (required)
Sample Call
epilot customer-portal deleteEntityFile
With request body:
epilot customer-portal deleteEntityFile \
-d '{
"entity_id": "5da0a718-c822-403d-9f5d-20d4584e0528",
"entity_type": "order",
"file_entity_ids": ["5da0a718-c822-403d-9f5d-20d4584e0528"]
}'
Using stdin pipe:
cat body.json | epilot customer-portal deleteEntityFile
With JSONata filter:
epilot customer-portal deleteEntityFile --jsonata '$'
savePortalFilesโ
Add files to portal
POST /v2/portal/portal/files
Request Body (required)
Sample Call
epilot customer-portal savePortalFiles
With request body:
epilot customer-portal savePortalFiles \
-d '{
"origin": "string",
"files": [
{
"filename": 12345,
"file_type": "orderRightTeaser",
"_tags": 12345,
"s3ref": {
"bucket": 12345,
"key": 12345
}
}
]
}'
Using stdin pipe:
cat body.json | epilot customer-portal savePortalFiles
With JSONata filter:
epilot customer-portal savePortalFiles --jsonata 'createdFiles'
Sample Response
{
"createdFiles": [
{
"_id": "5da0a718-c822-403d-9f5d-20d4584e0528",
"_title": "Example Entity",
"_org": "123",
"_tags": ["example", "mock"],
"_created_at": "2021-02-09T12:41:43.662Z",
"_updated_at": "2021-02-09T12:41:43.662Z",
"_schema": "file"
}
]
}
getRegistrationIdentifiersโ
Get valid attributes from entities that can be used as identifier to map contact to user on registration
GET /v2/portal/registration/identifiers
Sample Call
epilot customer-portal getRegistrationIdentifiers
With JSONata filter:
epilot customer-portal getRegistrationIdentifiers --jsonata 'data'
Sample Response
{
"data": {
"contact": [
{
"label": "First name",
"name": "first_name",
"type": "string"
}
],
"contract": [
{
"label": "Contract number",
"name": "contract_number",
"type": "string"
}
]
}
}
getFileByIdโ
Fetch a document with ID
GET /v2/portal/user/file/{id}
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string (uuid) | Yes | The Id of a file |
Sample Call
epilot customer-portal getFileById \
-p id=5da0a718-c822-403d-9f5d-20d4584e0528
Using positional args for path parameters:
epilot customer-portal getFileById 5da0a718-c822-403d-9f5d-20d4584e0528
With JSONata filter:
epilot customer-portal getFileById -p id=5da0a718-c822-403d-9f5d-20d4584e0528 --jsonata 'file'
Sample Response
{
"file": {
"_id": "5da0a718-c822-403d-9f5d-20d4584e0528",
"_title": "Example Entity",
"_org": "123",
"_tags": ["example", "mock"],
"_created_at": "2021-02-09T12:41:43.662Z",
"_updated_at": "2021-02-09T12:41:43.662Z",
"_schema": "file",
"filename": "document.pdf",
"access_control": "private",
"file_date": "2021-02-09T12:41:43.662Z",
"public_url": "https://epilot-files-prod.s3.eu-central-1.amazonaws.com/123/4d689aeb-1497-4410-a9fe-b36ca9ac4389/document.pdf",
"type": "document",
"mime_type": "application/pdf",
"_relations": [
{
"entity_id": "5da0a718-c822-403d-9f5d-20d4584e0528",
"_schema": "contact",
"_title": "Opportunity ABC"
}
],
"is_new": true
}
}
trackFileDownloadedโ
Track that user has downloaded a file
POST /v2/portal/user/file/{id}/downloaded
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string (uuid) | Yes | The Id of a file |
Sample Call
epilot customer-portal trackFileDownloaded \
-p id=5da0a718-c822-403d-9f5d-20d4584e0528
Using positional args for path parameters:
epilot customer-portal trackFileDownloaded 5da0a718-c822-403d-9f5d-20d4584e0528
With JSONata filter:
epilot customer-portal trackFileDownloaded -p id=5da0a718-c822-403d-9f5d-20d4584e0528 --jsonata 'file'
Sample Response
{
"file": {
"_id": "5da0a718-c822-403d-9f5d-20d4584e0528",
"_title": "Example Entity",
"_org": "123",
"_tags": ["example", "mock"],
"_created_at": "2021-02-09T12:41:43.662Z",
"_updated_at": "2021-02-09T12:41:43.662Z",
"_schema": "file",
"filename": "document.pdf",
"access_control": "private",
"file_date": "2021-02-09T12:41:43.662Z",
"public_url": "https://epilot-files-prod.s3.eu-central-1.amazonaws.com/123/4d689aeb-1497-4410-a9fe-b36ca9ac4389/document.pdf",
"type": "document",
"mime_type": "application/pdf",
"_relations": [
{
"entity_id": "5da0a718-c822-403d-9f5d-20d4584e0528",
"_schema": "contact",
"_title": "Opportunity ABC"
}
],
"is_new": true
}
}
getBillingEventsโ
Fetch billing events for a portal user
GET /v2/portal/billing/events
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
from | query | number | No | |
size | query | number | No | |
entity_id | query | string (uuid)[] | No | Entity ID to filter billing events by |
event_type | query | "installment" | "reimbursement" | No | |
paid | query | boolean | No | |
date_after | query | string (date-time) | No | |
date_before | query | string (date-time) | No | |
sort | query | string | No |
Sample Call
epilot customer-portal getBillingEvents
With JSONata filter:
epilot customer-portal getBillingEvents --jsonata 'results[0]'
Sample Response
{
"results": [
{
"billing_amount_decimal": "100.50",
"billing_amount": 10050,
"billing_currency": "EUR",
"external_id": "d4fb2a4e-3f74-4fc4-8fba-6fdaaaa3b08e",
"contract": {
"$relation": [
{
"entity_id": "f589786b-3024-43cd-9cb3-5a3c953f2896"
}
]
},
"_id": "5da0a718-c822-403d-9f5d-20d4584e0528",
"_title": "Example Entity",
"_org": "123",
"_tags": ["example", "mock"],
"_created_at": "2021-02-09T12:41:43.662Z",
"_updated_at": "2021-02-09T12:41:43.662Z",
"type": "installment",
"due_date": "1970-01-01",
"paid_date": "1970-01-01"
}
],
"hits": 50
}
getCustomerBalanceโ
Get total balance across all contracts and orders of a customer entity.
GET /v2/portal/billing/customers/balance
Sample Call
epilot customer-portal getCustomerBalance
With JSONata filter:
epilot customer-portal getCustomerBalance --jsonata 'balance'
Sample Response
{
"balance": 8990,
"balance_decimal": "89.90",
"balance_currency": "EUR"
}
getBillingAccountโ
Get a billing account by id.
GET /v2/portal/billing/accounts/{id}
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string (uuid) | Yes |
Sample Call
epilot customer-portal getBillingAccount \
-p id=5da0a718-c822-403d-9f5d-20d4584e0528
Using positional args for path parameters:
epilot customer-portal getBillingAccount 5da0a718-c822-403d-9f5d-20d4584e0528
With JSONata filter:
epilot customer-portal getBillingAccount -p id=5da0a718-c822-403d-9f5d-20d4584e0528 --jsonata 'entity._title'
Sample Response
{
"entity": {
"billing_account_number": "string",
"balance": 0,
"balance_decimal": "string",
"balance_currency": "EUR",
"billing_contact": {
"$relation": [
{
"entity_id": "f589786b-3024-43cd-9cb3-5a3c953f2896"
}
]
},
"billing_address": {
"$relation_ref": [
{
"entity_id": "f589786b-3024-43cd-9cb3-5a3c953f2896",
"path": "address",
"_id": "f589786b-3024-43cd-9cb3-5a3c953f2896"
}
]
},
"_id": "5da0a718-c822-403d-9f5d-20d4584e0528",
"_title": "Example Entity",
"_org": "123",
"_tags": ["example", "mock"],
"_created_at": "2021-02-09T12:41:43.662Z",
"_updated_at": "2021-02-09T12:41:43.662Z"
},
"relations": [
{
"_id": "5da0a718-c822-403d-9f5d-20d4584e0528",
"_title": "Example Entity",
"_org": "123",
"_tags": ["example", "mock"],
"_created_at": "2021-02-09T12:41:43.662Z",
"_updated_at": "2021-02-09T12:41:43.662Z",
"templates_output": {
"content_top_name": "Customer #123456",
"main_content_name": "Orange Flexible A2 (654321)",
"content_bottom_name": "Porscheplatz 1, 70435 Stuttgart, Germany",
"nested_content": {
"title": "Orange Flexible A2",
"subtitle": "654321"
}
},
"_schema": "contact"
}
]
}
loginToPortalAsUserโ
Generate a token to log in to a portal impersonating a users.
POST /v2/portal/admin:login-as-user
Request Body (required)
Sample Call
epilot customer-portal loginToPortalAsUser \
-d '{"email":"portal-customer@email.com","origin":"string"}'
Using stdin pipe:
cat body.json | epilot customer-portal loginToPortalAsUser
With JSONata filter:
epilot customer-portal loginToPortalAsUser --jsonata 'login_as_token'
Sample Response
{
"login_as_token": "string"
}
triggerEntityAccessEventโ
Trigger entity access event for a portal user
POST /v2/portal/entity/{schema}/access
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
schema | path | string | Yes | Entity schema |
entity_id | query | string (uuid) | No | Entity ID |
origin | query | string | Yes | Portal origin |
Sample Call
epilot customer-portal triggerEntityAccessEvent \
-p schema=contract \
-p origin=example
Using positional args for path parameters:
epilot customer-portal triggerEntityAccessEvent contract
With JSONata filter:
epilot customer-portal triggerEntityAccessEvent -p schema=contract -p origin=example --jsonata 'eventId'
Sample Response
{
"eventId": "string"
}
triggerEntityAccessEventV3โ
Trigger entity access event for a portal user
POST /v3/portal/entity/{schema}/access
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
schema | path | string | Yes | Entity schema |
entity_id | query | string (uuid) | No | Entity ID |
portal_id | query | string | Yes | Portal ID |
Sample Call
epilot customer-portal triggerEntityAccessEventV3 \
-p schema=contract \
-p portal_id=453ad7bf-86d5-46c8-8252-bcc868df5e3c
Using positional args for path parameters:
epilot customer-portal triggerEntityAccessEventV3 contract
With JSONata filter:
epilot customer-portal triggerEntityAccessEventV3 -p schema=contract -p portal_id=453ad7bf-86d5-46c8-8252-bcc868df5e3c --jsonata 'eventId'
Sample Response
{
"eventId": "string"
}
getPortalUserEntityโ
Get a single entity for a portal user
POST /v2/portal/entity:get
Request Body
Sample Call
epilot customer-portal getPortalUserEntity
With request body:
epilot customer-portal getPortalUserEntity \
-d '{
"slug": "contact",
"entity_id": "3ec28ab5-8598-41ef-9486-b57fca1d5e2a",
"hydrate": false,
"fields": ["_id", "_title"],
"templates": {
"content_top_name": "Customer #{{contract.customer_number}}",
"main_content_name": "{{contract.contract_name}} ({{contract.contract_number}})",
"content_bottom_name": "{{custom_contract_delivery_address}}",
"nested_content": {
"title": "{{contract.contract_name}}",
"subtitle": "{{contract.contract_number}}"
}
},
"filters": [
{
"term": {
"status.keyword": "active"
}
},
{
"range": {
"_created_at": {
"gte": "2023-01-01"
}
}
}
],
"filters_context": [
{
"portal_user": true
},
{
"contact": true
}
],
"targets": ["3ec28ab5-8598-41ef-9486-b57fca1d5e2a"]
}'
Using stdin pipe:
cat body.json | epilot customer-portal getPortalUserEntity
With JSONata filter:
epilot customer-portal getPortalUserEntity --jsonata 'result'
Sample Response
{
"result": {
"_id": "5da0a718-c822-403d-9f5d-20d4584e0528",
"_title": "Example Entity",
"_org": "123",
"_tags": ["example", "mock"],
"_created_at": "2021-02-09T12:41:43.662Z",
"_updated_at": "2021-02-09T12:41:43.662Z",
"templates_output": {
"content_top_name": "Customer #123456",
"main_content_name": "Orange Flexible A2 (654321)",
"content_bottom_name": "Porscheplatz 1, 70435 Stuttgart, Germany",
"nested_content": {
"title": "Orange Flexible A2",
"subtitle": "654321"
}
},
"_schema": "contact"
}
}
searchPortalUserEntitiesโ
Search all entities of a portal user
POST /v2/portal/entity:search
Request Body
Sample Call
epilot customer-portal searchPortalUserEntities
With request body:
epilot customer-portal searchPortalUserEntities \
-d '{
"slug": "contact",
"q": "contract",
"q_fields": ["_title", "customer._title", "customer.first_name", "customer.last_name"],
"group": "customer._title",
"group_title": "{{customer[Primary].first_name}} {{customer[Primary].last_name}}",
"group_size": 100,
"group_sort": "desc",
"group_after_key": {},
"sort": "_created_at:desc",
"from": 0,
"size": 100,
"hydrate": false,
"fields": ["_id", "_title"],
"templates": {
"content_top_name": "Customer #{{contract.customer_number}}",
"main_content_name": "{{contract.contract_name}} ({{contract.contract_number}})",
"content_bottom_name": "{{custom_contract_delivery_address}}"
},
"filters": [
{
"term": {
"status.keyword": "active"
}
},
{
"range": {
"_created_at": {
"gte": "2023-01-01"
}
}
}
],
"filters_context": [
{
"portal_user": true
},
{
"contact": true
}
],
"targets": ["3ec28ab5-8598-41ef-9486-b57fca1d5e2a"]
}'
Using stdin pipe:
cat body.json | epilot customer-portal searchPortalUserEntities
With JSONata filter:
epilot customer-portal searchPortalUserEntities --jsonata '$'
Sample Response
{
"results": [
{
"_id": "5da0a718-c822-403d-9f5d-20d4584e0528",
"_title": "Example Entity",
"_org": "123",
"_tags": ["example", "mock"],
"_created_at": "2021-02-09T12:41:43.662Z",
"_updated_at": "2021-02-09T12:41:43.662Z",
"templates_output": {
"content_top_name": "Customer #123456",
"main_content_name": "Orange Flexible A2 (654321)",
"content_bottom_name": "Porscheplatz 1, 70435 Stuttgart, Germany",
"nested_content": {
"title": "Orange Flexible A2",
"subtitle": "654321"
}
},
"_schema": "contact"
}
],
"pagination": {
"from": 0,
"size": 10,
"total": 50,
"has_more": true
},
"hits": 10
}
canTriggerPortalFlowโ
Returns whether the user can trigger a portal flow
POST /v2/portal/can-trigger-portal-flow
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
origin | query | string | No | Origin of the portal |
portal_id | query | string | Yes |
Request Body (required)
Sample Call
epilot customer-portal canTriggerPortalFlow \
-p portal_id=123
With request body:
epilot customer-portal canTriggerPortalFlow \
-p portal_id=123 \
-d '{
"activity_id": "01F130Q52Q6MWSNS8N2AVXV4JN",
"ecp_config": {
"file_config": {
"shared_with_end_customer": true,
"_tags": ["example", "mock"]
}
}
}'
Using stdin pipe:
cat body.json | epilot customer-portal canTriggerPortalFlow -p portal_id=123
With JSONata filter:
epilot customer-portal canTriggerPortalFlow -p portal_id=123 --jsonata 'can_trigger'
Sample Response
{
"can_trigger": true
}
getAutomationContextโ
Retrieves the automation context.
GET /v2/portal/automation-context
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
activity_id | query | string (ulid) | Yes | Activity ID |
type | query | "file" | Yes | Type of the context to retrieve |
Sample Call
epilot customer-portal getAutomationContext \
-p activity_id=01F130Q52Q6MWSNS8N2AVXV4JN \
-p type=example
With JSONata filter:
epilot customer-portal getAutomationContext -p activity_id=01F130Q52Q6MWSNS8N2AVXV4JN -p type=example --jsonata '$'
Sample Response
{}
updateWorkflowStepAsDoneโ
Update a workflow step as done
PUT /v2/portal/workflow/{workflow_id}/{step_id}:markDone
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
workflow_id | path | string | Yes | |
step_id | path | string | Yes |
Sample Call
epilot customer-portal updateWorkflowStepAsDone \
-p workflow_id=0bjwcxc827t \
-p step_id=q1d6vcbsqvn
Using positional args for path parameters:
epilot customer-portal updateWorkflowStepAsDone 0bjwcxc827t q1d6vcbsqvn
With JSONata filter:
epilot customer-portal updateWorkflowStepAsDone -p workflow_id=0bjwcxc827t -p step_id=q1d6vcbsqvn --jsonata '$'
Sample Response
{
"startedTime": "2024-01-12T13:29:55.942Z",
"requirements": [],
"created": "2023-10-20T17:41:10.256Z",
"executionType": "MANUAL",
"assignedToInProgress": "-",
"sectionId": "lzxsw2sblj7",
"type": "STEP",
"entityRefId": "q1d6vcbsqvn",
"assignedTo": ["10014532"],
"lastUpdated": "2024-01-13T05:18:43.838Z",
"ecp": {},
"userIds": [],
"name": "Hinterlege den vereinbarten LIC Termin",
"id": "q1d6vcbsqvn",
"definitionId": "9UjHKq",
"status": "COMPLETED",
"manuallyCreated": false,
"enabled": true,
"completedTime": "2024-01-13T05:18:43.827Z"
}
getEntityWorkflowsโ
Get all workflows associated with an entity (requires access to the entity)
GET /v2/portal/entity/{slug}/{id}/workflows
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
slug | path | string | Yes | |
id | path | string | Yes |
Sample Call
epilot customer-portal getEntityWorkflows \
-p slug=contact \
-p id=abc123
Using positional args for path parameters:
epilot customer-portal getEntityWorkflows contact abc123
With JSONata filter:
epilot customer-portal getEntityWorkflows -p slug=contact -p id=abc123 --jsonata 'workflow_executions'
Sample Response
{
"workflow_executions": [
{
"id": "8gja72h6kas6h",
"name": "Lead Qualification",
"trigger": "MANUAL",
"status": "STARTED",
"creationTime": "2021-04-27T12:01:13.000Z",
"lastUpdateTime": "2021-04-27T12:01:13.000Z",
"dueDate": "2021-04-27T12:01:13.000Z",
"assignedTo": ["252", "29052"],
"flow": [
{
"id": "sectionId1",
"name": "Initial Information Gathering",
"steps": [
{
"id": "sada5641f3a21",
"name": "Call client and confirm address and product",
"status": "ASSIGNED",
"assignedTo": ["11"]
},
{
"id": "sada5641f3a22",
"name": "Check product availability",
"status": "UNASSIGNED"
}
]
},
{
"id": "firstLevelStepId1",
"name": "Print and send catalog",
"status": "SKIPPED",
"dueDate": "2023-01-15T20:00:00"
}
]
}
]
}
uploadMeterReadingPhotoโ
Uploads a Meter Reading photo and - if enabled - gives back data extracted from the photo.
POST /v2/portal/metering/reading/photo
Request Body (required)
Sample Call
epilot customer-portal uploadMeterReadingPhoto
With request body:
epilot customer-portal uploadMeterReadingPhoto \
-d '{
"filename": "Reading 10.01.2025.jpg",
"mime_type": "image/jpeg",
"contents": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAkGBxMTEhUTExMWFhUXGBgYGBgYGBgYGBgYGBgYFxgYFxgYHSggGBolHRgXITEhJSkrLi4uFx8zODMtNygtLisBCgoKDg0OGhAQGy0lHyUt",
"meter_id": "5da0a718-c822-403d-9f5d-20d4584e0528"
}'
Using stdin pipe:
cat body.json | epilot customer-portal uploadMeterReadingPhoto
With JSONata filter:
epilot customer-portal uploadMeterReadingPhoto --jsonata 'data'
Sample Response
{
"data": {
"filename": "Reading 10.01.2025.jpg",
"s3ref": {
"bucket": "meter-readings",
"key": "uuid/reading-10.01.2025.jpg"
},
"reading": "000123.45",
"sector": "water",
"meter_numbers": ["00123456"]
}
}
createMeterReadingโ
Inserts a new meter reading.
POST /v2/portal/metering/reading
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
override_plausibility | query | boolean | No | Override plausibility check |
Request Body (required)
Sample Call
epilot customer-portal createMeterReading
With request body:
epilot customer-portal createMeterReading \
-d '{
"value": 240,
"read_by": "John Doe",
"reason": "Storing the feed-in record",
"meter_id": "5da0a718-c822-403d-9f5d-20d4584e0528",
"counter_id": "5da0a718-c822-403d-9f5d-20d4584e0528",
"direction": "feed-in",
"timestamp": "2022-10-10T00:00:00.000Z",
"source": "ECP",
"status": "valid",
"external_id": "string",
"remark": "Customer reported unusual consumption",
"metadata": {
"registration_id": "1234567890",
"business_unit": "ABC"
}
}'
Using stdin pipe:
cat body.json | epilot customer-portal createMeterReading
With JSONata filter:
epilot customer-portal createMeterReading --jsonata 'data'
Sample Response
{
"data": {
"value": 240,
"read_by": "John Doe",
"reason": "Storing the feed-in record",
"meter_id": "5da0a718-c822-403d-9f5d-20d4584e0528",
"counter_id": "5da0a718-c822-403d-9f5d-20d4584e0528",
"direction": "feed-in",
"timestamp": "2022-10-10T00:00:00.000Z",
"source": "ECP",
"status": "valid",
"external_id": "string",
"remark": "Customer reported unusual consumption",
"metadata": {
"registration_id": "1234567890",
"business_unit": "ABC"
}
}
}
getAllowedMeterReadingRangeโ
Get allowed reading range for all counters of a meter from the configured
GET /v2/portal/metering/reading/allowed-range/{meter_id}
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
meter_id | path | string | Yes | The ID of the meter. |
origin | query | string | No | Origin of the portal |
timestamp | query | string | No | If not provided, the system will default to now. |
context_entities | query | object[] | No | Additional entities to include in the context for variable interpolation in the hook. |
Sample Call
epilot customer-portal getAllowedMeterReadingRange \
-p meter_id=123e4567-e89b-12d3-a456-426614174000
Using positional args for path parameters:
epilot customer-portal getAllowedMeterReadingRange 123e4567-e89b-12d3-a456-426614174000
With JSONata filter:
epilot customer-portal getAllowedMeterReadingRange -p meter_id=123e4567-e89b-12d3-a456-426614174000 --jsonata 'data'
Sample Response
{
"data": [
{
"meter_counter_id": "string",
"min_value": 0,
"max_value": 0
}
]
}
ssoLoginโ
Initiate login using external SSO identity.
POST /v2/portal/public/sso/login
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
origin | query | string | Yes | Origin of the Portal |
org_id | query | string | Yes | epilot organization id |
contact_id | query | string (uuid) | No | contact id in the epilot system |
Request Body
Sample Call
epilot customer-portal ssoLogin \
-p origin=example \
-p org_id=123 \
-d '{"provider_slug":"office-365-login"}'
Using stdin pipe:
cat body.json | epilot customer-portal ssoLogin -p origin=example -p org_id=123
With JSONata filter:
epilot customer-portal ssoLogin -p origin=example -p org_id=123 --jsonata 'email'
Sample Response
{
"token": "string",
"email": "portal-customer@email.com"
}
ssoLoginV3โ
Initiate login using external SSO identity.
POST /v3/portal/public/sso/login
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
portal_id | query | string | Yes | ID of the Portal |
org_id | query | string | Yes | epilot organization id |
contact_id | query | string (uuid) | No | contact id in the epilot system |
Request Body
Sample Call
epilot customer-portal ssoLoginV3 \
-p portal_id=453ad7bf-86d5-46c8-8252-bcc868df5e3c \
-p org_id=123 \
-d '{"provider_slug":"office-365-login"}'
Using stdin pipe:
cat body.json | epilot customer-portal ssoLoginV3 -p portal_id=453ad7bf-86d5-46c8-8252-bcc868df5e3c -p org_id=123
With JSONata filter:
epilot customer-portal ssoLoginV3 -p portal_id=453ad7bf-86d5-46c8-8252-bcc868df5e3c -p org_id=123 --jsonata 'email'
Sample Response
{
"token": "string",
"email": "portal-customer@email.com"
}
ssoRedirectโ
Handles the redirect from the external SSO provider. Validates the authorization code and state received from the pr
POST /v2/portal/public/sso/redirect
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
web_uri | query | string | Yes | The URI to redirect to after the SSO login |
Sample Call
epilot customer-portal ssoRedirect \
-p web_uri=https://customer-portal.com
With JSONata filter:
epilot customer-portal ssoRedirect -p web_uri=https://customer-portal.com --jsonata '$'
ssoCallbackโ
Handles the callback from the external SSO provider, validates the authorization code
POST /v2/portal/public/sso/callback
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
domain | query | string | No |
Request Body (required)
Sample Call
epilot customer-portal ssoCallback
With request body:
epilot customer-portal ssoCallback \
-d '{
"provider_slug": "office-365-login",
"token_endpoint": "https://www.facebook.com/v12.0/dialog/oauth",
"grant_type": "authorization_code",
"code": "123456",
"redirect_uri": "https://customer-portal.com/login",
"client_id": "123456",
"code_verifier": "123456"
}'
Using stdin pipe:
cat body.json | epilot customer-portal ssoCallback
With JSONata filter:
epilot customer-portal ssoCallback --jsonata 'access_token'
Sample Response
{
"access_token": "123456",
"token_type": "Bearer",
"expires_in": 3600,
"refresh_token": "123456",
"id_token": "123456",
"scope": "openid email"
}
getPortalPageโ
Fetch a portal page by id
GET /v2/portal/pages/{id}
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string (uuid) | Yes |
Sample Call
epilot customer-portal getPortalPage \
-p id=5da0a718-c822-403d-9f5d-20d4584e0528
Using positional args for path parameters:
epilot customer-portal getPortalPage 5da0a718-c822-403d-9f5d-20d4584e0528
With JSONata filter:
epilot customer-portal getPortalPage -p id=5da0a718-c822-403d-9f5d-20d4584e0528 --jsonata '$'
Sample Response
{
"slug": "dashboard",
"path": "/dashboard",
"schema": ["string"],
"visibility": {},
"content": {},
"design": {},
"blocks": {},
"order": 1,
"is_system": false,
"is_detail": false,
"detail_schema": "contact",
"is_public": true,
"parentId": "c495fef9-eeca-4019-a989-8390dcd9825b",
"is_entry_route": false,
"is_deleted": false,
"id": "c495fef9-eeca-4019-a989-8390dcd9825b",
"last_modified_at": "2021-02-09T12:41:43.662Z"
}
updatePortalPageโ
Update a portal page by id
PUT /v2/portal/pages/{id}
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string (uuid) | Yes |
Request Body (required)
Sample Call
epilot customer-portal updatePortalPage \
-p id=5da0a718-c822-403d-9f5d-20d4584e0528
With request body:
epilot customer-portal updatePortalPage \
-p id=5da0a718-c822-403d-9f5d-20d4584e0528 \
-d '{
"slug": "dashboard",
"path": "/dashboard",
"schema": ["string"],
"visibility": {},
"content": {},
"design": {},
"blocks": {},
"order": 1,
"is_system": false,
"is_detail": false,
"detail_schema": "contact",
"is_public": true,
"parentId": "c495fef9-eeca-4019-a989-8390dcd9825b",
"is_entry_route": false,
"is_deleted": false
}'
Using positional args for path parameters:
epilot customer-portal updatePortalPage 5da0a718-c822-403d-9f5d-20d4584e0528
Using stdin pipe:
cat body.json | epilot customer-portal updatePortalPage -p id=5da0a718-c822-403d-9f5d-20d4584e0528
With JSONata filter:
epilot customer-portal updatePortalPage -p id=5da0a718-c822-403d-9f5d-20d4584e0528 --jsonata '$'
Sample Response
{
"slug": "dashboard",
"path": "/dashboard",
"schema": ["string"],
"visibility": {},
"content": {},
"design": {},
"blocks": {},
"order": 1,
"is_system": false,
"is_detail": false,
"detail_schema": "contact",
"is_public": true,
"parentId": "c495fef9-eeca-4019-a989-8390dcd9825b",
"is_entry_route": false,
"is_deleted": false,
"id": "c495fef9-eeca-4019-a989-8390dcd9825b",
"last_modified_at": "2021-02-09T12:41:43.662Z"
}
deletePortalPageโ
Delete a portal page by id
DELETE /v2/portal/pages/{id}
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string (uuid) | Yes |
Sample Call
epilot customer-portal deletePortalPage \
-p id=5da0a718-c822-403d-9f5d-20d4584e0528
Using positional args for path parameters:
epilot customer-portal deletePortalPage 5da0a718-c822-403d-9f5d-20d4584e0528
With JSONata filter:
epilot customer-portal deletePortalPage -p id=5da0a718-c822-403d-9f5d-20d4584e0528 --jsonata '$'
getPortalPagesโ
Fetch all portal pages
GET /v2/portal/pages
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
domain | query | string | Yes | |
fields | query | string | No | The fields to include in the response |
filter | query | string | No | The filter to apply to the response |
contract_id | query | string (uuid) | No | Contract context for blocks. Use context_entities instead. |
context_entities | query | object[] | No | If the request is in a context of certain entities (i.e. the user in in a context of a specific contract), pages can be customized for that. Portal User and Contact entities are automatically part of |
Sample Call
epilot customer-portal getPortalPages \
-p domain=customer-portal.epilot.io
With JSONata filter:
epilot customer-portal getPortalPages -p domain=customer-portal.epilot.io --jsonata '$'
Sample Response
[
{
"slug": "dashboard",
"path": "/dashboard",
"schema": ["string"],
"visibility": {},
"content": {},
"design": {},
"blocks": {},
"order": 1,
"is_system": false,
"is_detail": false,
"detail_schema": "contact",
"is_public": true,
"parentId": "c495fef9-eeca-4019-a989-8390dcd9825b",
"is_entry_route": false,
"is_deleted": false,
"id": "c495fef9-eeca-4019-a989-8390dcd9825b",
"last_modified_at": "2021-02-09T12:41:43.662Z"
}
]
createPortalPageโ
Create a new portal page
POST /v2/portal/pages
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
domain | query | string | Yes |
Request Body (required)
Sample Call
epilot customer-portal createPortalPage \
-p domain=customer-portal.epilot.io
With request body:
epilot customer-portal createPortalPage \
-p domain=customer-portal.epilot.io \
-d '{
"slug": "dashboard",
"path": "/dashboard",
"schema": ["string"],
"visibility": {},
"content": {},
"design": {},
"blocks": {},
"order": 1,
"is_system": false,
"is_detail": false,
"detail_schema": "contact",
"is_public": true,
"parentId": "c495fef9-eeca-4019-a989-8390dcd9825b",
"is_entry_route": false,
"is_deleted": false
}'
Using stdin pipe:
cat body.json | epilot customer-portal createPortalPage -p domain=customer-portal.epilot.io
With JSONata filter:
epilot customer-portal createPortalPage -p domain=customer-portal.epilot.io --jsonata '$'
Sample Response
{
"slug": "dashboard",
"path": "/dashboard",
"schema": ["string"],
"visibility": {},
"content": {},
"design": {},
"blocks": {},
"order": 1,
"is_system": false,
"is_detail": false,
"detail_schema": "contact",
"is_public": true,
"parentId": "c495fef9-eeca-4019-a989-8390dcd9825b",
"is_entry_route": false,
"is_deleted": false,
"id": "c495fef9-eeca-4019-a989-8390dcd9825b",
"last_modified_at": "2021-02-09T12:41:43.662Z"
}
getPublicPagesโ
Fetch all public portal pages
GET /v2/portal/public/pages
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
domain | query | string | Yes | |
fields | query | string | No | The fields to include in the response |
filter | query | string | No | The filter to apply to the response |
Sample Call
epilot customer-portal getPublicPages \
-p domain=customer-portal.epilot.io
With JSONata filter:
epilot customer-portal getPublicPages -p domain=customer-portal.epilot.io --jsonata '$'
Sample Response
[
{
"slug": "dashboard",
"path": "/dashboard",
"schema": ["string"],
"visibility": {},
"content": {},
"design": {},
"blocks": {},
"order": 1,
"is_system": false,
"is_detail": false,
"detail_schema": "contact",
"is_public": true,
"parentId": "c495fef9-eeca-4019-a989-8390dcd9825b",
"is_entry_route": false,
"is_deleted": false,
"id": "c495fef9-eeca-4019-a989-8390dcd9825b",
"last_modified_at": "2021-02-09T12:41:43.662Z"
}
]
getDefaultPagesโ
Fetch all default portal pages
GET /v2/portal/pages/default
Sample Call
epilot customer-portal getDefaultPages
With JSONata filter:
epilot customer-portal getDefaultPages --jsonata '$'
Sample Response
[
{
"slug": "dashboard",
"path": "/dashboard",
"schema": ["string"],
"visibility": {},
"content": {},
"design": {},
"blocks": {},
"order": 1,
"is_system": false,
"is_detail": false,
"detail_schema": "contact",
"is_public": true,
"parentId": "c495fef9-eeca-4019-a989-8390dcd9825b",
"is_entry_route": false,
"is_deleted": false,
"id": "c495fef9-eeca-4019-a989-8390dcd9825b",
"last_modified_at": "2021-02-09T12:41:43.662Z"
}
]
getPortalPageBlocksโ
Fetch all portal page blocks
GET /v2/portal/pages/{id}/blocks
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string (uuid) | Yes |
Sample Call
epilot customer-portal getPortalPageBlocks \
-p id=5da0a718-c822-403d-9f5d-20d4584e0528
Using positional args for path parameters:
epilot customer-portal getPortalPageBlocks 5da0a718-c822-403d-9f5d-20d4584e0528
With JSONata filter:
epilot customer-portal getPortalPageBlocks -p id=5da0a718-c822-403d-9f5d-20d4584e0528 --jsonata '$'
Sample Response
[
{
"props": {
"visibility": {},
"content": {},
"design": {}
},
"parentId": "c495fef9-eeca-4019-a989-8390dcd9825b",
"type": "tab",
"order": 1,
"id": "c495fef9-eeca-4019-a989-8390dcd9825b"
}
]
createPortalPageBlockโ
Create a new portal page block
POST /v2/portal/pages/{id}/blocks
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string (uuid) | Yes |
Request Body (required)
Sample Call
epilot customer-portal createPortalPageBlock \
-p id=5da0a718-c822-403d-9f5d-20d4584e0528
With request body:
epilot customer-portal createPortalPageBlock \
-p id=5da0a718-c822-403d-9f5d-20d4584e0528 \
-d '{
"props": {
"visibility": {},
"content": {},
"design": {}
},
"parentId": "c495fef9-eeca-4019-a989-8390dcd9825b",
"type": "tab",
"order": 1
}'
Using positional args for path parameters:
epilot customer-portal createPortalPageBlock 5da0a718-c822-403d-9f5d-20d4584e0528
Using stdin pipe:
cat body.json | epilot customer-portal createPortalPageBlock -p id=5da0a718-c822-403d-9f5d-20d4584e0528
With JSONata filter:
epilot customer-portal createPortalPageBlock -p id=5da0a718-c822-403d-9f5d-20d4584e0528 --jsonata '$'
Sample Response
{
"props": {
"visibility": {},
"content": {},
"design": {}
},
"parentId": "c495fef9-eeca-4019-a989-8390dcd9825b",
"type": "tab",
"order": 1,
"id": "c495fef9-eeca-4019-a989-8390dcd9825b"
}
getPortalPageBlockโ
Fetch a portal page block by id
GET /v2/portal/pages/{id}/blocks/{block_id}
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string (uuid) | Yes | |
block_id | path | string (uuid) | Yes |
Sample Call
epilot customer-portal getPortalPageBlock \
-p id=5da0a718-c822-403d-9f5d-20d4584e0528 \
-p block_id=5da0a718-c822-403d-9f5d-20d4584e0528
Using positional args for path parameters:
epilot customer-portal getPortalPageBlock 5da0a718-c822-403d-9f5d-20d4584e0528 5da0a718-c822-403d-9f5d-20d4584e0528
With JSONata filter:
epilot customer-portal getPortalPageBlock -p id=5da0a718-c822-403d-9f5d-20d4584e0528 -p block_id=5da0a718-c822-403d-9f5d-20d4584e0528 --jsonata '$'
Sample Response
{
"props": {
"visibility": {},
"content": {},
"design": {}
},
"parentId": "c495fef9-eeca-4019-a989-8390dcd9825b",
"type": "tab",
"order": 1,
"id": "c495fef9-eeca-4019-a989-8390dcd9825b"
}
updatePortalPageBlockโ
Update a portal page block by id
PUT /v2/portal/pages/{id}/blocks/{block_id}
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string (uuid) | Yes | |
block_id | path | string (uuid) | Yes |
Request Body (required)
Sample Call
epilot customer-portal updatePortalPageBlock \
-p id=5da0a718-c822-403d-9f5d-20d4584e0528 \
-p block_id=5da0a718-c822-403d-9f5d-20d4584e0528
With request body:
epilot customer-portal updatePortalPageBlock \
-p id=5da0a718-c822-403d-9f5d-20d4584e0528 \
-p block_id=5da0a718-c822-403d-9f5d-20d4584e0528 \
-d '{
"props": {
"visibility": {},
"content": {},
"design": {}
},
"parentId": "c495fef9-eeca-4019-a989-8390dcd9825b",
"type": "tab",
"order": 1
}'
Using positional args for path parameters:
epilot customer-portal updatePortalPageBlock 5da0a718-c822-403d-9f5d-20d4584e0528 5da0a718-c822-403d-9f5d-20d4584e0528
Using stdin pipe:
cat body.json | epilot customer-portal updatePortalPageBlock -p id=5da0a718-c822-403d-9f5d-20d4584e0528 -p block_id=5da0a718-c822-403d-9f5d-20d4584e0528
With JSONata filter:
epilot customer-portal updatePortalPageBlock -p id=5da0a718-c822-403d-9f5d-20d4584e0528 -p block_id=5da0a718-c822-403d-9f5d-20d4584e0528 --jsonata '$'
Sample Response
{
"props": {
"visibility": {},
"content": {},
"design": {}
},
"parentId": "c495fef9-eeca-4019-a989-8390dcd9825b",
"type": "tab",
"order": 1,
"id": "c495fef9-eeca-4019-a989-8390dcd9825b"
}
deletePortalPageBlockโ
Delete a portal page block by id
DELETE /v2/portal/pages/{id}/blocks/{block_id}
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string (uuid) | Yes | |
block_id | path | string (uuid) | Yes |
Sample Call
epilot customer-portal deletePortalPageBlock \
-p id=5da0a718-c822-403d-9f5d-20d4584e0528 \
-p block_id=5da0a718-c822-403d-9f5d-20d4584e0528
Using positional args for path parameters:
epilot customer-portal deletePortalPageBlock 5da0a718-c822-403d-9f5d-20d4584e0528 5da0a718-c822-403d-9f5d-20d4584e0528
With JSONata filter:
epilot customer-portal deletePortalPageBlock -p id=5da0a718-c822-403d-9f5d-20d4584e0528 -p block_id=5da0a718-c822-403d-9f5d-20d4584e0528 --jsonata '$'
getUserEntryPointโ
Get the entry point for the user
GET /v2/portal/public/user/entry-point
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
email | query | string | Yes | |
domain | query | string | Yes |
Sample Call
epilot customer-portal getUserEntryPoint \
-p email=user@example.com \
-p domain=customer-portal.epilot.io
With JSONata filter:
epilot customer-portal getUserEntryPoint -p email=user@example.com -p domain=customer-portal.epilot.io --jsonata 'user_exists'
Sample Response
{
"user_exists": true,
"entry_point": "PASSWORD",
"preferred_sso_providers": ["office-365-login"],
"is_soft_deleted": true
}
updateCampaignPortalBlockStatusโ
Updates the status of a campaign portal block for multiple recipients.
PUT /v2/portal/campaign/{campaign_id}/entity:status
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
campaign_id | path | string | Yes | ID of the campaign |
Request Body (required)
Sample Call
epilot customer-portal updateCampaignPortalBlockStatus \
-p campaign_id=123e4567-e89b-12d3-a456-426614174000 \
-d '{"status":"seen","entity_refs":[{"entity_id":"5da0a718-c822-403d-9f5d-20d4584e0528","entity_schema":"string"}]}'
Using positional args for path parameters:
epilot customer-portal updateCampaignPortalBlockStatus 123e4567-e89b-12d3-a456-426614174000
Using stdin pipe:
cat body.json | epilot customer-portal updateCampaignPortalBlockStatus -p campaign_id=123e4567-e89b-12d3-a456-426614174000
With JSONata filter:
epilot customer-portal updateCampaignPortalBlockStatus -p campaign_id=123e4567-e89b-12d3-a456-426614174000 --jsonata 'success'
Sample Response
{
"success": true,
"updated": 2,
"failed": 0,
"total": 2
}
updateNotificationsStatusโ
Updates the statuses of multiple notifications at once.
PUT /v2/portal/notifications/entity:status
Request Body (required)
Sample Call
epilot customer-portal updateNotificationsStatus \
-d '{"notifications":[{"id":"string","status":"read"}]}'
Using stdin pipe:
cat body.json | epilot customer-portal updateNotificationsStatus
With JSONata filter:
epilot customer-portal updateNotificationsStatus --jsonata 'message'
Sample Response
{
"message": "Notifications status updated successfully."
}
deRegisterMLoginUserโ
Deregisters a user from the M Login client
DELETE /v2/portal/public/m-login/deregister/{client_id}/{user_id}
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
client_id | path | string | Yes | Client ID |
user_id | path | string | Yes | User ID |
Sample Call
epilot customer-portal deRegisterMLoginUser \
-p client_id=123e4567-e89b-12d3-a456-426614174000 \
-p user_id=123e4567-e89b-12d3-a456-426614174000
Using positional args for path parameters:
epilot customer-portal deRegisterMLoginUser 123e4567-e89b-12d3-a456-426614174000 123e4567-e89b-12d3-a456-426614174000
With JSONata filter:
epilot customer-portal deRegisterMLoginUser -p client_id=123e4567-e89b-12d3-a456-426614174000 -p user_id=123e4567-e89b-12d3-a456-426614174000 --jsonata '$'
notifyMLoginInterestChangeโ
Notifies the interest change of a user in the M Login client
POST /v2/portal/public/m-login/notify-interest-change/{client_id}/{user_id}
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
client_id | path | string | Yes | Client ID |
user_id | path | string | Yes | User ID |
Request Body (required)
Sample Call
epilot customer-portal notifyMLoginInterestChange \
-p client_id=123e4567-e89b-12d3-a456-426614174000 \
-p user_id=123e4567-e89b-12d3-a456-426614174000
With request body:
epilot customer-portal notifyMLoginInterestChange \
-p client_id=123e4567-e89b-12d3-a456-426614174000 \
-p user_id=123e4567-e89b-12d3-a456-426614174000 \
-d '{
"resource_id": "string",
"user_id": "string",
"interest_tag": "string",
"action": "string",
"resource": {
"resource_id": "string",
"description": "string",
"contact": "string",
"kind": "string"
}
}'
Using positional args for path parameters:
epilot customer-portal notifyMLoginInterestChange 123e4567-e89b-12d3-a456-426614174000 123e4567-e89b-12d3-a456-426614174000
Using stdin pipe:
cat body.json | epilot customer-portal notifyMLoginInterestChange -p client_id=123e4567-e89b-12d3-a456-426614174000 -p user_id=123e4567-e89b-12d3-a456-426614174000
With JSONata filter:
epilot customer-portal notifyMLoginInterestChange -p client_id=123e4567-e89b-12d3-a456-426614174000 -p user_id=123e4567-e89b-12d3-a456-426614174000 --jsonata '$'
createPortalConfigโ
Creates a new portal configuration.
POST /v3/portal/config
Request Body (required)
Sample Call
epilot customer-portal createPortalConfig
With request body:
epilot customer-portal createPortalConfig \
-d '{
"entity_actions": [
{
"journey_id": "5da0a718-c822-403d-9f5d-20d4584e0528",
"slug": "contact",
"action_Label": {}
}
],
"extensions": [
{
"id": "string",
"status": "installed",
"options": {}
}
],
"extension_hooks": {},
"default_user_to_notify": {
"onPendingUser": [
{}
]
},
"enabled": true,
"name": "Installer Portal",
"domain": "abc.com",
"is_epilot_domain": true,
"epilot_domain": "example-portal-1.ecp.epilot.io",
"domain_settings": {
"is_custom_domain_enabled": true,
"is_epilot_domain_enabled": true,
"is_redirection_enabled": true
},
"design_id": "5da0a718-c822-403d-9f5d-20d4584e0528",
"self_registration_setting": "ALLOW_WITH_CONTACT_CREATION",
"user_account_self_management": false,
"feature_settings": {
"start_page": true,
"billing": true,
"change_due_date": true,
"new_design": true
},
"accessToken": "string",
"advanced_mfa": {
"enabled": true
},
"auth_settings": {
"passwordless_login": {
"enabled": true
},
"entry_point": "PASSWORD",
"preferred_sso_providers": ["office-365-login"],
"auto_redirect_to_sso": true
},
"cognito_details": {
"cognito_user_pool_client_id": "6bsd0jkgoie74k2i8mrhc1vest",
"cognito_user_pool_arn": "arn:aws:cognito-idp:us-east-1:123412341234:userpool/us-east-1_123412341",
"cognito_user_pool_id": "eu-central-1_CUEQRNbUb",
"password_policy": {
"minimum_length": 8,
"maximum_length": 256,
"require_lowercase": true,
"require_uppercase": true,
"require_numbers": true,
"require_symbols": true
}
},
"config": "string",
"contact_identifiers": ["email", "last_name"],
"approval_state_attributes": {
"contact": ["name", "address"],
"contract": ["installment_amount"]
},
"email_templates": {
"confirmAccount": "5da0a718-c822-403d-9f5d-20d4584e0528",
"advancedAuth": "5da0a718-c822-403d-9f5d-20d4584e0528",
"advancedMFA": "5da0a718-c822-403d-9f5d-20d4584e0528",
"journeySignUp": "5da0a718-c822-403d-9f5d-20d4584e0528",
"journeySignInOneTimePassword": "5da0a718-c822-403d-9f5d-20d4584e0528",
"journeyLoginOTP": "5da0a718-c822-403d-9f5d-20d4584e0528",
"forgotPassword": "5da0a718-c822-403d-9f5d-20d4584e0528",
"invitation": "5da0a718-c822-403d-9f5d-20d4584e0528",
"partnerInvitation": "5da0a718-c822-403d-9f5d-20d4584e0528",
"onNewQuote": "5da0a718-c822-403d-9f5d-20d4584e0528",
"onMapAPendingUser": "5da0a718-c822-403d-9f5d-20d4584e0528",
"onDocUpload": "5da0a718-c822-403d-9f5d-20d4584e0528",
"onWorkflowStepAssigned": "5da0a718-c822-403d-9f5d-20d4584e0528",
"confirmEmailUpdate": "5da0a718-c822-403d-9f5d-20d4584e0528",
"verifyCodeToSetPassword": "5da0a718-c822-403d-9f5d-20d4584e0528"
},
"images": {
"orderLeftTeaser": "https://epilot-bucket.s3.eu-central-1.amazonaws.com/12344/6538fddb-f0e9-4f0f-af51-6e57891ff20a/order-left-teaser.jpeg",
"orderRightTeaser": "https://epilot-bucket.s3.eu-central-1.amazonaws.com/12344/6538fddb-f0e9-4f0f-af51-6e57891ff20a/order-right-teaser.jpeg",
"welcomeBanner": "https://epilot-bucket.s3.eu-central-1.amazonaws.com/12344/6538fddb-f0e9-4f0f-af51-6e57891ff20a/welcome-banner.jpeg"
},
"entity_identifiers": {
"type": {
"isEnabled": true,
"attributes": ["contract_number"]
}
},
"contract_identifiers": [
{
"name": "email",
"schema": "contact"
},
{
"name": "last_name",
"schema": "contact"
}
],
"contract_selector_config": {
"show_inactive": true,
"title_path": "string"
},
"registration_identifiers": [
{
"name": "last_name",
"schema": "contact"
},
{
"name": "contract_number",
"schema": "contract"
}
],
"triggered_journeys": [
{
"trigger_name": "FIRST_LOGIN",
"journey_id": "5da0a718-c822-403d-9f5d-20d4584e0528"
}
],
"entity_edit_rules": [
{
"slug": "contact",
"attribute": "first_name",
"rule_type": "cadence",
"cadence_period_type": "days",
"cadence_period": 1,
"changes_allowed": 1,
"grace_period": 1,
"allowed_increment": "10%",
"allowed_decrement": "10%",
"number_of_days_before_restriction": 10
}
],
"allowed_file_extensions": {
"document": ["pdf"],
"image": ["jpg"],
"spreadsheet": ["xls"],
"presentation": ["ppt"],
"audioVideo": ["mp4"],
"email": ["eml"],
"archive": ["zip"],
"cad": ["cad"],
"calendar": ["ics"],
"other": ["txt"]
},
"prevent_search_engine_indexing": true,
"meter_reading_grace_period": 0,
"inactive_contract_cutoff_years": 0,
"is_dummy": true,
"is_v3_item": true,
"portal_id": "453ad7bf-86d5-46c8-8252-bcc868df5e3c",
"portal_sk_v3": "PORTAL_CONFIG#453ad7bf-86d5-46c8-8252-bcc868df5e3c",
"origin": "string",
"pages": [
{
"slug": "dashboard",
"path": "/dashboard",
"schema": ["string"],
"visibility": {},
"content": {},
"design": {},
"blocks": {},
"order": 1,
"is_system": false,
"is_detail": false,
"detail_schema": "contact",
"is_public": true,
"parentId": "c495fef9-eeca-4019-a989-8390dcd9825b",
"is_entry_route": false,
"is_deleted": false
}
]
}'
Using stdin pipe:
cat body.json | epilot customer-portal createPortalConfig
With JSONata filter:
epilot customer-portal createPortalConfig --jsonata '$'
Sample Response
{
"entity_actions": [
{
"journey_id": "5da0a718-c822-403d-9f5d-20d4584e0528",
"slug": "contact",
"action_Label": {}
}
],
"extensions": [
{
"id": "string",
"status": "installed",
"options": {}
}
],
"extension_hooks": {},
"default_user_to_notify": {
"onPendingUser": [
{}
]
},
"enabled": true,
"name": "Installer Portal",
"domain": "abc.com",
"is_epilot_domain": true,
"epilot_domain": "example-portal-1.ecp.epilot.io",
"domain_settings": {
"is_custom_domain_enabled": true,
"is_epilot_domain_enabled": true,
"is_redirection_enabled": true
},
"design_id": "5da0a718-c822-403d-9f5d-20d4584e0528",
"self_registration_setting": "ALLOW_WITH_CONTACT_CREATION",
"user_account_self_management": false,
"feature_settings": {
"start_page": true,
"billing": true,
"change_due_date": true,
"new_design": true
},
"accessToken": "string",
"advanced_mfa": {
"enabled": true
},
"auth_settings": {
"passwordless_login": {
"enabled": true
},
"entry_point": "PASSWORD",
"preferred_sso_providers": ["office-365-login"],
"auto_redirect_to_sso": true
},
"cognito_details": {
"cognito_user_pool_client_id": "6bsd0jkgoie74k2i8mrhc1vest",
"cognito_user_pool_arn": "arn:aws:cognito-idp:us-east-1:123412341234:userpool/us-east-1_123412341",
"cognito_user_pool_id": "eu-central-1_CUEQRNbUb",
"password_policy": {
"minimum_length": 8,
"maximum_length": 256,
"require_lowercase": true,
"require_uppercase": true,
"require_numbers": true,
"require_symbols": true
}
},
"config": "string",
"contact_identifiers": ["email", "last_name"],
"approval_state_attributes": {
"contact": ["name", "address"],
"contract": ["installment_amount"]
},
"email_templates": {
"confirmAccount": "5da0a718-c822-403d-9f5d-20d4584e0528",
"advancedAuth": "5da0a718-c822-403d-9f5d-20d4584e0528",
"advancedMFA": "5da0a718-c822-403d-9f5d-20d4584e0528",
"journeySignUp": "5da0a718-c822-403d-9f5d-20d4584e0528",
"journeySignInOneTimePassword": "5da0a718-c822-403d-9f5d-20d4584e0528",
"journeyLoginOTP": "5da0a718-c822-403d-9f5d-20d4584e0528",
"forgotPassword": "5da0a718-c822-403d-9f5d-20d4584e0528",
"invitation": "5da0a718-c822-403d-9f5d-20d4584e0528",
"partnerInvitation": "5da0a718-c822-403d-9f5d-20d4584e0528",
"onNewQuote": "5da0a718-c822-403d-9f5d-20d4584e0528",
"onMapAPendingUser": "5da0a718-c822-403d-9f5d-20d4584e0528",
"onDocUpload": "5da0a718-c822-403d-9f5d-20d4584e0528",
"onWorkflowStepAssigned": "5da0a718-c822-403d-9f5d-20d4584e0528",
"confirmEmailUpdate": "5da0a718-c822-403d-9f5d-20d4584e0528",
"verifyCodeToSetPassword": "5da0a718-c822-403d-9f5d-20d4584e0528"
},
"images": {
"orderLeftTeaser": "https://epilot-bucket.s3.eu-central-1.amazonaws.com/12344/6538fddb-f0e9-4f0f-af51-6e57891ff20a/order-left-teaser.jpeg",
"orderRightTeaser": "https://epilot-bucket.s3.eu-central-1.amazonaws.com/12344/6538fddb-f0e9-4f0f-af51-6e57891ff20a/order-right-teaser.jpeg",
"welcomeBanner": "https://epilot-bucket.s3.eu-central-1.amazonaws.com/12344/6538fddb-f0e9-4f0f-af51-6e57891ff20a/welcome-banner.jpeg"
},
"entity_identifiers": {
"type": {
"isEnabled": true,
"attributes": ["contract_number"]
}
},
"contract_identifiers": [
{
"name": "email",
"schema": "contact"
},
{
"name": "last_name",
"schema": "contact"
}
],
"contract_selector_config": {
"show_inactive": true,
"title_path": "string"
},
"registration_identifiers": [
{
"name": "last_name",
"schema": "contact"
},
{
"name": "contract_number",
"schema": "contract"
}
],
"triggered_journeys": [
{
"trigger_name": "FIRST_LOGIN",
"journey_id": "5da0a718-c822-403d-9f5d-20d4584e0528"
}
],
"entity_edit_rules": [
{
"slug": "contact",
"attribute": "first_name",
"rule_type": "cadence",
"cadence_period_type": "days",
"cadence_period": 1,
"changes_allowed": 1,
"grace_period": 1,
"allowed_increment": "10%",
"allowed_decrement": "10%",
"number_of_days_before_restriction": 10
}
],
"allowed_file_extensions": {
"document": ["pdf"],
"image": ["jpg"],
"spreadsheet": ["xls"],
"presentation": ["ppt"],
"audioVideo": ["mp4"],
"email": ["eml"],
"archive": ["zip"],
"cad": ["cad"],
"calendar": ["ics"],
"other": ["txt"]
},
"prevent_search_engine_indexing": true,
"meter_reading_grace_period": 0,
"inactive_contract_cutoff_years": 0,
"is_dummy": true,
"is_v3_item": true,
"portal_id": "453ad7bf-86d5-46c8-8252-bcc868df5e3c",
"portal_sk_v3": "PORTAL_CONFIG#453ad7bf-86d5-46c8-8252-bcc868df5e3c",
"origin": "string",
"organization_id": 12345,
"org_settings": {
"canary": {
"enabled": true
},
"notracking": {
"enabled": true
}
},
"feature_flags": {},
"grants": [
{
"action": "entity-read",
"resource": "entity:123:contact:f7c22299-ca72-4bca-8538-0a88eeefc947",
"effect": "allow"
}
],
"identity_providers": [
{
"slug": "office-365-login",
"display_name": "Office 365 Login",
"oidc_config": {},
"mobile_oidc_config": {}
}
],
"pages": [
{
"slug": "dashboard",
"path": "/dashboard",
"schema": ["string"],
"visibility": {},
"content": {},
"design": {},
"blocks": {},
"order": 1,
"is_system": false,
"is_detail": false,
"detail_schema": "contact",
"is_public": true,
"parentId": "c495fef9-eeca-4019-a989-8390dcd9825b",
"is_entry_route": false,
"is_deleted": false,
"id": "c495fef9-eeca-4019-a989-8390dcd9825b",
"last_modified_at": "2021-02-09T12:41:43.662Z"
}
]
}
getPortalConfigV3โ
Retrieves a specific portal configuration by ID.
GET /v3/portal/config/{portal_id}
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
portal_id | path | string (uuid) | Yes | Portal ID (readonly UUID generated on portal creation) |
Sample Call
epilot customer-portal getPortalConfigV3 \
-p portal_id=5da0a718-c822-403d-9f5d-20d4584e0528
Using positional args for path parameters:
epilot customer-portal getPortalConfigV3 5da0a718-c822-403d-9f5d-20d4584e0528
With JSONata filter:
epilot customer-portal getPortalConfigV3 -p portal_id=5da0a718-c822-403d-9f5d-20d4584e0528 --jsonata '$'
Sample Response
{
"entity_actions": [
{
"journey_id": "5da0a718-c822-403d-9f5d-20d4584e0528",
"slug": "contact",
"action_Label": {}
}
],
"extensions": [
{
"id": "string",
"status": "installed",
"options": {}
}
],
"extension_hooks": {},
"default_user_to_notify": {
"onPendingUser": [
{}
]
},
"enabled": true,
"name": "Installer Portal",
"domain": "abc.com",
"is_epilot_domain": true,
"epilot_domain": "example-portal-1.ecp.epilot.io",
"domain_settings": {
"is_custom_domain_enabled": true,
"is_epilot_domain_enabled": true,
"is_redirection_enabled": true
},
"design_id": "5da0a718-c822-403d-9f5d-20d4584e0528",
"self_registration_setting": "ALLOW_WITH_CONTACT_CREATION",
"user_account_self_management": false,
"feature_settings": {
"start_page": true,
"billing": true,
"change_due_date": true,
"new_design": true
},
"accessToken": "string",
"advanced_mfa": {
"enabled": true
},
"auth_settings": {
"passwordless_login": {
"enabled": true
},
"entry_point": "PASSWORD",
"preferred_sso_providers": ["office-365-login"],
"auto_redirect_to_sso": true
},
"cognito_details": {
"cognito_user_pool_client_id": "6bsd0jkgoie74k2i8mrhc1vest",
"cognito_user_pool_arn": "arn:aws:cognito-idp:us-east-1:123412341234:userpool/us-east-1_123412341",
"cognito_user_pool_id": "eu-central-1_CUEQRNbUb",
"password_policy": {
"minimum_length": 8,
"maximum_length": 256,
"require_lowercase": true,
"require_uppercase": true,
"require_numbers": true,
"require_symbols": true
}
},
"config": "string",
"contact_identifiers": ["email", "last_name"],
"approval_state_attributes": {
"contact": ["name", "address"],
"contract": ["installment_amount"]
},
"email_templates": {
"confirmAccount": "5da0a718-c822-403d-9f5d-20d4584e0528",
"advancedAuth": "5da0a718-c822-403d-9f5d-20d4584e0528",
"advancedMFA": "5da0a718-c822-403d-9f5d-20d4584e0528",
"journeySignUp": "5da0a718-c822-403d-9f5d-20d4584e0528",
"journeySignInOneTimePassword": "5da0a718-c822-403d-9f5d-20d4584e0528",
"journeyLoginOTP": "5da0a718-c822-403d-9f5d-20d4584e0528",
"forgotPassword": "5da0a718-c822-403d-9f5d-20d4584e0528",
"invitation": "5da0a718-c822-403d-9f5d-20d4584e0528",
"partnerInvitation": "5da0a718-c822-403d-9f5d-20d4584e0528",
"onNewQuote": "5da0a718-c822-403d-9f5d-20d4584e0528",
"onMapAPendingUser": "5da0a718-c822-403d-9f5d-20d4584e0528",
"onDocUpload": "5da0a718-c822-403d-9f5d-20d4584e0528",
"onWorkflowStepAssigned": "5da0a718-c822-403d-9f5d-20d4584e0528",
"confirmEmailUpdate": "5da0a718-c822-403d-9f5d-20d4584e0528",
"verifyCodeToSetPassword": "5da0a718-c822-403d-9f5d-20d4584e0528"
},
"images": {
"orderLeftTeaser": "https://epilot-bucket.s3.eu-central-1.amazonaws.com/12344/6538fddb-f0e9-4f0f-af51-6e57891ff20a/order-left-teaser.jpeg",
"orderRightTeaser": "https://epilot-bucket.s3.eu-central-1.amazonaws.com/12344/6538fddb-f0e9-4f0f-af51-6e57891ff20a/order-right-teaser.jpeg",
"welcomeBanner": "https://epilot-bucket.s3.eu-central-1.amazonaws.com/12344/6538fddb-f0e9-4f0f-af51-6e57891ff20a/welcome-banner.jpeg"
},
"entity_identifiers": {
"type": {
"isEnabled": true,
"attributes": ["contract_number"]
}
},
"contract_identifiers": [
{
"name": "email",
"schema": "contact"
},
{
"name": "last_name",
"schema": "contact"
}
],
"contract_selector_config": {
"show_inactive": true,
"title_path": "string"
},
"registration_identifiers": [
{
"name": "last_name",
"schema": "contact"
},
{
"name": "contract_number",
"schema": "contract"
}
],
"triggered_journeys": [
{
"trigger_name": "FIRST_LOGIN",
"journey_id": "5da0a718-c822-403d-9f5d-20d4584e0528"
}
],
"entity_edit_rules": [
{
"slug": "contact",
"attribute": "first_name",
"rule_type": "cadence",
"cadence_period_type": "days",
"cadence_period": 1,
"changes_allowed": 1,
"grace_period": 1,
"allowed_increment": "10%",
"allowed_decrement": "10%",
"number_of_days_before_restriction": 10
}
],
"allowed_file_extensions": {
"document": ["pdf"],
"image": ["jpg"],
"spreadsheet": ["xls"],
"presentation": ["ppt"],
"audioVideo": ["mp4"],
"email": ["eml"],
"archive": ["zip"],
"cad": ["cad"],
"calendar": ["ics"],
"other": ["txt"]
},
"prevent_search_engine_indexing": true,
"meter_reading_grace_period": 0,
"inactive_contract_cutoff_years": 0,
"is_dummy": true,
"is_v3_item": true,
"portal_id": "453ad7bf-86d5-46c8-8252-bcc868df5e3c",
"portal_sk_v3": "PORTAL_CONFIG#453ad7bf-86d5-46c8-8252-bcc868df5e3c",
"origin": "string",
"organization_id": 12345,
"org_settings": {
"canary": {
"enabled": true
},
"notracking": {
"enabled": true
}
},
"feature_flags": {},
"grants": [
{
"action": "entity-read",
"resource": "entity:123:contact:f7c22299-ca72-4bca-8538-0a88eeefc947",
"effect": "allow"
}
],
"identity_providers": [
{
"slug": "office-365-login",
"display_name": "Office 365 Login",
"oidc_config": {},
"mobile_oidc_config": {}
}
],
"pages": [
{
"slug": "dashboard",
"path": "/dashboard",
"schema": ["string"],
"visibility": {},
"content": {},
"design": {},
"blocks": {},
"order": 1,
"is_system": false,
"is_detail": false,
"detail_schema": "contact",
"is_public": true,
"parentId": "c495fef9-eeca-4019-a989-8390dcd9825b",
"is_entry_route": false,
"is_deleted": false,
"id": "c495fef9-eeca-4019-a989-8390dcd9825b",
"last_modified_at": "2021-02-09T12:41:43.662Z"
}
]
}
putPortalConfigโ
Updates a specific portal configuration by ID.
PUT /v3/portal/config/{portal_id}
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
portal_id | path | string (uuid) | Yes | Portal ID (readonly UUID generated on portal creation) |
Request Body (required)
Sample Call
epilot customer-portal putPortalConfig \
-p portal_id=5da0a718-c822-403d-9f5d-20d4584e0528
With request body:
epilot customer-portal putPortalConfig \
-p portal_id=5da0a718-c822-403d-9f5d-20d4584e0528 \
-d '{
"entity_actions": [
{
"journey_id": "5da0a718-c822-403d-9f5d-20d4584e0528",
"slug": "contact",
"action_Label": {}
}
],
"extensions": [
{
"id": "string",
"status": "installed",
"options": {}
}
],
"extension_hooks": {},
"default_user_to_notify": {
"onPendingUser": [
{}
]
},
"enabled": true,
"name": "Installer Portal",
"domain": "abc.com",
"is_epilot_domain": true,
"epilot_domain": "example-portal-1.ecp.epilot.io",
"domain_settings": {
"is_custom_domain_enabled": true,
"is_epilot_domain_enabled": true,
"is_redirection_enabled": true
},
"design_id": "5da0a718-c822-403d-9f5d-20d4584e0528",
"self_registration_setting": "ALLOW_WITH_CONTACT_CREATION",
"user_account_self_management": false,
"feature_settings": {
"start_page": true,
"billing": true,
"change_due_date": true,
"new_design": true
},
"accessToken": "string",
"advanced_mfa": {
"enabled": true
},
"auth_settings": {
"passwordless_login": {
"enabled": true
},
"entry_point": "PASSWORD",
"preferred_sso_providers": ["office-365-login"],
"auto_redirect_to_sso": true
},
"cognito_details": {
"cognito_user_pool_client_id": "6bsd0jkgoie74k2i8mrhc1vest",
"cognito_user_pool_arn": "arn:aws:cognito-idp:us-east-1:123412341234:userpool/us-east-1_123412341",
"cognito_user_pool_id": "eu-central-1_CUEQRNbUb",
"password_policy": {
"minimum_length": 8,
"maximum_length": 256,
"require_lowercase": true,
"require_uppercase": true,
"require_numbers": true,
"require_symbols": true
}
},
"config": "string",
"contact_identifiers": ["email", "last_name"],
"approval_state_attributes": {
"contact": ["name", "address"],
"contract": ["installment_amount"]
},
"email_templates": {
"confirmAccount": "5da0a718-c822-403d-9f5d-20d4584e0528",
"advancedAuth": "5da0a718-c822-403d-9f5d-20d4584e0528",
"advancedMFA": "5da0a718-c822-403d-9f5d-20d4584e0528",
"journeySignUp": "5da0a718-c822-403d-9f5d-20d4584e0528",
"journeySignInOneTimePassword": "5da0a718-c822-403d-9f5d-20d4584e0528",
"journeyLoginOTP": "5da0a718-c822-403d-9f5d-20d4584e0528",
"forgotPassword": "5da0a718-c822-403d-9f5d-20d4584e0528",
"invitation": "5da0a718-c822-403d-9f5d-20d4584e0528",
"partnerInvitation": "5da0a718-c822-403d-9f5d-20d4584e0528",
"onNewQuote": "5da0a718-c822-403d-9f5d-20d4584e0528",
"onMapAPendingUser": "5da0a718-c822-403d-9f5d-20d4584e0528",
"onDocUpload": "5da0a718-c822-403d-9f5d-20d4584e0528",
"onWorkflowStepAssigned": "5da0a718-c822-403d-9f5d-20d4584e0528",
"confirmEmailUpdate": "5da0a718-c822-403d-9f5d-20d4584e0528",
"verifyCodeToSetPassword": "5da0a718-c822-403d-9f5d-20d4584e0528"
},
"images": {
"orderLeftTeaser": "https://epilot-bucket.s3.eu-central-1.amazonaws.com/12344/6538fddb-f0e9-4f0f-af51-6e57891ff20a/order-left-teaser.jpeg",
"orderRightTeaser": "https://epilot-bucket.s3.eu-central-1.amazonaws.com/12344/6538fddb-f0e9-4f0f-af51-6e57891ff20a/order-right-teaser.jpeg",
"welcomeBanner": "https://epilot-bucket.s3.eu-central-1.amazonaws.com/12344/6538fddb-f0e9-4f0f-af51-6e57891ff20a/welcome-banner.jpeg"
},
"entity_identifiers": {
"type": {
"isEnabled": true,
"attributes": ["contract_number"]
}
},
"contract_identifiers": [
{
"name": "email",
"schema": "contact"
},
{
"name": "last_name",
"schema": "contact"
}
],
"contract_selector_config": {
"show_inactive": true,
"title_path": "string"
},
"registration_identifiers": [
{
"name": "last_name",
"schema": "contact"
},
{
"name": "contract_number",
"schema": "contract"
}
],
"triggered_journeys": [
{
"trigger_name": "FIRST_LOGIN",
"journey_id": "5da0a718-c822-403d-9f5d-20d4584e0528"
}
],
"entity_edit_rules": [
{
"slug": "contact",
"attribute": "first_name",
"rule_type": "cadence",
"cadence_period_type": "days",
"cadence_period": 1,
"changes_allowed": 1,
"grace_period": 1,
"allowed_increment": "10%",
"allowed_decrement": "10%",
"number_of_days_before_restriction": 10
}
],
"allowed_file_extensions": {
"document": ["pdf"],
"image": ["jpg"],
"spreadsheet": ["xls"],
"presentation": ["ppt"],
"audioVideo": ["mp4"],
"email": ["eml"],
"archive": ["zip"],
"cad": ["cad"],
"calendar": ["ics"],
"other": ["txt"]
},
"prevent_search_engine_indexing": true,
"meter_reading_grace_period": 0,
"inactive_contract_cutoff_years": 0,
"is_dummy": true,
"is_v3_item": true,
"portal_id": "453ad7bf-86d5-46c8-8252-bcc868df5e3c",
"portal_sk_v3": "PORTAL_CONFIG#453ad7bf-86d5-46c8-8252-bcc868df5e3c",
"origin": "string",
"organization_id": 12345,
"org_settings": {
"canary": {
"enabled": true
},
"notracking": {
"enabled": true
}
},
"feature_flags": {},
"grants": [
{
"action": "entity-read",
"resource": "entity:123:contact:f7c22299-ca72-4bca-8538-0a88eeefc947",
"effect": "allow"
}
],
"identity_providers": [
{
"slug": "office-365-login",
"display_name": "Office 365 Login",
"oidc_config": {},
"mobile_oidc_config": {}
}
],
"pages": [
{
"slug": "dashboard",
"path": "/dashboard",
"schema": ["string"],
"visibility": {},
"content": {},
"design": {},
"blocks": {},
"order": 1,
"is_system": false,
"is_detail": false,
"detail_schema": "contact",
"is_public": true,
"parentId": "c495fef9-eeca-4019-a989-8390dcd9825b",
"is_entry_route": false,
"is_deleted": false,
"id": "c495fef9-eeca-4019-a989-8390dcd9825b",
"last_modified_at": "2021-02-09T12:41:43.662Z"
}
]
}'
Using positional args for path parameters:
epilot customer-portal putPortalConfig 5da0a718-c822-403d-9f5d-20d4584e0528
Using stdin pipe:
cat body.json | epilot customer-portal putPortalConfig -p portal_id=5da0a718-c822-403d-9f5d-20d4584e0528
With JSONata filter:
epilot customer-portal putPortalConfig -p portal_id=5da0a718-c822-403d-9f5d-20d4584e0528 --jsonata '$'
Sample Response
{
"entity_actions": [
{
"journey_id": "5da0a718-c822-403d-9f5d-20d4584e0528",
"slug": "contact",
"action_Label": {}
}
],
"extensions": [
{
"id": "string",
"status": "installed",
"options": {}
}
],
"extension_hooks": {},
"default_user_to_notify": {
"onPendingUser": [
{}
]
},
"enabled": true,
"name": "Installer Portal",
"domain": "abc.com",
"is_epilot_domain": true,
"epilot_domain": "example-portal-1.ecp.epilot.io",
"domain_settings": {
"is_custom_domain_enabled": true,
"is_epilot_domain_enabled": true,
"is_redirection_enabled": true
},
"design_id": "5da0a718-c822-403d-9f5d-20d4584e0528",
"self_registration_setting": "ALLOW_WITH_CONTACT_CREATION",
"user_account_self_management": false,
"feature_settings": {
"start_page": true,
"billing": true,
"change_due_date": true,
"new_design": true
},
"accessToken": "string",
"advanced_mfa": {
"enabled": true
},
"auth_settings": {
"passwordless_login": {
"enabled": true
},
"entry_point": "PASSWORD",
"preferred_sso_providers": ["office-365-login"],
"auto_redirect_to_sso": true
},
"cognito_details": {
"cognito_user_pool_client_id": "6bsd0jkgoie74k2i8mrhc1vest",
"cognito_user_pool_arn": "arn:aws:cognito-idp:us-east-1:123412341234:userpool/us-east-1_123412341",
"cognito_user_pool_id": "eu-central-1_CUEQRNbUb",
"password_policy": {
"minimum_length": 8,
"maximum_length": 256,
"require_lowercase": true,
"require_uppercase": true,
"require_numbers": true,
"require_symbols": true
}
},
"config": "string",
"contact_identifiers": ["email", "last_name"],
"approval_state_attributes": {
"contact": ["name", "address"],
"contract": ["installment_amount"]
},
"email_templates": {
"confirmAccount": "5da0a718-c822-403d-9f5d-20d4584e0528",
"advancedAuth": "5da0a718-c822-403d-9f5d-20d4584e0528",
"advancedMFA": "5da0a718-c822-403d-9f5d-20d4584e0528",
"journeySignUp": "5da0a718-c822-403d-9f5d-20d4584e0528",
"journeySignInOneTimePassword": "5da0a718-c822-403d-9f5d-20d4584e0528",
"journeyLoginOTP": "5da0a718-c822-403d-9f5d-20d4584e0528",
"forgotPassword": "5da0a718-c822-403d-9f5d-20d4584e0528",
"invitation": "5da0a718-c822-403d-9f5d-20d4584e0528",
"partnerInvitation": "5da0a718-c822-403d-9f5d-20d4584e0528",
"onNewQuote": "5da0a718-c822-403d-9f5d-20d4584e0528",
"onMapAPendingUser": "5da0a718-c822-403d-9f5d-20d4584e0528",
"onDocUpload": "5da0a718-c822-403d-9f5d-20d4584e0528",
"onWorkflowStepAssigned": "5da0a718-c822-403d-9f5d-20d4584e0528",
"confirmEmailUpdate": "5da0a718-c822-403d-9f5d-20d4584e0528",
"verifyCodeToSetPassword": "5da0a718-c822-403d-9f5d-20d4584e0528"
},
"images": {
"orderLeftTeaser": "https://epilot-bucket.s3.eu-central-1.amazonaws.com/12344/6538fddb-f0e9-4f0f-af51-6e57891ff20a/order-left-teaser.jpeg",
"orderRightTeaser": "https://epilot-bucket.s3.eu-central-1.amazonaws.com/12344/6538fddb-f0e9-4f0f-af51-6e57891ff20a/order-right-teaser.jpeg",
"welcomeBanner": "https://epilot-bucket.s3.eu-central-1.amazonaws.com/12344/6538fddb-f0e9-4f0f-af51-6e57891ff20a/welcome-banner.jpeg"
},
"entity_identifiers": {
"type": {
"isEnabled": true,
"attributes": ["contract_number"]
}
},
"contract_identifiers": [
{
"name": "email",
"schema": "contact"
},
{
"name": "last_name",
"schema": "contact"
}
],
"contract_selector_config": {
"show_inactive": true,
"title_path": "string"
},
"registration_identifiers": [
{
"name": "last_name",
"schema": "contact"
},
{
"name": "contract_number",
"schema": "contract"
}
],
"triggered_journeys": [
{
"trigger_name": "FIRST_LOGIN",
"journey_id": "5da0a718-c822-403d-9f5d-20d4584e0528"
}
],
"entity_edit_rules": [
{
"slug": "contact",
"attribute": "first_name",
"rule_type": "cadence",
"cadence_period_type": "days",
"cadence_period": 1,
"changes_allowed": 1,
"grace_period": 1,
"allowed_increment": "10%",
"allowed_decrement": "10%",
"number_of_days_before_restriction": 10
}
],
"allowed_file_extensions": {
"document": ["pdf"],
"image": ["jpg"],
"spreadsheet": ["xls"],
"presentation": ["ppt"],
"audioVideo": ["mp4"],
"email": ["eml"],
"archive": ["zip"],
"cad": ["cad"],
"calendar": ["ics"],
"other": ["txt"]
},
"prevent_search_engine_indexing": true,
"meter_reading_grace_period": 0,
"inactive_contract_cutoff_years": 0,
"is_dummy": true,
"is_v3_item": true,
"portal_id": "453ad7bf-86d5-46c8-8252-bcc868df5e3c",
"portal_sk_v3": "PORTAL_CONFIG#453ad7bf-86d5-46c8-8252-bcc868df5e3c",
"origin": "string",
"organization_id": 12345,
"org_settings": {
"canary": {
"enabled": true
},
"notracking": {
"enabled": true
}
},
"feature_flags": {},
"grants": [
{
"action": "entity-read",
"resource": "entity:123:contact:f7c22299-ca72-4bca-8538-0a88eeefc947",
"effect": "allow"
}
],
"identity_providers": [
{
"slug": "office-365-login",
"display_name": "Office 365 Login",
"oidc_config": {},
"mobile_oidc_config": {}
}
],
"pages": [
{
"slug": "dashboard",
"path": "/dashboard",
"schema": ["string"],
"visibility": {},
"content": {},
"design": {},
"blocks": {},
"order": 1,
"is_system": false,
"is_detail": false,
"detail_schema": "contact",
"is_public": true,
"parentId": "c495fef9-eeca-4019-a989-8390dcd9825b",
"is_entry_route": false,
"is_deleted": false,
"id": "c495fef9-eeca-4019-a989-8390dcd9825b",
"last_modified_at": "2021-02-09T12:41:43.662Z"
}
]
}
deletePortalConfigโ
Deletes a specific portal configuration by ID.
DELETE /v3/portal/config/{portal_id}
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
portal_id | path | string (uuid) | Yes | Portal ID (readonly UUID generated on portal creation) |
Sample Call
epilot customer-portal deletePortalConfig \
-p portal_id=5da0a718-c822-403d-9f5d-20d4584e0528
Using positional args for path parameters:
epilot customer-portal deletePortalConfig 5da0a718-c822-403d-9f5d-20d4584e0528
With JSONata filter:
epilot customer-portal deletePortalConfig -p portal_id=5da0a718-c822-403d-9f5d-20d4584e0528 --jsonata '$'
listAllPortalConfigsโ
Retrieves all portal configurations.
GET /v3/portal/configs
Sample Call
epilot customer-portal listAllPortalConfigs
With JSONata filter:
epilot customer-portal listAllPortalConfigs --jsonata 'data'
Sample Response
{
"data": [
{
"entity_actions": [],
"extensions": [],
"extension_hooks": {},
"default_user_to_notify": {},
"enabled": true,
"name": "Installer Portal",
"domain": "abc.com",
"is_epilot_domain": true,
"epilot_domain": "example-portal-1.ecp.epilot.io",
"domain_settings": {},
"design_id": "5da0a718-c822-403d-9f5d-20d4584e0528",
"self_registration_setting": "ALLOW_WITH_CONTACT_CREATION",
"user_account_self_management": false,
"feature_settings": {},
"accessToken": "string",
"advanced_mfa": {},
"auth_settings": {},
"cognito_details": {},
"config": "string",
"contact_identifiers": ["email", "last_name"],
"approval_state_attributes": {},
"email_templates": {},
"images": {},
"entity_identifiers": {},
"contract_identifiers": [],
"contract_selector_config": {},
"registration_identifiers": [],
"triggered_journeys": [],
"entity_edit_rules": [],
"allowed_file_extensions": {},
"prevent_search_engine_indexing": true,
"meter_reading_grace_period": 0,
"inactive_contract_cutoff_years": 0,
"is_dummy": true,
"is_v3_item": true,
"portal_id": "453ad7bf-86d5-46c8-8252-bcc868df5e3c",
"portal_sk_v3": "PORTAL_CONFIG#453ad7bf-86d5-46c8-8252-bcc868df5e3c",
"origin": "string",
"organization_id": 12345,
"org_settings": {},
"feature_flags": {},
"grants": [],
"identity_providers": [],
"pages": []
}
]
}
swapPortalConfigโ
Swaps the portal configuration of two portals.
POST /v3/portal/config/swap
Request Body (required)
Sample Call
epilot customer-portal swapPortalConfig
With request body:
epilot customer-portal swapPortalConfig \
-d '{
"source_portal_id": "453ad7bf-86d5-46c8-8252-bcc868df5e3c",
"target_portal_id": "453ad7bf-86d5-46c8-8252-bcc868df5e3c",
"items_to_swap": ["all"]
}'
Using stdin pipe:
cat body.json | epilot customer-portal swapPortalConfig
With JSONata filter:
epilot customer-portal swapPortalConfig --jsonata 'message'
Sample Response
{
"message": "Domain and users swapped successfully."
}
invitePartnerโ
Invites a partner to a portal
POST /v3/portal/partner/invite
Request Body (required)
Sample Call
epilot customer-portal invitePartner \
-d '{"email":"string","represents_contact_list":["5da0a718-c822-403d-9f5d-20d4584e0528"]}'
Using stdin pipe:
cat body.json | epilot customer-portal invitePartner
With JSONata filter:
epilot customer-portal invitePartner --jsonata 'message'
Sample Response
{
"message": "User invited successfully"
}
listBusinessPartnersโ
Lists all business partners linked to the businessaccount
GET /v3/portal/partner/list
Sample Call
epilot customer-portal listBusinessPartners
With JSONata filter:
epilot customer-portal listBusinessPartners --jsonata 'data'
Sample Response
{
"data": [
{
"_id": "5da0a718-c822-403d-9f5d-20d4584e0528",
"has_portal_user": true,
"registration_status": "Registration Pending",
"email": "john.doe@example.com",
"_title": "John Doe",
"first_name": "John",
"last_name": "Doe",
"access_status": true
}
]
}
resendPartnerInvitationโ
Resends an invitation email to a partner
POST /v3/portal/partner/{partner_id}/resend-invitation
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
partner_id | path | string | Yes |
Sample Call
epilot customer-portal resendPartnerInvitation \
-p partner_id=123e4567-e89b-12d3-a456-426614174000
Using positional args for path parameters:
epilot customer-portal resendPartnerInvitation 123e4567-e89b-12d3-a456-426614174000
With JSONata filter:
epilot customer-portal resendPartnerInvitation -p partner_id=123e4567-e89b-12d3-a456-426614174000 --jsonata 'message'
Sample Response
{
"message": "Partner invitation resent successfully"
}
revokePartnerโ
Revokes a partner from a portal
DELETE /v3/portal/partner/{partner_id}/revoke
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
partner_id | path | string | Yes |
Sample Call
epilot customer-portal revokePartner \
-p partner_id=123e4567-e89b-12d3-a456-426614174000
Using positional args for path parameters:
epilot customer-portal revokePartner 123e4567-e89b-12d3-a456-426614174000
With JSONata filter:
epilot customer-portal revokePartner -p partner_id=123e4567-e89b-12d3-a456-426614174000 --jsonata 'message'
Sample Response
{
"message": "Partner revoked from portal successfully"
}
disablePartnerโ
Disables a partner from a portal
POST /v3/portal/partner/{partner_id}/disable
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
partner_id | path | string | Yes |
Sample Call
epilot customer-portal disablePartner \
-p partner_id=123e4567-e89b-12d3-a456-426614174000
Using positional args for path parameters:
epilot customer-portal disablePartner 123e4567-e89b-12d3-a456-426614174000
With JSONata filter:
epilot customer-portal disablePartner -p partner_id=123e4567-e89b-12d3-a456-426614174000 --jsonata 'message'
Sample Response
{
"message": "Partner disabled from portal successfully"
}
enablePartnerโ
Enables a partner from a portal
POST /v3/portal/partner/{partner_id}/enable
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
partner_id | path | string | Yes |
Sample Call
epilot customer-portal enablePartner \
-p partner_id=123e4567-e89b-12d3-a456-426614174000
Using positional args for path parameters:
epilot customer-portal enablePartner 123e4567-e89b-12d3-a456-426614174000
With JSONata filter:
epilot customer-portal enablePartner -p partner_id=123e4567-e89b-12d3-a456-426614174000 --jsonata 'message'
Sample Response
{
"message": "Partner enabled from portal successfully"
}