{
  "service": "heyy",
  "displayName": "Heyy",
  "categories": [
    "Communication",
    "Marketing"
  ],
  "authTypes": [
    "api_key"
  ],
  "auth": [
    {
      "type": "api_key",
      "label": "API Key",
      "placeholder": "heyy_api_key",
      "description": "Heyy API key sent as a bearer token. Create it in the Heyy app under Settings > API Keys."
    }
  ],
  "homepageUrl": "https://heyy.io",
  "actions": [
    {
      "id": "heyy.create_attribute",
      "service": "heyy",
      "name": "create_attribute",
      "description": "Create a Heyy contact attribute definition.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "The Heyy attribute name."
          },
          "externalId": {
            "type": "string",
            "minLength": 1,
            "description": "The Heyy attribute external ID.",
            "pattern": "^[A-Za-z][A-Za-z0-9_]*$"
          },
          "description": {
            "anyOf": [
              {
                "type": "string",
                "description": "The optional Heyy attribute description."
              },
              {
                "type": "null"
              }
            ]
          },
          "isVisibleQuickEdit": {
            "type": "boolean",
            "description": "Whether the attribute is visible in quick edit."
          },
          "isVisibleContactsTable": {
            "type": "boolean",
            "description": "Whether the attribute is visible in the contacts table."
          },
          "isVisibleContactCreate": {
            "type": "boolean",
            "description": "Whether the attribute is visible while creating contacts."
          }
        },
        "additionalProperties": false,
        "required": [
          "name",
          "externalId"
        ],
        "description": "The input payload for creating a Heyy contact attribute."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "attribute": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "description": "The Heyy attribute ID."
              },
              "name": {
                "type": "string",
                "description": "The Heyy attribute name."
              },
              "type": {
                "type": "string",
                "description": "The Heyy attribute type."
              },
              "externalId": {
                "type": "string",
                "description": "The Heyy attribute external ID."
              },
              "isVisibleQuickEdit": {
                "type": "boolean",
                "description": "Whether the attribute is visible in quick edit."
              },
              "isVisibleContactsTable": {
                "type": "boolean",
                "description": "Whether the attribute is visible in the contacts table."
              },
              "isVisibleContactCreate": {
                "type": "boolean",
                "description": "Whether the attribute is visible while creating contacts."
              },
              "description": {
                "type": "string",
                "description": "The Heyy attribute description."
              },
              "createdAt": {
                "type": "string",
                "description": "The attribute creation timestamp."
              },
              "updatedAt": {
                "type": "string",
                "description": "The attribute update timestamp."
              }
            },
            "additionalProperties": true,
            "required": [
              "id",
              "name",
              "type",
              "isVisibleQuickEdit",
              "isVisibleContactsTable",
              "isVisibleContactCreate",
              "createdAt",
              "updatedAt"
            ],
            "description": "A Heyy contact attribute definition."
          }
        },
        "additionalProperties": false,
        "required": [
          "attribute"
        ],
        "description": "The Heyy attribute output."
      }
    },
    {
      "id": "heyy.create_contact",
      "service": "heyy",
      "name": "create_contact",
      "description": "Create a Heyy contact with profile fields, labels, and custom attributes.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "firstName": {
            "anyOf": [
              {
                "type": "string",
                "description": "The contact first name."
              },
              {
                "type": "null"
              }
            ]
          },
          "lastName": {
            "anyOf": [
              {
                "type": "string",
                "description": "The contact last name."
              },
              {
                "type": "null"
              }
            ]
          },
          "email": {
            "anyOf": [
              {
                "type": "string",
                "description": "The contact email address.",
                "format": "email"
              },
              {
                "type": "null"
              }
            ]
          },
          "phoneNumber": {
            "anyOf": [
              {
                "type": "string",
                "description": "The contact phone number."
              },
              {
                "type": "null"
              }
            ]
          },
          "labels": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string",
                  "minLength": 1,
                  "description": "The Heyy label name."
                }
              },
              "additionalProperties": false,
              "description": "A Heyy label reference for a contact."
            },
            "description": "Labels to assign to the contact."
          },
          "attributes": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "externalId": {
                  "type": "string",
                  "minLength": 1,
                  "description": "The Heyy attribute external ID.",
                  "pattern": "^[A-Za-z][A-Za-z0-9_]*$"
                },
                "value": {
                  "type": "string",
                  "minLength": 1,
                  "description": "The Heyy attribute value."
                }
              },
              "additionalProperties": false,
              "description": "A Heyy custom attribute value for a contact."
            },
            "description": "Custom attribute values to assign to the contact."
          }
        },
        "additionalProperties": false,
        "description": "The input payload for creating a Heyy contact. At least one of firstName, lastName, email, or phoneNumber is required."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "contact": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "description": "The Heyy contact ID."
              },
              "firstName": {
                "type": "string",
                "description": "The contact first name."
              },
              "lastName": {
                "type": "string",
                "description": "The contact last name."
              },
              "phoneNumber": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The contact phone number."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "email": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The contact email address."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "labels": {
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "One Heyy label name."
                },
                "description": "The Heyy labels attached to the contact."
              },
              "attributes": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string",
                      "description": "The Heyy contact attribute name."
                    },
                    "value": {
                      "type": "string",
                      "description": "The Heyy contact attribute value."
                    }
                  },
                  "additionalProperties": true,
                  "description": "A Heyy contact attribute value."
                },
                "description": "The Heyy contact custom attribute values."
              },
              "createdAt": {
                "type": "string",
                "description": "The contact creation timestamp."
              },
              "updatedAt": {
                "type": "string",
                "description": "The contact update timestamp."
              }
            },
            "additionalProperties": true,
            "required": [
              "id",
              "createdAt",
              "updatedAt"
            ],
            "description": "A Heyy contact."
          }
        },
        "additionalProperties": false,
        "required": [
          "contact"
        ],
        "description": "The Heyy contact output."
      }
    },
    {
      "id": "heyy.create_label",
      "service": "heyy",
      "name": "create_label",
      "description": "Create a Heyy label.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "The Heyy label name."
          }
        },
        "additionalProperties": false,
        "required": [
          "name"
        ],
        "description": "The input payload for creating a Heyy label."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "label": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "description": "The Heyy label ID."
              },
              "name": {
                "type": "string",
                "description": "The Heyy label name."
              },
              "color": {
                "type": "string",
                "description": "The Heyy label color."
              },
              "createdAt": {
                "type": "string",
                "description": "The label creation timestamp."
              },
              "updatedAt": {
                "type": "string",
                "description": "The label update timestamp."
              }
            },
            "additionalProperties": true,
            "description": "A Heyy label."
          }
        },
        "additionalProperties": false,
        "required": [
          "label"
        ],
        "description": "The Heyy label output."
      }
    },
    {
      "id": "heyy.get_contact",
      "service": "heyy",
      "name": "get_contact",
      "description": "Retrieve one Heyy contact by ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "contactId": {
            "type": "string",
            "minLength": 1,
            "description": "The Heyy contact ID."
          }
        },
        "additionalProperties": false,
        "required": [
          "contactId"
        ],
        "description": "The input payload for reading one Heyy contact."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "contact": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "description": "The Heyy contact ID."
              },
              "firstName": {
                "type": "string",
                "description": "The contact first name."
              },
              "lastName": {
                "type": "string",
                "description": "The contact last name."
              },
              "phoneNumber": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The contact phone number."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "email": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The contact email address."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "labels": {
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "One Heyy label name."
                },
                "description": "The Heyy labels attached to the contact."
              },
              "attributes": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string",
                      "description": "The Heyy contact attribute name."
                    },
                    "value": {
                      "type": "string",
                      "description": "The Heyy contact attribute value."
                    }
                  },
                  "additionalProperties": true,
                  "description": "A Heyy contact attribute value."
                },
                "description": "The Heyy contact custom attribute values."
              },
              "createdAt": {
                "type": "string",
                "description": "The contact creation timestamp."
              },
              "updatedAt": {
                "type": "string",
                "description": "The contact update timestamp."
              }
            },
            "additionalProperties": true,
            "required": [
              "id",
              "createdAt",
              "updatedAt"
            ],
            "description": "A Heyy contact."
          }
        },
        "additionalProperties": false,
        "required": [
          "contact"
        ],
        "description": "The Heyy contact output."
      }
    },
    {
      "id": "heyy.list_attributes",
      "service": "heyy",
      "name": "list_attributes",
      "description": "List Heyy contact attribute definitions.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false,
        "description": "The input payload for this action."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "attributes": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "description": "The Heyy attribute ID."
                },
                "name": {
                  "type": "string",
                  "description": "The Heyy attribute name."
                },
                "type": {
                  "type": "string",
                  "description": "The Heyy attribute type."
                },
                "externalId": {
                  "type": "string",
                  "description": "The Heyy attribute external ID."
                },
                "isVisibleQuickEdit": {
                  "type": "boolean",
                  "description": "Whether the attribute is visible in quick edit."
                },
                "isVisibleContactsTable": {
                  "type": "boolean",
                  "description": "Whether the attribute is visible in the contacts table."
                },
                "isVisibleContactCreate": {
                  "type": "boolean",
                  "description": "Whether the attribute is visible while creating contacts."
                },
                "description": {
                  "type": "string",
                  "description": "The Heyy attribute description."
                },
                "createdAt": {
                  "type": "string",
                  "description": "The attribute creation timestamp."
                },
                "updatedAt": {
                  "type": "string",
                  "description": "The attribute update timestamp."
                }
              },
              "additionalProperties": true,
              "required": [
                "id",
                "name",
                "type",
                "isVisibleQuickEdit",
                "isVisibleContactsTable",
                "isVisibleContactCreate",
                "createdAt",
                "updatedAt"
              ],
              "description": "A Heyy contact attribute definition."
            },
            "description": "The Heyy contact attributes returned by the API."
          }
        },
        "additionalProperties": false,
        "required": [
          "attributes"
        ],
        "description": "The Heyy attributes list output."
      }
    },
    {
      "id": "heyy.list_channels",
      "service": "heyy",
      "name": "list_channels",
      "description": "List Heyy communication channels.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false,
        "description": "The input payload for this action."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "channels": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "description": "The Heyy channel ID."
                },
                "name": {
                  "type": "string",
                  "description": "The Heyy channel name."
                },
                "type": {
                  "type": "string",
                  "description": "The Heyy channel type."
                },
                "status": {
                  "type": "string",
                  "description": "The Heyy channel status."
                },
                "vendorDetails": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": true,
                  "description": "Provider-specific channel metadata."
                },
                "createdAt": {
                  "type": "string",
                  "description": "The channel creation timestamp."
                },
                "updatedAt": {
                  "type": "string",
                  "description": "The channel update timestamp."
                }
              },
              "additionalProperties": true,
              "required": [
                "id",
                "name",
                "type",
                "status",
                "createdAt",
                "updatedAt"
              ],
              "description": "A Heyy channel."
            },
            "description": "The Heyy channels returned by the API."
          }
        },
        "additionalProperties": false,
        "required": [
          "channels"
        ],
        "description": "The Heyy channels list output."
      }
    },
    {
      "id": "heyy.list_contacts",
      "service": "heyy",
      "name": "list_contacts",
      "description": "List Heyy contacts with optional pagination, sorting, and search.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "The Heyy contacts page number."
          },
          "pageSize": {
            "type": "integer",
            "minimum": 1,
            "description": "The number of Heyy contacts to return."
          },
          "sortBy": {
            "type": "string",
            "enum": [
              "firstName",
              "lastName",
              "phoneNumber",
              "createdAt",
              "updatedAt"
            ],
            "description": "The Heyy contact field to sort by."
          },
          "order": {
            "type": "string",
            "enum": [
              "ASC",
              "DESC"
            ],
            "description": "The Heyy contact sort order."
          },
          "search": {
            "type": "string",
            "minLength": 1,
            "description": "Search text used to filter Heyy contacts."
          }
        },
        "additionalProperties": false,
        "description": "Query parameters for listing Heyy contacts."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "contacts": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "description": "The Heyy contact ID."
                },
                "firstName": {
                  "type": "string",
                  "description": "The contact first name."
                },
                "lastName": {
                  "type": "string",
                  "description": "The contact last name."
                },
                "phoneNumber": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The contact phone number."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "email": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The contact email address."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "labels": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "description": "One Heyy label name."
                  },
                  "description": "The Heyy labels attached to the contact."
                },
                "attributes": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "name": {
                        "type": "string",
                        "description": "The Heyy contact attribute name."
                      },
                      "value": {
                        "type": "string",
                        "description": "The Heyy contact attribute value."
                      }
                    },
                    "additionalProperties": true,
                    "description": "A Heyy contact attribute value."
                  },
                  "description": "The Heyy contact custom attribute values."
                },
                "createdAt": {
                  "type": "string",
                  "description": "The contact creation timestamp."
                },
                "updatedAt": {
                  "type": "string",
                  "description": "The contact update timestamp."
                }
              },
              "additionalProperties": true,
              "required": [
                "id",
                "createdAt",
                "updatedAt"
              ],
              "description": "A Heyy contact."
            },
            "description": "The Heyy contacts returned by the API."
          }
        },
        "additionalProperties": false,
        "required": [
          "contacts"
        ],
        "description": "The Heyy contacts list output."
      }
    },
    {
      "id": "heyy.list_labels",
      "service": "heyy",
      "name": "list_labels",
      "description": "List Heyy labels.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false,
        "description": "The input payload for this action."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "labels": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "description": "The Heyy label ID."
                },
                "name": {
                  "type": "string",
                  "description": "The Heyy label name."
                },
                "color": {
                  "type": "string",
                  "description": "The Heyy label color."
                },
                "createdAt": {
                  "type": "string",
                  "description": "The label creation timestamp."
                },
                "updatedAt": {
                  "type": "string",
                  "description": "The label update timestamp."
                }
              },
              "additionalProperties": true,
              "description": "A Heyy label."
            },
            "description": "The Heyy labels returned by the API."
          }
        },
        "additionalProperties": false,
        "required": [
          "labels"
        ],
        "description": "The Heyy labels list output."
      }
    },
    {
      "id": "heyy.update_contact",
      "service": "heyy",
      "name": "update_contact",
      "description": "Update a Heyy contact's profile fields, labels, or custom attributes.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "contactId": {
            "type": "string",
            "minLength": 1,
            "description": "The Heyy contact ID."
          },
          "firstName": {
            "anyOf": [
              {
                "type": "string",
                "description": "The contact first name."
              },
              {
                "type": "null"
              }
            ]
          },
          "lastName": {
            "anyOf": [
              {
                "type": "string",
                "description": "The contact last name."
              },
              {
                "type": "null"
              }
            ]
          },
          "labels": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string",
                  "minLength": 1,
                  "description": "The Heyy label name."
                }
              },
              "additionalProperties": false,
              "description": "A Heyy label reference for a contact."
            },
            "description": "Labels to assign to the contact."
          },
          "attributes": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "externalId": {
                  "type": "string",
                  "minLength": 1,
                  "description": "The Heyy attribute external ID.",
                  "pattern": "^[A-Za-z][A-Za-z0-9_]*$"
                },
                "value": {
                  "type": "string",
                  "minLength": 1,
                  "description": "The Heyy attribute value."
                }
              },
              "additionalProperties": false,
              "description": "A Heyy custom attribute value for a contact."
            },
            "description": "Custom attribute values to assign to the contact."
          }
        },
        "additionalProperties": false,
        "required": [
          "contactId"
        ],
        "description": "The input payload for updating a Heyy contact."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "contact": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "description": "The Heyy contact ID."
              },
              "firstName": {
                "type": "string",
                "description": "The contact first name."
              },
              "lastName": {
                "type": "string",
                "description": "The contact last name."
              },
              "phoneNumber": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The contact phone number."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "email": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The contact email address."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "labels": {
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "One Heyy label name."
                },
                "description": "The Heyy labels attached to the contact."
              },
              "attributes": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string",
                      "description": "The Heyy contact attribute name."
                    },
                    "value": {
                      "type": "string",
                      "description": "The Heyy contact attribute value."
                    }
                  },
                  "additionalProperties": true,
                  "description": "A Heyy contact attribute value."
                },
                "description": "The Heyy contact custom attribute values."
              },
              "createdAt": {
                "type": "string",
                "description": "The contact creation timestamp."
              },
              "updatedAt": {
                "type": "string",
                "description": "The contact update timestamp."
              }
            },
            "additionalProperties": true,
            "required": [
              "id",
              "createdAt",
              "updatedAt"
            ],
            "description": "A Heyy contact."
          }
        },
        "additionalProperties": false,
        "required": [
          "contact"
        ],
        "description": "The Heyy contact output."
      }
    }
  ]
}
