Repository: amp-labs/connectors
Pull request #401 (2024-05-22 01:13:55)

docs: Update README.md


Patch:
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 00000000..efc409e3
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2024 Onset Labs, Inc.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/README.md b/README.md
index fb308fb8..9017d355 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,12 @@
 # Ampersand Connectors
 
-This is a Go library that makes it easier to make API calls to SaaS products such as Salesforce and Hubspot. It handles constructing the correct API requests from a configuration object, and pagination logic.
+This is a Go library that makes it easier to make API calls to SaaS products such as Salesforce and Hubspot. It handles constructing the correct API requests given desired objects and fields.
+
+It can be either be used as a standalone library, or as a part of the [Ampersand platform](https://docs.withampersand.com/), which offers additional benefits such as:
+- Handling auth flows
+- Orchestration of scheduled reads, real-time writes, or bulk writes
+- Handling API quotas from SaaS APIs
+- A dashboard for observability and troubleshooting
 
 Sample usage:
 
diff --git a/common/paramsbuilder/params.go b/common/paramsbuilder/params.go
index cd0fe2fb..e1a6a59e 100644
--- a/common/paramsbuilder/params.go
+++ b/common/paramsbuilder/params.go
@@ -79,6 +79,8 @@ func (p *Workspace) WithWorkspace(workspaceRef string) {
 }
 
 // Module params adds suffix to URL controlling API versions.
+// This is relevant where there are several APIs for different product areas or sub-products, and the APIs
+// are versioned differently or have different ways of constructing URLs from object names.
 type Module struct {
 	Suffix string
 }
diff --git a/common/scrapper/models.go b/common/scrapper/models.go
index 13b2c6a5..bde481cb 100644
--- a/common/scrapper/models.go
+++ b/common/scrapper/models.go
@@ -4,8 +4,20 @@ import (
 	"strings"
 )
 
+type ModelDocLinks []ModelDocLink
+
+func (l ModelDocLinks) FindByName(name string) (ModelDocLink, bool) {
+	for _, link := range l {
+		if link.Name == name {
+			return link, true
+		}
+	}
+
+	return ModelDocLink{}, false
+}
+
 type ModelURLRegistry struct {
-	ModelDocs []ModelDocLink `json:"data"`
+	ModelDocs ModelDocLinks `json:"data"`
 }
 
 type ModelDocLink struct {
diff --git a/intercom/connector.go b/intercom/connector.go
index 68528736..322a73d2 100644
--- a/intercom/connector.go
+++ b/intercom/connector.go
@@ -6,18 +6,14 @@ import (
 
 	"github.com/amp-labs/connectors/common"
 	"github.com/amp-labs/connectors/common/interpreter"
-	"github.com/amp-labs/connectors/common/paramsbuilder"
 	"github.com/amp-labs/connectors/common/urlbuilder"
 	"github.com/amp-labs/connectors/providers"
 )
 
-var DefaultModule = paramsbuilder.APIModule{ // nolint: gochecknoglobals
-	Version: "2.11",
-}
+const apiVersion = "2.11"
 
 type Connector struct {
 	BaseURL string
-	Module  string
 	Client  *common.JSONHTTPClient
 }
 
@@ -39,7 +35,6 @@ func NewConnector(opts ...Option) (conn *Connector, outErr error) {
 
 	httpClient := params.Client.Caller
 	conn = &Connector{
-		Module: params.Module.Suffix,
 		Client: &common.JSONHTTPClient{
 			HTTPClient: httpClient,
 		},
@@ -58,7 +53,7 @@ func (c *Connector) Provider() providers.Provider {
 }
 
 func (c *Connector) String() string {
-	return fmt.Sprintf("%s.Connector[%s]", c.Provider(), c.Module)
+	return fmt.Sprintf("%s.Connector", c.Provider())
 }
 
 // nolint:unused
diff --git a/intercom/metadata/schemas.json b/intercom/metadata/schemas.json
index 4c0440ff..0648ab57 100755
--- a/intercom/metadata/schemas.json
+++ b/intercom/metadata/schemas.json
@@ -1,7 +1,7 @@
 {
   "data": {
-    "activity_log": {
-      "displayName": "Activity Log",
+    "activity_logs": {
+      "displayName": "Activity Logs",
       "fields": {
         "activity_description": "activity_description",
         "activity_type": "activity_type",
@@ -11,165 +11,23 @@
         "performed_by": "performed_by"
       }
     },
-    "activity_log_list": {
-      "displayName": "Paginated Response",
-      "fields": {
-        "activity_logs": "activity_logs",
-        "pages": "pages",
-        "type": "type"
-      }
-    },
-    "activity_log_metadata": {
-      "displayName": "Activity Log Metadata",
-      "fields": {
-        "auto_changed": "auto_changed",
-        "away_mode": "away_mode",
-        "away_status_reason": "away_status_reason",
-        "external_id": "external_id",
-        "reassign_conversations": "reassign_conversations",
-        "sign_in_method": "sign_in_method",
-        "source": "source",
-        "update_by": "update_by",
-        "update_by_name": "update_by_name"
-      }
-    },
-    "addressable_list": {
-      "displayName": "Addressable List",
-      "fields": {
-        "id": "id",
-        "type": "type",
-        "url": "url"
-      }
-    },
-    "admin": {
-      "displayName": "Admin",
-      "fields": {
-        "avatar": "avatar",
-        "away_mode_enabled": "away_mode_enabled",
-        "away_mode_reassign": "away_mode_reassign",
-        "email": "email",
-        "has_inbox_seat": "has_inbox_seat",
-        "id": "id",
-        "job_title": "job_title",
-        "name": "name",
-        "team_ids": "team_ids",
-        "team_priority_level": "team_priority_level",
-        "type": "type"
-      }
-    },
-    "admin_list": {
+    "admins": {
       "displayName": "Admins",
       "fields": {
-        "admins": "admins",
-        "type": "type"
-      }
-    },
-    "admin_priority_level": {
-      "displayName": "Admin Priority Level",
-      "fields": {
-        "primary_admin_ids": "primary_admin_ids",
-        "secondary_admin_ids": "secondary_admin_ids"
-      }
-    },
-    "admin_reply_conversation_request": {
-      "displayName": "Admin Reply",
-      "fields": {
-        "admin_id": "admin_id",
-        "attachment_files": "attachment_files",
-        "attachment_urls": "attachment_urls",
-        "body": "body",
-        "created_at": "created_at",
-        "message_type": "message_type",
-        "type": "type"
-      }
-    },
-    "admin_reply_ticket_request": {
-      "displayName": "Admin Reply on ticket",
-      "fields": {
-        "admin_id": "admin_id",
-        "attachment_urls": "attachment_urls",
-        "body": "body",
-        "created_at": "created_at",
-        "message_type": "message_type",
-        "reply_options": "reply_options",
-        "type": "type"
-      }
-    },
-    "admin_with_app": {
-      "displayName": "Admin",
-      "fields": {
-        "app": "app",
         "avatar": "avatar",
         "away_mode_enabled": "away_mode_enabled",
         "away_mode_reassign": "away_mode_reassign",
         "email": "email",
-        "email_verified": "email_verified",
         "has_inbox_seat": "has_inbox_seat",
         "id": "id",
         "job_title": "job_title",
         "name": "name",
         "team_ids": "team_ids",
+        "team_priority_level": "team_priority_level",
         "type": "type"
       }
     },
-    "app": {
-      "displayName": "App",
-      "fields": {
-        "created_at": "created_at",
-        "id_code": "id_code",
-        "identity_verification": "identity_verification",
-        "name": "name",
-        "region": "region",
-        "timezone": "timezone",
-        "type": "type"
-      }
-    },
-    "article": {
-      "displayName": "Article",
-      "fields": {
-        "author_id": "author_id",
-        "body": "body",
-        "created_at": "created_at",
-        "default_locale": "default_locale",
-        "description": "description",
-        "id": "id",
-        "parent_id": "parent_id",
-        "parent_ids": "parent_ids",
-        "parent_type": "parent_type",
-        "state": "state",
-        "statistics": "statistics",
-        "title": "title",
-        "translated_content": "translated_content",
-        "type": "type",
-        "updated_at": "updated_at",
-        "url": "url",
-        "workspace_id": "workspace_id"
-      }
-    },
-    "article_content": {
-      "displayName": "Article Content",
-      "fields": {
-        "author_id": "author_id",
-        "body": "body",
-        "created_at": "created_at",
-        "description": "description",
-        "state": "state",
-        "title": "title",
-        "type": "type",
-        "updated_at": "updated_at",
-        "url": "url"
-      }
-    },
-    "article_list": {
-      "displayName": "Articles",
-      "fields": {
-        "data": "data",
-        "pages": "pages",
-        "total_count": "total_count",
-        "type": "type"
-      }
-    },
-    "article_list_item": {
+    "articles": {
       "displayName": "Articles",
       "fields": {
         "author_id": "author_id",
@@ -182,6 +40,7 @@
         "parent_ids": "parent_ids",
         "parent_type": "parent_type",
         "state": "state",
+        "statistics": "statistics",
         "title": "title",
         "translated_content": "translated_content",
         "type": "type",
@@ -190,106 +49,8 @@
         "workspace_id": "workspace_id"
       }
     },
-    "article_search_highlights": {
-      "displayName": "Article Search Highlights",
-      "fields": {
-        "article_id": "article_id",
-        "highlighted_summary": "highlighted_summary",
-        "highlighted_title": "highlighted_title"
-      }
-    },
-    "article_search_response": {
-      "displayName": "Article Search Response",
-      "fields": {
-        "data": "data",
-        "pages": "pages",
-        "total_count": "total_count",
-        "type": "type"
-      }
-    },
-    "article_statistics": {
-      "displayName": "Article Statistics",
-      "fields": {
-        "conversions": "conversions",
-        "happy_reaction_percentage": "happy_reaction_percentage",
-        "neutral_reaction_percentage": "neutral_reaction_percentage",
-        "reactions": "reactions",
-        "sad_reaction_percentage": "sad_reaction_percentage",
-        "type": "type",
-        "views": "views"
-      }
-    },
-    "article_translated_content": {
-      "displayName": "Article Translated Content",
-      "fields": {
-        "ar": "ar",
-        "bg": "bg",
-        "bs": "bs",
-        "ca": "ca",
-        "cs": "cs",
-        "da": "da",
-        "de": "de",
-        "el": "el",
-        "en": "en",
-        "es": "es",
-        "et": "et",
-        "fi": "fi",
-        "fr": "fr",
-        "he": "he",
-        "hr": "hr",
-        "hu": "hu",
-        "id": "id",
-        "it": "it",
-        "ja": "ja",
-        "ko": "ko",
-        "lt": "lt",
-        "lv": "lv",
-        "mn": "mn",
-        "nb": "nb",
-        "nl": "nl",
-        "pl": "pl",
-        "pt": "pt",
-        "pt-BR": "pt-BR",
-        "ro": "ro",
-        "ru": "ru",
-        "sl": "sl",
-        "sr": "sr",
-        "sv": "sv",
-        "tr": "tr",
-        "type": "type",
-        "vi": "vi",
-        "zh-CN": "zh-CN",
-        "zh-TW": "zh-TW"
-      }
-    },
-    "assign_conversation_request": {
-      "displayName": "Assign Conversation Request",
-      "fields": {
-        "admin_id": "admin_id",
-        "assignee_id": "assignee_id",
-        "body": "body",
-        "message_type": "message_type",
-        "type": "type"
-      }
-    },
-    "attach_contact_to_conversation_request": {
-      "displayName": "Assign Conversation Request",
-      "fields": {
-        "admin_id": "admin_id",
-        "customer": "customer"
-      }
-    },
-    "close_conversation_request": {
-      "displayName": "Close Conversation Request",
-      "fields": {
-        "admin_id": "admin_id",
-        "body": "body",
-        "message_type": "message_type",
-        "type": "type"
-      }
-    },
-    "collection": {
-      "displayName": "Collection",
+    "collections": {
+      "displayName": "Collections",
       "fields": {
         "created_at": "created_at",
         "default_locale": "default_locale",
@@ -306,17 +67,8 @@
         "workspace_id": "workspace_id"
       }
     },
-    "collection_list": {
-      "displayName": "Collections",
-      "fields": {
-        "data": "data",
-        "pages": "pages",
-        "total_count": "total_count",
-        "type": "type"
-      }
-    },
-    "company": {
-      "displayName": "Company",
+    "companies": {
+      "displayName": "Companies",
       "fields": {
         "app_id": "app_id",
         "company_id": "company_id",
@@ -339,43 +91,8 @@
         "website": "website"
       }
     },
-    "company_attached_contacts": {
-      "displayName": "Company Attached Contacts",
-      "fields": {
-        "data": "data",
-        "pages": "pages",
-        "total_count": "total_count",
-        "type": "type"
-      }
-    },
-    "company_attached_segments": {
-      "displayName": "Company Attached Segments",
-      "fields": {
-        "data": "data",
-        "type": "type"
-      }
-    },
-    "company_list": {
-      "displayName": "Companies",
-      "fields": {
-        "data": "data",
-        "pages": "pages",
-        "total_count": "total_count",
-        "type": "type"
-      }
-    },
-    "company_scroll": {
-      "displayName": "Company Scroll",
-      "fields": {
-        "data": "data",
-        "pages": "pages",
-        "scroll_param": "scroll_param",
-        "total_count": "total_count",
-        "type": "type"
-      }
-    },
-    "contact": {
-      "displayName": "Contact",
+    "contacts": {
+      "displayName": "Contacts",
       "fields": {
         "android_app_name": "android_app_name",
         "android_app_version": "android_app_version",
@@ -425,1274 +142,151 @@
         "workspace_id": "workspace_id"
       }
     },
-    "contact_archived": {
-      "displayName": "Contact Archived",
+    "conversations": {
+      "displayName": "Conversations",
       "fields": {
-        "archived": "archived",
-        "external_id": "external_id",
+        "admin_assignee_id": "admin_assignee_id",
+        "ai_agent": "ai_agent",
+        "ai_agent_participated": "ai_agent_participated",
+        "contacts": "contacts",
+        "conversation_parts": "conversation_parts",
+        "conversation_rating": "conversation_rating",
+        "created_at": "created_at",
+        "custom_attributes": "custom_attributes",
+        "first_contact_reply": "first_contact_reply",
         "id": "id",
-        "type": "type"
+        "linked_objects": "linked_objects",
+        "open": "open",
+        "priority": "priority",
+        "read": "read",
+        "sla_applied": "sla_applied",
+        "snoozed_until": "snoozed_until",
+        "source": "source",
+        "state": "state",
+        "statistics": "statistics",
+        "tags": "tags",
+        "team_assignee_id": "team_assignee_id",
+        "teammates": "teammates",
+        "title": "title",
+        "type": "type",
+        "updated_at": "updated_at",
+        "waiting_since": "waiting_since"
       }
     },
-    "contact_attached_companies": {
-      "displayName": "Contact Attached Companies",
+    "data_attributes": {
+      "displayName": "Data Attributes",
       "fields": {
-        "companies": "companies",
-        "pages": "pages",
-        "total_count": "total_count",
-        "type": "type"
+        "admin_id": "admin_id",
+        "api_writable": "api_writable",
+        "archived": "archived",
+        "created_at": "created_at",
+        "custom": "custom",
+        "data_type": "data_type",
+        "description": "description",
+        "full_name": "full_name",
+        "id": "id",
+        "label": "label",
+        "messenger_writable": "messenger_writable",
+        "model": "model",
+        "name": "name",
+        "options": "options",
+        "type": "type",
+        "ui_writable": "ui_writable",
+        "updated_at": "updated_at"
       }
     },
-    "contact_companies": {
-      "displayName": "Contact companies",
+    "data_events": {
+      "displayName": "Data Events",
       "fields": {
-        "has_more": "has_more",
-        "total_count": "total_count",
-        "url": "url"
+        "created_at": "created_at",
+        "email": "email",
+        "event_name": "event_name",
+        "id": "id",
+        "intercom_user_id": "intercom_user_id",
+        "metadata": "metadata",
+        "type": "type",
+        "user_id": "user_id"
       }
     },
-    "contact_deleted": {
-      "displayName": "Contact Deleted",
+    "help_centers": {
+      "displayName": "Help Centers",
       "fields": {
-        "deleted": "deleted",
-        "external_id": "external_id",
+        "created_at": "created_at",
+        "display_name": "display_name",
         "id": "id",
-        "type": "type"
+        "identifier": "identifier",
+        "updated_at": "updated_at",
+        "website_turned_on": "website_turned_on",
+        "workspace_id": "workspace_id"
       }
     },
-    "contact_list": {
-      "displayName": "Contact List",
+    "linked_objects": {
+      "displayName": "Linked Objects",
       "fields": {
-        "data": "data",
-        "pages": "pages",
-        "total_count": "total_count",
+        "category": "category",
+        "id": "id",
         "type": "type"
       }
     },
-    "contact_location": {
-      "displayName": "Contact Location",
+    "notes": {
+      "displayName": "Notes",
       "fields": {
-        "city": "city",
-        "country": "country",
-        "region": "region",
+        "author": "author",
+        "body": "body",
+        "contact": "contact",
+        "created_at": "created_at",
+        "id": "id",
         "type": "type"
       }
     },
-    "contact_notes": {
-      "displayName": "Contact notes",
+    "segments": {
+      "displayName": "Segments",
       "fields": {
-        "data": "data",
-        "has_more": "has_more",
-        "total_count": "total_count",
-        "url": "url"
+        "count": "count",
+        "created_at": "created_at",
+        "id": "id",
+        "name": "name",
+        "person_type": "person_type",
+        "type": "type",
+        "updated_at": "updated_at"
       }
     },
-    "contact_reference": {
-      "displayName": "Contact Reference",
+    "subscription_types": {
+      "displayName": "Subscription Types",
       "fields": {
-        "external_id": "external_id",
+        "consent_type": "consent_type",
+        "content_types": "content_types",
+        "default_translation": "default_translation",
         "id": "id",
+        "state": "state",
+        "translations": "translations",
         "type": "type"
       }
     },
-    "contact_reply_base_request": {
-      "displayName": "Contact Reply Base Object",
+    "tags": {
+      "displayName": "Tags",
       "fields": {
-        "attachment_urls": "attachment_urls",
-        "body": "body",
-        "created_at": "created_at",
-        "message_type": "message_type",
+        "applied_at": "applied_at",
+        "applied_by": "applied_by",
+        "id": "id",
+        "name": "name",
         "type": "type"
       }
     },
-    "contact_reply_conversation_request": {
-      "displayName": "Contact Reply",
+    "teams": {
+      "displayName": "Teams",
       "fields": {
-        "attachment_files": "attachment_files",
-        "attachment_urls": "attachment_urls",
-        "body": "body",
-        "created_at": "created_at",
-        "intercom_user_id": "intercom_user_id",
-        "message_type": "message_type",
+        "admin_ids": "admin_ids",
+        "admin_priority_level": "admin_priority_level",
+        "id": "id",
+        "name": "name",
         "type": "type"
       }
     },
-    "contact_reply_email_request": {
-      "displayName": "Email",
+    "ticket_type_attributes": {
+      "displayName": "Ticket Type Attributes",
       "fields": {
-        "attachment_files": "attachment_files",
-        "attachment_urls": "attachment_urls",
-        "body": "body",
-        "created_at": "created_at",
-        "email": "email",
-        "message_type": "message_type",
-        "type": "type"
-      }
-    },
-    "contact_reply_intercom_user_id_request": {
-      "displayName": "Intercom User ID",
-      "fields": {
-        "attachment_files": "attachment_files",
-        "attachment_urls": "attachment_urls",
-        "body": "body",
-        "created_at": "created_at",
-        "intercom_user_id": "intercom_user_id",
-        "message_type": "message_type",
-        "type": "type"
-      }
-    },
-    "contact_reply_ticket_email_request": {
-      "displayName": "Email",
-      "fields": {
-        "attachment_urls": "attachment_urls",
-        "body": "body",
-        "created_at": "created_at",
-        "email": "email",
-        "message_type": "message_type",
-        "type": "type"
-      }
-    },
-    "contact_reply_ticket_intercom_user_id_request": {
-      "displayName": "Intercom User ID",
-      "fields": {
-        "attachment_urls": "attachment_urls",
-        "body": "body",
-        "created_at": "created_at",
-        "intercom_user_id": "intercom_user_id",
-        "message_type": "message_type",
-        "type": "type"
-      }
-    },
-    "contact_reply_ticket_request": {
-      "displayName": "Contact Reply on ticket",
-      "fields": {
-        "attachment_urls": "attachment_urls",
-        "body": "body",
-        "created_at": "created_at",
-        "intercom_user_id": "intercom_user_id",
-        "message_type": "message_type",
-        "type": "type"
-      }
-    },
-    "contact_reply_ticket_user_id_request": {
-      "displayName": "User ID",
-      "fields": {
-        "attachment_urls": "attachment_urls",
-        "body": "body",
-        "created_at": "created_at",
-        "message_type": "message_type",
-        "type": "type",
-        "user_id": "user_id"
-      }
-    },
-    "contact_reply_user_id_request": {
-      "displayName": "User ID",
-      "fields": {
-        "attachment_files": "attachment_files",
-        "attachment_urls": "attachment_urls",
-        "body": "body",
-        "created_at": "created_at",
-        "message_type": "message_type",
-        "type": "type",
-        "user_id": "user_id"
-      }
-    },
-    "contact_segments": {
-      "displayName": "Segments",
-      "fields": {
-        "data": "data",
-        "type": "type"
-      }
-    },
-    "contact_social_profiles": {
-      "displayName": "Social Profile",
-      "fields": {
-        "data": "data"
-      }
-    },
-    "contact_subscription_types": {
-      "displayName": "Contact Subscription Types",
-      "fields": {
-        "data": "data",
-        "has_more": "has_more",
-        "total_count": "total_count",
-        "url": "url"
-      }
-    },
-    "contact_tags": {
-      "displayName": "Contact Tags",
-      "fields": {
-        "data": "data",
-        "has_more": "has_more",
-        "total_count": "total_count",
-        "url": "url"
-      }
-    },
-    "contact_unarchived": {
-      "displayName": "Contact Unarchived",
-      "fields": {
-        "archived": "archived",
-        "external_id": "external_id",
-        "id": "id",
-        "type": "type"
-      }
-    },
-    "content_sources_list": {
-      "displayName": "Content Source List",
-      "fields": {
-        "content_sources": "content_sources",
-        "total_count": "total_count",
-        "type": "type"
-      }
-    },
-    "conversation": {
-      "displayName": "Conversation",
-      "fields": {
-        "admin_assignee_id": "admin_assignee_id",
-        "ai_agent": "ai_agent",
-        "ai_agent_participated": "ai_agent_participated",
-        "contacts": "contacts",
-        "conversation_parts": "conversation_parts",
-        "conversation_rating": "conversation_rating",
-        "created_at": "created_at",
-        "custom_attributes": "custom_attributes",
-        "first_contact_reply": "first_contact_reply",
-        "id": "id",
-        "linked_objects": "linked_objects",
-        "open": "open",
-        "priority": "priority",
-        "read": "read",
-        "sla_applied": "sla_applied",
-        "snoozed_until": "snoozed_until",
-        "source": "source",
-        "state": "state",
-        "statistics": "statistics",
-        "tags": "tags",
-        "team_assignee_id": "team_assignee_id",
-        "teammates": "teammates",
-        "title": "title",
-        "type": "type",
-        "updated_at": "updated_at",
-        "waiting_since": "waiting_since"
-      }
-    },
-    "conversation_attachment_files": {
-      "displayName": "Conversation attachment files",
-      "fields": {
-        "content_type": "content_type",
-        "data": "data",
-        "name": "name"
-      }
-    },
-    "conversation_contacts": {
-      "displayName": "Contacts",
-      "fields": {
-        "contacts": "contacts",
-        "type": "type"
-      }
-    },
-    "conversation_first_contact_reply": {
-      "displayName": "First contact reply",
-      "fields": {
-        "created_at": "created_at",
-        "type": "type",
-        "url": "url"
-      }
-    },
-    "conversation_list": {
-      "displayName": "Conversation List",
-      "fields": {
-        "conversations": "conversations",
-        "pages": "pages",
-        "total_count": "total_count",
-        "type": "type"
-      }
-    },
-    "conversation_part": {
-      "displayName": "Conversation Part",
-      "fields": {
-        "assigned_to": "assigned_to",
-        "attachments": "attachments",
-        "author": "author",
-        "body": "body",
-        "created_at": "created_at",
-        "external_id": "external_id",
-        "id": "id",
-        "notified_at": "notified_at",
-        "part_type": "part_type",
-        "redacted": "redacted",
-        "type": "type",
-        "updated_at": "updated_at"
-      }
-    },
-    "conversation_part_author": {
-      "displayName": "Conversation part author",
-      "fields": {
-        "email": "email",
-        "id": "id",
-        "name": "name",
-        "type": "type"
-      }
-    },
-    "conversation_parts": {
-      "displayName": "Conversation Parts",
-      "fields": {
-        "conversation_parts": "conversation_parts",
-        "total_count": "total_count",
-        "type": "type"
-      }
-    },
-    "conversation_rating": {
-      "displayName": "Conversation Rating",
-      "fields": {
-        "contact": "contact",
-        "created_at": "created_at",
-        "rating": "rating",
-        "remark": "remark",
-        "teammate": "teammate"
-      }
-    },
-    "conversation_source": {
-      "displayName": "Conversation source",
-      "fields": {
-        "attachments": "attachments",
-        "author": "author",
-        "body": "body",
-        "delivered_as": "delivered_as",
-        "id": "id",
-        "redacted": "redacted",
-        "subject": "subject",
-        "type": "type",
-        "url": "url"
-      }
-    },
-    "conversation_statistics": {
-      "displayName": "Conversation statistics",
-      "fields": {
-        "count_assignments": "count_assignments",
-        "count_conversation_parts": "count_conversation_parts",
-        "count_reopens": "count_reopens",
-        "first_admin_reply_at": "first_admin_reply_at",
-        "first_assignment_at": "first_assignment_at",
-        "first_close_at": "first_close_at",
-        "first_contact_reply_at": "first_contact_reply_at",
-        "last_admin_reply_at": "last_admin_reply_at",
-        "last_assignment_admin_reply_at": "last_assignment_admin_reply_at",
-        "last_assignment_at": "last_assignment_at",
-        "last_close_at": "last_close_at",
-        "last_closed_by_id": "last_closed_by_id",
-        "last_contact_reply_at": "last_contact_reply_at",
-        "median_time_to_reply": "median_time_to_reply",
-        "time_to_admin_reply": "time_to_admin_reply",
-        "time_to_assignment": "time_to_assignment",
-        "time_to_first_close": "time_to_first_close",
-        "time_to_last_close": "time_to_last_close",
-        "type": "type"
-      }
-    },
-    "conversation_teammates": {
-      "displayName": "Conversation teammates",
-      "fields": {
-        "teammates": "teammates",
-        "type": "type"
-      }
-    },
-    "convert_conversation_to_ticket_request": {
-      "displayName": "Convert Ticket Request Payload",
-      "fields": {
-        "attributes": "attributes",
-        "ticket_type_id": "ticket_type_id"
-      }
-    },
-    "convert_visitor_request": {
-      "displayName": "Convert Visitor Request Payload",
-      "fields": {
-        "type": "type",
-        "user": "user",
-        "visitor": "visitor"
-      }
-    },
-    "create_article_request": {
-      "displayName": "Create Article Request Payload",
-      "fields": {
-        "author_id": "author_id",
-        "body": "body",
-        "description": "description",
-        "parent_id": "parent_id",
-        "parent_type": "parent_type",
-        "state": "state",
-        "title": "title",
-        "translated_content": "translated_content"
-      }
-    },
-    "create_collection_request": {
-      "displayName": "Create Collection Request Payload",
-      "fields": {
-        "description": "description",
-        "help_center_id": "help_center_id",
-        "name": "name",
-        "parent_id": "parent_id",
-        "translated_content": "translated_content"
-      }
-    },
-    "create_contact_request": {
-      "displayName": "Create Contact Request Payload",
-      "fields": {
-        "avatar": "avatar",
-        "custom_attributes": "custom_attributes",
-        "email": "email",
-        "external_id": "external_id",
-        "last_seen_at": "last_seen_at",
-        "name": "name",
-        "owner_id": "owner_id",
-        "phone": "phone",
-        "role": "role",
-        "signed_up_at": "signed_up_at",
-        "unsubscribed_from_emails": "unsubscribed_from_emails"
-      }
-    },
-    "create_conversation_request": {
-      "displayName": "Create Conversation Request Payload",
-      "fields": {
-        "body": "body",
-        "from": "from"
-      }
-    },
-    "create_data_attribute_request": {
-      "displayName": "Create Data Attribute Request",
-      "fields": {
-        "data_type": "data_type",
-        "description": "description",
-        "messenger_writable": "messenger_writable",
-        "model": "model",
-        "name": "name",
-        "options": "options"
-      }
-    },
-    "create_data_event_request": {
-      "displayName": "Create Data Event Request",
-      "fields": {
-        "created_at": "created_at",
-        "email": "email",
-        "event_name": "event_name",
-        "id": "id",
-        "metadata": "metadata",
-        "user_id": "user_id"
-      }
-    },
-    "create_data_event_summaries_request": {
-      "displayName": "Create Data Event Summaries Request",
-      "fields": {
-        "event_summaries": "event_summaries",
-        "user_id": "user_id"
-      }
-    },
-    "create_data_exports_request": {
-      "displayName": "Create Data Export Request",
-      "fields": {
-        "created_at_after": "created_at_after",
-        "created_at_before": "created_at_before"
-      }
-    },
-    "create_message_request": {
-      "displayName": "Create Message Request Payload",
-      "fields": {
-        "body": "body",
-        "create_conversation_without_contact_reply": "create_conversation_without_contact_reply",
-        "created_at": "created_at",
-        "from": "from",
-        "message_type": "message_type",
-        "subject": "subject",
-        "template": "template",
-        "to": "to"
-      }
-    },
-    "create_or_update_company_request": {
-      "displayName": "Create Or Update Company Request Payload",
-      "fields": {
-        "company_id": "company_id",
-        "custom_attributes": "custom_attributes",
-        "industry": "industry",
-        "monthly_spend": "monthly_spend",
-        "name": "name",
-        "plan": "plan",
-        "remote_created_at": "remote_created_at",
-        "size": "size",
-        "website": "website"
-      }
-    },
-    "create_or_update_tag_request": {
-      "displayName": "Create or Update Tag Request Payload",
-      "fields": {
-        "id": "id",
-        "name": "name"
-      }
-    },
-    "create_phone_switch_request": {
-      "displayName": "Create Phone Switch Request Payload",
-      "fields": {
-        "custom_attributes": "custom_attributes",
-        "phone": "phone"
-      }
-    },
-    "create_ticket_reply_with_comment_request": {
-      "displayName": "Create Ticket Reply Request Payload",
-      "fields": {
-        "attachment_urls": "attachment_urls",
-        "body": "body",
-        "created_at": "created_at",
-        "intercom_user_id": "intercom_user_id",
-        "message_type": "message_type",
-        "type": "type"
-      }
-    },
-    "create_ticket_request": {
-      "displayName": "Create Ticket Request Payload",
-      "fields": {
-        "company_id": "company_id",
-        "contacts": "contacts",
-        "created_at": "created_at",
-        "ticket_attributes": "ticket_attributes",
-        "ticket_type_id": "ticket_type_id"
-      }
-    },
-    "create_ticket_type_attribute_request": {
-      "displayName": "Create Ticket Type Attribute Request Payload",
-      "fields": {
-        "allow_multiple_values": "allow_multiple_values",
-        "data_type": "data_type",
-        "description": "description",
-        "list_items": "list_items",
-        "multiline": "multiline",
-        "name": "name",
-        "required_to_create": "required_to_create",
-        "required_to_create_for_contacts": "required_to_create_for_contacts",
-        "visible_on_create": "visible_on_create",
-        "visible_to_contacts": "visible_to_contacts"
-      }
-    },
-    "create_ticket_type_request": {
-      "displayName": "Create Ticket Type Request Payload",
-      "fields": {
-        "category": "category",
-        "description": "description",
-        "icon": "icon",
-        "is_internal": "is_internal",
-        "name": "name"
-      }
-    },
-    "cursor_pages": {
-      "displayName": "Cursor based pages",
-      "fields": {
-        "next": "next",
-        "page": "page",
-        "per_page": "per_page",
-        "total_pages": "total_pages",
-        "type": "type"
-      }
-    },
-    "custom_attributes": {
-      "displayName": "Custom Attributes",
-      "fields": {
-        "property name*": "property name*"
-      }
-    },
-    "customer_request": {
-      "displayName": "customer_request",
-      "fields": {
-        "intercom_user_id": "intercom_user_id"
-      }
-    },
-    "data_attribute": {
-      "displayName": "Data Attribute",
-      "fields": {
-        "admin_id": "admin_id",
-        "api_writable": "api_writable",
-        "archived": "archived",
-        "created_at": "created_at",
-        "custom": "custom",
-        "data_type": "data_type",
-        "description": "description",
-        "full_name": "full_name",
-        "id": "id",
-        "label": "label",
-        "messenger_writable": "messenger_writable",
-        "model": "model",
-        "name": "name",
-        "options": "options",
-        "type": "type",
-        "ui_writable": "ui_writable",
-        "updated_at": "updated_at"
-      }
-    },
-    "data_attribute_list": {
-      "displayName": "Data Attribute List",
-      "fields": {
-        "data": "data",
-        "type": "type"
-      }
-    },
-    "data_event": {
-      "displayName": "Data Event",
-      "fields": {
-        "created_at": "created_at",
-        "email": "email",
-        "event_name": "event_name",
-        "id": "id",
-        "intercom_user_id": "intercom_user_id",
-        "metadata": "metadata",
-        "type": "type",
-        "user_id": "user_id"
-      }
-    },
-    "data_event_list": {
-      "displayName": "Data Event List",
-      "fields": {
-        "events": "events",
-        "pages": "pages",
-        "type": "type"
-      }
-    },
-    "data_event_summary": {
-      "displayName": "Data Event Summary",
-      "fields": {
-        "email": "email",
-        "events": "events",
-        "intercom_user_id": "intercom_user_id",
-        "type": "type",
-        "user_id": "user_id"
-      }
-    },
-    "data_event_summary_item": {
-      "displayName": "Data Event Summary Item",
-      "fields": {
-        "count": "count",
-        "description": "description",
-        "first": "first",
-        "last": "last",
-        "name": "name"
-      }
-    },
-    "data_export": {
-      "displayName": "Data Export",
-      "fields": {
-        "download_expires_at": "download_expires_at",
-        "download_url": "download_url",
-        "job_identfier": "job_identfier",
-        "status": "status"
-      }
-    },
-    "data_export_csv": {
-      "displayName": "Data Export CSV",
-      "fields": {
-        "company_id": "company_id",
-        "content_id": "content_id",
-        "content_title": "content_title",
-        "content_type": "content_type",
-        "email": "email",
-        "first_click": "first_click",
-        "first_completion": "first_completion",
-        "first_dismisall": "first_dismisall",
-        "first_goal_success": "first_goal_success",
-        "first_hard_bounce": "first_hard_bounce",
-        "first_open": "first_open",
-        "first_reply": "first_reply",
-        "first_series_completion": "first_series_completion",
-        "first_series_disengagement": "first_series_disengagement",
-        "first_series_exit": "first_series_exit",
-        "first_unsubscribe": "first_unsubscribe",
-        "name": "name",
-        "node_id": "node_id",
-        "receipt_id": "receipt_id",
-        "received_at": "received_at",
-        "ruleset_id": "ruleset_id",
-        "ruleset_version_id": "ruleset_version_id",
-        "series_id": "series_id",
-        "series_title": "series_title",
-        "user_external_id": "user_external_id",
-        "user_id": "user_id"
-      }
-    },
-    "deleted_article_object": {
-      "displayName": "Deleted Article Object",
-      "fields": {
-        "deleted": "deleted",
-        "id": "id",
-        "object": "object"
-      }
-    },
-    "deleted_collection_object": {
-      "displayName": "Deleted Collection Object",
-      "fields": {
-        "deleted": "deleted",
-        "id": "id",
-        "object": "object"
-      }
-    },
-    "deleted_company_object": {
-      "displayName": "Deleted Company Object",
-      "fields": {
-        "deleted": "deleted",
-        "id": "id",
-        "object": "object"
-      }
-    },
-    "deleted_object": {
-      "displayName": "Deleted Object",
-      "fields": {
-        "deleted": "deleted",
-        "id": "id",
-        "object": "object"
-      }
-    },
-    "detach_contact_from_conversation_request": {
-      "displayName": "detach_contact_from_conversation_request",
-      "fields": {
-        "admin_id": "admin_id"
-      }
-    },
-    "error": {
-      "displayName": "Error",
-      "fields": {
-        "errors": "errors",
-        "request_id": "request_id",
-        "type": "type"
-      }
-    },
-    "file_attribute": {
-      "displayName": "File",
-      "fields": {
-        "content_type": "content_type",
-        "filesize": "filesize",
-        "height": "height",
-        "name": "name",
-        "type": "type",
-        "url": "url",
-        "width": "width"
-      }
-    },
-    "group_content": {
-      "displayName": "Group Content",
-      "fields": {
-        "description": "description",
-        "name": "name",
-        "type": "type"
-      }
-    },
-    "group_translated_content": {
-      "displayName": "Group Translated Content",
-      "fields": {
-        "ar": "ar",
-        "bg": "bg",
-        "bs": "bs",
-        "ca": "ca",
-        "cs": "cs",
-        "da": "da",
-        "de": "de",
-        "el": "el",
-        "en": "en",
-        "es": "es",
-        "et": "et",
-        "fi": "fi",
-        "fr": "fr",
-        "he": "he",
-        "hr": "hr",
-        "hu": "hu",
-        "id": "id",
-        "it": "it",
-        "ja": "ja",
-        "ko": "ko",
-        "lt": "lt",
-        "lv": "lv",
-        "mn": "mn",
-        "nb": "nb",
-        "nl": "nl",
-        "pl": "pl",
-        "pt": "pt",
-        "pt-BR": "pt-BR",
-        "ro": "ro",
-        "ru": "ru",
-        "sl": "sl",
-        "sr": "sr",
-        "sv": "sv",
-        "tr": "tr",
-        "type": "type",
-        "vi": "vi",
-        "zh-CN": "zh-CN",
-        "zh-TW": "zh-TW"
-      }
-    },
-    "help_center": {
-      "displayName": "Help Center",
-      "fields": {
-        "created_at": "created_at",
-        "display_name": "display_name",
-        "id": "id",
-        "identifier": "identifier",
-        "updated_at": "updated_at",
-        "website_turned_on": "website_turned_on",
-        "workspace_id": "workspace_id"
-      }
-    },
-    "help_center_list": {
-      "displayName": "Help Centers",
-      "fields": {
-        "data": "data",
-        "type": "type"
-      }
-    },
-    "linked_object": {
-      "displayName": "Linked Object",
-      "fields": {
-        "category": "category",
-        "id": "id",
-        "type": "type"
-      }
-    },
-    "linked_object_list": {
-      "displayName": "Linked Objects",
-      "fields": {
-        "data": "data",
-        "has_more": "has_more",
-        "total_count": "total_count",
-        "type": "type"
-      }
-    },
-    "merge_contacts_request": {
-      "displayName": "Merge contact data",
-      "fields": {
-        "from": "from",
-        "into": "into"
-      }
-    },
-    "message": {
-      "displayName": "Message",
-      "fields": {
-        "body": "body",
-        "conversation_id": "conversation_id",
-        "created_at": "created_at",
-        "id": "id",
-        "message_type": "message_type",
-        "subject": "subject",
-        "type": "type"
-      }
-    },
-    "multiple_filter_search_request": {
-      "displayName": "Multiple Filter Search Request",
-      "fields": {
-        "operator": "operator",
-        "value": "value"
-      }
-    },
-    "news_item": {
-      "displayName": "News Item",
-      "fields": {
-        "body": "body",
-        "cover_image_url": "cover_image_url",
-        "created_at": "created_at",
-        "deliver_silently": "deliver_silently",
-        "id": "id",
-        "labels": "labels",
-        "newsfeed_assignments": "newsfeed_assignments",
-        "reactions": "reactions",
-        "sender_id": "sender_id",
-        "state": "state",
-        "title": "title",
-        "type": "type",
-        "updated_at": "updated_at",
-        "workspace_id": "workspace_id"
-      }
-    },
-    "news_item_request": {
-      "displayName": "Create News Item Request",
-      "fields": {
-        "body": "body",
-        "deliver_silently": "deliver_silently",
-        "labels": "labels",
-        "newsfeed_assignments": "newsfeed_assignments",
-        "reactions": "reactions",
-        "sender_id": "sender_id",
-        "state": "state",
-        "title": "title"
-      }
-    },
-    "newsfeed": {
-      "displayName": "Newsfeed",
-      "fields": {
-        "created_at": "created_at",
-        "id": "id",
-        "name": "name",
-        "type": "type",
-        "updated_at": "updated_at"
-      }
-    },
-    "newsfeed_assignment": {
-      "displayName": "Newsfeed Assignment",
-      "fields": {
-        "newsfeed_id": "newsfeed_id",
-        "published_at": "published_at"
-      }
-    },
-    "note": {
-      "displayName": "Note",
-      "fields": {
-        "author": "author",
-        "body": "body",
-        "contact": "contact",
-        "created_at": "created_at",
-        "id": "id",
-        "type": "type"
-      }
-    },
-    "note_list": {
-      "displayName": "Paginated Response",
-      "fields": {
-        "data": "data",
-        "pages": "pages",
-        "total_count": "total_count",
-        "type": "type"
-      }
-    },
-    "open_conversation_request": {
-      "displayName": "Open Conversation Request",
-      "fields": {
-        "admin_id": "admin_id",
-        "message_type": "message_type"
-      }
-    },
-    "pages_link": {
-      "displayName": "Pagination Object",
-      "fields": {
-        "next": "next",
-        "page": "page",
-        "per_page": "per_page",
-        "total_pages": "total_pages",
-        "type": "type"
-      }
-    },
-    "paginated_response": {
-      "displayName": "Paginated Response",
-      "fields": {
-        "data": "data",
-        "pages": "pages",
-        "total_count": "total_count",
-        "type": "type"
-      }
-    },
-    "part_attachment": {
-      "displayName": "Part attachment",
-      "fields": {
-        "content_type": "content_type",
-        "filesize": "filesize",
-        "height": "height",
-        "name": "name",
-        "type": "type",
-        "url": "url",
-        "width": "width"
-      }
-    },
-    "phone_switch": {
-      "displayName": "Phone Switch",
-      "fields": {
-        "phone": "phone",
-        "type": "type"
-      }
-    },
-    "redact_conversation_request": {
-      "displayName": "redact_conversation_request",
-      "fields": {
-        "conversation_id": "conversation_id",
-        "conversation_part_id": "conversation_part_id",
-        "type": "type"
-      }
-    },
-    "reference": {
-      "displayName": "Reference",
-      "fields": {
-        "id": "id",
-        "type": "type"
-      }
-    },
-    "reply_conversation_request": {
-      "displayName": "reply_conversation_request",
-      "fields": {
-        "attachment_files": "attachment_files",
-        "attachment_urls": "attachment_urls",
-        "body": "body",
-        "created_at": "created_at",
-        "intercom_user_id": "intercom_user_id",
-        "message_type": "message_type",
-        "type": "type"
-      }
-    },
-    "search_request": {
-      "displayName": "Search data",
-      "fields": {
-        "pagination": "pagination",
-        "query": "query"
-      }
-    },
-    "segment": {
-      "displayName": "Segment",
-      "fields": {
-        "count": "count",
-        "created_at": "created_at",
-        "id": "id",
-        "name": "name",
-        "person_type": "person_type",
-        "type": "type",
-        "updated_at": "updated_at"
-      }
-    },
-    "segment_list": {
-      "displayName": "Segment List",
-      "fields": {
-        "pages": "pages",
-        "segments": "segments",
-        "type": "type"
-      }
-    },
-    "single_filter_search_request": {
-      "displayName": "Single Filter Search Request",
-      "fields": {
-        "field": "field",
-        "operator": "operator",
-        "value": "value"
-      }
-    },
-    "sla_applied": {
-      "displayName": "Applied SLA",
-      "fields": {
-        "sla_name": "sla_name",
-        "sla_status": "sla_status",
-        "type": "type"
-      }
-    },
-    "snooze_conversation_request": {
-      "displayName": "Snooze Conversation Request",
-      "fields": {
-        "admin_id": "admin_id",
-        "message_type": "message_type",
-        "snoozed_until": "snoozed_until"
-      }
-    },
-    "social_profile": {
-      "displayName": "Social Profile",
-      "fields": {
-        "name": "name",
-        "type": "type",
-        "url": "url"
-      }
-    },
-    "starting_after_paging": {
-      "displayName": "Pagination: Starting After",
-      "fields": {
-        "per_page": "per_page",
-        "starting_after": "starting_after"
-      }
-    },
-    "subscription_type": {
-      "displayName": "Subscription Types",
-      "fields": {
-        "consent_type": "consent_type",
-        "content_types": "content_types",
-        "default_translation": "default_translation",
-        "id": "id",
-        "state": "state",
-        "translations": "translations",
-        "type": "type"
-      }
-    },
-    "subscription_type_list": {
-      "displayName": "Subscription Types",
-      "fields": {
-        "data": "data",
-        "type": "type"
-      }
-    },
-    "tag": {
-      "displayName": "Tag",
-      "fields": {
-        "applied_at": "applied_at",
-        "applied_by": "applied_by",
-        "id": "id",
-        "name": "name",
-        "type": "type"
-      }
-    },
-    "tag_company_request": {
-      "displayName": "Tag Company Request Payload",
-      "fields": {
-        "companies": "companies",
-        "name": "name"
-      }
-    },
-    "tag_list": {
-      "displayName": "Tags",
-      "fields": {
-        "data": "data",
-        "type": "type"
-      }
-    },
-    "tag_multiple_users_request": {
-      "displayName": "Tag Users Request Payload",
-      "fields": {
-        "name": "name",
-        "users": "users"
-      }
-    },
-    "tags": {
-      "displayName": "Tags",
-      "fields": {
-        "tags": "tags",
-        "type": "type"
-      }
-    },
-    "team": {
-      "displayName": "Team",
-      "fields": {
-        "admin_ids": "admin_ids",
-        "admin_priority_level": "admin_priority_level",
-        "id": "id",
-        "name": "name",
-        "type": "type"
-      }
-    },
-    "team_list": {
-      "displayName": "Team List",
-      "fields": {
-        "teams": "teams",
-        "type": "type"
-      }
-    },
-    "team_priority_level": {
-      "displayName": "Team Priority Level",
-      "fields": {
-        "primary_team_ids": "primary_team_ids",
-        "secondary_team_ids": "secondary_team_ids"
-      }
-    },
-    "ticket": {
-      "displayName": "Ticket",
-      "fields": {
-        "admin_assignee_id": "admin_assignee_id",
-        "category": "category",
-        "contacts": "contacts",
-        "created_at": "created_at",
-        "id": "id",
-        "is_shared": "is_shared",
-        "linked_objects": "linked_objects",
-        "open": "open",
-        "snoozed_until": "snoozed_until",
-        "team_assignee_id": "team_assignee_id",
-        "ticket_attributes": "ticket_attributes",
-        "ticket_id": "ticket_id",
-        "ticket_parts": "ticket_parts",
-        "ticket_state": "ticket_state",
-        "ticket_state_external_label": "ticket_state_external_label",
-        "ticket_state_internal_label": "ticket_state_internal_label",
-        "ticket_type": "ticket_type",
-        "type": "type",
-        "updated_at": "updated_at"
-      }
-    },
-    "ticket_contacts": {
-      "displayName": "Contacts",
-      "fields": {
-        "contacts": "contacts",
-        "type": "type"
-      }
-    },
-    "ticket_custom_attributes": {
-      "displayName": "Ticket Attributes",
-      "fields": {
-        "property name*": "property name*"
-      }
-    },
-    "ticket_list": {
-      "displayName": "Ticket List",
-      "fields": {
-        "pages": "pages",
-        "tickets": "tickets",
-        "total_count": "total_count",
-        "type": "type"
-      }
-    },
-    "ticket_part": {
-      "displayName": "Ticket Part",
-      "fields": {
-        "assigned_to": "assigned_to",
-        "attachments": "attachments",
-        "author": "author",
-        "body": "body",
-        "created_at": "created_at",
-        "external_id": "external_id",
-        "id": "id",
-        "part_type": "part_type",
-        "previous_ticket_state": "previous_ticket_state",
-        "redacted": "redacted",
-        "ticket_state": "ticket_state",
-        "type": "type",
-        "updated_at": "updated_at"
-      }
-    },
-    "ticket_part_author": {
-      "displayName": "Ticket part author",
-      "fields": {
-        "email": "email",
-        "id": "id",
-        "name": "name",
-        "type": "type"
-      }
-    },
-    "ticket_parts": {
-      "displayName": "Ticket Parts",
-      "fields": {
-        "ticket_parts": "ticket_parts",
-        "total_count": "total_count",
-        "type": "type"
-      }
-    },
-    "ticket_reply": {
-      "displayName": "A Ticket Part representing a note, comment, or quick_reply on a ticket",
-      "fields": {
-        "attachments": "attachments",
-        "author": "author",
-        "body": "body",
-        "created_at": "created_at",
-        "id": "id",
-        "part_type": "part_type",
-        "redacted": "redacted",
-        "type": "type",
-        "updated_at": "updated_at"
-      }
-    },
-    "ticket_request_custom_attributes": {
-      "displayName": "Ticket Attributes",
-      "fields": {
-        "property name*": "property name*"
-      }
-    },
-    "ticket_type": {
-      "displayName": "Ticket Type",
-      "fields": {
-        "archived": "archived",
-        "category": "category",
-        "created_at": "created_at",
-        "description": "description",
-        "icon": "icon",
-        "id": "id",
-        "name": "name",
-        "ticket_type_attributes": "ticket_type_attributes",
-        "type": "type",
-        "updated_at": "updated_at",
-        "workspace_id": "workspace_id"
-      }
-    },
-    "ticket_type_attribute": {
-      "displayName": "Ticket Type Attribute",
-      "fields": {
-        "archived": "archived",
+        "archived": "archived",
         "created_at": "created_at",
         "data_type": "data_type",
         "default": "default",
@@ -1711,179 +305,44 @@
         "workspace_id": "workspace_id"
       }
     },
-    "ticket_type_attribute_list": {
-      "displayName": "Ticket Type Attributes",
-      "fields": {
-        "ticket_type_attributes": "ticket_type_attributes",
-        "type": "type"
-      }
-    },
-    "ticket_type_list": {
+    "ticket_types": {
       "displayName": "Ticket Types",
-      "fields": {
-        "ticket_types": "ticket_types",
-        "type": "type"
-      }
-    },
-    "translation": {
-      "displayName": "Translation",
-      "fields": {
-        "description": "description",
-        "locale": "locale",
-        "name": "name"
-      }
-    },
-    "untag_company_request": {
-      "displayName": "Untag Company Request Payload",
-      "fields": {
-        "companies": "companies",
-        "name": "name"
-      }
-    },
-    "update_article_request": {
-      "displayName": "Update Article Request Payload",
-      "fields": {
-        "author_id": "author_id",
-        "body": "body",
-        "description": "description",
-        "parent_id": "parent_id",
-        "parent_type": "parent_type",
-        "state": "state",
-        "title": "title",
-        "translated_content": "translated_content"
-      }
-    },
-    "update_collection_request": {
-      "displayName": "Update Collection Request Payload",
-      "fields": {
-        "description": "description",
-        "name": "name",
-        "parent_id": "parent_id",
-        "translated_content": "translated_content"
-      }
-    },
-    "update_contact_request": {
-      "displayName": "Update Contact Request Payload",
-      "fields": {
-        "avatar": "avatar",
-        "custom_attributes": "custom_attributes",
-        "email": "email",
-        "external_id": "external_id",
-        "last_seen_at": "last_seen_at",
-        "name": "name",
-        "owner_id": "owner_id",
-        "phone": "phone",
-        "role": "role",
-        "signed_up_at": "signed_up_at",
-        "unsubscribed_from_emails": "unsubscribed_from_emails"
-      }
-    },
-    "update_conversation_request": {
-      "displayName": "Update Conversation Request",
-      "fields": {
-        "custom_attributes": "custom_attributes",
-        "read": "read"
-      }
-    },
-    "update_data_attribute_request": {
-      "displayName": "Update Data Attribute Request",
-      "fields": {
-        "archived": "archived",
-        "description": "description",
-        "messenger_writable": "messenger_writable",
-        "options": "options"
-      }
-    },
-    "update_ticket_request": {
-      "displayName": "Update Ticket Request Payload",
-      "fields": {
-        "assignment": "assignment",
-        "is_shared": "is_shared",
-        "open": "open",
-        "snoozed_until": "snoozed_until",
-        "state": "state",
-        "ticket_attributes": "ticket_attributes"
-      }
-    },
-    "update_ticket_type_attribute_request": {
-      "displayName": "Update Ticket Type Attribute Request Payload",
-      "fields": {
-        "allow_multiple_values": "allow_multiple_values",
-        "archived": "archived",
-        "description": "description",
-        "list_items": "list_items",
-        "multiline": "multiline",
-        "name": "name",
-        "required_to_create": "required_to_create",
-        "required_to_create_for_contacts": "required_to_create_for_contacts",
-        "visible_on_create": "visible_on_create",
-        "visible_to_contacts": "visible_to_contacts"
-      }
-    },
-    "update_ticket_type_request": {
-      "displayName": "Update Ticket Type Request Payload",
       "fields": {
         "archived": "archived",
         "category": "category",
+        "created_at": "created_at",
         "description": "description",
         "icon": "icon",
-        "is_internal": "is_internal",
-        "name": "name"
-      }
-    },
-    "update_visitor_request": {
-      "displayName": "Update Visitor Request Payload",
-      "fields": {
-        "custom_attributes": "custom_attributes",
-        "id": "id",
-        "name": "name",
-        "user_id": "user_id"
-      }
-    },
-    "visitor": {
-      "displayName": "Visitor",
-      "fields": {
-        "anonymous": "anonymous",
-        "app_id": "app_id",
-        "avatar": "avatar",
-        "companies": "companies",
-        "created_at": "created_at",
-        "custom_attributes": "custom_attributes",
-        "do_not_track": "do_not_track",
-        "email": "email",
-        "has_hard_bounced": "has_hard_bounced",
         "id": "id",
-        "las_request_at": "las_request_at",
-        "location_data": "location_data",
-        "marked_email_as_spam": "marked_email_as_spam",
         "name": "name",
-        "owner_id": "owner_id",
-        "phone": "phone",
-        "pseudonym": "pseudonym",
-        "referrer": "referrer",
-        "remote_created_at": "remote_created_at",
-        "segments": "segments",
-        "session_count": "session_count",
-        "signed_up_at": "signed_up_at",
-        "social_profiles": "social_profiles",
-        "tags": "tags",
+        "ticket_type_attributes": "ticket_type_attributes",
         "type": "type",
-        "unsubscribed_from_emails": "unsubscribed_from_emails",
         "updated_at": "updated_at",
-        "user_id": "user_id",
-        "utm_campaign": "utm_campaign",
-        "utm_content": "utm_content",
-        "utm_medium": "utm_medium",
-        "utm_source": "utm_source",
-        "utm_term": "utm_term"
+        "workspace_id": "workspace_id"
       }
     },
-    "visitor_deleted_object": {
-      "displayName": "Visitor Deleted Object",
+    "tickets": {
+      "displayName": "Tickets",
       "fields": {
+        "admin_assignee_id": "admin_assignee_id",
+        "category": "category",
+        "contacts": "contacts",
+        "created_at": "created_at",
         "id": "id",
+        "is_shared": "is_shared",
+        "linked_objects": "linked_objects",
+        "open": "open",
+        "snoozed_until": "snoozed_until",
+        "team_assignee_id": "team_assignee_id",
+        "ticket_attributes": "ticket_attributes",
+        "ticket_id": "ticket_id",
+        "ticket_parts": "ticket_parts",
+        "ticket_state": "ticket_state",
+        "ticket_state_external_label": "ticket_state_external_label",
+        "ticket_state_internal_label": "ticket_state_internal_label",
+        "ticket_type": "ticket_type",
         "type": "type",
-        "user_id": "user_id"
+        "updated_at": "updated_at"
       }
     }
   }
diff --git a/intercom/metadata/scrapping.go b/intercom/metadata/scrapping.go
index c67b1dd8..d13819d2 100644
--- a/intercom/metadata/scrapping.go
+++ b/intercom/metadata/scrapping.go
@@ -1,6 +1,8 @@
 package metadata
 
 import (
+	_ "embed"
+	"encoding/json"
 	"path/filepath"
 	"runtime"
 
@@ -12,6 +14,11 @@ const (
 	SchemasFile = "schemas.json"
 )
 
+// Static file containing a list of object metadata is embedded and can be served.
+//
+//go:embed schemas.json
+var schemas []byte
+
 func SaveIndex(index *scrapper.ModelURLRegistry) error {
 	return scrapper.FlushToFile(resolveRelativePath(IndexFile), index)
 }
@@ -32,14 +39,14 @@ func SaveSchemas(schemas *scrapper.ObjectMetadataResult) error {
 }
 
 func LoadSchemas() (*scrapper.ObjectMetadataResult, error) {
-	var schemas *scrapper.ObjectMetadataResult
+	var result *scrapper.ObjectMetadataResult
 
-	err := scrapper.LoadFile(resolveRelativePath(SchemasFile), &schemas)
+	err := json.Unmarshal(schemas, &result)
 	if err != nil {
 		return nil, err
 	}
 
-	return schemas, nil
+	return result, nil
 }
 
 func resolveRelativePath(filename string) string {
diff --git a/intercom/params.go b/intercom/params.go
index be94eb8c..22c1f9ef 100644
--- a/intercom/params.go
+++ b/intercom/params.go
@@ -21,7 +21,6 @@ type Option func(params *parameters)
 // parameters Intercom supports auth client by delegation.
 type parameters struct {
 	paramsbuilder.Client
-	paramsbuilder.Module
 }
 
 func (p parameters) FromOptions(opts ...Option) (*parameters, error) {
@@ -36,7 +35,6 @@ func (p parameters) FromOptions(opts ...Option) (*parameters, error) {
 func (p parameters) ValidateParams() error {
 	return errors.Join(
 		p.Client.ValidateParams(),
-		p.Module.ValidateParams(),
 	)
 }
 
@@ -53,9 +51,3 @@ func WithAuthenticatedClient(client common.AuthenticatedHTTPClient) Option {
 		params.WithAuthenticatedClient(client)
 	}
 }
-
-func WithModule(module paramsbuilder.APIModule) Option {
-	return func(params *parameters) {
-		params.WithModule(module)
-	}
-}
diff --git a/intercom/read.go b/intercom/read.go
index df0f054a..b38c835c 100644
--- a/intercom/read.go
+++ b/intercom/read.go
@@ -16,7 +16,7 @@ func (c *Connector) Read(ctx context.Context, config common.ReadParams) (*common
 
 	rsp, err := c.get(ctx, link.String(), common.Header{
 		Key:   "Intercom-Version",
-		Value: c.Module,
+		Value: apiVersion,
 	})
 	if err != nil {
 		return nil, err
diff --git a/providers/catalog.go b/providers/catalog.go
index d4d70276..08196d87 100644
--- a/providers/catalog.go
+++ b/providers/catalog.go
@@ -69,7 +69,9 @@ const (
 	Aircall                             Provider = "aircall"
 	Drift                               Provider = "drift"
 	Microsoft                           Provider = "microsoft"
+	Formstack                           Provider = "formstack"
 	Aha                                 Provider = "aha"
+	SnapchatAds                         Provider = "snapchatAds"
 )
 
 // ================================================================================
@@ -331,6 +333,7 @@ var catalog = CatalogType{ // nolint:gochecknoglobals
 		AuthType: Oauth2,
 		BaseURL:  "https://api.copper.com/developer_api",
 		OauthOpts: OauthOpts{
+			GrantType:                 AuthorizationCode,
 			AuthURL:                   "https://app.copper.com/oauth/authorize",
 			TokenURL:                  "https://app.copper.com/oauth/token",
 			ExplicitScopesRequired:    true,
@@ -343,7 +346,7 @@ var catalog = CatalogType{ // nolint:gochecknoglobals
 				Upsert: false,
 				Delete: false,
 			},
-			Proxy:     false,
+			Proxy:     true,
 			Read:      false,
 			Subscribe: false,
 			Write:     false,
@@ -356,10 +359,15 @@ var catalog = CatalogType{ // nolint:gochecknoglobals
 		AuthType:    Oauth2,
 		BaseURL:     "https://www.zohoapis.com",
 		OauthOpts: OauthOpts{
+			GrantType:                 AuthorizationCode,
 			AuthURL:                   "https://accounts.zoho.com/oauth/v2/auth",
 			TokenURL:                  "https://accounts.zoho.com/oauth/v2/token",
 			ExplicitScopesRequired:    true,
 			ExplicitWorkspaceRequired: false,
+			TokenMetadataFields: TokenMetadataFields{
+				WorkspaceRefField: "api_domain",
+				ScopesField:       "scope",
+			},
 		},
 		Support: Support{
 			BulkWrite: BulkWriteSupport{
@@ -368,7 +376,7 @@ var catalog = CatalogType{ // nolint:gochecknoglobals
 				Upsert: false,
 				Delete: false,
 			},
-			Proxy:     false,
+			Proxy:     true,
 			Read:      false,
 			Subscribe: false,
 			Write:     false,
@@ -484,10 +492,16 @@ var catalog = CatalogType{ // nolint:gochecknoglobals
 		AuthType: Oauth2,
 		BaseURL:  "https://api.close.com/api",
 		OauthOpts: OauthOpts{
+			GrantType:                 AuthorizationCode,
 			AuthURL:                   "https://app.close.com/oauth2/authorize",
 			TokenURL:                  "https://api.close.com/oauth2/token",
 			ExplicitScopesRequired:    false,
 			ExplicitWorkspaceRequired: false,
+			TokenMetadataFields: TokenMetadataFields{
+				ConsumerRefField:  "user_id",
+				WorkspaceRefField: "organization_id",
+				ScopesField:       "scope",
+			},
 		},
 		Support: Support{
 			BulkWrite: BulkWriteSupport{
@@ -520,7 +534,7 @@ var catalog = CatalogType{ // nolint:gochecknoglobals
 				Upsert: false,
 				Delete: false,
 			},
-			Proxy:     false,
+			Proxy:     true,
 			Read:      false,
 			Subscribe: false,
 			Write:     false,
@@ -683,7 +697,7 @@ var catalog = CatalogType{ // nolint:gochecknoglobals
 				Delete: false,
 			},
 			Proxy:     false,
-			Read:      false,
+			Read:      true,
 			Subscribe: false,
 			Write:     false,
 		},
@@ -1522,7 +1536,7 @@ var catalog = CatalogType{ // nolint:gochecknoglobals
 				Upsert: false,
 				Delete: false,
 			},
-			Proxy:     false,
+			Proxy:     true,
 			Read:      false,
 			Subscribe: false,
 			Write:     false,
@@ -1682,7 +1696,7 @@ var catalog = CatalogType{ // nolint:gochecknoglobals
 				Upsert: false,
 				Delete: false,
 			},
-			Proxy:     false,
+			Proxy:     true,
 			Read:      false,
 			Subscribe: false,
 			Write:     false,
@@ -1700,6 +1714,34 @@ var catalog = CatalogType{ // nolint:gochecknoglobals
 			ExplicitScopesRequired:    true,
 			ExplicitWorkspaceRequired: false,
 		},
+		Support: Support{
+			BulkWrite: BulkWriteSupport{
+				Insert: false,
+				Update: false,
+				Upsert: false,
+				Delete: false,
+			},
+			Proxy:     true,
+			Read:      false,
+			Subscribe: false,
+			Write:     false,
+		},
+	},
+
+	// Formstack configuration
+	Formstack: {
+		AuthType: Oauth2,
+		BaseURL:  "https://www.formstack.com/api",
+		OauthOpts: OauthOpts{
+			GrantType:                 AuthorizationCode,
+			AuthURL:                   "https://www.formstack.com/api/v2/oauth2/authorize",
+			TokenURL:                  "https://www.formstack.com/api/v2/oauth2/token",
+			ExplicitScopesRequired:    false,
+			ExplicitWorkspaceRequired: false,
+			TokenMetadataFields: TokenMetadataFields{
+				ConsumerRefField: "user_id",
+			},
+		},
 		Support: Support{
 			BulkWrite: BulkWriteSupport{
 				Insert: false,
@@ -1765,4 +1807,29 @@ var catalog = CatalogType{ // nolint:gochecknoglobals
 			Write:     false,
 		},
 	},
+
+	// Snapchat Ads configuration file
+	SnapchatAds: {
+		AuthType: Oauth2,
+		BaseURL:  "https://adsapi.snapchat.com",
+		OauthOpts: OauthOpts{
+			AuthURL:                   "https://accounts.snapchat.com/login/oauth2/authorize",
+			TokenURL:                  "https://accounts.snapchat.com/login/oauth2/access_token",
+			ExplicitScopesRequired:    true,
+			ExplicitWorkspaceRequired: false,
+			GrantType:                 AuthorizationCode,
+		},
+		Support: Support{
+			BulkWrite: BulkWriteSupport{
+				Insert: false,
+				Update: false,
+				Upsert: false,
+				Delete: false,
+			},
+			Proxy:     false,
+			Read:      false,
+			Subscribe: false,
+			Write:     false,
+		},
+	},
 }
diff --git a/scripts/scrapper/intercom/metadata/main.go b/scripts/scrapper/intercom/metadata/main.go
index c19203d2..1c981c5d 100644
--- a/scripts/scrapper/intercom/metadata/main.go
+++ b/scripts/scrapper/intercom/metadata/main.go
@@ -7,6 +7,7 @@ import (
 	"github.com/PuerkitoBio/goquery"
 	"github.com/amp-labs/connectors/common/scrapper"
 	"github.com/amp-labs/connectors/intercom/metadata"
+	"github.com/gertd/go-pluralize"
 )
 
 const (
@@ -68,7 +69,11 @@ func createSchemas() {
 
 	schemas := scrapper.NewObjectMetadataResult()
 
-	for i, model := range index.ModelDocs {
+	// Not all schemas are important.
+	// Single GET methods to be discarded. Only match schemas that describe single item for LIST endpoint.
+	documents := getSchemasForListEndpoints(index)
+
+	for i, model := range documents {
 		doc := scrapper.QueryHTML(model.URL)
 
 		doc.Find(`.field-name`).Each(func(i int, s *goquery.Selection) {
@@ -76,12 +81,37 @@ func createSchemas() {
 			schemas.Add(model.Name, model.DisplayName, name)
 		})
 
-		log.Printf("Schemas completed %.2f%% [%v]\n", getPercentage(i, len(index.ModelDocs)), model.Name)
+		log.Printf("Schemas completed %.2f%% [%v]\n", getPercentage(i, len(documents)), model.Name)
 	}
 
 	must(metadata.SaveSchemas(schemas))
 }
 
+func getSchemasForListEndpoints(index *scrapper.ModelURLRegistry) scrapper.ModelDocLinks {
+	listSchemas := make(scrapper.ModelDocLinks, 0)
+
+	for _, doc := range index.ModelDocs {
+		if schemaName, isList := strings.CutSuffix(doc.Name, "_list"); isList {
+			if schema, found := index.ModelDocs.FindByName(schemaName); found {
+				listSchemas = append(listSchemas, adaptSchemaToMatchObjectName(schema))
+			} else {
+				log.Printf("There is no schema describing list elements [%v]\n", schemaName)
+			}
+		}
+	}
+
+	return listSchemas
+}
+
+func adaptSchemaToMatchObjectName(schema scrapper.ModelDocLink) scrapper.ModelDocLink {
+	// ObjectNames must be plural.
+	return scrapper.ModelDocLink{
+		Name:        pluralize.NewClient().Plural(schema.Name),
+		DisplayName: pluralize.NewClient().Plural(schema.DisplayName),
+		URL:         schema.URL,
+	}
+}
+
 func getPercentage(i int, i2 int) float64 {
 	return (float64(i+1) / float64(i2)) * 100 // nolint:gomnd
 }


Test patch:
diff --git a/intercom/metadata_test.go b/intercom/metadata_test.go
index a25f183f..974dff6f 100644
--- a/intercom/metadata_test.go
+++ b/intercom/metadata_test.go
@@ -42,14 +42,14 @@ func TestListObjectMetadata(t *testing.T) { // nolint:funlen,gocognit,cyclop
 		},
 		{
 			name:  "Successfully describe one object with metadata",
-			input: []string{"help_center"},
+			input: []string{"help_centers"},
 			server: httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
 				w.WriteHeader(http.StatusTeapot)
 			})),
 			expected: &common.ListObjectMetadataResult{
 				Result: map[string]common.ObjectMetadata{
-					"help_center": {
-						DisplayName: "Help Center",
+					"help_centers": {
+						DisplayName: "Help Centers",
 						FieldsMap: map[string]string{
 							"created_at":        "created_at",
 							"display_name":      "display_name",
@@ -67,30 +67,33 @@ func TestListObjectMetadata(t *testing.T) { // nolint:funlen,gocognit,cyclop
 		},
 		{
 			name:  "Successfully describe multiple objects with metadata",
-			input: []string{"file_attribute", "group_content"},
+			input: []string{"data_events", "teams"},
 			server: httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
 				w.WriteHeader(http.StatusTeapot)
 			})),
 			expected: &common.ListObjectMetadataResult{
 				Result: map[string]common.ObjectMetadata{
-					"file_attribute": {
-						DisplayName: "File",
+					"data_events": {
+						DisplayName: "Data Events",
 						FieldsMap: map[string]string{
-							"content_type": "content_type",
-							"filesize":     "filesize",
-							"height":       "height",
-							"name":         "name",
-							"type":         "type",
-							"url":          "url",
-							"width":        "width",
+							"created_at":       "created_at",
+							"email":            "email",
+							"event_name":       "event_name",
+							"id":               "id",
+							"intercom_user_id": "intercom_user_id",
+							"metadata":         "metadata",
+							"type":             "type",
+							"user_id":          "user_id",
 						},
 					},
-					"group_content": {
-						DisplayName: "Group Content",
+					"teams": {
+						DisplayName: "Teams",
 						FieldsMap: map[string]string{
-							"description": "description",
-							"name":        "name",
-							"type":        "type",
+							"admin_ids":            "admin_ids",
+							"admin_priority_level": "admin_priority_level",
+							"id":                   "id",
+							"name":                 "name",
+							"type":                 "type",
 						},
 					},
 				},
diff --git a/test/intercom/connector.go b/test/intercom/connector.go
index cc9bbc2d..4bf13f96 100644
--- a/test/intercom/connector.go
+++ b/test/intercom/connector.go
@@ -37,7 +37,6 @@ func GetIntercomConnector(ctx context.Context, filePath string) *intercom.Connec
 
 	conn, err := connectors.Intercom(
 		intercom.WithClient(ctx, http.DefaultClient, cfg, tok),
-		intercom.WithModule(intercom.DefaultModule),
 	)
 	if err != nil {
 		testUtils.Fail("error creating Intercom connector", "error", err)
diff --git a/test/intercom/metadata/main.go b/test/intercom/metadata/main.go
index 6361e6ec..c5588bfb 100644
--- a/test/intercom/metadata/main.go
+++ b/test/intercom/metadata/main.go
@@ -14,8 +14,7 @@ import (
 )
 
 var (
-	objectName     = "admins"
-	objectNameMeta = "admin"
+	objectName = "admins"
 )
 
 // we want to compare fields returned by read and schema properties provided by metadata methods
@@ -48,7 +47,7 @@ func main() {
 	}
 
 	metadata, err := conn.ListObjectMetadata(ctx, []string{
-		objectNameMeta,
+		objectName,
 	})
 	if err != nil {
 		utils.Fail("error listing metadata for Intercom", "error", err)
@@ -73,7 +72,7 @@ func compareFieldsMatch(metadata *common.ListObjectMetadataResult, response map[
 
 	mismatch := make([]error, 0)
 
-	for _, displayName := range metadata.Result[objectNameMeta].FieldsMap {
+	for _, displayName := range metadata.Result[objectName].FieldsMap {
 		if _, found := fields[displayName]; found {
 			fields[displayName] = true
 		}