Endpoints: 28,729MCP servers: 18,413Payout addresses: 2,071Paid calls: 1,539Letters: 14Defects: 1,323counted 4 min ago
teppi

Server definition

Hash
sha256:809199589f26b32f9e276b10fbe742de615f80aee2330ac274b80e897670a8e7
What it is
What a remote MCP server returned when asked what it offers: 20 tools

The blob, as servednamed by its sha256

{ "instructions": null, "tools": [ { "description": "WRITE: create a new individual or organization constituent. For an individual give first_name/last_name; for an organization give full_name. Search first (bloomerang_search_constituents) to avoid creating a duplicate donor. Bloomerang: POST /constituent.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "birthdate": { "description": "Birth date (YYYY-MM-DD).", "type": "string" }, "employer": { "type": "string" }, "envelope_name": { "type": "string" }, "first_name": { "type": "string" }, "formal_name": { "type": "string" }, "full_name": { "description": "Organization name, or an explicit individual full name.", "type": "string" }, "gender": { "enum": [ "Male", "Female", "Other" ], "type": "string" }, "informal_name": { "type": "string" }, "job_title": { "type": "string" }, "last_name": { "type": "string" }, "middle_name": { "type": "string" }, "prefix": { "description": "Must match a prefix configured in the CRM, e.g. Mr., Ms., Dr.", "type": "string" }, "primary_address": { "description": "Primary postal address.", "properties": { "City": { "type": "string" }, "Country": { "description": "Must match a country configured in the Bloomerang CRM.", "type": "string" }, "PostalCode": { "type": "string" }, "State": { "description": "Must match a state configured in the Bloomerang CRM.", "type": "string" }, "Street": { "type": "string" }, "Type": { "enum": [ "Home", "Vacation", "Work" ], "type": "string" } }, "type": "object" }, "primary_email": { "description": "Primary email address.", "properties": { "Type": { "enum": [ "Home", "Work" ], "type": "string" }, "Value": { "description": "The email address.", "format": "email", "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$", "type": "string" } }, "required": [ "Value" ], "type": "object" }, "primary_phone": { "description": "Primary phone.", "properties": { "Extension": { "type": "string" }, "Number": { "description": "The phone number, formatting allowed, without the extension.", "type": "string" }, "Type": { "enum": [ "Home", "Work", "Mobile", "Fax" ], "type": "string" } }, "required": [ "Number" ], "type": "object" }, "recognition_name": { "type": "string" }, "status": { "description": "Constituent status.", "enum": [ "Active", "Inactive", "Deceased" ], "type": "string" }, "suffix": { "description": "Must match a suffix configured in the CRM.", "type": "string" }, "type": { "description": "Record type.", "enum": [ "Individual", "Organization" ], "type": "string" }, "website": { "type": "string" } }, "required": [ "type" ], "type": "object" }, "name": "bloomerang_create_constituent", "outputSchema": null }, { "description": "WRITE: log an interaction with a constituent — a call, email, meeting, letter, etc. — on their timeline. Bloomerang: POST /interaction.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "channel": { "description": "How it happened.", "enum": [ "Email", "MassEmail", "Phone", "TextMessage", "Mail", "InPerson", "SocialMedia", "Website", "Twitter", "Other", "EngagementSurveyEmail", "EngagementSurvey" ], "type": "string" }, "constituent_id": { "description": "The API Id of the constituent (not the CRM AccountNumber).", "exclusiveMinimum": 0, "maximum": 9007199254740991, "type": "integer" }, "date": { "description": "When it happened (YYYY-MM-DD).", "pattern": "^\\d{4}-\\d{2}-\\d{2}$", "type": "string" }, "is_inbound": { "description": "True if the constituent initiated it.", "type": "boolean" }, "note": { "description": "Details.", "type": "string" }, "purpose": { "description": "Why it happened.", "enum": [ "Acknowledgement", "ImpactCultivation", "Newsletter", "Receipt", "Solicitation", "SpecialEvent", "VolunteerActivity", "PledgeReminder", "Welcome", "BenevonPointOfEntry", "BenevonFollowUp", "BenevonAskEvent", "BenevonOneOnOneAsk", "BenevonOngoingCultivation", "Other" ], "type": "string" }, "subject": { "description": "Short subject line.", "minLength": 1, "type": "string" } }, "required": [ "constituent_id", "date", "channel", "purpose", "subject" ], "type": "object" }, "name": "bloomerang_create_interaction", "outputSchema": null }, { "description": "WRITE: add a note to a constituent's record. Bloomerang: POST /note.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "constituent_id": { "description": "The API Id of the constituent (not the CRM AccountNumber).", "exclusiveMinimum": 0, "maximum": 9007199254740991, "type": "integer" }, "date": { "description": "Note date (YYYY-MM-DD).", "pattern": "^\\d{4}-\\d{2}-\\d{2}$", "type": "string" }, "note": { "description": "The note text.", "minLength": 1, "type": "string" } }, "required": [ "constituent_id", "date", "note" ], "type": "object" }, "name": "bloomerang_create_note", "outputSchema": null }, { "description": "WRITE: create a follow-up task, optionally tied to a constituent and assigned to a user (find user Ids via bloomerang_get_current_user or existing tasks). Bloomerang: POST /task.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "assignee_user_id": { "description": "User Id to assign it to.", "exclusiveMinimum": 0, "maximum": 9007199254740991, "type": "integer" }, "channel": { "description": "Planned channel.", "enum": [ "Email", "MassEmail", "Phone", "TextMessage", "Mail", "InPerson", "SocialMedia", "Website", "Twitter", "Other", "EngagementSurveyEmail", "EngagementSurvey" ], "type": "string" }, "constituent_id": { "description": "Constituent the task is about.", "exclusiveMinimum": 0, "maximum": 9007199254740991, "type": "integer" }, "due_date": { "description": "Due date (YYYY-MM-DD).", "pattern": "^\\d{4}-\\d{2}-\\d{2}$", "type": "string" }, "note": { "description": "Details.", "type": "string" }, "purpose": { "description": "Planned purpose.", "enum": [ "Acknowledgement", "ImpactCultivation", "Newsletter", "Receipt", "Solicitation", "SpecialEvent", "VolunteerActivity", "PledgeReminder", "Welcome", "BenevonPointOfEntry", "BenevonFollowUp", "BenevonAskEvent", "BenevonOneOnOneAsk", "BenevonOngoingCultivation", "Other" ], "type": "string" }, "send_notifications": { "description": "If true, Bloomerang emails the assignee about the task. Default false.", "type": "boolean" }, "subject": { "description": "Short subject line.", "minLength": 1, "type": "string" } }, "required": [ "due_date", "subject" ], "type": "object" }, "name": "bloomerang_create_task", "outputSchema": null }, { "description": "Fetch one constituent's full profile — names, primary and secondary contact details, household, communication preferences, engagement score and custom values. Bloomerang: GET /constituent/{id}.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "constituent_id": { "description": "The API Id of the constituent (not the CRM AccountNumber).", "exclusiveMinimum": 0, "maximum": 9007199254740991, "type": "integer" } }, "required": [ "constituent_id" ], "type": "object" }, "name": "bloomerang_get_constituent", "outputSchema": null }, { "description": "The activity timeline for a constituent — gifts, interactions, notes, tasks and more, newest first. Pass a household Id to get the timeline of every member. Bloomerang: GET /constituent/{id}/timeline.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "constituent_id": { "description": "The API Id of the constituent or household (not the CRM AccountNumber).", "exclusiveMinimum": 0, "maximum": 9007199254740991, "type": "integer" }, "skip": { "description": "Records to skip (offset). Default 0.", "maximum": 9007199254740991, "minimum": 0, "type": "integer" }, "take": { "description": "Page size, 1-50. Default 50.", "maximum": 50, "minimum": 1, "type": "integer" } }, "required": [ "constituent_id" ], "type": "object" }, "name": "bloomerang_get_constituent_timeline", "outputSchema": null }, { "description": "Fetch the Bloomerang user the API key belongs to — name, email and permission level. A cheap way to confirm the key works and see what it may do. Bloomerang: GET /user/current.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": {}, "type": "object" }, "name": "bloomerang_get_current_user", "outputSchema": null }, { "description": "Fetch a household — its names, head of household (HeadId) and member constituent Ids. A constituent's HouseholdId points here. Bloomerang: GET /household/{id}.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "household_id": { "description": "The API Id of the household (not the CRM AccountNumber).", "exclusiveMinimum": 0, "maximum": 9007199254740991, "type": "integer" } }, "required": [ "household_id" ], "type": "object" }, "name": "bloomerang_get_household", "outputSchema": null }, { "description": "Fetch one transaction with its payment method, amounts, refund status and every designation (fund, campaign, appeal, tribute, acknowledgement status). Bloomerang: GET /transaction/{id}.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "transaction_id": { "description": "The API Id of the transaction (not the CRM AccountNumber).", "exclusiveMinimum": 0, "maximum": 9007199254740991, "type": "integer" } }, "required": [ "transaction_id" ], "type": "object" }, "name": "bloomerang_get_transaction", "outputSchema": null }, { "description": "List appeals — the specific asks (a year-end letter, a gala invitation) that gifts are attributed to. Bloomerang: GET /appeals.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "ids": { "description": "Only these record Ids.", "items": { "exclusiveMinimum": 0, "maximum": 9007199254740991, "type": "integer" }, "type": "array" }, "is_active": { "description": "Only active (true) or inactive (false).", "type": "boolean" }, "last_modified": { "description": "Only records last modified after this date/time (ISO 8601, e.g. 2026-01-31).", "type": "string" }, "search": { "description": "Only names containing this text.", "type": "string" }, "skip": { "description": "Records to skip (offset). Default 0.", "maximum": 9007199254740991, "minimum": 0, "type": "integer" }, "take": { "description": "Page size, 1-50. Default 50.", "maximum": 50, "minimum": 1, "type": "integer" } }, "type": "object" }, "name": "bloomerang_list_appeals", "outputSchema": null }, { "description": "List fundraising campaigns with their goals and dates. Bloomerang: GET /campaigns.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "has_goal": { "description": "Only campaigns with a non-zero (true) or zero (false) goal.", "type": "boolean" }, "ids": { "description": "Only these record Ids.", "items": { "exclusiveMinimum": 0, "maximum": 9007199254740991, "type": "integer" }, "type": "array" }, "is_active": { "description": "Only active (true) or inactive (false).", "type": "boolean" }, "last_modified": { "description": "Only records last modified after this date/time (ISO 8601, e.g. 2026-01-31).", "type": "string" }, "search": { "description": "Only names containing this text.", "type": "string" }, "skip": { "description": "Records to skip (offset). Default 0.", "maximum": 9007199254740991, "minimum": 0, "type": "integer" }, "take": { "description": "Page size, 1-50. Default 50.", "maximum": 50, "minimum": 1, "type": "integer" } }, "type": "object" }, "name": "bloomerang_list_campaigns", "outputSchema": null }, { "description": "Relationships between this constituent and others (spouse, employer, board member ...), with the role on each side. Bloomerang: GET /constituent/{id}/relationships.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "constituent_id": { "description": "The API Id of the constituent (not the CRM AccountNumber).", "exclusiveMinimum": 0, "maximum": 9007199254740991, "type": "integer" }, "last_modified": { "description": "Only records last modified after this date/time (ISO 8601, e.g. 2026-01-31).", "type": "string" }, "skip": { "description": "Records to skip (offset). Default 0.", "maximum": 9007199254740991, "minimum": 0, "type": "integer" }, "take": { "description": "Page size, 1-50. Default 50.", "maximum": 50, "minimum": 1, "type": "integer" } }, "required": [ "constituent_id" ], "type": "object" }, "name": "bloomerang_list_constituent_relationships", "outputSchema": null }, { "description": "List constituents with filters — by Id, type, favorites, last-modified date, or a custom field value — and sorting. Good for syncing recent changes. Bloomerang: GET /constituents.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "custom_field_id": { "description": "Custom field Id to filter by.", "maximum": 9007199254740991, "minimum": -9007199254740991, "type": "integer" }, "custom_field_value": { "description": "Custom field value to filter by.", "type": "string" }, "ids": { "description": "Only these constituent Ids.", "items": { "exclusiveMinimum": 0, "maximum": 9007199254740991, "type": "integer" }, "type": "array" }, "is_favorite": { "description": "Only constituents the key's user has favorited.", "type": "boolean" }, "last_modified": { "description": "Only records last modified after this date/time (ISO 8601, e.g. 2026-01-31).", "type": "string" }, "order_by": { "enum": [ "Id", "CreatedDate", "LastModifiedDate" ], "type": "string" }, "order_direction": { "description": "Sort direction.", "enum": [ "Asc", "Desc" ], "type": "string" }, "skip": { "description": "Records to skip (offset). Default 0.", "maximum": 9007199254740991, "minimum": 0, "type": "integer" }, "take": { "description": "Page size, 1-50. Default 50.", "maximum": 50, "minimum": 1, "type": "integer" }, "type": { "enum": [ "Individual", "Organization" ], "type": "string" } }, "type": "object" }, "name": "bloomerang_list_constituents", "outputSchema": null }, { "description": "List the funds gifts can be designated to (e.g. General Operating, Scholarship). Bloomerang: GET /funds.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "ids": { "description": "Only these record Ids.", "items": { "exclusiveMinimum": 0, "maximum": 9007199254740991, "type": "integer" }, "type": "array" }, "is_active": { "description": "Only active (true) or inactive (false).", "type": "boolean" }, "is_default": { "description": "Only the default (true) or non-default (false) fund.", "type": "boolean" }, "search": { "description": "Only names containing this text.", "type": "string" }, "skip": { "description": "Records to skip (offset). Default 0.", "maximum": 9007199254740991, "minimum": 0, "type": "integer" }, "take": { "description": "Page size, 1-50. Default 50.", "maximum": 50, "minimum": 1, "type": "integer" } }, "type": "object" }, "name": "bloomerang_list_funds", "outputSchema": null }, { "description": "List logged interactions (calls, emails, meetings, letters ...) — filter by constituent, channel or purpose. Bloomerang: GET /interactions.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "channels": { "description": "Only these channels.", "items": { "enum": [ "Email", "MassEmail", "Phone", "TextMessage", "Mail", "InPerson", "SocialMedia", "Website", "Twitter", "Other", "EngagementSurveyEmail", "EngagementSurvey" ], "type": "string" }, "type": "array" }, "constituent_ids": { "description": "Only these constituent Ids.", "items": { "exclusiveMinimum": 0, "maximum": 9007199254740991, "type": "integer" }, "type": "array" }, "ids": { "description": "Only these interaction Ids.", "items": { "exclusiveMinimum": 0, "maximum": 9007199254740991, "type": "integer" }, "type": "array" }, "order_by": { "description": "Default Date.", "enum": [ "CreatedDate", "Date", "LastModifiedDate" ], "type": "string" }, "order_direction": { "description": "Sort direction.", "enum": [ "Asc", "Desc" ], "type": "string" }, "purposes": { "description": "Only these purposes.", "items": { "enum": [ "Acknowledgement", "ImpactCultivation", "Newsletter", "Receipt", "Solicitation", "SpecialEvent", "VolunteerActivity", "PledgeReminder", "Welcome", "BenevonPointOfEntry", "BenevonFollowUp", "BenevonAskEvent", "BenevonOneOnOneAsk", "BenevonOngoingCultivation", "Other" ], "type": "string" }, "type": "array" }, "skip": { "description": "Records to skip (offset). Default 0.", "maximum": 9007199254740991, "minimum": 0, "type": "integer" }, "take": { "description": "Page size, 1-50. Default 50.", "maximum": 50, "minimum": 1, "type": "integer" } }, "type": "object" }, "name": "bloomerang_list_interactions", "outputSchema": null }, { "description": "List notes, optionally for specific constituents. Bloomerang: GET /notes.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "constituent_ids": { "description": "Only these constituent Ids.", "items": { "exclusiveMinimum": 0, "maximum": 9007199254740991, "type": "integer" }, "type": "array" }, "ids": { "description": "Only these note Ids.", "items": { "exclusiveMinimum": 0, "maximum": 9007199254740991, "type": "integer" }, "type": "array" }, "order_by": { "description": "Default Date.", "enum": [ "CreatedDate", "Date", "LastModifiedDate" ], "type": "string" }, "order_direction": { "description": "Sort direction.", "enum": [ "Asc", "Desc" ], "type": "string" }, "skip": { "description": "Records to skip (offset). Default 0.", "maximum": 9007199254740991, "minimum": 0, "type": "integer" }, "take": { "description": "Page size, 1-50. Default 50.", "maximum": 50, "minimum": 1, "type": "integer" } }, "type": "object" }, "name": "bloomerang_list_notes", "outputSchema": null }, { "description": "List tasks (follow-ups) — filter by status, due-date range, assignee user, constituent, channel or purpose. Bloomerang: GET /tasks.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "assignee_user_ids": { "description": "Only tasks assigned to these user Ids.", "items": { "exclusiveMinimum": 0, "maximum": 9007199254740991, "type": "integer" }, "type": "array" }, "channels": { "items": { "enum": [ "Email", "MassEmail", "Phone", "TextMessage", "Mail", "InPerson", "SocialMedia", "Website", "Twitter", "Other", "EngagementSurveyEmail", "EngagementSurvey" ], "type": "string" }, "type": "array" }, "constituent_ids": { "description": "Only these constituent Ids.", "items": { "exclusiveMinimum": 0, "maximum": 9007199254740991, "type": "integer" }, "type": "array" }, "ids": { "description": "Only these task Ids.", "items": { "exclusiveMinimum": 0, "maximum": 9007199254740991, "type": "integer" }, "type": "array" }, "max_due_date": { "description": "Due on or before this date (YYYY-MM-DD).", "type": "string" }, "min_due_date": { "description": "Due on or after this date (YYYY-MM-DD).", "type": "string" }, "order_by": { "enum": [ "CreatedDate", "Date", "LastModifiedDate" ], "type": "string" }, "order_direction": { "description": "Sort direction.", "enum": [ "Asc", "Desc" ], "type": "string" }, "purposes": { "items": { "enum": [ "Acknowledgement", "ImpactCultivation", "Newsletter", "Receipt", "Solicitation", "SpecialEvent", "VolunteerActivity", "PledgeReminder", "Welcome", "BenevonPointOfEntry", "BenevonFollowUp", "BenevonAskEvent", "BenevonOneOnOneAsk", "BenevonOngoingCultivation", "Other" ], "type": "string" }, "type": "array" }, "skip": { "description": "Records to skip (offset). Default 0.", "maximum": 9007199254740991, "minimum": 0, "type": "integer" }, "statuses": { "description": "Only these statuses.", "items": { "enum": [ "Active", "Complete", "Archived" ], "type": "string" }, "type": "array" }, "take": { "description": "Page size, 1-50. Default 50.", "maximum": 50, "minimum": 1, "type": "integer" } }, "type": "object" }, "name": "bloomerang_list_tasks", "outputSchema": null }, { "description": "List transactions — donations, pledges, pledge payments, recurring donations and their payments — with their designations (fund, campaign, appeal). Filter by constituent, amount range, type or last-modified date. Read only. Bloomerang: GET /transactions.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "constituent_ids": { "description": "Only these constituent (AccountId) Ids.", "items": { "exclusiveMinimum": 0, "maximum": 9007199254740991, "type": "integer" }, "type": "array" }, "ids": { "description": "Only these transaction Ids.", "items": { "exclusiveMinimum": 0, "maximum": 9007199254740991, "type": "integer" }, "type": "array" }, "last_modified": { "description": "Only records last modified after this date/time (ISO 8601, e.g. 2026-01-31).", "type": "string" }, "max_amount": { "description": "Maximum amount, inclusive.", "type": "number" }, "min_amount": { "description": "Minimum amount, inclusive.", "type": "number" }, "order_by": { "description": "Default Date.", "enum": [ "Amount", "CreatedDate", "Date", "LastModifiedDate" ], "type": "string" }, "order_direction": { "description": "Sort direction (default Desc).", "enum": [ "Asc", "Desc" ], "type": "string" }, "skip": { "description": "Records to skip (offset). Default 0.", "maximum": 9007199254740991, "minimum": 0, "type": "integer" }, "take": { "description": "Page size, 1-50. Default 50.", "maximum": 50, "minimum": 1, "type": "integer" }, "transaction_numbers": { "description": "Only these TransactionNumbers (called Payment Number in CRM reporting).", "items": { "exclusiveMinimum": 0, "maximum": 9007199254740991, "type": "integer" }, "type": "array" }, "types": { "description": "Only transactions with at least one designation of these types.", "items": { "enum": [ "Donation", "Pledge", "PledgePayment", "RecurringDonation", "RecurringDonationPayment" ], "type": "string" }, "type": "array" } }, "type": "object" }, "name": "bloomerang_list_transactions", "outputSchema": null }, { "description": "Full-text search across constituents (individuals and organizations) and households by name, email, etc. Start here to find a donor's Id. Bloomerang: GET /constituents/search.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "search": { "description": "Text to search for, e.g. a name or email.", "minLength": 1, "type": "string" }, "skip": { "description": "Records to skip (offset). Default 0.", "maximum": 9007199254740991, "minimum": 0, "type": "integer" }, "take": { "description": "Page size, 1-50. Default 50.", "maximum": 50, "minimum": 1, "type": "integer" }, "type": { "description": "Only this record type.", "enum": [ "Individual", "Organization", "Household" ], "type": "string" } }, "required": [ "search" ], "type": "object" }, "name": "bloomerang_search_constituents", "outputSchema": null }, { "description": "WRITE: update fields on an existing constituent's profile (names, job, status, primary address/email/phone). Only the fields you supply are sent. Bloomerang: PUT /constituent/{id}.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "birthdate": { "description": "Birth date (YYYY-MM-DD).", "type": "string" }, "constituent_id": { "description": "The API Id of the constituent (not the CRM AccountNumber).", "exclusiveMinimum": 0, "maximum": 9007199254740991, "type": "integer" }, "employer": { "type": "string" }, "envelope_name": { "type": "string" }, "first_name": { "type": "string" }, "formal_name": { "type": "string" }, "full_name": { "description": "Organization name, or an explicit individual full name.", "type": "string" }, "gender": { "enum": [ "Male", "Female", "Other" ], "type": "string" }, "informal_name": { "type": "string" }, "job_title": { "type": "string" }, "last_name": { "type": "string" }, "middle_name": { "type": "string" }, "prefix": { "description": "Must match a prefix configured in the CRM, e.g. Mr., Ms., Dr.", "type": "string" }, "primary_address": { "description": "Primary postal address.", "properties": { "City": { "type": "string" }, "Country": { "description": "Must match a country configured in the Bloomerang CRM.", "type": "string" }, "PostalCode": { "type": "string" }, "State": { "description": "Must match a state configured in the Bloomerang CRM.", "type": "string" }, "Street": { "type": "string" }, "Type": { "enum": [ "Home", "Vacation", "Work" ], "type": "string" } }, "type": "object" }, "primary_email": { "description": "Primary email address.", "properties": { "Type": { "enum": [ "Home", "Work" ], "type": "string" }, "Value": { "description": "The email address.", "format": "email", "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$", "type": "string" } }, "required": [ "Value" ], "type": "object" }, "primary_phone": { "description": "Primary phone.", "properties": { "Extension": { "type": "string" }, "Number": { "description": "The phone number, formatting allowed, without the extension.", "type": "string" }, "Type": { "enum": [ "Home", "Work", "Mobile", "Fax" ], "type": "string" } }, "required": [ "Number" ], "type": "object" }, "recognition_name": { "type": "string" }, "status": { "description": "Constituent status.", "enum": [ "Active", "Inactive", "Deceased" ], "type": "string" }, "suffix": { "description": "Must match a suffix configured in the CRM.", "type": "string" }, "website": { "type": "string" } }, "required": [ "constituent_id" ], "type": "object" }, "name": "bloomerang_update_constituent", "outputSchema": null } ] }
Verify it yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:809199589f26b32f9e276b10fbe742de615f80aee2330ac274b80e897670a8e7 | sha256sum