Brugerhåndbog Annuller

Oversigt over webhooks

 

Adobe Acrobat Sign-håndbog

Nyheder

  1. Produktbemærkninger før udgivelse
  2. Produktbemærkninger
  3. Vigtige meddelelser

Kom godt i gang

  1. Vejledning til hurtig start for administratorer
  2. Vejledning til hurtig start for brugere
  3. For udviklere
  4. Bibliotek med videoselvstudier
  5. Ofte stillede spørgsmål

Administrer

  1. Oversigt over Admin Console
  2. Brugeradministration
    1. Tilføj en bruger
    2. Opret brugere i massevis
    3. Tilføj brugere fra dit katalog
    4. Tilføj brugere fra MS Azure Active-katalog
    5. Opret funktionsfokuserede brugere
      1. Tekniske konti - API-drevet
      2. Tjenestekonti - manuelt styret
    6. Søg efter brugere med klargøringsfejl
    7. Skift navn/e-mailadresse
    8. Rediger en brugers gruppemedlemskab
    9. Rediger en brugers gruppemedlemskab via gruppegrænsefladen
    10. Forfrem en bruger til en administratorrolle
    11. Brugeridentitetstyper og enkeltlogin
    12. Skift brugeridentitet
    13. Godkend brugere med MS Azure
    14. Godkend brugere med Google-føderation
    15. Produktprofiler
    16. Login-oplevelse 
  3. Konto-/gruppeindstillinger
    1. Oversigt over indstillinger
    2. Globale indstillinger
      1. Kontoniveau og ID
      2. Selvunderskrivelsesarbejdsforløb
      3. Send i massevis
      4. Webformularer
      5. Arbejdsforløb for brugerdefineret afsendelse
      6. Power Automate-arbejdsforløb
      7. Biblioteksdokumenter
      8. Indsaml formulardata med aftaler
      9. Begrænset synlighed af dokument
      10. Vedhæft en PDF-kopi af den underskrevne aftale 
      11. Inkluder et link i mailen
      12. Medtag et billede i e-mailen
      13. Filer, der vedhæftes i mail, navngives som
      14. Vedhæft redigeringsrapport til dokumenter
      15. Flet flere dokumenter sammen til ét
      16. Upload et underskrevet dokument
      17. Delegering til brugere af min konto
      18. Tillad eksterne modtagere at delegere
      19. Tilladelse til at underskrive
      20. Tilladelse til at sende
      21. Autoritet til at tilføje elektroniske segl
      22. Indstil en standardtidszone
      23. Indstil et standarddatoformat
      24. Brugere i flere grupper (UMG)
        1. Opgrader for at bruge UMG
      25. Tilladelser for gruppeadministratorer
      26. Udskift modtager
      27. Revisionsrapport
        1. Oversigt
        2. Tillad uautoriseret adgang på siden til transaktionsbekræftelse
        3. Medtag påmindelser
        4. Inkluder visningshændelser
        5. Inkluder optælling af aftaleside/vedhæftet fil
      28. Beskeder og vejledning i produktet
      29. Tilgængelige PDF'er
      30. Ny oprettelsesoplevelse
      31. Sundhedsplejekunde
    3. Kontoopsætning
      1. Tilføj logo
      2. Tilpas firmaets værtsnavn/URL
      3. Tilføj firmanavn
      4. URL-omdirigering efter aftale
    4. Signaturindstillinger
      1. Velformaterede signaturer
      2. Tillad modtagere at underskrive ved
      3. Underskrivere kan ændre deres navn
      4. Tillad modtagere at bruge deres gemte signatur
      5. Brugerdefinerede vilkår for anvendelse og videregivelse af oplysninger
      6. Naviger modtagere gennem formularfelter
      7. Afvis at underskrive
      8. Tillad arbejdsforløb for stempler
      9. Kræv, at underskrivere angiver deres titel eller virksomhed
      10. Tillad underskrivere at udskrive og placere en håndskreven signatur
      11. Vis meddelelser ved e-signering
      12. Kræve, at underskrivere bruger en mobilenhed til at oprette deres underskrift
      13. Anmod om IP-adresse fra underskrivere
      14. Udelad firmanavn og titel fra deltagelsesstempler
    5. Digitale signaturer
      1. Oversigt
      2. Download og underskriv med Acrobat
      3. Underskriv med cloudsignaturer
      4. Medtag metadata for identitetsudbydere
      5. Begrænsede udbydere af cloud-signaturer
    6. Elektroniske segl
    7. Digital identitet
      1. Gateway for digital identitet
      2. Politik for identitetskontrol
    8. Rapportindstillinger
      1. Ny rapportoplevelse
      2. Klassiske rapportindstillinger
    9. Sikkerhedsindstillinger
      1. Indstillinger for Single Sign-on
      2. Husk mig-indstillinger
      3. Politik for adgangskode til login
      4. Styrke af login-adgangskode
      5. Varighed af websession
      6. PDF-krypteringstype
      7. API
      8. Adgang for bruger- og gruppeoplysninger
      9. Tilladte IP-områder
      10. Kontodeling
      11. Tilladelser til kontodeling
      12. Kontroller til aftaledeling
      13. Bekræftelse af underskrivers identitet
      14. Adgangskode til underskrivelse af aftaler
      15. Dokumentadgangskodens styrke
      16. Bloker underskrivere efter geolokalitet
      17. Telefongodkendelse
      18. Videnbaseret godkendelse (KBA)
      19. Tillad sideudtrækning
      20. Udløb af dokumentlink
      21. Upload et klientcertifikat til webhooks/tilbagekald
      22. Tidsstempel
    10. Afsendelsesindstillinger
      1. Vis Send-siden efter login
      2. Kræv modtagernavn ved afsendelse
      3. Lås navneværdier for kendte brugere
      4. Tilladte modtagerroller
      5. Modtagergrupper
      6. Obligatoriske felter
      7. Vedhæftning af dokumenter
      8. Samkopiering af felter
      9. Rediger aftaler
      10. Aftalenavn
      11. Sprog
      12. Private beskeder
      13. Tilladte signaturtyper
      14. Påmindelser
      15. Beskyttelse af underskrevne dokumenter med adgangskode
      16. Muligheder for underskriveridentifikation
        1. Oversigt
        2. Adgangskode for underskriver
        3. Engangsadgangskode via e-mail
        4. Acrobat Sign-godkendelse
        5. Telefongodkendelse
        6. Cloudbaseret digital signatur
        7. Vidensbaseret godkendelse
        8. Id-kort
        9. Rapporter om underskriveridentitet
      17. Indholdsbeskyttelse
      18. Aktivér Notarize-transaktioner
      19. Dokumentudløb
      20. Forhåndsvisning, placer signaturer, og tilføj felter
      21. Rækkefølge for underskrivelse
      22. Liquid-tilstand
      23. Brugerdefinerede arbejdsforløbskontrolelementer
      24. Uploadindstillinger for e-underskrivelsessiden
      25. Omdirigering af bekræftelses-URL efter underskrivelse
    11. Beskedskabeloner
    12. Indstillinger for biomedicin
      1. Oversigt
      2. Gennemtving identitetsgodkendelse
      3. Årsager til underskrivelse
    13. Arbejdsforløbintegration
    14. Notariseringsindstillinger
    15. Integration af betalinger
    16. Underskrivermeddelelser
    17. SAML-indstillinger
      1. SAML-konfiguration
      2. Installer Microsoft Active Directory Federation Service
      3. Installer Okta
      4. Installer OneLogin
      5. Installer Oracle Identity Federation
    18. Dataforvaltning
    19. Tidsstempelindstillinger
    20. Eksternt arkiv
    21. Kontosprog
    22. E-mailindstillinger
      1. E-mailoverskrift/-sidefod billeder
      2. Tillad individuelle brugeres e-mailsidefødder
      3. Tilpas mailen Signatur anmodet om
      4. Tilpas til- og cc-felter
      5. Aktivér notifikationer uden links
      6. Tilpas mailskabeloner
    23. Migrering fra echosign.com til adobesign.com
    24. Konfigurer indstillinger for modtagere
  4. Vejledning om forskriftsmæssige krav
    1. Hjælp til handicappede
      1. Overholdelse af tilgængelighed
      2. Opret tilgængelige formularer med Acrobat til computer
      3. Opret tilgængelige AcroForms
    2. HIPAA
    3. Persondataforordning
      1. GDPR-oversigt
      2. Bortrediger en bruger
      3. Bortrediger en brugers aftaler
    4. 21 CFR del 11 og EudraLex bilag 11
      1. 21 CRF del 11 valideringspakke
      2. 21 CFR og EudraLex bilag 11-håndbog
      3. Analyse af delt ansvar
    5. Kunder i sundhedssektoren
    6. IVES-understøttelse
    7. "Lagring" af aftaler
    8. EU/UK-overvejelser
      1. Grænseoverskridende transaktioner EU/UK og eIDAS
      2. HMLR-krav for elektronisk underskrevne dokumenter
      3. Indvirkningen af Brexit på lovgivningen om e-signaturer i Storbritannien
  5. Download aftaler i massevis
  6. Gør krav på dit domæne 
  7. Rapportér misbrug-links

Send, underskriv og administrer aftaler

  1. Modtagerindstillinger
    1. Annuller en mailpåmindelse
    2. Indstillinger på e-underskrivelsessiden
      1. Oversigt over e-underskrivelsessiden
      2. Åbn for at læse aftalen uden felter
      3. Afvis at underskrive en aftale
      4. Deleger underskrivelsesautoritet
      5. Genstart aftalen
      6. Download en PDF af aftalen
      7. Se aftalens historik
      8. Vis aftalemeddelelserne
      9. Konvertér fra elektronisk til håndskreven signatur
      10. Konvertér fra håndskreven til elektronisk signatur 
      11. Naviger formularfelterne
      12. Ryd dataene fra formularfelterne
      13. Forstørrelse og navigation på e-underskrivelsesside
      14. Skift det sprog, der bruges i aftaleværktøjerne og -oplysningerne
      15. Gennemse de juridiske meddelelser
      16. Juster Acrobat Sign-cookieindstillinger
  2. Send aftaler  
    1. Send sideoversigt
    2. Send en aftale kun til dig selv
    3. Send en aftale til andre
    4. Håndskrevne underskrifter
    5. Modtageres underskrivelsesrækkefølge
    6. Send i massevis
      1. Oversigt over funktionen Send i massevis
      2. Send i massevis - manuelle modtagere
      3. Send i massevis - CSV-upload
      4. Annuller en Send i massevis-transaktion
      5. Tilføj påmindelser om at sende i massevis
      6. Rapportering for Send i massevis
  3. Oprettelse af felter i dokumenter
    1. Oprettelsesmiljø i appen
      1. Automatisk feltregistrering
      2. Træk og slip felter ved hjælp af oprettelsesmiljøet
      3. Tildel formularfelter til modtagere
      4. Rollen Forudfyld
      5. Anvend felter med en genanvendelig feltskabelon
      6. Overfør felter til en ny biblioteksskabelon
      7. Opdateret oprettelsesmiljø ved afsendelse af aftaler
    2. Opret formularer med teksttags
    3. Opret formularer med Acrobat (AcroForms)
      1. AcroForm-oprettelse
      2. Oprette tilgængelige PDF-dokumenter
    4. Felter
      1. Felttyper
        1. Almindelige felttyper
        2. Billeder i tekst
        3. Stempelbilleder
      2. Udseende af feltindhold
      3. Feltvalideringer
      4. Værdier for maskerede felter
      5. Indstilling af vis/skjul betingelser
      6. Beregnede felter 
    5. Ofte stillede spørgsmål om oprettelse
  4. Underskriv aftaler
    1. Underskriv aftaler, der er sendt til dig
    2. Udfyld og underskriv
    3. Selvunderskrivelse
  5. Administrer aftaler
    1. Administrer sideoversigt
    2. Deleger aftaler
    3. Udskift modtagere
    4. Begræns dokumentsynlighed 
    5. Annuller en aftale 
    6. Opret nye påmindelser
    7. Gennemgå påmindelser
    8. Annuller en påmindelse
    9. Flere handlinger ...
      1. Sådan fungerer søgning
      2. Se en aftale
      3. Opret en skabelon fra en aftale
      4. Skjul/vis aftaler fra visning
      5. Upload en underskrevet aftale
      6. Rediger en sendt aftales filer og felter
      7. Rediger en modtagers godkendelsesmetode
      8. Tilføj eller rediger en udløbsdato
      9. Føj en note til aftalen
      10. Del en individuel aftale
      11. Annuller deling af en aftale
      12. Download en individuel aftale
      13. Download de enkelte filer i en aftale
      14. Download revisionsrapporten for en aftale
      15. Download feltindholdet af en aftale
  6. Revisionsrapport
  7. Rapportering og dataeksport
    1. Oversigt
    2. Giv brugere adgang til rapportering
    3. Rapportdiagrammer
      1. Opret en ny rapport
      2. Aftalerapporter
      3. Transaktionsrapporter
      4. Indstillinger for aktivitetsrapport
      5. Rediger en rapport
    4. Dataeksporter 
      1. Sådan oprettes en ny dataeksport
      2. Rediger en dataeksport
      3. Opdater dataeksportindholdet
      4. Download dataeksporten
    5. Omdøb en rapport/eksport
    6. Dubler en rapport/eksport
    7. Planlæg en rapport/eksport
    8. Slet en rapport/eksport
    9. Brug af kontroltransaktion

Avancerede aftalefunktioner og arbejdsforløb

  1. Webformularer 
    1. Opret en webformular
    2. Rediger en webformular
    3. Deaktiver/aktivér en webformular
    4. Skjul/vis en webformular
    5. Find URL'en eller scriptkoden 
    6. Forudfyld webformularfelter med URL-parametre
    7. Gem en webformular og færdiggør den senere
    8. Ændr størrelsen på en webformular
  2. Genanvendelige skabeloner (Biblioteksskabeloner) 
    1. Amerikanske regeringsformularer i Acrobat Sign-biblioteket
    2. Opret en biblioteksskabelon
    3. Skift en biblioteksskabelons navn
    4. Skift en biblioteksskabelons type
    5. Skift en biblioteksskabelons tilladelsesniveau
    6. Kopiér, rediger og gem en delt skabelon
    7. Download de aggregerede feltdata for en biblioteksskabelon
  3. Overfør ejerskab af webformularer og biblioteksskabeloner
  4. Power Automate-arbejdsforløb 
    1. Oversigt over Power Automate-integrationen og inkluderede rettigheder
    2. Aktivér Power Automate-integrationen
    3. Spor Power Automate-brug
    4. Opret et nyt forløb (eksempler)
    5. Udløsere, der bruges til forløb
    6. Import af forløb uden for Acrobat Sign
    7. Administrer forløb
    8. Rediger forløb
    9. Del forløb
    10. Deaktivere eller aktivere forløb
    11. Slet forløb
    12. Nyttige skabeloner
      1. Kun administrator
        1. Gem alle fuldførte dokumenter i SharePoint
        2. Gem alle fuldførte dokumenter i OneDrive for Business
        3. Gem alle fuldførte dokumenter i Google Drev
        4. Gem alle fuldførte dokumenter i Dropbox
        5. Gem alle fuldførte dokumenter i Box
      2. Aftalearkivering
        1. Gem dine afsluttede dokumenter i SharePoint
        2. Gem dine fuldførte dokumenter i OneDrive for Business
        3. Gem dine færdige dokumenter på Google Drev
        4. Gem alle fuldførte dokumenter i Dropbox
        5. Gem dine fuldførte dokumenter i Box
      3. Arkivering af webformularaftaler
        1. Gem udfyldte webformulardokumenter i SharePoint-bibliotek
        2. Gem udfyldte webformulardokumenter i OneDrive for Business
        3. Gem alle fuldførte dokumenter i Google Drive
        4. Arkiver udfyldte webformulardokumenter i Box
      4. Udtrækning af aftaledata
        1. Udtræk formularfeltdata fra dit underskrevne dokument, og opdater Excel-ark
      5. Aftalenotifikationer
        1. Send brugerdefinerede mailnotifikationer med dit aftaleindhold og din underskrevne aftale
        2. Få dine Adobe Acrobat Sign-notifikationer i en Teams-kanal
        3. Få dine Adobe Acrobat Sign-notifikationer i Slack
        4. Få dine Adobe Acrobat Sign-notifikationer på Webex
      6. Aftalegenerering
        1. Generer dokument fra Power App-formular og Word-skabelon, send til underskrivelse
        2. Generér aftale fra Word-skabelon i OneDrive, og få signatur
        3. Generér aftale for markeret Excel-række, send til gennemgang og underskrivelse
  5. Arbejdsforløb for brugerdefineret afsendelse
    1. Overblik over arbejdsforløb for brugerdefineret afsendelse
    2. Oprettelse af et nyt arbejdsforløb for afsendelse
    3. Rediger et Send-arbejdsforløb
    4. Aktivér eller deaktiver et arbejdsforløb for afsendelse
    5. Send en aftale med et arbejdsforløb for afsendelse
  6. Del brugere og aftaler
    1. Del en bruger
    2. Del aftaler

Integrer med andre produkter

  1.  Oversigt over Acrobat Sign-integrationer 
  2. Acrobat Sign til Salesforce
  3. Acrobat Sign til Microsoft
    1. Acrobat Sign til Microsoft 365
    2. Acrobat Sign til Outlook
    3. Acrobat Sign til Word/PowerPoint
    4. Acrobat Sign til Teams
    5. Acrobat Sign til Microsoft PowerApps og Power Automate
    6. Acrobat Sign Connector til Microsoft Search
    7. Acrobat Sign til Microsoft Dynamics 
    8. Acrobat Sign til Microsoft SharePoint 
  4. Andre integrationer
    1. Acrobat Sign til ServiceNow
    2. Acrobat Sign til HR ServiceNow
    3. Acrobat Sign til SAP SuccessFactors
    4. Acrobat Sign til Workday
    5. Acrobat Sign til NetSuite
    6. Acrobat Sign til VeevaVault
    7. Acrobat Sign til Coupa BSM Suite
  5. Partneradministrerede integrationer
  6. Sådan oprettes en integrationsnøgle

Acrobat Sign-udvikler

  1. REST API'er 
    1. Metodedokumentation
    2. SDK/Udviklervejledning
    3. API OFTE STILLEDE SPØRGSMÅL
  2. Webhooks 
    1. Oversigt over Webhook
    2. Konfigurer en ny webhook
    3. Vis eller rediger en webhook
    4. Deaktiver eller genaktiver en webhook
    5. Slet en webhook
    6. Tovejs SSL-certifikater
    7. Webhooks i API'en

Support og fejlfinding

  1. Ressourcer til kundesupport 
  2. Ressourcer til kundesucces for virksomheder 

Oversigt

En webhook er en brugerdefineret HTTPS-anmodning, der udløses, når en bestemt hændelse opstår på kildewebstedet (Adobe Acrobat Sign i dette tilfælde).

En webhook er derfor blot en REST-tjeneste, der accepterer data eller en strøm af data.

Webhooks er beregnet til tjeneste-til-tjeneste-kommunikation i en PUSH-model.

Når der opstår en abonneret hændelse, skaber Acrobat Sign en HTTPS POST med JSON-brødtekst og leverer det til den angivne URL-adresse.

Før du konfigurerer webhooks, skal du sørge for, at dit netværk accepterer de IP-intervaller, der kræves til funktionalitet.

 

Webhooks har flere fordele i forhold til den tidligere callback-metode, hvoraf nogle er:

  • Administratorer kan aktivere deres egne webhooks uden at skulle involvere Acrobat Sign-support til at vise tilbagekald-URL'en
  • Webhooks er bedre i forhold til datas "friskhed", kommunikationseffektivitet og sikkerhed. Ingen meningsmåling påkrævet
  • Webhooks giver nemt mulighed for forskellige niveauer af omfang (Konto/Gruppe/Bruger/Ressource). 
  • Webhooks er en mere moderne API-løsning, der giver mulighed for nemmere konfiguration af moderne programmer
  • Flere webhooks kan konfigureres pr. omfang (Konto/Gruppe/Bruger/Ressource), hvor tilbagekald skulle være unikke
  • Webhooks giver mulighed for at vælge de data, der skal returneres, hvor tilbagekald er en "alt eller intet"-løsning
  • Metadata, der bæres med en webhook, kan konfigureres (grundlæggende eller detaljeret)
  • Webhooks er langt nemmere at oprette, redigere eller deaktivere efter behov, da brugergrænsefladen er helt inden for administratorkontrol.
Bemærk:

Dette dokument er primært fokuseret på Webhooks-brugergrænseflade i webprogrammet Acrobat Sign (Tidligere Adobe Sign).

Udviklere, der leder efter API-oplysninger, kan finde flere oplysninger her:

Forudsætninger

Du skal lade IP-intervallerne for webhooks passere din netværkssikkerhed for at tjenesten kan fungere. 

Den ældre tilbagekaldelses-URL-tjeneste i REST v5 bruger de samme IP-intervaller som webhook-tjenesten.

Administratorer kan logge på Adobe Admin Console for at tilføje brugere. Når du er logget på, skal du gå til administratormenuen og rulle ned til Webhooks.

Sådan bruges det

Administratorer skal først have en webhook-tjeneste, der er klar til at acceptere det indgående push fra Acrobat Sign. Der er mange muligheder i denne henseende, og så længe tjenesten kan acceptere POST- og GET-anmodninger, vil webhook være vellykket.

Når tjenesten er klar, kan en Acrobat Sign-administrator oprette en ny webhook fra Webhook-grænsefladen i Konto-menuen på Acrobat Sign-webstedet.

Administratorer kan konfigurere webhooken til at udløses for hændelserne Aftale, Webformular (widget) eller Send i massevis (MegaSign). Biblioteksskabelon-ressourcen (biblioteksdokument) kan også konfigureres via API'en.

Omfanget af webhooken kan være hele kontoen eller individuelle grupper via administratorgrænsefladen. API'en giver mulighed for mere finkornethed gennem valg af BRUGER- eller RESSOURCE-omfang.

Den type data, der skubbes til webadressen, kan konfigureres og kan omfatte ting som aftaleoplysninger, deltageroplysninger, dokumentoplysninger og så videre.

Når webhooken er konfigureret og gemt, vil Acrobat Sign skubbe et nyt JSON-objekt til den definerede URL, hver gang udløserhændelsen udløses. Ingen løbende manipulation af webhook er påkrævet, medmindre du ønsker at ændre begivenhedens udløserkriterier eller JSON nyttelast.

Godkendelse af hensigten med webhook-URL'en

Før en webhook registreres, kontrollerer Acrobat Sign, om den webhook-URL, der er angivet i registreringsanmodningen, vil modtage notifikationer eller ej. Når Acrobat Sign modtager en ny webhook-registreringsanmodning, foretages der til dette formål først en verifikationsanmodning til webhook-URL'en. Denne bekræftelsesanmodning er en HTTPS GET-anmodning sendt til webhook-URL'en. Denne anmodning har et brugerdefineret HTTP header X-AdobeSign-ClientId. Værdien i denne overskrift er indstillet til klient-id (Application ID) for API-programmet, der anmoder om at oprette/registrere webhooken. For at kunne registrere en webhook skal webhook-URL'en svare på denne verifikationsanmodning med en 2XX-svarkode, OG ydermere SKAL den sende samme klient-id-værdi tilbage på én af følgende to måder:

  • I en svaroverskrift X-AdobeSign-ClientId. Det er samme overskrift, der sendes i anmodningen og gentages i svaret.
  • Eller i JSON-svarets brødtekst, hvor nøglen til xAdobeSignClientId og dens værdi er samme klient-id, der sendes i anmodningen.

Webhooken vil kun blive registreret på et svar (2XX svarkode) og validering af klient-id enten i overskrift eller svartekst. Formålet med denne bekræftelsesanmodning er at vise, at din webhook-URL virkelig ønsker at modtage notifikationer på den pågældende URL. Hvis du ved et uheld indtastede den forkerte URL, svarer URL'en ikke korrekt på bekræftelsen af hensigten, og Acrobat Sign sender ingen notifikationer til den URL. Derudover kan webhook-URL'en også validere, at den kun vil modtage notifikationer via de webhooks, der er registreret af et bestemt program. Det kan gøres ved at validere klient-id'et for programmet, der blev sendt i X-AdobeSign-ClientId-overskriften. Hvis webhook-URL'en ikke genkender klient-id'et, MÅ DEN IKKE svare med succesresponskoden, og Acrobat Sign vil sørge for, at URL-adressen ikke registreres som en webhook.

Bekræftelsen af webhook URL-opkald vil blive foretaget i følgende scenarier:

  • Registrering af webhook: Hvis denne bekræftelse af webhook URL-opkaldet mislykkes, vil webhooken ikke blive oprettet.
  • Opdaterer Webhook: INAKTIV til AKTIV: Hvis denne bekræftelse af webhook URL-opkaldet mislykkes, vil webhook-tilstanden ikke blive ændret til AKTIV.

Sådan reagerer du på en webhook-notifikation

Acrobat Sign udfører en implicit verificering af hensigten i hver enkelt webhook-notifikationsanmodning, der sendes til webhook-URL'en. Således indeholder hver enkelt webhook-meddelelse HTTPS-anmodning også den brugerdefinerede HTTP-header kaldet X-AdobeSign-ClientId. Værdien af denne overskrift er klient-id (Application ID) for det program, der oprettede webhook. Vi anser webhook-notifikationen for at være leveret med succes, hvis, og kun hvis, et svar om succes (2XX-svarkode) returneres, og klient-id sendes i enten HTTP-sidehovedet (X-AdobeSign-ClientId) eller i en JSON-svartekst med nøgle som xAdobeSignClientId og værdi som det samme klient-id, ellers forsøger vi igen at levere notifikationen til webhook-URL, indtil forsøgene er opbrugt.

Som nævnt ovenfor er overskriften 'X-AdobeSign-ClientId', som er inkluderet i hver enkelt anmodning om meddelelse fra Sign, værdien af denne overskrift (klient-id)  bør ekko tilbage som svar på en af to måder:

1. HTTP-overskrift X-AdobeSign-ClientId og værdi som denne klient-id

Eksempel Javascript-kode til at hente klient-id, validere det, og derefter returnere det i svaroverskrift

// Hent klient-id

var clientid = request.headers['X-ADOBESIGN-CLIENTID'];

 

//Valider det

if (clientid ==="BGBQIIE7H253K6") // Erstat 'BGBQIIE7H253K6' med klient-id'et for det program, hvormed webhook'en er oprettet

{

    //Return it in response header

    response.headers['X-AdobeSign-ClientId'] = clientid;

    response.status = 200;  // default value

}

Eksempel på PHP-kode til at hente klient-id, validere det, og derefter returnere det i svaroverskriften

<?php

// Hent klient-id

$clientid = $_SERVER['HTTP_X_ADOBESIGN_CLIENTID'];

//Valider det

if($clientid == "BGBQIIE7H253K6") //Erstat 'BGBQIIE7H253K6' med klient-id'et for det program, hvormed webhook'en er oprettet

{

    //Return it in response header

   header("X-AdobeSign-ClientId:$clientid");

   header("HTTP/1.1 200 OK"); // default value

}

?>


2. JSON-svartekst med nøgle som xAdobeSignClientId og værdi som samme klient-id

Eksempel på Javascript-kode til at hente klient-id, validere den og returnere den i svarteksten

// Hent klient-id

var clientid = request.headers['X-ADOBESIGN-CLIENTID'];

 

 

//Valider det

if (clientid ==="BGBQIIE7H253K6") // Erstat 'BGBQIIE7H253K6' med klient-id'et for det program, hvormed webhook'en er oprettet

{

    var responseBody = {

                         "xAdobeSignClientId" : clientid // Return Client Id in the body

                       };

    response.headers['Content-Type'] = 'application/json';

    response.body = responseBody;

    response.status = 200;

}

Eksempel på PHP-kode til at hente klient-id, validere den, og returnere den i svarteksten

<?php

// Hent klient-id

$clientid = $_SERVER['HTTP_X_ADOBESIGN_CLIENTID'];

//Valider det

if($clientid == "BGBQIIE7H253K6") //Erstat 'BGBQIIE7H253K6' med klient-id'et for det program, hvormed webhook'en er oprettet

{

   //Return it in response body

   header("Content-Type: application/json");

   $body = array('xAdobeSignClientId' => $clientid);

   echo json_encode($body);

   header("HTTP/1.1 200 OK"); // default value

}

?>

Eksempel på JSON-svarteksten

{

    "xAdobeSignClientId": "BGBQIIE7H253K6"

}

Forudsætninger

Du skal have:

  1. En Microsoft-konto med licens til at oprette Azure Functions-programmer
  2. Du kan oprette et eksisterende Azur Function-program via https://docs.microsoft.com/da-dk/azure/azure-functions/functions-create-first-azure-function 
  3. Grundlæggende kendskab til Javascript, så du kan forstå og skrive koden på et hvilket som helst sprog efter eget valg

Skridt til at oprette en Azure Functions-udløser, der fungerer som en Acrobat Sign-webhook

Sådan opretter du en Javascript HTTP-udløserfunktion:

1. Log ind via din Microsoft-konto https://portal.azure.com/

2. Åbn dit Azure Function-program, som vises under fanen Function-programmer.

Naviger til Funktionsapps i Azure

Dette vil åbne din liste over Azure Function-programmer:

3. Vælg det program, hvor du vil oprette denne nye funktion

4. Klik på knappen Opret (+) for at oprette en ny Azure-funktion

Opret en Azure-funktion

 

5. Vælg Webhook + API som scenarie og Javascript som sprog

6. Klik på Opret denne funktion

Der oprettes en ny funktion, der har kan håndtere en indgående API-anmodning.

Tilføj logik for registrere Acrobat Sign-webhook

Før en webhook er registreret, bekræfter Acrobat Sign, at den webhook URL, der er angivet i registreringsanmodningen, virkelig har til hensigt at modtage meddelelser eller ej. Når en ny webhook registreringsanmodning modtages af Acrobat Sign til dette formål, foretager den først en verificeringsanmodning til webhook-URL'en. Denne verificeringsanmodning er en HTTPS GET-anmodning, som er sendt til webhook-URL'en med en brugerdefineret HTTP-overskrift X-AdobeSign-ClientId. Værdien i denne overskrift er indstillet til klient-id for det program, der anmoder om at oprette/registrere webhook. For at kunne registrere en webhook reagerer webhook-URL'en på denne verifikationsanmodning med en 2XX-svarkode, OG den kan desuden sende den samme klient-id-værdi tilbage på én af følgende to måder.

Der er to muligheder, du kan følge:


Valgmulighed 1: Klient-id i X-AdobeSign-ClientId som svaroverskrift

Send X-AdobeSign-ClientId i svaroverskriften. Det er den samme overskrift, der sendes i anmodningen og gentages i svaret.

Erstat Index.js-filen med følgende:

Erstat index.js-filen

module.exports = function (context, req) {

    var clientId = req.headers['x-adobesign-clientid'];

    // Validate that the incoming ClientID is genuine

    if (clientId === '123XXX456') {

        context.res = {

            // status: 200, /* Defaults to 200 */ // any 2XX response is acceptable

            body: "Notification Accepted",

            headers : {

                'x-adobesign-clientid' : req.headers['x-adobesign-clientid']

            }

        };

    }

    else {

        context.res = {

            status: 400,

            body: "Opps!! Illegitimate Call identified"

        };

    }

    context.done();

};

 

Test adfærden ved at trods anmodningen:

1. Klik på knappen Test i øverste højre hjørne

2. Trods anmodningen om dummy

Test funktionen

Selvom svaroverskrifter ikke er vist ovenfor, kan du stadig observere det ved at trodse det ved hjælp af postbud/DHC eller en anden tjeneste.


Mulighed 2: Klient-id i svarbrødteksten med nøglen xAdobeSignClientId

I JSON-svarets brødtekst, hvor nøglen til xAdobeSignClientId og dens værdi er det samme klient-id, der sendes i anmodningen.

Erstat Index.js-filen med følgende:

Opdater index.js-filindholdet

module.exports = function (context, req) {

    var clientId = req.headers['x-adobesign-clientid'];

    // Validate that the incoming ClientID is genuine

    if (clientId === '123XXX456') {

        context.res = {

            // status: 200, /* Defaults to 200 */ // any 2XX response is acceptable

            body: {

                'xAdobeSignClientId' : clientId

            },

            headers : {

                'Content-Type' : 'application/json'

            }

        };

    }

    else {

        context.res = {

            status: 400,

            body: "Opps!! Illegitimate Call identified"

        };

    }

    context.done();

};

 

Test adfærden ved at trodse anmodningen

1. Klik på knappen Test i øverste højre hjørne

2. Trods anmodningen om dummy

Test funktionen

Bemærk også, at den samme adfærd for client-id forventes, når webhook-URL modtager POST-notifikationer. 


Klar til brug

Når du har verificeret adfærden, fungerer webhook-URL'en i henhold til Acrobat Sign-standarderne. Du kan yderligere opdatere den brugerdefinerede logik i henhold til dine krav.

 

Hent funktions-URL

  • Klik på Hent funktions-URL
Hent funktions-URL

 

Kopiér URL'en, og brug den til at oprette webhooks i Acrobat Sign.

Kopiér funktions-URL

Oprettelse af AWS Lambda-funktionen

For at oprette en AWS Lambda-funktion skal du logge ind på din AWS Management Console og vælge AWS Lambda-tjenesten fra listen over tjenester.

  • Klik på indstillingen Opret en Lambda-funktion vha. "Forfatter fra bunden"
  • På siden Konfigurer funktion indtaster du funktionsnavnet "lambdaWebhooks" og vælger Node.js 4.3 som Runtime
  • For Rollen, skal du vælge en eksisterende rolle, eller oprette en ny rolle fra skabelon(er)
    • Hvis du har valgt  Opret ny rolle fra skabelon(er), skal du indtaste et rollenavn (f.eks. rollelamda) og vælge Simple Microservices-tilladelser fra listen Poiliti-skabeloner
  • Klik på knappen Opret funktion
Opret en funktion på AWS

  • På den nye AWS lamda funktionsside skal du vælge "Rediger kode i linje" som "Kodeindstastningstype" og beholde index.handler som Handler.
  • Tilføj logik for at registrere Acrobat  Sign Webhook

    Før en webhook er registreret, bekræfter Acrobat Sign, at den webhook URL, der er angivet i registreringsanmodningen, virkelig har til hensigt at modtage meddelelser eller ej. Når en ny webhook registreringsanmodning modtages af Acrobat Sign til dette formål, foretager den først en verificeringsanmodning til webhook-URL'en. Denne verificeringsanmodning er en HTTPS GET-anmodning, som er sendt til webhook-URL'en med en brugerdefineret HTTP-overskrift X-AdobeSign-ClientId. Værdien i denne overskrift er indstillet til klient-id for det program, der anmoder om at oprette/registrere webhook. For at kunne registrere en webhook reagerer webhook-URL'en på denne verifikationsanmodning med en 2XX-svarkode, OG den kan desuden sende den samme klient-id-værdi tilbage på én af følgende to måder. Bemærk også, at den samme adfærd for client-id forventes, når webhook-URL modtager POST-notifikationer. 

    Følg et af de to tilfælde:

    Tilfælde 1: Send Client-Id i X-AdobeSign-ClientId som svaroverskrift

    •  Send X-AdobeSign-ClientId i svaroverskriften. Det er den samme overskrift, der sendes i anmodningen og gentages i svaret.

      Kodestykke
      I index.js-filen skal du erstatte den automatisk genererede kodestykke med følgende kode:

Prøveknude JS-kode til at hente klient-id, validere det, og derefter returnere det i svaroverskrift

exports.handler = function index(event, context, callback) {

  // Hent klient-id

  var clientid = event.headers['X-AdobeSign-ClientId'];

 

  //Valider det

  if (clientid =="BGBQIIE7H253K6") // Erstat 'BGBQIIE7H253K6' med klient-id'et for det program, hvormed webhook'en er oprettet

  {

    var response = {

        statusCode: 200,

        headers: {

            "X-AdobeSign-ClientId": clientid

        }

     };

   callback(null,response);

  }

  else {

   callback("Oops!! illegitimate call");

  }

}

 

Case 2: Klient-id i svarlegemet med nøgle xAdobeSignClientId

I JSON-svarets brødtekst, hvor nøglen til xAdobeSignClientId og dens værdi er det samme klient-id, der sendes i anmodningen.

 

Kodestykke

Erstat Index.js-filen med følgende:

Prøveknude JS-kode til at hente klient-id, validere det, og derefter returnere det i svaroverskrift

exports.handler = function index(event, context, callback) {

 // Hent klient-id

 var clientid = event.headers['X-AdobeSign-ClientId'];

  

 //Valider det

 if (clientid =="BGBQIIE7H253K6") // Erstat 'BGBQIIE7H253K6' med klient-id'et for det program, hvormed webhook'en er oprettet

 {

   var responseBody = {

        xAdobeSignClientId : clientid

   };

     

    var response = {

        statusCode: 200,

        body: JSON.stringify(responseBody)

    };

 

   callback(null,response);

 }

 else {

   callback("Opps!! illegitimate call");

  }

}

Opdater index.js-filindholdet

  • Gem funktionen. Lambda-funktionen er skabt, og vi er næsten klar til at bruge den i en webhook i realtid.

 

Konfiguration af AWS API Gateway

For at gøre denne Lambda offentligt tilgængelig via en HTTP-metode skal vi konfigurere AWS API Gateway ved hjælp af vores funktion (oprettet ovenfor) som backend for API'en.

Vælg API-gatewayen fra AWS-tjenesterne i AWS Management Console, og klik på knappen Opret API

Konfigurer API-gatewayen

  • Vælg Ny API på siden Opret ny API, og indtast webhooks som API-navn.
  • Klik på knappen Opret API
  • Vælg rullelisten Handlinger, og vælg indstillingen Opret ressource
  • Markér muligheden Konfigurer som en proxyressource, og angiv valider som Ressourcenanv og {proxy+} i Ressourcesti
  • Lad indstillingen Aktiver API Gateway CORS være umarkeret, og klik på knappen Opret ressource
  • Hold Lambda Function Proxy valgt som Integrationstype, og vælg det område, hvor du har oprettet din Lambda-funktion i rullelisten Lambda-region (sandsynligvis er det samme område, hvor du opretter API Gateway).
  • Indtast valider som Lambda-funktionen og klik på knappen Gem
  • I pop op-vinduet Tilføj tilladelse til Lambda-funktion skal du vælge OK

Hvis alle ovenstående trin udføres korrekt, ser du noget som dette:

Konfigureret metode

Implementering af API

Det næste skridt er at implementere denne API, så den bliver klar til brug.

  • I rullemenuen Handlinger skal du vælge Implementer API
  • Vælg [Ny fase] i implementeringsfasen, og indtast prod (eller noget, du gerne vil identificere denne fase) i fase-navnet
  • Klik på knappen Udrul

API er nu klar til brug, og du kan finde den finde URL i den blå boks, som vises herunder:

Installér API'en

Bemærk denne webadresse, da du skal angive den som din webadresse til webhook i realtid.

Klar til brug

Det er gjort. Brug url'en ovenfor med "/{nodeJSfunctionName}"POST /webhooks API-anmodning.  Når du har verificeret adfærden, er webhook-URL'en funktionel i henhold til
Acrobat Sign-standarder. Du kan yderligere opdatere/tilføje den brugerdefinerede logik i henhold til dit krav.

Aktivering og deaktivering

Adgang til Webhooks-funktionen er som standard aktiveret for Enterprise-konti.

Administratorer på gruppeniveau kan oprette/styre de webhooks, der kun opererer inden for deres gruppe.

Adgang til Webhooks-siden kan findes i venstre skinne i Admin-menuen.

Gå til fanen Webhooks

Anbefalede fremgangsmåder

  • Abonner på specifikke, nødvendige hændelser for at begrænse antallet af HTTPS-anmodninger til serveren – jo mere specifik du kan lave dine webhooks, jo mindre volumen skal du gennemgå.
  • Vær dubletresistent - Hvis du har mere end én app, der deler den samme webhook-URL og den samme bruger tilknyttet hver app, sendes den samme begivenhed til din webhook flere gange (én gang pr. app). I nogle tilfælde kan din webhook modtage duplikerede begivenheder. Din webhook applikation skal være tolerant over for dette og udlede af event-ID.
  • Svar altid hurtigt på webhooks – din app har kun 5 sekunder til at svare på webhook-forespørgsler. For bekræftelsesanmodningen er dette sjældent et problem, da din app ikke behøver at gøre noget rigtigt arbejde for at svare. For notifikationsanmodninger vil din app normalt gøre noget, der tager tid, som svar på anmodningen. Det anbefales at arbejde på en separat tråd eller asynkront med en kø for at sikre, at du kan svare inden for fem sekunder
  • Administrer samtidighed – når en bruger foretager en række ændringer hurtigt efter hinanden, vil din app sandsynligvis modtage flere notifikationer for den samme bruger på omtrent samme tid. Hvis du ikke er forsigtig med, hvordan du administrerer samtidighed, kan din app ende med at behandle de samme ændringer for den samme bruger mere end én gang. For at drage fordel af Acrobat Sign-webhooks skal en klar forståelse af brugen af oplysningerne forstås. Sørg for at stille spørgsmål som: 
    • Hvilke data vil du returnere i nyttedataene? 
    • Hvem får adgang til disse oplysninger? 
    • Hvilke beslutninger eller rapporter bliver der genereret?
  • Anbefalinger til modtagelse af et underskrevet dokument – der er flere faktorer, der skal overvejes, når du beslutter, hvordan du modtager en underskrevet PDF fra Acrobat Sign i dit dokumenthåndteringssystem. 

Selvom det er helt acceptabelt at vælge muligheden Aftalesigneret dokument, mens du opretter en webhook, kan du overveje at bruge Acrobat Sign API til at hente dokumenterne, når en udløsende begivenhed (såsom aftalestatus Komplet) modtages.

Ting at huske på ...

JSON størrelsesbegrænsning

JSON nyttelasten er begrænset til 10 MB.

Hvis en begivenhed genererer en større nyttelast, vil en webhook blive udløst, men de betingede parameterattributter, hvis der i anmodningen, vil blive fjernet for at reducere størrelsen af nyttelasten. 

"ConditionalParametersTrimmed " vil blive returneret i svaret, når dette sker for at informere klienten om, at conditionalParameters info er blevet fjernet.

conditionalParametersTrimmed” er et array-objekt, der indeholder oplysninger om de nøgler, der er blevet trimmet.

Trunkeringen vil blive udført i følgende rækkefølge :

  • includeSignedDocuments
  • includeParticipantsInfo
  • includeDocumentsInfo
  • includeDetailedInfo

Underskrevne dokumenter afkortes først, efterfulgt af deltageroplysninger, dokumentoplysninger og endelig detaljerede oplysninger.

Dette kan f.eks. ske på en aftalefuldførelseshændelse, hvis den omfatter underskrevet dokument (base 64-kodet) samt for en aftale med flere formularfelter

Webhook-meddelelser

Acrobat Sign-webhooks leverer notifikationer til afsenderen af aftalen og enhver webhook, der er konfigureret inden for den gruppe, som aftalen blev sendt fra. Konto-webhooks modtager alle hændelser.

Afsender: Bruger A | Underskriver: Bruger B | Modtager: Bruger C

Bruger A og Bruger B er på forskellige konti

Bruger A og Bruger C er på forskellige konti

Brugssituation

Notifikation?

Kommentarer/noter

Bruger A's konto har webhook på KONTO-niveau (oprettet af bruger A eller kontoadministrator).

Ja

En webhook på KONTO-niveau får besked om alle hændelser, der udløses på den konto.

Bruger A's konto har webhook på GRUPPE-niveau (oprettet af bruger A/kontoadministrator).

Antagelse: Bruger A og gruppeadministrator er i samme gruppe.

Ja

En webhook på GRUPPE-niveau får besked om alle hændelser, der udløses i den gruppe.

Bruger A har webhook på BRUGER-niveau.

Ja

Som afsender udløses bruger A's webhook på BRUGER-niveau

Bruger A har webhook på RESSOURCE-niveau (for ovenstående sendte aftale).

Ja

 
     

Bruger B's konto har webhook på KONTO-niveau (oprettet af bruger B eller kontoadministrator).

Nej

Bruger B's webhook på KONTO-niveau betragtes som en underskriverwebhook.

Bruger B's konto har webhook på GRUPPE-niveau (oprettet af bruger B eller konto-/gruppeadministrator).

Antagelse: Bruger B og gruppeadministrator er i samme gruppe.

Nej

Bruger B's webhook på GRUPPE-niveau betragtes som en underskriverwebhook.

Bruger B har webhook på BRUGER-niveau.

Nej

Bruger B's webhook på BRUGER-niveau betragtes som en underskriverwebhook.

     

Bruger C's konto har webhook på KONTO-niveau (oprettet af bruger C eller kontoadministrator).

Nej

Bruger C's webhook på KONTO-niveau betragtes som en webhook uden ophavsmand.

Bruger C's konto har webhook på GRUPPE-niveau (oprettet af bruger C eller konto-/gruppeadministrator).

Antagelse: Bruger C og gruppeadministrator er i samme gruppe.

Nej

Bruger C's webhook på GRUPPE-niveau betragtes som en webhook uden ophavsmand.

Bruger C har webhook på BRUGER-niveau.

Nej

Bruger C's webhook på BRUGER-niveau betragtes som en webhook uden ophavsmand.

Afsender: Bruger A | Underskriver: Bruger B | Modtager: Bruger C

Bruger A, Bruger B og Bruger C er på samme konto

Brugssituation

Notifikation?

Noter

Bruger A's konto har webhook på KONTO-niveau (oprettet af bruger A eller kontoadministrator).

Ja

Underretning for webhooks på KONTO-niveau om hændelser udløst af kontoen.

Bruger A's konto har webhook på GRUPPE-niveau (oprettet af bruger A/kontoadministrator).

Antagelse: Bruger A og gruppeadministrator er i samme gruppe.

Ja

Underretning for webhooks på GRUPPE-niveau om hændelser udløst af brugere i deres gruppe.

Bruger A har webhook på BRUGER-niveau.

Ja

Som afsender udløses bruger A's webhook på Bruger-niveau

Bruger A har webhook på RESSOURCE-niveau (for ovenstående sendte aftale).

Ja

 
     

Bruger B's konto har webhook på KONTO-niveau (oprettet af bruger B eller kontoadministrator).

Ja

Da bruger A og bruger B er på samme konto, underrettes en webhook på KONTO-niveau om alle hændelser, der udløses på den konto.

Bruger B's konto har webhook på GRUPPE-niveau (oprettet af bruger B eller konto-/gruppeadministrator).

Antagelse: Bruger A, Bruger B og gruppeadministrator er i samme gruppe.

Ja

Da bruger A og bruger B er i samme gruppe, underrettes en webhook på GRUPPE-niveau om alle hændelser, der udløses i den gruppe.

Bruger B's konto har webhook på GRUPPE-niveau (oprettet af bruger B eller konto-/gruppeadministrator).

Antagelse: Bruger A og Bruger B er i forskellige grupper.

Nej

Bruger B's webhook på GRUPPE-niveau betragtes som en underskriverwebhook.

Bruger A's webhook (RESSOURCE/BRUGER/GRUPPE/KONTO) udløses.

Bruger B har webhook på BRUGER-niveau.

Nej

Som modtager udløses bruger B's webhook på BRUGER-niveau ikke.

     

Bruger C's konto har webhook på KONTO-niveau (oprettet af bruger C eller kontoadministrator).

Ja

Da bruger A og bruger C er på samme konto, underrettes en webhook på KONTO-niveau om alle hændelser, der udløses på den konto.

Bruger C's konto har webhook på GRUPPE-niveau (oprettet af bruger C eller konto-/gruppeadministrator).

Antagelse: Bruger A, Bruger C gruppeadministrator er i samme gruppe.

Ja

Da bruger A og bruger C er i samme gruppe, underrettes en webhook på GRUPPE-niveau om alle hændelser, der udløses i den gruppe.

Bruger C's konto har webhook på GRUPPE-niveau (oprettet af bruger C eller konto-/gruppeadministrator).

Antagelse: Bruger A og Bruger C er i forskellige grupper.

Nej

Bruger C's webhook på GRUPPE-niveau betragtes som en webhook uden ophavsmand.

Bruger A's webhook (RESSOURCE/BRUGER/GRUPPE/KONTO) udløses.

Bruger C har webhook på BRUGER-niveau.

Nej

Bruger C's webhook på BRUGER-niveau betragtes som en webhook uden ophavsmand.

Prøv igen, når lyttetjenesten er nede

Hvis mål-URL'en til webhooken er nede af en eller anden grund, sætter Acrobat Sign JSON i kø og prøver igen i en progressiv cyklus over 72 timer.

De ikke-leverede hændelser forbliver i en "forsøg igen"-kø, og der gøres den bedste indsats i løbet af de næste 72 timer for at levere notifikationerne i den rækkefølge, de opstod i.

Strategien for at prøve at levere notifikationer igen er en fordobling af tiden mellem forsøg, startende med et interval på 1 minut, der stiger til hver 12. time, hvilket resulterer i 15 forsøg i løbet af 72 timer.

Hvis webhook-modtageren ikke svarer inden for 72 timer, og der ikke har været nogen vellykkede notifikationsleverancer inden for de sidste syv dage, deaktiveres webhooken. Der sendes ingen notifikationer til denne webadresse, før webhook er aktiveret igen.

Alle meddelelser mellem den tid webhook er deaktiveret og derefter aktiveret går igen tabt.

 Adobe

Få hjælp hurtigere og nemmere

Ny bruger?

Adobe MAX 2024

Adobe MAX
kreativitetskonferencen

14-16. oktober i Miami Beach og online

Adobe MAX

Kreativitetskonferencen

14-16. oktober i Miami Beach og online

Adobe MAX 2024

Adobe MAX
kreativitetskonferencen

14-16. oktober i Miami Beach og online

Adobe MAX

Kreativitetskonferencen

14-16. oktober i Miami Beach og online