# Custom Action Callback Form

**URL:** <https://forum.frame.io/t/custom-action-callback-form/736>\
**Category:** Help\
**Tags:** webhooks\
**Created:** [August 21, 2023, 3:04pm UTC](https://forum.frame.io/t/custom-action-callback-form/736 "2023-08-21T15:04:04Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![coreyo](https://avatars.discourse-cdn.com/v4/letter/c/90db22/32.png) [@coreyo](https://forum.frame.io/u/coreyo)\
**Post date:** [August 21, 2023, 3:04pm UTC](https://forum.frame.io/t/custom-action-callback-form/736/1 "2023-08-21T15:04:04Z")

</div>

Having issues getting a form to appear when using a callback on a custom action. I am able to use a webhook response to get a custom success message no problem, but when I enter JSON form fields, I just get the generic “success” message and no form. I can see in the custom action logs that the response body received by [Frame.io](http://Frame.io) contains the JSON data, but it is not populating onto the [Frame.io](http://Frame.io) dialogue that appears. Not sure if it is a status code issue (I’m using 201), an issue with headers not being properly passed, or something else I am not thinking of. If it helps, I am using web hooks through the [Make.com](http://Make.com) (formerly Integromat) platform.

---

<div class="post-metadata">

**Author:** ![jhodges](https://yyz1.discourse-cdn.com/flex035/user_avatar/forum.frame.io/jhodges/32/3_2.png) [@jhodges](https://forum.frame.io/u/jhodges)\
**Post date:** [August 21, 2023, 5:20pm UTC](https://forum.frame.io/t/custom-action-callback-form/736/2 "2023-08-21T17:20:47Z")

</div>

My guess is that your issue is that you have to respond back with a `200` status code, you cannot respond back with a `201` response.

I agree, it’s confusing that you get a “Success” message, that’s something we’ll hopefully be improving soon!

Another thing to look out for is that your response is returned in \< `500ms` or it will not work correctly. Lastly, it’s pretty easy to have a small syntax error in your JSON form.

There’s also one more thing that could be causing your issue, and that’s just a bug in our Custom Actions feature that can cause this particular error. We’re working on rebuilding that infrastructure right now, so in the worst-case scenario that will get fixed in the next couple of months.

---

<div class="post-metadata">

**Author:** ![coreyo](https://avatars.discourse-cdn.com/v4/letter/c/90db22/32.png) [@coreyo](https://forum.frame.io/u/coreyo)\
**Post date:** [August 21, 2023, 7:03pm UTC](https://forum.frame.io/t/custom-action-callback-form/736/3 "2023-08-21T19:03:37Z")

</div>

Hey, thanks a ton for the response. I tried reverting back to response code 200 and am still having the same issue. I was just using one of the simple JSON form examples from the API documentation while I was testing out the functionality… I’m pretty sure my syntax is ok. I’ve attached two screenshots. Latency looks like it is well within the 500ms. Maybe it is just a bug on your end?

 ![Screenshot 2023-08-21 at 2.14.34 PM](https://canada1.discourse-cdn.com/flex035/uploads/frame1/original/1X/25c286e0863491f460832c7fddfad4bc96362556.png)  
 ![Screenshot 2023-08-21 at 2.14.47 PM](https://canada1.discourse-cdn.com/flex035/uploads/frame1/original/1X/228fd99fa3661e80d0e7c18bb750b09a01599b8c.png)

---

<div class="post-metadata">

**Author:** ![jhodges](https://yyz1.discourse-cdn.com/flex035/user_avatar/forum.frame.io/jhodges/32/3_2.png) [@jhodges](https://forum.frame.io/u/jhodges)\
**Post date:** [August 21, 2023, 10:39pm UTC](https://forum.frame.io/t/custom-action-callback-form/736/4 "2023-08-21T22:39:13Z")

</div>

Your form response isn’t actually correct, you’re missing `title`, `description`, and `fields: {}`.

When designing your form, I would suggest starting with the Custom Action Builder, available [here](https://developer.frame.io/app/custom-actions/builder).

---

<div class="post-metadata">

**Author:** ![vittacute](https://yyz1.discourse-cdn.com/flex035/user_avatar/forum.frame.io/vittacute/32/100_2.png) [@vittacute](https://forum.frame.io/u/vittacute)\
**Post date:** [August 22, 2023, 7:23pm UTC](https://forum.frame.io/t/custom-action-callback-form/736/5 "2023-08-22T19:23:57Z")

</div>

A custom action callback form is a form that is displayed after a custom action has been executed. The callback form can be used to collect additional information from the user, or to perform additional actions.

To create a custom action callback form, you will need to:

1. Create a form in your application.
2. Add a hidden field to the form with the name `[callback_id](https://ibcbetpro.com)`. The value of this field should be the ID of the custom action that was executed.
3. Add a submit button to the form.
4. Register a callback function that will be called when the form is submitted. This callback function will need to handle the data that is submitted in the form.

Here is an example of a custom action callback form:

`HTML

 `

Use code with caution. [Learn more](https://bard.google.com/faq#coding)

content\_copy

The following code shows a callback function that can be used to handle the data that is submitted in the form:

`Pythondef callback(request):  
callback\_id = request.POST.get(‘callback\_id’)  
name = request.POST.get(‘name’)  
email = request.POST.get(‘email’)

# Do something with the data that was submitted in the form

return HttpResponse(‘Thank you for your submission!’)`

Use code with caution. [Learn more](https://bard.google.com/faq#coding)

content\_copy

When the form is submitted, the callback function will be called with the ID of the custom action that was executed, the name of the user, and the email address of the user. The callback function can then do something with this data, such as saving it to a database or sending an email to the user.

Custom action callback forms can be a powerful way to collect additional information from users, or to perform additional actions after a custom action has been executed.

---

<div class="post-metadata">

**Author:** ![jhodges](https://yyz1.discourse-cdn.com/flex035/user_avatar/forum.frame.io/jhodges/32/3_2.png) [@jhodges](https://forum.frame.io/u/jhodges)\
**Post date:** [August 22, 2023, 7:27pm UTC](https://forum.frame.io/t/custom-action-callback-form/736/6 "2023-08-22T19:27:56Z")

</div>

I was actually in the process of writing a response, having checked our documentation!

I’m doing some testing right now to see what might be going on here. It should be possible to respond with a custom message in a **non-form** response.

---

<div class="post-metadata">

**Author:** ![coreyo](https://avatars.discourse-cdn.com/v4/letter/c/90db22/32.png) [@coreyo](https://forum.frame.io/u/coreyo)\
**Post date:** [August 22, 2023, 8:46pm UTC](https://forum.frame.io/t/custom-action-callback-form/736/7 "2023-08-22T20:46:36Z")

</div>

So… I got this to work. For anyone else who may come upon this. Make apparently needs one line JSON, not the properly formatted, indented JSON I was throwing in there from the builder/API docs during my scenario testing. I feel dumb. But now I know.

---

<div class="post-metadata">

**Author:** ![jhodges](https://yyz1.discourse-cdn.com/flex035/user_avatar/forum.frame.io/jhodges/32/3_2.png) [@jhodges](https://forum.frame.io/u/jhodges)\
**Post date:** [August 23, 2023, 4:48pm UTC](https://forum.frame.io/t/custom-action-callback-form/736/8 "2023-08-23T16:48:22Z")

</div>

Phew, glad you figured it out! Sorry for all that back and forth.

We definitely want to make Custom Actions easier to user/work with in the future. Stay tuned for improvements there!

---

<div class="post-metadata">

**Author:** ![coreyo](https://avatars.discourse-cdn.com/v4/letter/c/90db22/32.png) [@coreyo](https://forum.frame.io/u/coreyo)\
**Post date:** [August 24, 2023, 8:36pm UTC](https://forum.frame.io/t/custom-action-callback-form/736/9 "2023-08-24T20:36:23Z")

</div>

No reason to be sorry… I really appreciate your responsiveness here. Can’t wait for Custom Action updates, though. This seems to be a Make thing… Older (no longer active) custom actions made when it was Integromat ran fine with multi-line json in the body, so was a weird issue that it took a while to isolate. Took having the same issue with the Asana API for me to narrow it down to that.

Gotta love it.
