API configurations: personio, personio-recruiting

Features

FeaturesStatus
Auth (OAuth)
Sync data
Perform workflows
Proxy requests
Receive webhooks🚫 (time to contribute: <48h)
We can implement missing features in <48h, just ask for it in the community.

Getting started

Need help getting started? Get help in the community.

API gotchas

  • Personio offers a separate recruiting API that is API key based and is listed under personio-recruiting
  • The other API Personio offers is a client credentials token that authorizes as app instead of a user. This is listed under personio.
  • The companyId value is required for personio-recruiting and can be retrieved at Settings > Integrations (API Credentials) and clicking on the “Recruiting API Key”. The value for company as required for personio-recruiting is the name you use to login to your account and is the subdomain of your Personio instance.
  • The values for partnerId and appId are optional but strongly recommended by Personio. Both can be defined by you, but should represent your company name and application name and MUST follow the UPPER_SNAKE_CASE format. For example MY_APPLICATION, ACME are valid values. An example of setting them in the nango.auth call:
    nango.auth('personio-recruiting', 'test-connection-id', { params: { companyId: '33434', partnerId: 'YOUR_CUSTOM_NAME', appId: 'UNIQUE_ID', company: 'company-b' },
        credentials: {
          apiKey: '<secure-key>'
        }
      })
      .then((result: { providerConfigKey: string; connectionId: string }) => {
        // do something
      }).catch((err: { message: string; type: string }) => {
        // handle error
      });
    
    nango.auth('personio', 'test-connection-id', { params: { partnerId: 'YOUR_CUSTOM_NAME', appId: 'UNIQUE_NAME' },
        credentials: {
            client_id: '<your-client-id>',
            client_secret: '<your-client-secret>'
        }
      })
      .then((result: { providerConfigKey: string; connectionId: string }) => {
        // do something
      }).catch((err: { message: string; type: string }) => {
        // handle error
      });
    
Add Getting Started links and Gotchas by editing this page