little-green-light

Search Little Green Light donors, gifts, notes and memberships, and add gifts and contact reports.

¿Debería usar esto?

Calidad y seguridad

A
Calidad de la descripción
100%
Integridad del esquema
94%
Calidad de los nombres
78%
Riesgo de envenenamiento
100%
Coincidencia de permisos
100%
Cumplimiento del protocolo
100%

Hallazgos (2)

  • LOWTool 'lgl_list_constituent_contact_reports' name length outside 3-30 rangeen lgl_list_constituent_contact_reports
  • LOWTool 'lgl_list_constituent_memberships' name length outside 3-30 rangeen lgl_list_constituent_memberships

Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.

Costo de contexto

~6,369Tokens (definiciones de herramientas)
~2.5 KBTamaño de respuesta típico
Impacto significativo en la atención (4.98% del contexto de 128k)

Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.

Instalar

Instalación con un clic

Agrega esto a tu archivo `claude_desktop_config.json`:

{
  "mcpServers": {
    "little-green-light": {
      "url": "https://little-green-light.usefulapi.io/mcp"
    }
  }
}

Puntos de conexión remotos

https://little-green-light.usefulapi.io/mcpstreamable-http

Qué puede hacer

Inventario de herramientas

Herramientas (20)

🟢 Solo lectura🟡 Escritura🔴 Eliminación⚪ Desconocido
🟢lgl_search_constituents(name, email, terms, expand, sort, ...)

Search active constituents (donors, members, volunteers, organizations). Give `name` and/or `email` for the common case, or raw `terms`. Available term fields: name, eaddr (email contains), phone_number, street, city, state (2-letter), postal_code, country, keyword (keyword id), updated_from / updated_to (YYYY-MM-DDTHH:MM:SSZ), membership_status (0 lapsed, 1 active), membership_level (comma-separated ids), membership_end_date_from / _to (YYYY-MM-DD), external_id, constituent_type (0 individual, 1 organization), groups (comma-separated group ids), lists (comma-separated list ids), custom_attr (key|op|value). At least one term is required. LGL: GET /api/v1/constituents/search.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "name": {
      "description": "Any name field contains this.",
      "type": "string"
    },
    "email": {
      "description": "Email address contains this.",
      "type": "string"
    },
    "terms": {
      "description": "Extra raw LGL search terms, each 'field=value' (combined with AND). See the tool description for the available fields.",
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 3
      }
    },
    "expand": {
      "description": "Related records to include inline on each constituent.",
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "class_affiliations",
          "relationships",
          "street_addresses",
          "phone_numbers",
          "email_addresses",
          "web_addresses",
          "categories",
          "groups",
          "memberships",
          "custom_attrs"
        ]
      }
    },
    "sort": {
      "description": "Sort by name, external_id, lgl_id, date_created, date_updated, membership_level or membership_end_date_from. Append '!' to reverse (e.g. date_updated!).",
      "type": "string",
      "pattern": "^(name|external_id|lgl_id|date_created|date_updated|membership_level|membership_end_date_from)!?$"
    },
    "limit": {
      "description": "Number of entries to return, 1-100. LGL's default is 25.",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "offset": {
      "description": "Start at this entry (0-based). Use the previous page's next_item. Default 0.",
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢lgl_get_constituent(id)

Full details for one constituent by LGL id: names, salutations, addresses, phone numbers, email addresses, groups, memberships and custom attributes. LGL: GET /api/v1/constituents/{id}.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Constituent id (integer)."
    }
  },
  "required": [
    "id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢lgl_list_constituent_gifts(constituent_id, limit, offset)

A constituent's giving history: every gift with amount, date, gift type, fund, campaign, appeal, event and payment type. LGL: GET /api/v1/constituents/{constituent_id}/gifts.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "constituent_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Constituent id (integer)."
    },
    "limit": {
      "description": "Number of entries to return, 1-100. LGL's default is 25.",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "offset": {
      "description": "Start at this entry (0-based). Use the previous page's next_item. Default 0.",
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    }
  },
  "required": [
    "constituent_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢lgl_search_gifts(date_from, date_to, updated_from, updated_to, terms, ...)

Search active gifts across the account — e.g. everything received in a date range, or gifts to one fund or campaign. Give date/updated bounds and/or raw `terms`. Available term fields: date_from / date_to (YYYY-MM-DD), gift_types (in|ni + comma ids, e.g. in|1,7), gift_amount (gte|lte|btw|gt|lt|eq|ne + number[s], e.g. btw|100|1000), payment_types, campaigns, funds, appeals, events, categories (in|ni|bl + comma ids), appeal_types, event_types, constituent_type (0/1), gift_ids, external_gift_ids, created_from / created_to and updated_from / updated_to (YYYY-MM-DDTHH:MM:SSZ). At least one term is required. LGL: GET /api/v1/gifts/search.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "date_from": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "Gift date from (YYYY-MM-DD)."
    },
    "date_to": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "Gift date to (YYYY-MM-DD)."
    },
    "updated_from": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}:\\d{2}Z)?$",
      "description": "Updated from (YYYY-MM-DD or YYYY-MM-DDTHH:MM:SSZ)."
    },
    "updated_to": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}:\\d{2}Z)?$",
      "description": "Updated to (YYYY-MM-DD or YYYY-MM-DDTHH:MM:SSZ)."
    },
    "terms": {
      "description": "Extra raw LGL search terms, each 'field=value' (combined with AND). See the tool description for the available fields.",
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 3
      }
    },
    "expand": {
      "description": "Donor fields to include inline on each gift.",
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "external_constituent_id",
          "constituent_is_org",
          "first_name",
          "last_name",
          "org_name",
          "phone_numbers",
          "email_addresses",
          "street_addresses"
        ]
      }
    },
    "sort": {
      "description": "Sort by name, gift_amount, date, date_created, date_updated, fund, appeal, campaign or gift_type. Append '!' to reverse (e.g. date!).",
      "type": "string",
      "pattern": "^(name|gift_amount|date|date_created|date_updated|fund|appeal|campaign|gift_type)!?$"
    },
    "limit": {
      "description": "Number of entries to return, 1-100. LGL's default is 25.",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "offset": {
      "description": "Start at this entry (0-based). Use the previous page's next_item. Default 0.",
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢lgl_get_gift(id)

Full details for one gift by id: amount, deductible amount, dates, fund/campaign/appeal/event, payment type, acknowledgment template, tribute and custom fields. LGL: GET /api/v1/gifts/{id}.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Gift id (integer)."
    }
  },
  "required": [
    "id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢lgl_list_constituent_notes(constituent_id, limit, offset)

Notes recorded on a constituent (type, text, original date). LGL: GET /api/v1/constituents/{constituent_id}/notes.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "constituent_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Constituent id (integer)."
    },
    "limit": {
      "description": "Number of entries to return, 1-100. LGL's default is 25.",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "offset": {
      "description": "Start at this entry (0-based). Use the previous page's next_item. Default 0.",
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    }
  },
  "required": [
    "constituent_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢lgl_list_constituent_contact_reports(constituent_id, limit, offset)

Contact reports (calls, emails, meetings) logged for a constituent, with type, date, text and team member. LGL: GET /api/v1/constituents/{constituent_id}/contact_reports.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "constituent_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Constituent id (integer)."
    },
    "limit": {
      "description": "Number of entries to return, 1-100. LGL's default is 25.",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "offset": {
      "description": "Start at this entry (0-based). Use the previous page's next_item. Default 0.",
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    }
  },
  "required": [
    "constituent_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢lgl_list_constituent_memberships(constituent_id, limit, offset)

A constituent's memberships: level, start date and finish date — use it to see whether someone is current or lapsed. LGL: GET /api/v1/constituents/{constituent_id}/memberships.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "constituent_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Constituent id (integer)."
    },
    "limit": {
      "description": "Number of entries to return, 1-100. LGL's default is 25.",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "offset": {
      "description": "Start at this entry (0-based). Use the previous page's next_item. Default 0.",
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    }
  },
  "required": [
    "constituent_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢lgl_list_appeals(limit, offset)

Fundraising appeals (mailings, emails, asks) with campaign, date, financial goal, cost and active flag. Use the ids and names when recording gifts or filtering searches. LGL: GET /api/v1/appeals.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "limit": {
      "description": "Number of entries to return, 1-100. LGL's default is 25.",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "offset": {
      "description": "Start at this entry (0-based). Use the previous page's next_item. Default 0.",
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢lgl_list_campaigns(limit, offset)

Campaigns with start/end dates, financial goal, code and active flag. Use the ids and names when recording gifts or filtering searches. LGL: GET /api/v1/campaigns.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "limit": {
      "description": "Number of entries to return, 1-100. LGL's default is 25.",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "offset": {
      "description": "Start at this entry (0-based). Use the previous page's next_item. Default 0.",
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢lgl_list_funds(limit, offset)

Funds (where gifts are designated) with campaign, code, financial goal and active flag. Use the ids and names when recording gifts or filtering searches. LGL: GET /api/v1/funds.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "limit": {
      "description": "Number of entries to return, 1-100. LGL's default is 25.",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "offset": {
      "description": "Start at this entry (0-based). Use the previous page's next_item. Default 0.",
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢lgl_list_events(limit, offset)

Events (galas, lunches, board weekends) with dates, campaign, event type, goal and active flag. Use the ids and names when recording gifts or filtering searches. LGL: GET /api/v1/events.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "limit": {
      "description": "Number of entries to return, 1-100. LGL's default is 25.",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "offset": {
      "description": "Start at this entry (0-based). Use the previous page's next_item. Default 0.",
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢lgl_list_groups(limit, offset)

Constituent groups (e.g. Board Member, Staff, Volunteer) with their ids and keys. Use the ids and names when recording gifts or filtering searches. LGL: GET /api/v1/groups.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "limit": {
      "description": "Number of entries to return, 1-100. LGL's default is 25.",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "offset": {
      "description": "Start at this entry (0-based). Use the previous page's next_item. Default 0.",
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢lgl_list_team_members(limit, offset)

LGL user accounts on the team (name, email, admin flag) — the values a gift or contact report's team_member refers to. Use the ids and names when recording gifts or filtering searches. LGL: GET /api/v1/team_members.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "limit": {
      "description": "Number of entries to return, 1-100. LGL's default is 25.",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "offset": {
      "description": "Start at this entry (0-based). Use the previous page's next_item. Default 0.",
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢lgl_list_type_values(type, gift_type_id, limit, offset)

The account's configured lookup values for one type — the ids and names other tools accept. gift_types, payment_types and gift_categories come from their own endpoints (GET /api/v1/gift_types, /payment_types, /gift_categories — the last optionally filtered by gift_type_id); every other type from GET /api/v1/types/{type} (contact_report_types, note_types, appeal_types, event_types, email/phone/street/web address types, mailing_types, volunteering_categories, list_types).

Esquema de entrada

{
  "type": "object",
  "properties": {
    "type": {
      "type": "string",
      "enum": [
        "contact_report_types",
        "email_address_types",
        "mailing_types",
        "street_address_types",
        "phone_number_types",
        "web_address_types",
        "volunteering_categories",
        "appeal_types",
        "event_types",
        "note_types",
        "list_types",
        "gift_types",
        "payment_types",
        "gift_categories"
      ],
      "description": "Which lookup to list."
    },
    "gift_type_id": {
      "description": "Only for type=gift_categories: restrict to one gift type.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "limit": {
      "description": "Number of entries to return, 1-100. LGL's default is 25.",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "offset": {
      "description": "Start at this entry (0-based). Use the previous page's next_item. Default 0.",
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    }
  },
  "required": [
    "type"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴lgl_create_constituent(first_name, last_name, external_constituent_id, is_org, constituent_contact_type_name, ...)

WRITE: add a new constituent (person or organization) to the account, optionally with email addresses, phone numbers, street addresses and group memberships. LGL's schema marks first_name, last_name and email_addresses as required. Search first (lgl_search_constituents) to avoid creating a duplicate. LGL: POST /api/v1/constituents.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "first_name": {
      "type": "string",
      "minLength": 1,
      "description": "First name."
    },
    "last_name": {
      "type": "string",
      "minLength": 1,
      "description": "Last name."
    },
    "external_constituent_id": {
      "description": "External constituent ID (your own system's id).",
      "type": "string"
    },
    "is_org": {
      "description": "True if this constituent is an organization or company.",
      "type": "boolean"
    },
    "constituent_contact_type_name": {
      "description": "Constituent contact type name, e.g. 'Primary'.",
      "type": "string"
    },
    "prefix": {
      "description": "Prefix, e.g. 'Dr.'.",
      "type": "string"
    },
    "middle_name": {
      "type": "string"
    },
    "suffix": {
      "type": "string"
    },
    "spouse_name": {
      "description": "Spouse/partner name.",
      "type": "string"
    },
    "org_name": {
      "description": "Organization name.",
      "type": "string"
    },
    "job_title": {
      "type": "string"
    },
    "addressee": {
      "description": "Addressee/label name.",
      "type": "string"
    },
    "salutation": {
      "type": "string"
    },
    "annual_report_name": {
      "type": "string"
    },
    "birthday": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "Birthday (YYYY-MM-DD)."
    },
    "gender": {
      "type": "string"
    },
    "maiden_name": {
      "type": "string"
    },
    "nick_name": {
      "type": "string"
    },
    "is_deceased": {
      "type": "boolean"
    },
    "deceased_date": {
      "description": "Deceased date.",
      "type": "string"
    },
    "is_anon": {
      "description": "Gives anonymously?",
      "type": "boolean"
    },
    "email_addresses": {
      "description": "Email addresses to add.",
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "address": {
            "type": "string",
            "description": "Email address."
          },
          "email_type_name": {
            "description": "Email type name, e.g. Home, Work, Other.",
            "type": "string"
          },
          "is_preferred": {
            "type": "boolean"
          }
        },
        "required": [
          "address"
        ]
      }
    },
    "phone_numbers": {
      "description": "Phone numbers to add.",
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "number": {
            "type": "string",
            "description": "Phone number."
          },
          "phone_type_name": {
            "description": "Phone type name, e.g. Home, Mobile, Work.",
            "type": "string"
          },
          "is_preferred": {
            "type": "boolean"
          }
        },
        "required": [
          "number"
        ]
      }
    },
    "street_addresses": {
      "description": "Street addresses to add.",
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "street": {
            "type": "string"
          },
          "street_type_name": {
            "description": "Address type name, e.g. Home, Work.",
            "type": "string"
          },
          "city": {
            "type": "string"
          },
          "state": {
            "description": "State/province.",
            "type": "string"
          },
          "postal_code": {
            "type": "string"
          },
          "county": {
            "type": "string"
          },
          "country": {
            "type": "string"
          },
          "is_preferred": {
            "type": "boolean"
          }
        }
      }
    },
    "groups": {
      "description": "Group memberships to add.",
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "group_id": {
            "type": "integer",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991,
            "description": "Group id (see lgl_list_groups)."
          },
          "date_start": {
            "type": "string",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
            "description": "Start date (YYYY-MM-DD)."
          },
          "date_end": {
            "type": "string",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
            "description": "End date (YYYY-MM-DD)."
          },
          "is_current": {
            "type": "boolean"
          }
        },
        "required": [
          "group_id"
        ]
      }
    }
  },
  "required": [
    "first_name",
    "last_name"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴lgl_update_constituent(id, first_name, last_name, external_constituent_id, is_org, ...)

WRITE: change scalar fields on an existing constituent (name, salutation, job title, org name, deceased flag, etc.). Only the fields you pass are sent. LGL's update schema marks first_name and last_name as required, so pass the current values (from lgl_get_constituent) if you are not changing them. Addresses, emails and phones are not edited here. LGL: PATCH /api/v1/constituents/{id}.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Constituent id (integer)."
    },
    "first_name": {
      "type": "string",
      "minLength": 1,
      "description": "First name (required by LGL even when unchanged)."
    },
    "last_name": {
      "type": "string",
      "minLength": 1,
      "description": "Last name (required by LGL even when unchanged)."
    },
    "external_constituent_id": {
      "description": "External constituent ID (your own system's id).",
      "type": "string"
    },
    "is_org": {
      "description": "True if this constituent is an organization or company.",
      "type": "boolean"
    },
    "constituent_contact_type_name": {
      "description": "Constituent contact type name, e.g. 'Primary'.",
      "type": "string"
    },
    "prefix": {
      "description": "Prefix, e.g. 'Dr.'.",
      "type": "string"
    },
    "middle_name": {
      "type": "string"
    },
    "suffix": {
      "type": "string"
    },
    "spouse_name": {
      "description": "Spouse/partner name.",
      "type": "string"
    },
    "org_name": {
      "description": "Organization name.",
      "type": "string"
    },
    "job_title": {
      "type": "string"
    },
    "addressee": {
      "description": "Addressee/label name.",
      "type": "string"
    },
    "salutation": {
      "type": "string"
    },
    "annual_report_name": {
      "type": "string"
    },
    "birthday": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "Birthday (YYYY-MM-DD)."
    },
    "gender": {
      "type": "string"
    },
    "maiden_name": {
      "type": "string"
    },
    "nick_name": {
      "type": "string"
    },
    "is_deceased": {
      "type": "boolean"
    },
    "deceased_date": {
      "description": "Deceased date.",
      "type": "string"
    },
    "is_anon": {
      "description": "Gives anonymously?",
      "type": "boolean"
    }
  },
  "required": [
    "id",
    "first_name",
    "last_name"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴lgl_create_gift(constituent_id, gift_type_id, gift_type_name, received_amount, received_date, ...)

WRITE: record a gift (donation, pledge payment, in-kind, etc.) on a constituent's record. This writes a CRM record of a gift that already happened — it does NOT charge a card or move money. Give gift_type_id or gift_type_name (required; see lgl_list_type_values type=gift_types). Fund, campaign, appeal, event, gift category and payment type may each be given by id or by exact name. Set ack_template_name to 'do_not_ack' to skip acknowledgment. LGL: POST /api/v1/constituents/{constituent_id}/gifts.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "constituent_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Constituent id (integer)."
    },
    "gift_type_id": {
      "description": "Gift type id.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "gift_type_name": {
      "description": "Gift type name, e.g. 'Gift'.",
      "type": "string"
    },
    "received_amount": {
      "description": "Gift amount.",
      "type": "number",
      "minimum": 0
    },
    "received_date": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "Gift date (YYYY-MM-DD)."
    },
    "deductible_amount": {
      "description": "Tax-deductible amount.",
      "type": "number",
      "minimum": 0
    },
    "gift_category_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "gift_category_name": {
      "description": "Gift category name, e.g. 'Donation'.",
      "type": "string"
    },
    "fund_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "fund_name": {
      "type": "string"
    },
    "campaign_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "campaign_name": {
      "type": "string"
    },
    "appeal_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "appeal_name": {
      "type": "string"
    },
    "event_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "event_name": {
      "type": "string"
    },
    "payment_type_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "payment_type_name": {
      "description": "Payment type name, e.g. 'Check', 'Credit Card'.",
      "type": "string"
    },
    "check_number": {
      "description": "Check/reference number.",
      "type": "string"
    },
    "deposit_date": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "Deposit date (YYYY-MM-DD)."
    },
    "deposited_amount": {
      "type": "number",
      "minimum": 0
    },
    "note": {
      "description": "Gift note.",
      "type": "string"
    },
    "ack_template_name": {
      "description": "Acknowledgment mailing template name, or 'do_not_ack'.",
      "type": "string"
    },
    "external_id": {
      "description": "External gift id (your own system's id).",
      "type": "string"
    },
    "is_anon": {
      "description": "Gift is anonymous.",
      "type": "boolean"
    },
    "team_member": {
      "description": "Team member credited: id, email, or 'first_name last_name' (see lgl_list_team_members).",
      "type": "string"
    }
  },
  "required": [
    "constituent_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴lgl_create_note(constituent_id, text, original_date, note_type_id, note_type_name, ...)

WRITE: add a note to a constituent's record. text and original_date are required; the note type may be given by id or name (e.g. 'General'; see lgl_list_type_values type=note_types). LGL: POST /api/v1/constituents/{constituent_id}/notes.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "constituent_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Constituent id (integer)."
    },
    "text": {
      "type": "string",
      "minLength": 1,
      "description": "Note text."
    },
    "original_date": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "Date the note refers to (YYYY-MM-DD)."
    },
    "note_type_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "note_type_name": {
      "description": "Note type name, e.g. 'General'.",
      "type": "string"
    },
    "external_id": {
      "type": "string"
    }
  },
  "required": [
    "constituent_id",
    "text",
    "original_date"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴lgl_create_contact_report(constituent_id, text, name, contact_report_type_id, contact_report_type_name, ...)

WRITE: log a contact report (a call, email or meeting with a constituent). text is required; the type may be given by id or name (e.g. 'Call'; see lgl_list_type_values type=contact_report_types). LGL: POST /api/v1/constituents/{constituent_id}/contact_reports.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "constituent_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Constituent id (integer)."
    },
    "text": {
      "type": "string",
      "minLength": 1,
      "description": "What happened."
    },
    "name": {
      "description": "Short title for the report.",
      "type": "string"
    },
    "contact_report_type_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "contact_report_type_name": {
      "description": "Type name, e.g. 'Call', 'Email', 'Meeting'.",
      "type": "string"
    },
    "original_date": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "Date of the contact (YYYY-MM-DD)."
    },
    "team_member": {
      "description": "Team member who made contact: id, email, or 'first_name last_name'.",
      "type": "string"
    }
  },
  "required": [
    "constituent_id",
    "text"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Comunidad

Califica este servidor

Evidencia

Observaciones recientes

verificadoversión no registrada20 herramientas