> ## Documentation Index
> Fetch the complete documentation index at: https://docs.stackone.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Zoho CRM

> 126 actions available for Zoho CRM through StackOne. Use via Actions RPC, Toolset SDK, MCP, or A2A.

export const GettingStarted = ({connector}) => {
  const linkStyle = {
    textDecoration: 'none'
  };
  const authConfigGuides = connector?.authentication?.filter(a => a?.setupGuide) ?? [];
  const linkAccountGuides = connector?.authentication?.filter(a => a?.configGuide) ?? [];
  return <div style={{
    marginTop: '32px',
    paddingTop: '24px',
    borderTop: '1px solid #e2e8f0'
  }}>
      <div style={{
    fontSize: '20px',
    fontWeight: '600',
    marginBottom: '12px'
  }}>Getting Started</div>
      <Steps>
        <Step title="Create or Select a Project">
          Set up a new project or select an existing one. See the <a href="/guides/managing-projects" style={linkStyle}>Projects Guide</a>.
        </Step>
        <Step title="Configure the Connector">
          <>
            Enable the connector and set up auth configuration in your project. See <a href="/guides/explore-connectors" style={linkStyle}>Managing Connectors</a>.
            {authConfigGuides.length > 0 && <>
              <Columns cols={2}>
                {authConfigGuides.map(auth => <Card title="Auth Config" href={`/${auth.setupGuide}`} icon={connector.icon} horizontal>
                    {connector.name} - {auth.label}
                  </Card>)}
              </Columns> 
              </>}
          </>
        </Step>
        <Step title="Link an Account">
          <>
            Connect an account using <a href="/guides/embedding-stackone-hub" style={linkStyle}>StackOne Hub</a> or <a href="/guides/auth-link" style={linkStyle}>Auth Link</a>.
            {linkAccountGuides.length > 0 && <>
                <Columns cols={2}>
                  {linkAccountGuides.map(auth => <Card title="Link Account" href={`/${auth.configGuide}`} icon={connector.icon} horizontal>
                      {connector.name} - {auth.label}
                    </Card>)}
                </Columns>
              </>}
          </>
        </Step>
        <Step title="Use Actions">
          <>
            Invoke actions using one of the methods below:
            <ul style={{
    marginTop: '8px',
    paddingLeft: '20px'
  }}>
              <li style={{
    marginBottom: '4px'
  }}><a href="/mcp/quickstart" style={linkStyle}>MCP</a> – Model Context Protocol for AI assistants</li>
              <li style={{
    marginBottom: '4px'
  }}><a href="/a2a/quickstart" style={linkStyle}>A2A</a> – Agent-to-Agent protocol</li>
              <li style={{
    marginBottom: '4px'
  }}><a href="/agents/typescript/introduction" style={linkStyle}>AI Toolset (TypeScript)</a> – TypeScript SDK for AI agents</li>
              <li style={{
    marginBottom: '4px'
  }}><a href="/agents/python/introduction" style={linkStyle}>AI Toolset (Python)</a> – Python SDK for AI agents</li>
              <li style={{
    marginBottom: '4px'
  }}><a href="/platform/api-reference/actions/make-an-rpc-call-to-an-action" style={linkStyle}>Actions RPC</a> – Direct API calls</li>
              <li style={{
    marginBottom: '4px'
  }}><a href="/guides/playground" style={linkStyle}>Playground</a> – Test actions in the dashboard</li>
            </ul>
          </>
        </Step>
      </Steps>
    </div>;
};

export const ActionsLibrary = ({search, setSearch, filtered, sharedStyles = {}, KeyCell, ScopesCell, availableScopes, selectedScopes, setSelectedScopes}) => {
  const libraryStyles = {
    section: {
      marginTop: '24px',
      marginBottom: '16px'
    },
    sectionTitle: {
      fontSize: '18px',
      fontWeight: '600',
      marginBottom: '12px'
    },
    filterRow: {
      display: 'flex',
      gap: '12px',
      marginBottom: '12px',
      alignItems: 'stretch'
    },
    count: {
      color: '#64748b',
      fontSize: '12px',
      marginBottom: '8px'
    },
    scopesFilterRow: {
      marginBottom: '12px'
    },
    scopesDropdown: {
      display: 'inline-block',
      fontSize: '12px',
      color: '#475569'
    },
    scopesSummary: {
      cursor: 'pointer',
      padding: '6px 10px',
      borderRadius: '999px',
      border: '1px solid #e2e8f0',
      backgroundColor: '#ffffff',
      listStyle: 'none',
      display: 'inline-flex',
      alignItems: 'center',
      gap: '6px'
    },
    scopesSummaryLabel: {
      margin: 0,
      padding: 0
    },
    scopesChipsContainer: {
      marginTop: '8px',
      padding: '4px 2px 2px',
      display: 'flex',
      flexWrap: 'wrap',
      gap: '6px',
      maxHeight: '90px',
      overflowY: 'auto'
    },
    scopeChip: {
      borderRadius: '999px',
      border: '1px solid #e2e8f0',
      padding: '4px 8px',
      fontSize: '11px',
      backgroundColor: '#f8fafc',
      color: '#475569',
      cursor: 'pointer'
    },
    scopeChipActive: {
      backgroundColor: '#dbeafe',
      borderColor: '#2563eb',
      color: '#1d4ed8'
    },
    tableContainer: {
      maxHeight: '500px',
      overflowY: 'auto',
      overflowX: 'auto',
      border: '1px solid #e2e8f0',
      borderRadius: '8px',
      fontSize: '13px'
    },
    gridTable: {
      display: 'grid',
      minWidth: '600px',
      gridTemplateColumns: '200px 1fr'
    },
    gridTableWithScopes: {
      gridTemplateColumns: '200px 1fr 150px'
    },
    gridHeader: {
      display: 'contents'
    },
    gridHeaderCell: {
      position: 'sticky',
      top: 0,
      backgroundColor: '#f8fafc',
      padding: '10px 12px',
      fontWeight: '600',
      borderBottom: '1px solid #e2e8f0',
      zIndex: 1
    },
    gridRow: {
      display: 'contents'
    },
    gridCellAction: {
      padding: '10px 12px',
      fontWeight: '500',
      borderBottom: '1px solid #f1f5f9'
    },
    gridCellKey: {
      padding: '10px 12px',
      borderBottom: '1px solid #f1f5f9'
    },
    gridCellScopes: {
      padding: '10px 12px',
      borderBottom: '1px solid #f1f5f9',
      color: '#475569',
      fontSize: '12px'
    },
    gridCellDescription: {
      padding: '10px 12px',
      color: '#64748b',
      borderBottom: '1px solid #f1f5f9'
    }
  };
  const styles = {
    ...libraryStyles,
    ...sharedStyles
  };
  const safeAvailableScopes = Array.isArray(availableScopes) ? availableScopes : [];
  const safeSelectedScopes = Array.isArray(selectedScopes) ? selectedScopes : [];
  const hasScopesColumn = safeAvailableScopes.length > 0;
  const hasScopeFilter = safeAvailableScopes.length > 0 && typeof setSelectedScopes === 'function';
  const ScopesCellComponent = ScopesCell || (() => null);
  return <div style={styles.section}>
      <div style={styles.sectionTitle}>Actions</div>
      <div style={styles.filterRow}>
        <SearchBar value={search} onChange={setSearch} placeholder="Search actions" />
        {hasScopeFilter && <FilterDropdown label="Scopes" items={safeAvailableScopes} selectedItems={safeSelectedScopes} onChange={setSelectedScopes} searchPlaceholder="Search scopes..." emptyLabel="No scopes found" />}
      </div>
      <div style={styles.count}>
        {filtered.length === 0 ? '0 actions found' : `${filtered.length} action${filtered.length !== 1 ? 's' : ''}`}
      </div>
      {}
      <div className="not-prose" style={styles.tableContainer}>
        <div style={{
    ...hasScopesColumn ? {
      ...styles.gridTable,
      ...styles.gridTableWithScopes
    } : styles.gridTable
  }}>
          {}
          <div style={styles.gridHeader}>
            <div style={styles.gridHeaderCell}>Action</div>
            <div style={styles.gridHeaderCell}>Description</div>
            {hasScopesColumn && <div style={styles.gridHeaderCell}>Required scopes</div>}
          </div>
          {}
          {filtered.map(a => <div key={a.id} style={styles.gridRow}>
              <div style={styles.gridCellAction}>
                <div>{a.label}</div>
                <div style={{
    marginTop: '4px'
  }}>
                  <KeyCell id={a.id} />
                </div>
              </div>
              <div style={styles.gridCellDescription}>{a.description}</div>
              {hasScopesColumn && <div style={styles.gridCellScopes}>
                  <ScopesCellComponent scopes={a.requiredScopes} actionId={a.id} />
                </div>}
            </div>)}
        </div>
      </div>
    </div>;
};

export const FilterDropdown = ({label, items, selectedItems, onChange, searchPlaceholder = 'Search...', emptyLabel = 'No items found', formatLabel}) => {
  const [dropdownOpen, setDropdownOpen] = React.useState(false);
  const [search, setSearch] = React.useState('');
  const [hoveredItem, setHoveredItem] = React.useState(null);
  const dropdownRef = React.useRef(null);
  const styles = {
    dropdownContainer: {
      position: 'relative'
    },
    dropdownTrigger: {
      display: 'flex',
      alignItems: 'center',
      gap: '8px',
      padding: '10px 14px',
      borderRadius: '8px',
      border: '1px solid #e2e8f0',
      fontSize: '14px',
      backgroundColor: 'white',
      cursor: 'pointer',
      whiteSpace: 'nowrap',
      minWidth: '160px',
      justifyContent: 'space-between'
    },
    dropdownTriggerActive: {
      borderColor: '#068F56',
      backgroundColor: '#f0fdf4'
    },
    dropdownMenu: {
      position: 'absolute',
      top: '100%',
      right: 0,
      marginTop: '4px',
      backgroundColor: 'white',
      border: '1px solid #e2e8f0',
      borderRadius: '8px',
      boxShadow: '0 4px 12px rgba(0,0,0,0.1)',
      zIndex: 50,
      minWidth: '220px',
      maxHeight: '320px',
      display: 'flex',
      flexDirection: 'column'
    },
    dropdownHeader: {
      padding: '8px 12px',
      borderBottom: '1px solid #e2e8f0'
    },
    selectActions: {
      display: 'flex',
      alignItems: 'center',
      gap: '8px',
      marginTop: '6px',
      fontSize: '12px'
    },
    selectActionBtn: {
      background: 'none',
      border: 'none',
      color: '#64748b',
      cursor: 'pointer',
      padding: '2px 4px',
      fontSize: '12px'
    },
    dropdownSearchInput: {
      width: '100%',
      padding: '8px 10px',
      borderRadius: '6px',
      border: '1px solid #e2e8f0',
      fontSize: '13px',
      outline: 'none',
      backgroundColor: '#ffffff'
    },
    dropdownList: {
      overflowY: 'auto',
      maxHeight: '220px',
      padding: '4px 0'
    },
    dropdownItem: {
      display: 'flex',
      alignItems: 'center',
      gap: '10px',
      padding: '8px 12px',
      cursor: 'pointer',
      fontSize: '13px',
      color: '#374151',
      transition: 'background-color 0.1s'
    },
    dropdownItemHover: {
      backgroundColor: '#f8fafc'
    },
    checkbox: {
      width: '16px',
      height: '16px',
      borderRadius: '4px',
      border: '2px solid #d1d5db',
      display: 'flex',
      alignItems: 'center',
      justifyContent: 'center',
      flexShrink: 0
    },
    checkboxChecked: {
      backgroundColor: '#068F56',
      borderColor: '#068F56'
    },
    checkmark: {
      color: 'white',
      fontSize: '10px',
      fontWeight: 'bold'
    },
    dropdownFooter: {
      padding: '8px 12px',
      borderTop: '1px solid #e2e8f0',
      display: 'flex',
      justifyContent: 'space-between',
      alignItems: 'center'
    },
    clearButton: {
      fontSize: '12px',
      color: '#64748b',
      cursor: 'pointer',
      padding: '4px 8px',
      borderRadius: '4px',
      border: 'none',
      background: 'none'
    },
    badge: {
      backgroundColor: '#068F56',
      color: 'white',
      fontSize: '11px',
      fontWeight: '600',
      padding: '2px 6px',
      borderRadius: '10px',
      marginLeft: '4px'
    },
    chevron: {
      fontSize: '10px',
      color: '#64748b',
      transition: 'transform 0.15s'
    },
    noResults: {
      padding: '12px',
      textAlign: 'center',
      color: '#64748b',
      fontSize: '13px'
    }
  };
  const safeSelected = Array.isArray(selectedItems) ? selectedItems : [];
  const formatItemLabel = item => {
    if (typeof formatLabel === 'function') {
      return formatLabel(item);
    }
    return item;
  };
  const filteredItems = React.useMemo(() => {
    if (!search) return items;
    const searchLower = search.toLowerCase();
    return items.filter(item => {
      const labelText = formatItemLabel(item);
      return labelText.toLowerCase().includes(searchLower);
    });
  }, [items, search, formatLabel]);
  const isSelected = item => safeSelected.includes(item);
  const toggleItem = item => {
    const next = isSelected(item) ? safeSelected.filter(v => v !== item) : [...safeSelected, item];
    onChange(next);
  };
  const clearFilters = () => {
    onChange([]);
  };
  const selectAll = () => {
    onChange(items);
  };
  React.useEffect(() => {
    const handleClickOutside = e => {
      if (dropdownRef.current && !dropdownRef.current.contains(e.target)) {
        setDropdownOpen(false);
        setSearch('');
        setHoveredItem(null);
      }
    };
    document.addEventListener('mousedown', handleClickOutside);
    return () => document.removeEventListener('mousedown', handleClickOutside);
  }, []);
  return <div style={styles.dropdownContainer} ref={dropdownRef}>
      <button type="button" onClick={() => setDropdownOpen(!dropdownOpen)} style={{
    ...styles.dropdownTrigger,
    ...safeSelected.length > 0 ? styles.dropdownTriggerActive : {}
  }}>
        <span>
          {label}
          {safeSelected.length > 0 && <span style={styles.badge}>{safeSelected.length}</span>}
        </span>
        <span style={{
    ...styles.chevron,
    transform: dropdownOpen ? 'rotate(180deg)' : 'rotate(0deg)'
  }}>
          ▼
        </span>
      </button>
      {dropdownOpen && <div style={styles.dropdownMenu}>
          <div style={styles.dropdownHeader}>
            <input type="text" placeholder={searchPlaceholder} value={search} onChange={e => setSearch(e.target.value)} style={styles.dropdownSearchInput} autoFocus />
            <div style={styles.selectActions}>
              <button type="button" onClick={selectAll} style={styles.selectActionBtn} onMouseEnter={e => {
    e.target.style.color = '#1e293b';
  }} onMouseLeave={e => {
    e.target.style.color = '#64748b';
  }}>
                Select all
              </button>
              <span style={{
    color: '#e2e8f0'
  }}>|</span>
              <button type="button" onClick={clearFilters} style={styles.selectActionBtn} onMouseEnter={e => {
    e.target.style.color = '#1e293b';
  }} onMouseLeave={e => {
    e.target.style.color = '#64748b';
  }}>
                Clear
              </button>
            </div>
          </div>
          <div style={styles.dropdownList}>
            {filteredItems.length === 0 ? <div style={styles.noResults}>{emptyLabel}</div> : filteredItems.map(item => <div key={item} onClick={() => toggleItem(item)} onMouseEnter={() => setHoveredItem(item)} onMouseLeave={() => setHoveredItem(null)} style={{
    ...styles.dropdownItem,
    ...hoveredItem === item ? styles.dropdownItemHover : {}
  }}>
                  <div style={{
    ...styles.checkbox,
    ...isSelected(item) ? styles.checkboxChecked : {}
  }}>
                    {isSelected(item) && <span style={styles.checkmark}>✓</span>}
                  </div>
                  <span>{formatItemLabel(item)}</span>
                </div>)}
          </div>
        </div>}
    </div>;
};

export const SearchBar = ({value, onChange, placeholder = 'Search...'}) => {
  const baseStyle = {
    padding: '10px 14px',
    borderRadius: '8px',
    border: '1px solid #e2e8f0',
    fontSize: '14px',
    outline: 'none',
    backgroundColor: '#fafafa',
    flex: 1,
    minWidth: 0
  };
  return <input type="text" placeholder={placeholder} value={value} onChange={e => onChange(e.target.value)} style={baseStyle} />;
};

export const ConnectorPage = ({connector}) => {
  const styles = {
    header: {
      display: 'flex',
      alignItems: 'center',
      gap: '12px',
      marginBottom: '24px'
    },
    tagsRow: {
      display: 'flex',
      flexWrap: 'wrap',
      gap: '6px',
      marginTop: '8px'
    },
    releaseTag: {
      display: 'inline-block',
      padding: '2px 8px',
      borderRadius: '4px',
      fontSize: '11px',
      fontWeight: '500'
    },
    betaTag: {
      backgroundColor: '#fef3c7',
      color: '#b45309'
    },
    previewTag: {
      backgroundColor: '#E1E9F4',
      color: '#0D58AE',
      border: '1px solid #BFD5F1'
    },
    categoryTag: {
      display: 'inline-block',
      padding: '2px 8px',
      borderRadius: '4px',
      fontSize: '11px',
      fontWeight: '500',
      backgroundColor: '#f1f5f9',
      color: '#475569'
    },
    icon: {
      width: '48px',
      height: '48px',
      borderRadius: '10px',
      backgroundColor: '#f8fafc',
      padding: '2px'
    },
    title: {
      fontSize: '24px',
      fontWeight: '600'
    },
    subtitle: {
      fontSize: '14px',
      color: '#64748b'
    },
    authDescription: {
      fontSize: '14px',
      color: '#64748b',
      marginTop: 0
    },
    sectionTitle: {
      fontSize: '18px',
      fontWeight: '600',
      marginBottom: '12px'
    },
    authList: {
      paddingLeft: '20px',
      color: '#374151'
    },
    codeWrapper: {
      position: 'relative',
      display: 'inline-flex',
      alignItems: 'center',
      maxWidth: '100%',
      cursor: 'pointer',
      overflowX: 'auto',
      overflowY: 'hidden',
      msOverflowStyle: 'none',
      scrollbarWidth: 'none'
    },
    code: {
      backgroundColor: '#f1f5f9',
      padding: '4px 8px',
      borderRadius: '4px',
      fontSize: '11px',
      color: '#475569',
      display: 'inline-block',
      whiteSpace: 'nowrap',
      transition: 'background-color 0.15s'
    },
    codeHover: {
      backgroundColor: '#e2e8f0'
    },
    codeCopied: {
      backgroundColor: '#d1fae5',
      color: '#065f46'
    },
    tooltip: {
      position: 'absolute',
      top: '100%',
      left: '50%',
      transform: 'translateX(-50%)',
      backgroundColor: '#1e293b',
      color: 'white',
      padding: '6px 10px',
      borderRadius: '6px',
      fontSize: '11px',
      whiteSpace: 'nowrap',
      marginTop: '6px',
      zIndex: 50,
      maxWidth: '300px',
      wordBreak: 'break-all'
    },
    tooltipArrow: {
      position: 'absolute',
      bottom: '100%',
      left: '50%',
      transform: 'translateX(-50%)',
      borderWidth: '5px',
      borderStyle: 'solid',
      borderColor: 'transparent transparent #1e293b transparent',
      zIndex: 50
    },
    tdDescription: {
      padding: '10px 12px',
      color: '#64748b',
      verticalAlign: 'top',
      maxWidth: '400px'
    }
  };
  const [search, setSearch] = React.useState('');
  const [copiedId, setCopiedId] = React.useState(null);
  const [selectedScopes, setSelectedScopes] = React.useState([]);
  const availableScopes = React.useMemo(() => {
    const set = new Set();
    connector.actions.forEach(a => {
      if (Array.isArray(a.requiredScopes)) {
        a.requiredScopes.forEach(s => {
          if (s) set.add(s);
        });
      }
    });
    return Array.from(set).sort();
  }, [connector.actions]);
  const filtered = React.useMemo(() => {
    const searchLower = search.toLowerCase();
    return connector.actions.filter(a => {
      const matchesSearch = a.label.toLowerCase().includes(searchLower) || a.description.toLowerCase().includes(searchLower) || a.id.toLowerCase().includes(searchLower);
      if (!matchesSearch) return false;
      if (selectedScopes.length === 0) return true;
      const scopes = Array.isArray(a.requiredScopes) ? a.requiredScopes : [];
      if (scopes.length === 0) return false;
      return selectedScopes.some(scope => scopes.includes(scope));
    });
  }, [connector.actions, search, selectedScopes]);
  const handleImageError = e => {
    e.target.style.display = 'none';
  };
  const formatCategoryLabel = cat => {
    const acronyms = ['ats', 'crm', 'hris', 'iam', 'lms'];
    if (acronyms.includes(cat.toLowerCase())) {
      return cat.toUpperCase();
    }
    return cat.replace(/_/g, ' ').replace(/\b\w/g, c => c.toUpperCase());
  };
  const ReleaseTag = () => {
    if (!connector.releaseStage || connector.releaseStage === 'ga') return null;
    const tagStyle = connector.releaseStage === 'beta' ? {
      ...styles.releaseTag,
      ...styles.betaTag
    } : {
      ...styles.releaseTag,
      ...styles.previewTag
    };
    return <span style={tagStyle}>
        {connector.releaseStage.charAt(0).toUpperCase() + connector.releaseStage.slice(1)}
      </span>;
  };
  const CategoryTags = () => {
    if (!connector.categories || connector.categories.length === 0) return null;
    return <>
        {connector.categories.map(cat => <span key={cat} style={styles.categoryTag}>
            {formatCategoryLabel(cat)}
          </span>)}
      </>;
  };
  const copyToClipboard = async (text, id) => {
    try {
      await navigator.clipboard.writeText(text);
      setCopiedId(id);
      setTimeout(() => setCopiedId(null), 1500);
    } catch (err) {
      console.error('Failed to copy:', err);
    }
  };
  const CopyChip = ({text, copyId}) => {
    const [isHovered, setIsHovered] = React.useState(false);
    const isCopied = copiedId === copyId;
    if (!text) {
      return null;
    }
    const codeStyle = {
      ...styles.code,
      ...isCopied ? styles.codeCopied : isHovered ? styles.codeHover : {}
    };
    return <div style={styles.codeWrapper} onMouseEnter={() => setIsHovered(true)} onMouseLeave={() => setIsHovered(false)} onClick={() => copyToClipboard(text, copyId)} title="">
        {(isHovered || isCopied) && <div style={styles.tooltip}>
            {isCopied ? '✓ Copied!' : 'Click to copy'}
            <div style={styles.tooltipArrow} />
          </div>}
        <code style={codeStyle}>
          {text}
        </code>
      </div>;
  };
  const KeyCell = ({id}) => <CopyChip text={id} copyId={id} />;
  const ScopesCell = ({scopes, actionId}) => {
    const scopeList = Array.isArray(scopes) ? scopes.filter(Boolean) : [];
    if (scopeList.length === 0) return null;
    return <div style={{
      display: 'flex',
      flexWrap: 'wrap',
      gap: '6px'
    }}>
        {scopeList.map(scope => <CopyChip key={scope} text={scope} copyId={`scopes:${actionId}:${scope}`} />)}
      </div>;
  };
  return <div>
      {}
      <div style={styles.header}>
        <img src={connector.icon} alt={connector.name} style={styles.icon} onError={handleImageError} />
        <div>
          <div style={styles.title}>{connector.name}</div>
          <div style={styles.subtitle}>
            {connector.actions.length} actions · {connector.authentication.length} auth method{connector.authentication.length !== 1 ? 's' : ''}
          </div>
          {connector.releaseStage && connector.releaseStage !== 'ga' || connector.categories && connector.categories.length > 0 ? <div style={styles.tagsRow}>
              <ReleaseTag />
              <CategoryTags />
            </div> : null}
        </div>
      </div>

      {}
      <div style={styles.sectionTitle}>Authentication</div>
      <Columns cols={2}>        
        {connector.authentication.length > 0 ? connector.authentication.map(auth => {
    const authLabel = auth?.label || '';
    const authDescription = auth?.description;
    const configGuide = auth?.configGuide;
    const setupGuide = auth?.setupGuide;
    const hasConfigGuide = !!configGuide;
    const hasSetupGuide = !!setupGuide;
    const hasAnyGuide = hasConfigGuide || hasSetupGuide;
    return <Card key={authLabel} title={authLabel}>
                {authDescription && <p style={{
      ...styles.authDescription,
      marginBottom: hasAnyGuide ? '8px' : 0
    }}>
                    {authDescription}
                  </p>}
                {hasAnyGuide && <span style={{
      fontSize: '14px'
    }}>
                    Guides: {hasSetupGuide && <a href={`/${setupGuide}`} style={{
      textDecoration: 'none'
    }}>Auth Config</a>}
                    {hasConfigGuide && hasSetupGuide && ', '}
                    {hasConfigGuide && <a href={`/${configGuide}`} style={{
      textDecoration: 'none'
    }}>Link Account</a>}
                  </span>}
              </Card>;
  }) : <>
            Contact StackOne for authentication details.
          </>}
      </Columns>

      {connector.documentation?.references?.length > 0 && <>
          <div style={styles.sectionTitle}>References</div>
          <Columns cols={2}>
            {connector.documentation.references.map(ref => {
    let safeHref;
    try {
      const parsed = new URL(ref.url);
      safeHref = parsed.protocol === 'http:' || parsed.protocol === 'https:' ? ref.url : undefined;
    } catch {
      safeHref = undefined;
    }
    return <Card key={`${ref.title}-${ref.url}`} title={ref.title} href={safeHref}>
                  {ref.description}
                </Card>;
  })}
          </Columns>
        </>}

      <ActionsLibrary search={search} setSearch={setSearch} filtered={filtered} sharedStyles={{
    sectionTitle: styles.sectionTitle
  }} KeyCell={KeyCell} ScopesCell={ScopesCell} availableScopes={availableScopes} selectedScopes={selectedScopes} setSelectedScopes={setSelectedScopes} />

      <GettingStarted connector={connector} />

    </div>;
};

export const connector = {
  "key": "zohocrm",
  "name": "Zoho CRM",
  "icon": "https://stackone-logos.com/api/zoho-crm/filled/png",
  "authentication": [{
    "label": "OAuth 2.0",
    "description": "Connect your Zoho CRM account securely using OAuth 2.0 authorization. Access tokens expire after 1 hour and refresh auto...",
    "configGuide": "connectors/zohocrm/guides/link-account/oauth-2-0",
    "setupGuide": "connectors/zohocrm/guides/auth-config/oauth-2-0"
  }],
  "actions": [{
    "id": "zohocrm_list_leads",
    "label": "List Leads",
    "description": "Retrieve a paginated list of all lead records from Zoho CRM with comprehensive filtering and sorting capabilities. Retur...",
    "requiredScopes": ["ZohoCRM.modules.leads.READ"]
  }, {
    "id": "zohocrm_get_lead",
    "label": "Get Lead",
    "description": "Retrieve complete details of a specific lead record by its unique ID. Returns all lead information including contact det...",
    "requiredScopes": ["ZohoCRM.modules.leads.READ"]
  }, {
    "id": "zohocrm_create_lead",
    "label": "Create Lead",
    "description": "Create new lead records in Zoho CRM for capturing potential sales opportunities from various sources. Supports comprehen...",
    "requiredScopes": ["ZohoCRM.modules.leads.CREATE"]
  }, {
    "id": "zohocrm_update_lead",
    "label": "Update Lead",
    "description": "Update an existing lead record in Zoho CRM by modifying lead details such as contact information, company, status, sourc...",
    "requiredScopes": ["ZohoCRM.modules.leads.UPDATE"]
  }, {
    "id": "zohocrm_delete_lead",
    "label": "Delete Lead",
    "description": "Permanently delete lead records from Zoho CRM by providing one or more lead IDs. Removes all lead information including...",
    "requiredScopes": ["ZohoCRM.modules.leads.DELETE"]
  }, {
    "id": "zohocrm_search_leads",
    "label": "Search Leads",
    "description": "Search for lead records using flexible criteria including email, phone, custom field values, or keyword matching across...",
    "requiredScopes": ["ZohoCRM.modules.leads.READ"]
  }, {
    "id": "zohocrm_convert_lead",
    "label": "Convert Lead",
    "description": "Convert a qualified lead into a Contact, Account, and optionally a Deal record in a single operation. Automatically tran...",
    "requiredScopes": ["ZohoCRM.modules.leads.ALL"]
  }, {
    "id": "zohocrm_list_contacts",
    "label": "List Contacts",
    "description": "Retrieve a paginated list of all contact records from Zoho CRM with comprehensive filtering capabilities. Returns detail...",
    "requiredScopes": ["ZohoCRM.modules.contacts.READ"]
  }, {
    "id": "zohocrm_get_contact",
    "label": "Get Contact",
    "description": "Retrieve complete details of a specific contact record by its unique ID. Returns all contact information including names...",
    "requiredScopes": ["ZohoCRM.modules.contacts.READ"]
  }, {
    "id": "zohocrm_create_contact",
    "label": "Create Contact",
    "description": "Create new contact records in Zoho CRM for capturing customer and prospect contact information. Supports comprehensive c...",
    "requiredScopes": ["ZohoCRM.modules.contacts.CREATE"]
  }, {
    "id": "zohocrm_update_contact",
    "label": "Update Contact",
    "description": "Update an existing contact record in Zoho CRM by modifying contact details such as names, email, phone, mobile, account...",
    "requiredScopes": ["ZohoCRM.modules.contacts.UPDATE"]
  }, {
    "id": "zohocrm_delete_contact",
    "label": "Delete Contact",
    "description": "Permanently delete contact records from Zoho CRM by providing one or more contact IDs. Removes all contact information i...",
    "requiredScopes": ["ZohoCRM.modules.contacts.DELETE"]
  }, {
    "id": "zohocrm_search_contacts",
    "label": "Search Contacts",
    "description": "Search for contact records using flexible criteria including email, phone, or custom field values with support for compl...",
    "requiredScopes": ["ZohoCRM.modules.contacts.READ"]
  }, {
    "id": "zohocrm_list_accounts",
    "label": "List Account",
    "description": "Retrieve a paginated list of all account (company) records from Zoho CRM with comprehensive filtering capabilities. Retu...",
    "requiredScopes": ["ZohoCRM.modules.accounts.READ"]
  }, {
    "id": "zohocrm_get_account",
    "label": "Get Account",
    "description": "Retrieve complete details of a specific account (company) record by its unique ID. Returns all account information inclu...",
    "requiredScopes": ["ZohoCRM.modules.accounts.READ"]
  }, {
    "id": "zohocrm_create_account",
    "label": "Create Account",
    "description": "Create new account (company) records in Zoho CRM for capturing customer and prospect company information. Supports compr...",
    "requiredScopes": ["ZohoCRM.modules.accounts.CREATE"]
  }, {
    "id": "zohocrm_update_account",
    "label": "Update Account",
    "description": "Update an existing account (company) record in Zoho CRM by modifying account details such as company name, phone, websit...",
    "requiredScopes": ["ZohoCRM.modules.accounts.UPDATE"]
  }, {
    "id": "zohocrm_delete_account",
    "label": "Delete Account",
    "description": "Permanently delete account (company) records from Zoho CRM by providing one or more account IDs. Removes all account inf...",
    "requiredScopes": ["ZohoCRM.modules.accounts.DELETE"]
  }, {
    "id": "zohocrm_list_deals",
    "label": "List Deal",
    "description": "Retrieve a paginated list of all deal records from Zoho CRM with comprehensive filtering capabilities. Returns detailed...",
    "requiredScopes": ["ZohoCRM.modules.deals.READ"]
  }, {
    "id": "zohocrm_get_deal",
    "label": "Get Deal",
    "description": "Retrieve complete details of a specific deal record by its unique ID. Returns all deal information including deal name,...",
    "requiredScopes": ["ZohoCRM.modules.deals.READ"]
  }, {
    "id": "zohocrm_create_deal",
    "label": "Create Deal",
    "description": "Create new deal records in Zoho CRM for capturing sales opportunities throughout the pipeline. Supports comprehensive de...",
    "requiredScopes": ["ZohoCRM.modules.deals.CREATE"]
  }, {
    "id": "zohocrm_update_deal",
    "label": "Update Deal",
    "description": "Update an existing deal record in Zoho CRM by modifying deal details such as stage, amount, closing date, account and co...",
    "requiredScopes": ["ZohoCRM.modules.deals.UPDATE"]
  }, {
    "id": "zohocrm_delete_deal",
    "label": "Delete Deal",
    "description": "Permanently delete deal records from Zoho CRM by providing one or more deal IDs. Removes all deal information including...",
    "requiredScopes": ["ZohoCRM.modules.deals.DELETE"]
  }, {
    "id": "zohocrm_list_products",
    "label": "List Product",
    "description": "Retrieve a paginated list of all product records from Zoho CRM. Returns comprehensive product catalog information includ...",
    "requiredScopes": ["ZohoCRM.modules.products.READ"]
  }, {
    "id": "zohocrm_get_product",
    "label": "Get Product",
    "description": "Retrieve complete details of a specific product record by its unique ID. Returns all product information including name,...",
    "requiredScopes": ["ZohoCRM.modules.products.READ"]
  }, {
    "id": "zohocrm_create_product",
    "label": "Create Product",
    "description": "Create new product records in Zoho CRM for adding items to your product catalog. Supports comprehensive product data inc...",
    "requiredScopes": ["ZohoCRM.modules.products.CREATE"]
  }, {
    "id": "zohocrm_update_product",
    "label": "Update Product",
    "description": "Update an existing product record in Zoho CRM by modifying product details such as name, code/SKU, category, pricing, st...",
    "requiredScopes": ["ZohoCRM.modules.products.UPDATE"]
  }, {
    "id": "zohocrm_delete_product",
    "label": "Delete Product",
    "description": "Permanently delete product records from Zoho CRM by providing one or more product IDs. Removes all product information i...",
    "requiredScopes": ["ZohoCRM.modules.products.DELETE"]
  }, {
    "id": "zohocrm_list_tasks",
    "label": "List Task",
    "description": "Retrieve paginated list of tasks from Zoho CRM with customizable field selection, filtering by due dates, status, priori...",
    "requiredScopes": ["ZohoCRM.modules.tasks.READ"]
  }, {
    "id": "zohocrm_get_task",
    "label": "Get Task",
    "description": "Retrieve complete details of a specific task by its unique ID, including subject, description, due date, status, priorit...",
    "requiredScopes": ["ZohoCRM.modules.tasks.READ"]
  }, {
    "id": "zohocrm_create_task",
    "label": "Create Task",
    "description": "Create one or more tasks with detailed configuration including subject, due date, status, priority, assignee (Who_Id for...",
    "requiredScopes": ["ZohoCRM.modules.tasks.CREATE"]
  }, {
    "id": "zohocrm_update_task",
    "label": "Update Task",
    "description": "Update existing task details including subject, due date, status, priority, assignee, related records, description, and...",
    "requiredScopes": ["ZohoCRM.modules.tasks.UPDATE"]
  }, {
    "id": "zohocrm_delete_task",
    "label": "Delete Task",
    "description": "Delete a task by moving it to the Recycle Bin where it can be restored within 60 days before permanent deletion. Removes...",
    "requiredScopes": ["ZohoCRM.modules.tasks.DELETE"]
  }, {
    "id": "zohocrm_list_events",
    "label": "List Event",
    "description": "Retrieve paginated list of events/meetings from Zoho CRM with customizable field selection, including event title, start...",
    "requiredScopes": ["ZohoCRM.modules.events.READ"]
  }, {
    "id": "zohocrm_get_event",
    "label": "Get Event",
    "description": "Retrieve complete details of a specific event/meeting by its unique ID, including event title, start/end datetime (ISO86...",
    "requiredScopes": ["ZohoCRM.modules.events.READ"]
  }, {
    "id": "zohocrm_create_event",
    "label": "Create Event",
    "description": "Create one or more events/meetings with comprehensive configuration including event title, start/end datetime (ISO8601),...",
    "requiredScopes": ["ZohoCRM.modules.events.CREATE"]
  }, {
    "id": "zohocrm_update_event",
    "label": "Update Event",
    "description": "Update existing event/meeting details including title, start/end datetime, participants, venue, description, reminders,...",
    "requiredScopes": ["ZohoCRM.modules.events.UPDATE"]
  }, {
    "id": "zohocrm_delete_event",
    "label": "Delete Event",
    "description": "Delete an event/meeting by moving it to the Recycle Bin where it can be restored within 60 days before permanent deletio...",
    "requiredScopes": ["ZohoCRM.modules.events.DELETE"]
  }, {
    "id": "zohocrm_list_calls",
    "label": "List Call",
    "description": "Retrieve a paginated list of all call records from Zoho CRM. Returns comprehensive call details including subject, type...",
    "requiredScopes": ["ZohoCRM.modules.calls.READ"]
  }, {
    "id": "zohocrm_get_call",
    "label": "Get Call",
    "description": "Retrieve complete details of a specific call record by its unique ID. Returns all call information including subject, ca...",
    "requiredScopes": ["ZohoCRM.modules.calls.READ"]
  }, {
    "id": "zohocrm_create_call",
    "label": "Create Call",
    "description": "Create new call records in Zoho CRM for logging completed calls or scheduling future calls. Supports both inbound and ou...",
    "requiredScopes": ["ZohoCRM.modules.calls.CREATE"]
  }, {
    "id": "zohocrm_update_call",
    "label": "Update Call",
    "description": "Update an existing call record in Zoho CRM by modifying call details such as subject, call type, start time, duration, p...",
    "requiredScopes": ["ZohoCRM.modules.calls.UPDATE"]
  }, {
    "id": "zohocrm_delete_call",
    "label": "Delete Call",
    "description": "Permanently delete call records from Zoho CRM by providing one or more call IDs. Removes all call information including...",
    "requiredScopes": ["ZohoCRM.modules.calls.DELETE"]
  }, {
    "id": "zohocrm_list_campaigns",
    "label": "List Campaign",
    "description": "Retrieve paginated list of marketing campaigns from Zoho CRM with customizable field selection, including campaign name,...",
    "requiredScopes": ["ZohoCRM.modules.campaigns.READ"]
  }, {
    "id": "zohocrm_get_campaign",
    "label": "Get Campaign",
    "description": "Retrieve complete details of a specific marketing campaign by its unique ID, including campaign name, type, status, star...",
    "requiredScopes": ["ZohoCRM.modules.campaigns.READ"]
  }, {
    "id": "zohocrm_create_campaign",
    "label": "Create Campaign",
    "description": "Create one or more marketing campaigns with comprehensive configuration including campaign name, type, status, start/end...",
    "requiredScopes": ["ZohoCRM.modules.campaigns.CREATE"]
  }, {
    "id": "zohocrm_update_campaign",
    "label": "Update Campaign",
    "description": "Update existing campaign details including name, status, dates, expected revenue, actual cost, budget adjustments, and c...",
    "requiredScopes": ["ZohoCRM.modules.campaigns.UPDATE"]
  }, {
    "id": "zohocrm_delete_campaign",
    "label": "Delete Campaign",
    "description": "Delete a marketing campaign by moving it to the Recycle Bin where it can be restored within 60 days before permanent del...",
    "requiredScopes": ["ZohoCRM.modules.campaigns.DELETE"]
  }, {
    "id": "zohocrm_list_cases",
    "label": "List Case",
    "description": "Retrieve paginated list of support cases/tickets from Zoho CRM with customizable field selection, including subject, sta...",
    "requiredScopes": ["ZohoCRM.modules.cases.READ"]
  }, {
    "id": "zohocrm_get_case",
    "label": "Get Case",
    "description": "Retrieve complete details of a specific support case/ticket by its unique ID, including subject, description, status, pr...",
    "requiredScopes": ["ZohoCRM.modules.cases.READ"]
  }, {
    "id": "zohocrm_create_case",
    "label": "Create Case",
    "description": "Create one or more support cases/tickets with detailed configuration including subject, status, case origin, priority, t...",
    "requiredScopes": ["ZohoCRM.modules.cases.CREATE"]
  }, {
    "id": "zohocrm_update_case",
    "label": "Update Case",
    "description": "Update existing case/ticket details including status, priority, assignment, resolution notes, escalation level, and cust...",
    "requiredScopes": ["ZohoCRM.modules.cases.UPDATE"]
  }, {
    "id": "zohocrm_delete_case",
    "label": "Delete Case",
    "description": "Delete a support case/ticket by moving it to the Recycle Bin where it can be restored within 60 days before permanent de...",
    "requiredScopes": ["ZohoCRM.modules.cases.DELETE"]
  }, {
    "id": "zohocrm_list_vendors",
    "label": "List Vendor",
    "description": "Retrieve a paginated list of vendor records from Zoho CRM. Returns comprehensive supplier information including vendor n...",
    "requiredScopes": ["ZohoCRM.modules.vendors.READ"]
  }, {
    "id": "zohocrm_get_vendor",
    "label": "Get Vendor",
    "description": "Retrieve complete details of a specific vendor record by its unique ID. Returns all supplier information including vendo...",
    "requiredScopes": ["ZohoCRM.modules.vendors.READ"]
  }, {
    "id": "zohocrm_create_vendor",
    "label": "Create Vendor",
    "description": "Create new vendor records in Zoho CRM for managing supplier relationships. Supports comprehensive vendor data including...",
    "requiredScopes": ["ZohoCRM.modules.vendors.CREATE"]
  }, {
    "id": "zohocrm_update_vendor",
    "label": "Update Vendor",
    "description": "Update an existing vendor record in Zoho CRM by modifying supplier details such as contact information, email, phone, we...",
    "requiredScopes": ["ZohoCRM.modules.vendors.UPDATE"]
  }, {
    "id": "zohocrm_delete_vendor",
    "label": "Delete Vendor",
    "description": "Permanently delete vendor records from Zoho CRM by providing one or more vendor IDs. Removes all supplier information in...",
    "requiredScopes": ["ZohoCRM.modules.vendors.DELETE"]
  }, {
    "id": "zohocrm_list_quotes",
    "label": "List Quote",
    "description": "Retrieve a paginated list of all quote records from Zoho CRM. Returns comprehensive quote information including subject,...",
    "requiredScopes": ["ZohoCRM.modules.quotes.READ"]
  }, {
    "id": "zohocrm_get_quote",
    "label": "Get Quote",
    "description": "Retrieve complete details of a specific quote record by its unique ID. Returns all quote information including subject,...",
    "requiredScopes": ["ZohoCRM.modules.quotes.READ"]
  }, {
    "id": "zohocrm_create_quote",
    "label": "Create Quote",
    "description": "Create new quote records in Zoho CRM for proposing products and services to customers. Supports comprehensive quote data...",
    "requiredScopes": ["ZohoCRM.modules.quotes.CREATE"]
  }, {
    "id": "zohocrm_update_quote",
    "label": "Update Quote",
    "description": "Update an existing quote record in Zoho CRM by modifying quote details such as subject, stage, status, product line item...",
    "requiredScopes": ["ZohoCRM.modules.quotes.UPDATE"]
  }, {
    "id": "zohocrm_delete_quote",
    "label": "Delete Quote",
    "description": "Permanently delete quote records from Zoho CRM by providing one or more quote IDs. Removes all quote information includi...",
    "requiredScopes": ["ZohoCRM.modules.quotes.DELETE"]
  }, {
    "id": "zohocrm_list_salesorders",
    "label": "List Sales Order",
    "description": "Retrieve a paginated list of all sales order records from Zoho CRM. Returns comprehensive order information including su...",
    "requiredScopes": ["ZohoCRM.modules.salesorders.READ"]
  }, {
    "id": "zohocrm_get_sales_order",
    "label": "Get Sales Order",
    "description": "Retrieve complete details of a specific sales order record by its unique ID. Returns all order information including sub...",
    "requiredScopes": ["ZohoCRM.modules.salesorders.READ"]
  }, {
    "id": "zohocrm_create_sales_order",
    "label": "Create Sales Order",
    "description": "Create new sales order records in Zoho CRM for confirming customer purchases and initiating fulfillment processes. Suppo...",
    "requiredScopes": ["ZohoCRM.modules.salesorders.CREATE"]
  }, {
    "id": "zohocrm_update_sales_order",
    "label": "Update Sales Order",
    "description": "Update an existing sales order record in Zoho CRM by modifying order details such as subject, status, product line items...",
    "requiredScopes": ["ZohoCRM.modules.salesorders.UPDATE"]
  }, {
    "id": "zohocrm_delete_sales_order",
    "label": "Delete Sales Order",
    "description": "Permanently delete sales order records from Zoho CRM by providing one or more order IDs. Removes all order information i...",
    "requiredScopes": ["ZohoCRM.modules.salesorders.DELETE"]
  }, {
    "id": "zohocrm_list_purchaseorders",
    "label": "List Purchase Order",
    "description": "Retrieve a paginated list of all purchase order records from Zoho CRM. Returns comprehensive procurement information inc...",
    "requiredScopes": ["ZohoCRM.modules.purchaseorders.READ"]
  }, {
    "id": "zohocrm_get_purchase_order",
    "label": "Get Purchase Order",
    "description": "Retrieve complete details of a specific purchase order record by its unique ID. Returns all PO information including sub...",
    "requiredScopes": ["ZohoCRM.modules.purchaseorders.READ"]
  }, {
    "id": "zohocrm_create_purchase_order",
    "label": "Create Purchase Order",
    "description": "Create new purchase order records in Zoho CRM for formalizing procurement from vendors. Supports comprehensive PO data i...",
    "requiredScopes": ["ZohoCRM.modules.purchaseorders.CREATE"]
  }, {
    "id": "zohocrm_update_purchase_order",
    "label": "Update Purchase Order",
    "description": "Update an existing purchase order record in Zoho CRM by modifying PO details such as subject, status, vendor information...",
    "requiredScopes": ["ZohoCRM.modules.purchaseorders.UPDATE"]
  }, {
    "id": "zohocrm_delete_purchase_order",
    "label": "Delete Purchase Order",
    "description": "Permanently delete purchase order records from Zoho CRM by providing one or more PO IDs. Removes all purchase order info...",
    "requiredScopes": ["ZohoCRM.modules.purchaseorders.DELETE"]
  }, {
    "id": "zohocrm_list_invoices",
    "label": "List Invoice",
    "description": "Retrieve a paginated list of invoice records from Zoho CRM. Returns comprehensive billing information including invoice...",
    "requiredScopes": ["ZohoCRM.modules.invoices.READ"]
  }, {
    "id": "zohocrm_get_invoice",
    "label": "Get Invoice",
    "description": "Retrieve complete details of a specific invoice record by its unique ID. Returns all billing information including invoi...",
    "requiredScopes": ["ZohoCRM.modules.invoices.READ"]
  }, {
    "id": "zohocrm_create_invoice",
    "label": "Create Invoice",
    "description": "Create new invoice records in Zoho CRM for billing customers. Supports comprehensive billing data including invoice numb...",
    "requiredScopes": ["ZohoCRM.modules.invoices.CREATE"]
  }, {
    "id": "zohocrm_update_invoice",
    "label": "Update Invoice",
    "description": "Update an existing invoice record in Zoho CRM by modifying billing details such as payment status, due dates, line items...",
    "requiredScopes": ["ZohoCRM.modules.invoices.UPDATE"]
  }, {
    "id": "zohocrm_delete_invoice",
    "label": "Delete Invoice",
    "description": "Permanently delete invoice records from Zoho CRM by providing one or more invoice IDs. Removes all billing information i...",
    "requiredScopes": ["ZohoCRM.modules.invoices.DELETE"]
  }, {
    "id": "zohocrm_list_solutions",
    "label": "List Solution",
    "description": "Retrieve paginated list of solution articles from Zoho CRM knowledge base with customizable field selection, including s...",
    "requiredScopes": ["ZohoCRM.modules.solutions.READ"]
  }, {
    "id": "zohocrm_get_solution",
    "label": "Get Solution",
    "description": "Retrieve complete details of a specific solution article by its unique ID, including solution title, full question text,...",
    "requiredScopes": ["ZohoCRM.modules.solutions.READ"]
  }, {
    "id": "zohocrm_create_solution",
    "label": "Create Solution",
    "description": "Create one or more knowledge base solution articles with comprehensive configuration including solution title, question,...",
    "requiredScopes": ["ZohoCRM.modules.solutions.CREATE"]
  }, {
    "id": "zohocrm_update_solution",
    "label": "Update Solution",
    "description": "Update existing solution article content including title, question, answer, status, published flag, product associations...",
    "requiredScopes": ["ZohoCRM.modules.solutions.UPDATE"]
  }, {
    "id": "zohocrm_delete_solution",
    "label": "Delete Solution",
    "description": "Delete a solution article by moving it to the Recycle Bin where it can be restored within 60 days before permanent delet...",
    "requiredScopes": ["ZohoCRM.modules.solutions.DELETE"]
  }, {
    "id": "zohocrm_list_pricebooks",
    "label": "List Price Book",
    "description": "Retrieve a paginated list of pricebook records from Zoho CRM. Returns comprehensive pricing information including priceb...",
    "requiredScopes": ["ZohoCRM.modules.pricebooks.READ"]
  }, {
    "id": "zohocrm_get_price_book",
    "label": "Get Price Book",
    "description": "Retrieve complete details of a specific pricebook record by its unique ID. Returns all pricing information including pri...",
    "requiredScopes": ["ZohoCRM.modules.pricebooks.READ"]
  }, {
    "id": "zohocrm_create_price_book",
    "label": "Create Price Book",
    "description": "Create new pricebook records in Zoho CRM for managing pricing strategies. Supports comprehensive pricing configuration i...",
    "requiredScopes": ["ZohoCRM.modules.pricebooks.CREATE"]
  }, {
    "id": "zohocrm_update_price_book",
    "label": "Update Price Book",
    "description": "Update an existing pricebook record in Zoho CRM by modifying pricing strategies such as tier definitions, discount perce...",
    "requiredScopes": ["ZohoCRM.modules.pricebooks.UPDATE"]
  }, {
    "id": "zohocrm_delete_price_book",
    "label": "Delete Price Book",
    "description": "Permanently delete pricebook records from Zoho CRM by providing one or more pricebook IDs. Removes all pricing informati...",
    "requiredScopes": ["ZohoCRM.modules.pricebooks.DELETE"]
  }, {
    "id": "zohocrm_list_notes",
    "label": "List Notes",
    "description": "Retrieve paginated list of notes/comments attached to a specific record in any module (Leads, Contacts, Accounts, Deals,...",
    "requiredScopes": ["ZohoCRM.modules.notes.READ"]
  }, {
    "id": "zohocrm_create_note",
    "label": "Create Note",
    "description": "Create one or more notes/comments for a specific record in any module with rich text support, attachments, and creator a...",
    "requiredScopes": ["ZohoCRM.modules.notes.CREATE"]
  }, {
    "id": "zohocrm_update_note",
    "label": "Update Note",
    "description": "Update existing note content, title, or attachments for a specific record's note. Supports partial updates (only specifi...",
    "requiredScopes": ["ZohoCRM.modules.notes.UPDATE"]
  }, {
    "id": "zohocrm_delete_note",
    "label": "Delete Note",
    "description": "Delete a note from a record by moving it to the Recycle Bin where it can be restored within 60 days before permanent del...",
    "requiredScopes": ["ZohoCRM.modules.notes.DELETE"]
  }, {
    "id": "zohocrm_list_attachments",
    "label": "List Attachments",
    "description": "Retrieve a paginated list of all file attachments associated with a specific CRM record across any module. Returns compr...",
    "requiredScopes": ["ZohoCRM.modules.attachments.READ"]
  }, {
    "id": "zohocrm_upload_attachment",
    "label": "Upload Attachment",
    "description": "Upload and attach a file to any CRM record across all modules, enabling seamless document association with leads, contac...",
    "requiredScopes": ["ZohoCRM.modules.attachments.CREATE"]
  }, {
    "id": "zohocrm_download_attachment",
    "label": "Download Attachment",
    "description": "Download a specific file attachment by its unique identifier from any CRM record. Returns the raw file content with appr...",
    "requiredScopes": ["ZohoCRM.modules.attachments.READ"]
  }, {
    "id": "zohocrm_delete_attachment",
    "label": "Delete Attachment",
    "description": "Permanently remove a specific file attachment from a CRM record by its unique identifier. Essential for data hygiene, co...",
    "requiredScopes": ["ZohoCRM.modules.attachments.DELETE"]
  }, {
    "id": "zohocrm_list_tags",
    "label": "List Tags",
    "description": "Retrieve all tags (labels) configured in Zoho CRM globally or for a specific module, including tag names, colors, usage...",
    "requiredScopes": ["ZohoCRM.settings.tags.READ"]
  }, {
    "id": "zohocrm_get_record_tags",
    "label": "Get Record Tags",
    "description": "Retrieve all tags currently assigned to a specific record, including tag names, IDs, colors, and assignment metadata. Es...",
    "requiredScopes": ["ZohoCRM.settings.tags.READ"]
  }, {
    "id": "zohocrm_add_tags_to_record",
    "label": "Add Tags To Record",
    "description": "Assign one or more tags to a specific record for flexible categorization, visual identification, and custom filtering. T...",
    "requiredScopes": ["ZohoCRM.settings.tags.CREATE"]
  }, {
    "id": "zohocrm_remove_tags_from_record",
    "label": "Remove Tags From Record",
    "description": "Delete the tags associated with a specific record. Remove one or more tags from a record while preserving other tags and...",
    "requiredScopes": ["ZohoCRM.settings.tags.DELETE"]
  }, {
    "id": "zohocrm_delete_tag",
    "label": "Delete Tag",
    "description": "This permanently removes the tag definition from the system and removes it from all records that have this tag. Use with...",
    "requiredScopes": ["ZohoCRM.settings.tags.DELETE"]
  }, {
    "id": "zohocrm_add_tags_to_records_bulk",
    "label": "Add Tags To Records (Bulk)",
    "description": "Assign the same tag(s) to multiple records simultaneously, significantly improving efficiency for bulk categorization op...",
    "requiredScopes": ["ZohoCRM.settings.tags.CREATE"]
  }, {
    "id": "zohocrm_upsert_records",
    "label": "Upsert Records",
    "description": "Intelligently create new records or update existing ones in a single operation based on configurable duplicate check fie..."
  }, {
    "id": "zohocrm_get_deleted_records",
    "label": "Get Deleted Records",
    "description": "Retrieve a list of records that have been deleted from a module within a specified time range, including records in recy...",
    "requiredScopes": ["ZohoCRM.bulk.READ"]
  }, {
    "id": "zohocrm_get_record_count",
    "label": "Get Record Count",
    "description": "Retrieve the total number of records in a module with optional filter criteria, providing fast count operations without...",
    "requiredScopes": ["ZohoCRM.bulk.READ"]
  }, {
    "id": "zohocrm_delete_records_bulk",
    "label": "Delete Records (Bulk)",
    "description": "Delete multiple records simultaneously by providing an array of record IDs, significantly improving efficiency for bulk...",
    "requiredScopes": ["ZohoCRM.bulk.DELETE"]
  }, {
    "id": "zohocrm_mass_update_records",
    "label": "Mass Update Records",
    "description": "Update multiple records simultaneously based on custom view filters or specific record IDs, applying the same field valu...",
    "requiredScopes": ["ZohoCRM.bulk.ALL"]
  }, {
    "id": "zohocrm_mass_delete_records",
    "label": "Mass Delete Records",
    "description": "Delete large numbers of records simultaneously based on custom view filters or specific record IDs, moving them to recyc...",
    "requiredScopes": ["ZohoCRM.bulk.ALL"]
  }, {
    "id": "zohocrm_get_modules",
    "label": "Get Modules",
    "description": "Retrieve comprehensive list of all modules in Zoho CRM including standard modules (Leads, Contacts, Deals, etc.) and cus..."
  }, {
    "id": "zohocrm_get_module",
    "label": "Get Module",
    "description": "Retrieve comprehensive metadata for a specific module including field definitions, picklist values, lookup configuration...",
    "requiredScopes": ["ZohoCRM.settings.modules.READ"]
  }, {
    "id": "zohocrm_get_fields",
    "label": "Get Fields",
    "description": "Retrieve detailed field metadata for a specific module including field API names, data types, display labels, picklist v...",
    "requiredScopes": ["ZohoCRM.settings.modules.READ"]
  }, {
    "id": "zohocrm_get_users",
    "label": "Get Users",
    "description": "Retrieve comprehensive list of users in Zoho CRM with detailed information including names, emails, roles, profiles, sta..."
  }, {
    "id": "zohocrm_get_user",
    "label": "Get User",
    "description": "Retrieve complete details of a specific user including personal information, role and profile assignments, territory mem...",
    "requiredScopes": ["ZohoCRM.users.READ"]
  }, {
    "id": "zohocrm_list_layouts",
    "label": "List Layouts",
    "description": "Retrieve all page layouts configured for a specific module, including field arrangements, sections, profiles assigned, a...",
    "requiredScopes": ["ZohoCRM.settings.layouts.READ"]
  }, {
    "id": "zohocrm_list_custom_views",
    "label": "List Custom Views",
    "description": "Retrieve all custom views (filtered, sorted list views) configured for a specific module, including system default views...",
    "requiredScopes": ["ZohoCRM.settings.layouts.READ"]
  }, {
    "id": "zohocrm_get_custom_view",
    "label": "Get Custom View",
    "description": "Retrieve complete details of a specific custom view including comprehensive filter criteria, sort configuration, display...",
    "requiredScopes": ["ZohoCRM.settings.layouts.READ"]
  }, {
    "id": "zohocrm_list_roles",
    "label": "List Roles",
    "description": "Retrieve all organizational roles configured in Zoho CRM including role hierarchy, reporting relationships, and permissi...",
    "requiredScopes": ["ZohoCRM.settings.roles.READ"]
  }, {
    "id": "zohocrm_get_role",
    "label": "Get Role",
    "description": "Retrieve detailed information about a specific role including its position in organizational hierarchy, reporting relati...",
    "requiredScopes": ["ZohoCRM.settings.roles.READ"]
  }, {
    "id": "zohocrm_list_profiles",
    "label": "List Profiles",
    "description": "Retrieve all permission profiles configured in Zoho CRM defining module access, field permissions, custom view visibilit...",
    "requiredScopes": ["ZohoCRM.settings.roles.READ"]
  }, {
    "id": "zohocrm_get_profile",
    "label": "Get Profile",
    "description": "Retrieve comprehensive permission details for a specific profile including module-level permissions (create, read, updat...",
    "requiredScopes": ["ZohoCRM.settings.roles.READ"]
  }, {
    "id": "zohocrm_list_territories",
    "label": "List Territories",
    "description": "Retrieve all sales territories configured in Zoho CRM including territory hierarchy, geographical definitions, and assig...",
    "requiredScopes": ["ZohoCRM.settings.roles.READ"]
  }, {
    "id": "zohocrm_get_blueprint",
    "label": "Get Blueprint",
    "description": "Retrieve comprehensive blueprint process details for a specific record including current state, available transitions, r..."
  }, {
    "id": "zohocrm_list_notifications",
    "label": "List Notifications",
    "description": "Retrieve all active notification watch configurations (instant webhooks) set up for the Zoho CRM organization, including...",
    "requiredScopes": ["ZohoCRM.notifications.READ"]
  }, {
    "id": "zohocrm_get_organization_info",
    "label": "Get Organization Info",
    "description": "Retrieve comprehensive organization-level configuration and metadata including company name, industry, employee count, t..."
  }, {
    "id": "zohocrm_list_currencies",
    "label": "List Currencies",
    "description": "Retrieve all currencies configured in the Zoho CRM organization including base currency, active currencies, exchange rat...",
    "requiredScopes": ["ZohoCRM.org.READ"]
  }, {
    "id": "zohocrm_update_currency_exchange_rate",
    "label": "Update Currency Exchange Rate",
    "description": "Update the exchange rate for a specific currency relative to the organization's base currency, ensuring accurate multi-c...",
    "requiredScopes": ["ZohoCRM.org.UPDATE"]
  }],
  "releaseStage": "preview",
  "categories": ["crm"],
  "scopeDefinitions": [{
    "name": "ZohoCRM.modules.ALL",
    "description": "Access to all CRM modules for read, write, update, and delete operations",
    "includes": ["ZohoCRM.modules.leads.ALL", "ZohoCRM.modules.contacts.ALL", "ZohoCRM.modules.accounts.ALL", "ZohoCRM.modules.deals.ALL", "ZohoCRM.modules.products.ALL", "ZohoCRM.modules.tasks.ALL", "ZohoCRM.modules.events.ALL", "ZohoCRM.modules.calls.ALL", "ZohoCRM.modules.campaigns.ALL", "ZohoCRM.modules.cases.ALL", "ZohoCRM.modules.vendors.ALL", "ZohoCRM.modules.quotes.ALL", "ZohoCRM.modules.salesorders.ALL", "ZohoCRM.modules.purchaseorders.ALL", "ZohoCRM.modules.invoices.ALL", "ZohoCRM.modules.solutions.ALL", "ZohoCRM.modules.pricebooks.ALL", "ZohoCRM.modules.notes.ALL", "ZohoCRM.modules.attachments.ALL"]
  }, {
    "name": "ZohoCRM.modules.leads.ALL",
    "description": "Full access to leads module for create, read, update, and delete operations",
    "includes": ["ZohoCRM.modules.leads.READ", "ZohoCRM.modules.leads.CREATE", "ZohoCRM.modules.leads.UPDATE", "ZohoCRM.modules.leads.DELETE"]
  }, {
    "name": "ZohoCRM.modules.leads.READ",
    "description": "Read-only access to leads module"
  }, {
    "name": "ZohoCRM.modules.leads.CREATE",
    "description": "Permission to create leads"
  }, {
    "name": "ZohoCRM.modules.leads.UPDATE",
    "description": "Permission to update leads"
  }, {
    "name": "ZohoCRM.modules.leads.DELETE",
    "description": "Permission to delete leads"
  }, {
    "name": "ZohoCRM.modules.contacts.ALL",
    "description": "Full access to contacts module for create, read, update, and delete operations",
    "includes": ["ZohoCRM.modules.contacts.READ", "ZohoCRM.modules.contacts.CREATE", "ZohoCRM.modules.contacts.UPDATE", "ZohoCRM.modules.contacts.DELETE"]
  }, {
    "name": "ZohoCRM.modules.contacts.READ",
    "description": "Read-only access to contacts module"
  }, {
    "name": "ZohoCRM.modules.contacts.CREATE",
    "description": "Permission to create contacts"
  }, {
    "name": "ZohoCRM.modules.contacts.UPDATE",
    "description": "Permission to update contacts"
  }, {
    "name": "ZohoCRM.modules.contacts.DELETE",
    "description": "Permission to delete contacts"
  }, {
    "name": "ZohoCRM.modules.accounts.ALL",
    "description": "Full access to accounts module for create, read, update, and delete operations",
    "includes": ["ZohoCRM.modules.accounts.READ", "ZohoCRM.modules.accounts.CREATE", "ZohoCRM.modules.accounts.UPDATE", "ZohoCRM.modules.accounts.DELETE"]
  }, {
    "name": "ZohoCRM.modules.accounts.READ",
    "description": "Read-only access to accounts module"
  }, {
    "name": "ZohoCRM.modules.accounts.CREATE",
    "description": "Permission to create accounts"
  }, {
    "name": "ZohoCRM.modules.accounts.UPDATE",
    "description": "Permission to update accounts"
  }, {
    "name": "ZohoCRM.modules.accounts.DELETE",
    "description": "Permission to delete accounts"
  }, {
    "name": "ZohoCRM.modules.deals.ALL",
    "description": "Full access to deals module for create, read, update, and delete operations",
    "includes": ["ZohoCRM.modules.deals.READ", "ZohoCRM.modules.deals.CREATE", "ZohoCRM.modules.deals.UPDATE", "ZohoCRM.modules.deals.DELETE"]
  }, {
    "name": "ZohoCRM.modules.deals.READ",
    "description": "Read-only access to deals module"
  }, {
    "name": "ZohoCRM.modules.deals.CREATE",
    "description": "Permission to create deals"
  }, {
    "name": "ZohoCRM.modules.deals.UPDATE",
    "description": "Permission to update deals"
  }, {
    "name": "ZohoCRM.modules.deals.DELETE",
    "description": "Permission to delete deals"
  }, {
    "name": "ZohoCRM.modules.products.ALL",
    "description": "Full access to products module for create, read, update, and delete operations",
    "includes": ["ZohoCRM.modules.products.READ", "ZohoCRM.modules.products.CREATE", "ZohoCRM.modules.products.UPDATE", "ZohoCRM.modules.products.DELETE"]
  }, {
    "name": "ZohoCRM.modules.products.READ",
    "description": "Read-only access to products module"
  }, {
    "name": "ZohoCRM.modules.products.CREATE",
    "description": "Permission to create products"
  }, {
    "name": "ZohoCRM.modules.products.UPDATE",
    "description": "Permission to update products"
  }, {
    "name": "ZohoCRM.modules.products.DELETE",
    "description": "Permission to delete products"
  }, {
    "name": "ZohoCRM.modules.tasks.ALL",
    "description": "Full access to tasks module for create, read, update, and delete operations",
    "includes": ["ZohoCRM.modules.tasks.READ", "ZohoCRM.modules.tasks.CREATE", "ZohoCRM.modules.tasks.UPDATE", "ZohoCRM.modules.tasks.DELETE"]
  }, {
    "name": "ZohoCRM.modules.tasks.READ",
    "description": "Read-only access to tasks module"
  }, {
    "name": "ZohoCRM.modules.tasks.CREATE",
    "description": "Permission to create tasks"
  }, {
    "name": "ZohoCRM.modules.tasks.UPDATE",
    "description": "Permission to update tasks"
  }, {
    "name": "ZohoCRM.modules.tasks.DELETE",
    "description": "Permission to delete tasks"
  }, {
    "name": "ZohoCRM.modules.events.ALL",
    "description": "Full access to events module for create, read, update, and delete operations",
    "includes": ["ZohoCRM.modules.events.READ", "ZohoCRM.modules.events.CREATE", "ZohoCRM.modules.events.UPDATE", "ZohoCRM.modules.events.DELETE"]
  }, {
    "name": "ZohoCRM.modules.events.READ",
    "description": "Read-only access to events module"
  }, {
    "name": "ZohoCRM.modules.events.CREATE",
    "description": "Permission to create events"
  }, {
    "name": "ZohoCRM.modules.events.UPDATE",
    "description": "Permission to update events"
  }, {
    "name": "ZohoCRM.modules.events.DELETE",
    "description": "Permission to delete events"
  }, {
    "name": "ZohoCRM.modules.calls.ALL",
    "description": "Full access to calls module for create, read, update, and delete operations",
    "includes": ["ZohoCRM.modules.calls.READ", "ZohoCRM.modules.calls.CREATE", "ZohoCRM.modules.calls.UPDATE", "ZohoCRM.modules.calls.DELETE"]
  }, {
    "name": "ZohoCRM.modules.calls.READ",
    "description": "Read-only access to calls module"
  }, {
    "name": "ZohoCRM.modules.calls.CREATE",
    "description": "Permission to create calls"
  }, {
    "name": "ZohoCRM.modules.calls.UPDATE",
    "description": "Permission to update calls"
  }, {
    "name": "ZohoCRM.modules.calls.DELETE",
    "description": "Permission to delete calls"
  }, {
    "name": "ZohoCRM.modules.campaigns.ALL",
    "description": "Full access to campaigns module for create, read, update, and delete operations",
    "includes": ["ZohoCRM.modules.campaigns.READ", "ZohoCRM.modules.campaigns.CREATE", "ZohoCRM.modules.campaigns.UPDATE", "ZohoCRM.modules.campaigns.DELETE"]
  }, {
    "name": "ZohoCRM.modules.campaigns.READ",
    "description": "Read-only access to campaigns module"
  }, {
    "name": "ZohoCRM.modules.campaigns.CREATE",
    "description": "Permission to create campaigns"
  }, {
    "name": "ZohoCRM.modules.campaigns.UPDATE",
    "description": "Permission to update campaigns"
  }, {
    "name": "ZohoCRM.modules.campaigns.DELETE",
    "description": "Permission to delete campaigns"
  }, {
    "name": "ZohoCRM.modules.cases.ALL",
    "description": "Full access to cases module for create, read, update, and delete operations",
    "includes": ["ZohoCRM.modules.cases.READ", "ZohoCRM.modules.cases.CREATE", "ZohoCRM.modules.cases.UPDATE", "ZohoCRM.modules.cases.DELETE"]
  }, {
    "name": "ZohoCRM.modules.cases.READ",
    "description": "Read-only access to cases module"
  }, {
    "name": "ZohoCRM.modules.cases.CREATE",
    "description": "Permission to create cases"
  }, {
    "name": "ZohoCRM.modules.cases.UPDATE",
    "description": "Permission to update cases"
  }, {
    "name": "ZohoCRM.modules.cases.DELETE",
    "description": "Permission to delete cases"
  }, {
    "name": "ZohoCRM.modules.vendors.ALL",
    "description": "Full access to vendors module for create, read, update, and delete operations",
    "includes": ["ZohoCRM.modules.vendors.READ", "ZohoCRM.modules.vendors.CREATE", "ZohoCRM.modules.vendors.UPDATE", "ZohoCRM.modules.vendors.DELETE"]
  }, {
    "name": "ZohoCRM.modules.vendors.READ",
    "description": "Read-only access to vendors module"
  }, {
    "name": "ZohoCRM.modules.vendors.CREATE",
    "description": "Permission to create vendors"
  }, {
    "name": "ZohoCRM.modules.vendors.UPDATE",
    "description": "Permission to update vendors"
  }, {
    "name": "ZohoCRM.modules.vendors.DELETE",
    "description": "Permission to delete vendors"
  }, {
    "name": "ZohoCRM.modules.quotes.ALL",
    "description": "Full access to quotes module for create, read, update, and delete operations",
    "includes": ["ZohoCRM.modules.quotes.READ", "ZohoCRM.modules.quotes.CREATE", "ZohoCRM.modules.quotes.UPDATE", "ZohoCRM.modules.quotes.DELETE"]
  }, {
    "name": "ZohoCRM.modules.quotes.READ",
    "description": "Read-only access to quotes module"
  }, {
    "name": "ZohoCRM.modules.quotes.CREATE",
    "description": "Permission to create quotes"
  }, {
    "name": "ZohoCRM.modules.quotes.UPDATE",
    "description": "Permission to update quotes"
  }, {
    "name": "ZohoCRM.modules.quotes.DELETE",
    "description": "Permission to delete quotes"
  }, {
    "name": "ZohoCRM.modules.salesorders.ALL",
    "description": "Full access to sales orders module for create, read, update, and delete operations",
    "includes": ["ZohoCRM.modules.salesorders.READ", "ZohoCRM.modules.salesorders.CREATE", "ZohoCRM.modules.salesorders.UPDATE", "ZohoCRM.modules.salesorders.DELETE"]
  }, {
    "name": "ZohoCRM.modules.salesorders.READ",
    "description": "Read-only access to sales orders module"
  }, {
    "name": "ZohoCRM.modules.salesorders.CREATE",
    "description": "Permission to create sales orders"
  }, {
    "name": "ZohoCRM.modules.salesorders.UPDATE",
    "description": "Permission to update sales orders"
  }, {
    "name": "ZohoCRM.modules.salesorders.DELETE",
    "description": "Permission to delete sales orders"
  }, {
    "name": "ZohoCRM.modules.purchaseorders.ALL",
    "description": "Full access to purchase orders module for create, read, update, and delete operations",
    "includes": ["ZohoCRM.modules.purchaseorders.READ", "ZohoCRM.modules.purchaseorders.CREATE", "ZohoCRM.modules.purchaseorders.UPDATE", "ZohoCRM.modules.purchaseorders.DELETE"]
  }, {
    "name": "ZohoCRM.modules.purchaseorders.READ",
    "description": "Read-only access to purchase orders module"
  }, {
    "name": "ZohoCRM.modules.purchaseorders.CREATE",
    "description": "Permission to create purchase orders"
  }, {
    "name": "ZohoCRM.modules.purchaseorders.UPDATE",
    "description": "Permission to update purchase orders"
  }, {
    "name": "ZohoCRM.modules.purchaseorders.DELETE",
    "description": "Permission to delete purchase orders"
  }, {
    "name": "ZohoCRM.modules.invoices.ALL",
    "description": "Full access to invoices module for create, read, update, and delete operations",
    "includes": ["ZohoCRM.modules.invoices.READ", "ZohoCRM.modules.invoices.CREATE", "ZohoCRM.modules.invoices.UPDATE", "ZohoCRM.modules.invoices.DELETE"]
  }, {
    "name": "ZohoCRM.modules.invoices.READ",
    "description": "Read-only access to invoices module"
  }, {
    "name": "ZohoCRM.modules.invoices.CREATE",
    "description": "Permission to create invoices"
  }, {
    "name": "ZohoCRM.modules.invoices.UPDATE",
    "description": "Permission to update invoices"
  }, {
    "name": "ZohoCRM.modules.invoices.DELETE",
    "description": "Permission to delete invoices"
  }, {
    "name": "ZohoCRM.modules.solutions.ALL",
    "description": "Full access to solutions module for create, read, update, and delete operations",
    "includes": ["ZohoCRM.modules.solutions.READ", "ZohoCRM.modules.solutions.CREATE", "ZohoCRM.modules.solutions.UPDATE", "ZohoCRM.modules.solutions.DELETE"]
  }, {
    "name": "ZohoCRM.modules.solutions.READ",
    "description": "Read-only access to solutions module"
  }, {
    "name": "ZohoCRM.modules.solutions.CREATE",
    "description": "Permission to create solutions"
  }, {
    "name": "ZohoCRM.modules.solutions.UPDATE",
    "description": "Permission to update solutions"
  }, {
    "name": "ZohoCRM.modules.solutions.DELETE",
    "description": "Permission to delete solutions"
  }, {
    "name": "ZohoCRM.modules.pricebooks.ALL",
    "description": "Full access to price books module for create, read, update, and delete operations",
    "includes": ["ZohoCRM.modules.pricebooks.READ", "ZohoCRM.modules.pricebooks.CREATE", "ZohoCRM.modules.pricebooks.UPDATE", "ZohoCRM.modules.pricebooks.DELETE"]
  }, {
    "name": "ZohoCRM.modules.pricebooks.READ",
    "description": "Read-only access to price books module"
  }, {
    "name": "ZohoCRM.modules.pricebooks.CREATE",
    "description": "Permission to create price books"
  }, {
    "name": "ZohoCRM.modules.pricebooks.UPDATE",
    "description": "Permission to update price books"
  }, {
    "name": "ZohoCRM.modules.pricebooks.DELETE",
    "description": "Permission to delete price books"
  }, {
    "name": "ZohoCRM.modules.notes.ALL",
    "description": "Full access to notes module for create, read, update, and delete operations",
    "includes": ["ZohoCRM.modules.notes.READ", "ZohoCRM.modules.notes.CREATE", "ZohoCRM.modules.notes.UPDATE", "ZohoCRM.modules.notes.DELETE"]
  }, {
    "name": "ZohoCRM.modules.notes.READ",
    "description": "Read-only access to notes module"
  }, {
    "name": "ZohoCRM.modules.notes.CREATE",
    "description": "Permission to create notes"
  }, {
    "name": "ZohoCRM.modules.notes.UPDATE",
    "description": "Permission to update notes"
  }, {
    "name": "ZohoCRM.modules.notes.DELETE",
    "description": "Permission to delete notes"
  }, {
    "name": "ZohoCRM.modules.attachments.ALL",
    "description": "Full access to attachments module for upload, read, update, and delete operations",
    "includes": ["ZohoCRM.modules.attachments.READ", "ZohoCRM.modules.attachments.CREATE", "ZohoCRM.modules.attachments.UPDATE", "ZohoCRM.modules.attachments.DELETE"]
  }, {
    "name": "ZohoCRM.modules.attachments.READ",
    "description": "Read-only access to attachments module"
  }, {
    "name": "ZohoCRM.modules.attachments.CREATE",
    "description": "Permission to create attachments"
  }, {
    "name": "ZohoCRM.modules.attachments.UPDATE",
    "description": "Permission to update attachments"
  }, {
    "name": "ZohoCRM.modules.attachments.DELETE",
    "description": "Permission to delete attachments"
  }, {
    "name": "ZohoCRM.settings.ALL",
    "description": "Full access to CRM settings including fields, layouts, modules, roles, profiles, and related lists",
    "includes": ["ZohoCRM.settings.fields.ALL", "ZohoCRM.settings.layouts.ALL", "ZohoCRM.settings.modules.ALL", "ZohoCRM.settings.roles.ALL"]
  }, {
    "name": "ZohoCRM.settings.fields.ALL",
    "description": "Full access to field settings for read and write operations",
    "includes": ["ZohoCRM.settings.fields.READ"]
  }, {
    "name": "ZohoCRM.settings.fields.READ",
    "description": "Read-only access to field settings"
  }, {
    "name": "ZohoCRM.settings.layouts.ALL",
    "description": "Full access to layout settings for read and write operations",
    "includes": ["ZohoCRM.settings.layouts.READ"]
  }, {
    "name": "ZohoCRM.settings.layouts.READ",
    "description": "Read-only access to layout settings"
  }, {
    "name": "ZohoCRM.settings.modules.ALL",
    "description": "Full access to module settings for read and write operations",
    "includes": ["ZohoCRM.settings.modules.READ"]
  }, {
    "name": "ZohoCRM.settings.modules.READ",
    "description": "Read-only access to module settings"
  }, {
    "name": "ZohoCRM.settings.roles.ALL",
    "description": "Full access to role settings for read and write operations",
    "includes": ["ZohoCRM.settings.roles.READ"]
  }, {
    "name": "ZohoCRM.settings.roles.READ",
    "description": "Read-only access to role settings"
  }, {
    "name": "ZohoCRM.users.ALL",
    "description": "Full access to user management for read, create, update, and delete operations",
    "includes": ["ZohoCRM.users.READ"]
  }, {
    "name": "ZohoCRM.users.READ",
    "description": "Read-only access to user information"
  }, {
    "name": "ZohoCRM.org.ALL",
    "description": "Full access to organization settings and information",
    "includes": ["ZohoCRM.org.READ", "ZohoCRM.org.UPDATE"]
  }, {
    "name": "ZohoCRM.org.READ",
    "description": "Read-only access to organization information"
  }, {
    "name": "ZohoCRM.org.UPDATE",
    "description": "Permission to update organization settings"
  }, {
    "name": "ZohoCRM.bulk.ALL",
    "description": "Full access to bulk operations for read and write operations",
    "includes": ["ZohoCRM.bulk.READ", "ZohoCRM.bulk.CREATE", "ZohoCRM.bulk.UPDATE", "ZohoCRM.bulk.DELETE"]
  }, {
    "name": "ZohoCRM.bulk.READ",
    "description": "Read-only access to bulk operation status"
  }, {
    "name": "ZohoCRM.bulk.CREATE",
    "description": "Permission to create bulk operations"
  }, {
    "name": "ZohoCRM.bulk.UPDATE",
    "description": "Permission to update bulk operations"
  }, {
    "name": "ZohoCRM.bulk.DELETE",
    "description": "Permission to delete bulk operations"
  }, {
    "name": "ZohoCRM.notifications.ALL",
    "description": "Full access to notification settings for read, create, update, and delete operations",
    "includes": ["ZohoCRM.notifications.READ"]
  }, {
    "name": "ZohoCRM.notifications.READ",
    "description": "Read-only access to notification settings"
  }, {
    "name": "ZohoCRM.coql.READ",
    "description": "Read-only access to COQL query operations"
  }, {
    "name": "ZohoCRM.settings.tags.ALL",
    "description": "Full access to tag settings for create, read, update, and delete operations",
    "includes": ["ZohoCRM.settings.tags.READ", "ZohoCRM.settings.tags.CREATE", "ZohoCRM.settings.tags.UPDATE", "ZohoCRM.settings.tags.DELETE"]
  }, {
    "name": "ZohoCRM.settings.tags.READ",
    "description": "Read-only access to tag settings"
  }, {
    "name": "ZohoCRM.settings.tags.CREATE",
    "description": "Permission to create tags"
  }, {
    "name": "ZohoCRM.settings.tags.UPDATE",
    "description": "Permission to update tags"
  }, {
    "name": "ZohoCRM.settings.tags.DELETE",
    "description": "Permission to delete tags"
  }, {
    "name": "ZohoCRM.settings.related_lists.ALL",
    "description": "Full access to related lists settings",
    "includes": ["ZohoCRM.settings.related_lists.READ", "ZohoCRM.settings.related_lists.UPDATE"]
  }, {
    "name": "ZohoCRM.settings.related_lists.READ",
    "description": "Read-only access to related lists settings"
  }, {
    "name": "ZohoCRM.settings.related_lists.UPDATE",
    "description": "Permission to update related lists settings"
  }, {
    "name": "ZohoCRM.settings.blueprints.ALL",
    "description": "Full access to blueprint settings for read and write operations",
    "includes": ["ZohoCRM.settings.blueprints.READ", "ZohoCRM.settings.blueprints.UPDATE"]
  }, {
    "name": "ZohoCRM.settings.blueprints.READ",
    "description": "Read-only access to blueprint settings"
  }, {
    "name": "ZohoCRM.settings.blueprints.UPDATE",
    "description": "Permission to update blueprint settings"
  }, {
    "name": "ZohoCRM.settings.webhooks.ALL",
    "description": "Full access to webhook settings for create, read, update, and delete operations",
    "includes": ["ZohoCRM.settings.webhooks.READ", "ZohoCRM.settings.webhooks.CREATE", "ZohoCRM.settings.webhooks.UPDATE", "ZohoCRM.settings.webhooks.DELETE"]
  }, {
    "name": "ZohoCRM.settings.webhooks.READ",
    "description": "Read-only access to webhook settings"
  }, {
    "name": "ZohoCRM.settings.webhooks.CREATE",
    "description": "Permission to create webhooks"
  }, {
    "name": "ZohoCRM.settings.webhooks.UPDATE",
    "description": "Permission to update webhooks"
  }, {
    "name": "ZohoCRM.settings.webhooks.DELETE",
    "description": "Permission to delete webhooks"
  }]
};

<ConnectorPage connector={connector} />
