İçeriğe geç
ajan.io

Belgeler menüsü

Bu sayfada

Action güncelle

Bir entegrasyondaki mevcut bir action'ı güncelleyin

Bir entegrasyondaki mevcut bir action'ı günceller. name değiştirmek action slug'ını değiştirmez.

Base URL

https://api.ajan.io/integrations/v1/{integrationId}/actions/{actionId}

Dedicated deployments Tüm isteklerde api.ajan.com'u /api/public ile değiştirin.

Required Scopes

Bu endpoint INTEGRATION_API kapsamı gerektirir.

Parameters

Path Parameters

ParameterTypeRequiredDescription
integrationIdstringYesEntegrasyonun UUID'si
actionIdstringYesGüncellenecek action'ın UUID'si

Request Body

ParameterTypeRequiredDescription
namestringYesAction adı (maks. 100 karakter)
descriptionstringNoAction açıklaması (maks. 1.000 karakter)
codestringNoÇalıştırılacak JavaScript kodu (maks. 150.000 karakter)
inputFieldsarrayNoAction için giriş alanları
requiresConfirmationbooleanNoÇalıştırmadan önce kullanıcı onayı gerekip gerekmediği

Tam giriş alanı şeması için Create Action sayfasına bakın.

description göndermezseniz temizlenir. inputFields göndermezseniz mevcut tüm giriş alanları kaldırılır. code veya requiresConfirmation göndermezseniz mevcut değer korunur. inputFields göndermek alan listesini tamamen değiştirir. Bir giriş alanı jsonSchema atlanırsa, gönderilen alan etiketinden üretilen slug eşleştiğinde mevcut JSON Schema korunur. JSON Schema kaldırmak için açıkça jsonSchema: null gönderin.

Example

javascript
const axios = require("axios");

async function updateAction(integrationId, actionId) {
  const response = await axios.put(
    `https://api.ajan.io/integrations/v1/${integrationId}/actions/${actionId}`,
    {
      name: "Get User Data v2",
      description: "Updated action with additional fields",
      code: `
        const response = await ld.request({
          method: "GET",
          url: "https://api.example.com/v2/users/" + data.input.userId
        });
        return response.json;
      `,
      inputFields: [
        {
          label: "User ID",
          type: "TEXT",
          required: true
        },
        {
          label: "Format",
          type: "SELECT",
          options: [
            { label: "JSON", value: "json" },
            { label: "XML", value: "xml" }
          ],
          required: false
        }
      ]
    },
    {
      headers: {
        Authorization: "Bearer YOUR_API_KEY",
        "Content-Type": "application/json"
      }
    }
  );

  console.log("Updated action:", response.data.action);
}

updateAction("550e8400-e29b-41d4-a716-446655440000", "660e8400-e29b-41d4-a716-446655440001");

Response Format

Success Response (200 OK)

typescript
{
  action: {
    id: string;
    name: string;
    slug: string;
    description: string;
    code: string | null;
    order: number;
    requiresConfirmation: boolean;
    inputFields: Array<{
      slug: string;
      label: string;
      type: string;
      description: string;
      placeholder: string | null;
      required: boolean;
      order: number;
      options: Array<{label: string, value: string}> | null;
      allowMultiSelect: boolean | null;
      contextActionId: string | null;
      jsonSchema: string | null;
    }>;
  };
}

Error Handling

Status CodeDescription
400Geçersiz istek gövdesi veya ID'ler
401Geçersiz veya eksik API anahtarı
403Bu entegrasyona erişim yok
404Entegrasyon veya action bulunamadı
422Desteklenmeyen entegrasyon türü. Action güncellemesi yalnızca workspace'e ait API entegrasyonunda.
429Rate limit aşıldı

ajan, API anahtarınızı korumak ve uygulamalarınızın güvenliğini sağlamak için tarayıcı kaynaklı istekleri bilinçli olarak engeller. Daha fazla bilgi için API Key Best Practices kılavuzuna bakın.