def METHOD_NAME(cls, name: str, bpmn_params: Any, task_data: Any) -> str:
    """Calls a connector via the configured proxy."""
    call_url = f"{connector_proxy_url()}/v1/do/{name}"
    current_app.logger.info(f"Calling connector proxy using connector: {name}")
    with sentry_sdk.start_span(op="connector_by_name", description=name):
        with sentry_sdk.start_span(op="call-connector", description=call_url):
            params = {k: cls.value_with_secrets_replaced(v["value"]) for k, v in bpmn_params.items()}
            params["spiff__task_data"] = task_data
            proxied_response = requests.post(call_url, json=params, timeout=CONNECTOR_PROXY_COMMAND_TIMEOUT)
            response_text = proxied_response.text
            json_parse_error = None
            if response_text == "":
                response_text = "{}"
            try:
                parsed_response = json.loads(response_text)
            except Exception as e:
                json_parse_error = e
                parsed_response = {}
            if "spiff__logs" in parsed_response:
                for log in parsed_response["spiff__logs"]:
                    current_app.logger.info(f"Log from connector {name}: {log}")
                if "api_response" in parsed_response:
                    parsed_response = parsed_response["api_response"]
                    response_text = json.dumps(parsed_response)
            if proxied_response.status_code >= 300:
                message = ServiceTaskDelegate.get_message_for_status(proxied_response.status_code)
                error = f"Received an unexpected response from service {name} : {message}"
                if "error" in parsed_response:
                    error_response = parsed_response["error"]
                    if isinstance(error_response, list | dict):
                        error_response = json.dumps(parsed_response["error"])
                    error += error_response
                if json_parse_error:
                    error += "A critical component (The connector proxy) is not responding correctly."
                raise ConnectorProxyError(error)
            elif json_parse_error:
                raise ConnectorProxyError(
                    f"There is a problem with this connector: '{name}'. "
                    "Responses for connectors must be in JSON format. "
                )
            if "refreshed_token_set" not in parsed_response:
                return response_text
            secret_key = parsed_response["auth"]
            refreshed_token_set = json.dumps(parsed_response["refreshed_token_set"])
            user_id = g.user.id if UserService.has_user() else None
            SecretService.update_secret(secret_key, refreshed_token_set, user_id)
            return json.dumps(parsed_response["api_response"])